diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/pages/PostRequestHandler.kt b/AnkiDroid/src/main/java/com/ichi2/anki/pages/PostRequestHandler.kt index 29adaec145f0..ed1e09ca9fcb 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/pages/PostRequestHandler.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/pages/PostRequestHandler.kt @@ -128,8 +128,8 @@ val collectionMethods = "getIgnoredBeforeCount" to { bytes -> getIgnoredBeforeCountRaw(bytes) }, "getRetentionWorkload" to { bytes -> getRetentionWorkloadRaw(bytes) }, "simulateFsrsWorkload" to { bytes -> simulateFsrsWorkloadRaw(bytes) }, - // https://github.com/ankitects/anki/pull/4326 -> saveCustomColours should be no-op in mobile clients - "saveCustomColours" to { bytes -> backendIdentity(bytes) }, + "saveCustomColours" to { bytes -> saveCustomColoursRaw(bytes) }, + "getCustomColours" to { bytes -> getCustomColoursRaw(bytes) }, ) suspend fun handleCollectionPostRequest( diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/scheduling/Fsrs.kt b/AnkiDroid/src/main/java/com/ichi2/anki/scheduling/Fsrs.kt index 67c093b1c5fe..ce1542755533 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/scheduling/Fsrs.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/scheduling/Fsrs.kt @@ -43,7 +43,7 @@ value class FsrsVersion( when (libraryVersion) { "0.6.4" -> "FSRS 4.5" "1.4.3", "2.0.3" -> "FSRS 5" - "4.1.1", "5.1.0" -> "FSRS 6" + "4.1.1", "5.1.0", "5.2.0" -> "FSRS 6" else -> null } } diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/TranslationTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/TranslationTest.kt index 0cb3dca14bb5..08394ab17fed 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/TranslationTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/TranslationTest.kt @@ -39,7 +39,9 @@ class TranslationTest : RobolectricTest() { @Test fun `translatable strings do not duplicate GeneratedTranslations`() = runTest { - val backendStrings = getBackendNonArgStrings() + val backendStrings = + getBackendNonArgStrings() + .filterNot { it.methodName in IGNORED_BACKEND_TRANSLATIONS } val backendByText = backendStrings.groupBy { it.text } val backendByTextLower = backendStrings.groupBy { it.text.lowercase() } val xmlStrings = getTranslatableXmlStrings() @@ -363,5 +365,16 @@ class TranslationTest : RobolectricTest() { // TR.studyingShowAnswer() // TR.deckConfigQuestionActionShowAnswer() ) + + /** + * Backend translation method names (e.g. `TR.xx()`) excluded from the + * duplicate check as the strings are unrelated conceptually. + * + * Do not remove this set when empty. + */ + private val IGNORED_BACKEND_TRANSLATIONS = + setOf( + "launcherOff", // "Off" - unrelated to R.string.full_screen_off + ) } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a2c9a9014b8c..b24e41e49e78 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -64,7 +64,7 @@ androidxWebkit = "1.15.0" # https://developer.android.com/jetpack/androidx/releases/work androidxWork = "2.11.2" # https://github.com/ankidroid/Anki-Android-Backend/ -ankiBackend = '0.1.64-anki25.09.2' +ankiBackend = '0.1.65-anki26.05b1' autoService = "1.1.1" autoServiceAnnotations = "1.1.1" # https://github.com/skydoves/ColorPickerView/releases diff --git a/libanki/src/main/java/com/ichi2/anki/libanki/Collection.kt b/libanki/src/main/java/com/ichi2/anki/libanki/Collection.kt index e8131fbcec4a..d32b7ccd213f 100644 --- a/libanki/src/main/java/com/ichi2/anki/libanki/Collection.kt +++ b/libanki/src/main/java/com/ichi2/anki/libanki/Collection.kt @@ -1493,6 +1493,12 @@ class Collection( @NotInPyLib fun evaluateParamsLegacyRaw(input: ByteArray): ByteArray = backend.evaluateParamsLegacyRaw(input = input) + + @NotInPyLib + fun saveCustomColoursRaw(input: ByteArray): ByteArray = backend.saveCustomColoursRaw(input = input) + + @NotInPyLib + fun getCustomColoursRaw(input: ByteArray): ByteArray = backend.getCustomColoursRaw(input = input) } @NotInPyLib diff --git a/libanki/src/main/java/com/ichi2/anki/libanki/Deck.kt b/libanki/src/main/java/com/ichi2/anki/libanki/Deck.kt index 668bd6a15989..44a78695ada1 100644 --- a/libanki/src/main/java/com/ichi2/anki/libanki/Deck.kt +++ b/libanki/src/main/java/com/ichi2/anki/libanki/Deck.kt @@ -135,6 +135,7 @@ fun Order.toDisplayString(translations: Translations) = Order.REVERSE_ADDED -> translations.decksLatestAddedFirst() Order.RETRIEVABILITY_ASCENDING -> translations.deckConfigSortOrderRetrievabilityAscending() Order.RETRIEVABILITY_DESCENDING -> translations.deckConfigSortOrderRetrievabilityDescending() + Order.RELATIVE_OVERDUENESS -> translations.decksRelativeOverdueness() Order.UNRECOGNIZED -> throw IllegalArgumentException("Can't display an unknown enum value.") }