-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Display Renamed Flags #16204
Comments
Anki-Android/AnkiDroid/src/main/res/values/01-core.xml Lines 89 to 95 in 4fbc994
Anki-Android/AnkiDroid/src/main/res/values/11-arrays.xml Lines 74 to 81 in 9458ab0
|
Untested patch to get started: Subject: [PATCH] fix tests
---
Index: AnkiDroid/src/main/java/com/ichi2/anki/Flag.kt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/Flag.kt b/AnkiDroid/src/main/java/com/ichi2/anki/Flag.kt
--- a/AnkiDroid/src/main/java/com/ichi2/anki/Flag.kt (revision a75ef34cf93c809931752f986f7b7ef95d51480b)
+++ b/AnkiDroid/src/main/java/com/ichi2/anki/Flag.kt (date 1713444409705)
@@ -15,11 +15,26 @@
*/
package com.ichi2.anki
+import android.content.Context
import androidx.annotation.ColorRes
import androidx.annotation.DrawableRes
+import com.ichi2.anki.CollectionManager.withCol
import com.ichi2.libanki.Card
import com.ichi2.libanki.CardId
import com.ichi2.libanki.Collection
+import org.json.JSONObject
+
+// this is not part of the enum as getFlagNames should be used to handle overrides
+private val flagToName = hashMapOf(
+ Flag.NONE to R.string.menu_flag_card_zero,
+ Flag.RED to R.string.menu_flag_card_one,
+ Flag.ORANGE to R.string.menu_flag_card_two,
+ Flag.GREEN to R.string.menu_flag_card_three,
+ Flag.BLUE to R.string.menu_flag_card_four,
+ Flag.PINK to R.string.menu_flag_card_five,
+ Flag.TURQUOISE to R.string.menu_flag_card_six,
+ Flag.PURPLE to R.string.menu_flag_card_seven,
+)
enum class Flag(val code: Int, @DrawableRes val drawableRes: Int, @ColorRes val browserColorRes: Int?) {
NONE(0, R.drawable.ic_flag_transparent, null),
@@ -39,3 +54,19 @@
}
fun Collection.setUserFlag(flag: Flag, cids: List<CardId>) = this.setUserFlag(flag.code, cids)
fun Card.setUserFlag(flag: Flag) = this.setUserFlag(flag.code)
+
+suspend fun getFlagNames(context: Context): Map<Flag, String> {
+ val overrides = withCol { config.getObject("flagLabels", JSONObject()) }
+ return Flag.entries.associateWith {
+ overrides.getStringOrNull(it.code.toString()) ?: context.getString(flagToName[it]!!)
+ }
+}
+
+private fun JSONObject.getStringOrNull(key: String): String? {
+ if (!has(key)) return null
+ return try {
+ getString(key)
+ } catch (_: Exception) {
+ null
+ }
+}
\ No newline at end of file
Index: AnkiDroid/src/main/java/com/ichi2/libanki/Config.kt
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Config.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Config.kt
--- a/AnkiDroid/src/main/java/com/ichi2/libanki/Config.kt (revision a75ef34cf93c809931752f986f7b7ef95d51480b)
+++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Config.kt (date 1713444409707)
@@ -25,6 +25,7 @@
import net.ankiweb.rsdroid.Backend
import net.ankiweb.rsdroid.exceptions.BackendNotFoundException
import org.json.JSONArray
+import org.json.JSONException
import org.json.JSONObject
class Config(val backend: Backend) {
@@ -69,4 +70,15 @@
null
}
}
+
+ @NotInLibAnki
+ fun getObject(key: String, default: JSONObject) : JSONObject {
+ return try {
+ JSONObject(backend.getConfigJson(key).toStringUtf8())
+ } catch (ex: BackendNotFoundException) {
+ default
+ } catch (ex: JSONException) {
+ default
+ }
+ }
} |
Taking it up, since we already have a patch thanks to David likely test it and push it |
There are ~4 usages of Nothing is tested |
Had to make some changes but I am mostly done testing and likely push the changes in the morning |
The related PR #16218 had the unfortunate side effect of surfacing a latent issue with windows unit testing and not-always-serialized collection-open behavior in a robolectric context, and had to be reverted |
Will get back with a better solution soon |
ankitects/anki@9816227
The text was updated successfully, but these errors were encountered: