diff --git a/CHANGELOG.md b/CHANGELOG.md index d74b729caa..6089e91daa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,4 +8,4 @@ ## Other ?? Technical stuff, what happened behind the scene --> ## Fixes -- Fixed "Open source repo" icon's colour +- Fixed incompatibility with J2K backup file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a64d53b068..984c46e2b7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -47,7 +47,7 @@ android { targetSdk = AndroidConfig.targetSdk applicationId = "eu.kanade.tachiyomi" versionCode = 139 - versionName = "1.8.4.3" + versionName = "1.8.4.4" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled = true diff --git a/app/src/main/java/dev/yokai/domain/base/BasePreferences.kt b/app/src/main/java/dev/yokai/domain/base/BasePreferences.kt index d141611d19..8e34fcda74 100644 --- a/app/src/main/java/dev/yokai/domain/base/BasePreferences.kt +++ b/app/src/main/java/dev/yokai/domain/base/BasePreferences.kt @@ -15,6 +15,16 @@ class BasePreferences(private val preferenceStore: PreferenceStore) { SHIZUKU(R.string.ext_installer_shizuku, false), PRIVATE(R.string.ext_installer_private, false), LEGACY(R.string.ext_installer_legacy, true), // Technically useless, but just in case it being missing crashes the app + ; + + companion object { + fun migrate(oldValue: Int) = + when (oldValue) { + 1 -> BasePreferences.ExtensionInstaller.SHIZUKU + 2 -> BasePreferences.ExtensionInstaller.PRIVATE + else -> BasePreferences.ExtensionInstaller.PACKAGEINSTALLER + } + } } fun displayProfile() = preferenceStore.getString("pref_display_profile_key", "") diff --git a/app/src/main/java/dev/yokai/domain/ui/settings/ReaderPreferences.kt b/app/src/main/java/dev/yokai/domain/ui/settings/ReaderPreferences.kt index 839c4e7d21..916bc4efce 100644 --- a/app/src/main/java/dev/yokai/domain/ui/settings/ReaderPreferences.kt +++ b/app/src/main/java/dev/yokai/domain/ui/settings/ReaderPreferences.kt @@ -5,6 +5,7 @@ import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.core.preference.PreferenceStore import eu.kanade.tachiyomi.core.preference.getEnum import eu.kanade.tachiyomi.data.preference.PreferenceKeys +import eu.kanade.tachiyomi.ui.reader.viewer.pager.PagerConfig class ReaderPreferences(private val preferenceStore: PreferenceStore) { fun cutoutShort() = preferenceStore.getBoolean("cutout_short", true) @@ -17,10 +18,29 @@ class ReaderPreferences(private val preferenceStore: PreferenceStore) { HIDE(R.string.pad_cutout_areas), // Similar to CUTOUT_MODE_NEVER / J2K's pad SHOW(R.string.start_past_cutout), // Similar to CUTOUT_MODE_SHORT_EDGES / J2K's start past IGNORE(R.string.cutout_ignore), // Similar to CUTOUT_MODE_DEFAULT / J2K's ignore + ; + + companion object { + fun migrate(oldValue: Int) = + when (oldValue) { + PagerConfig.CUTOUT_PAD -> CutoutBehaviour.HIDE + PagerConfig.CUTOUT_IGNORE -> CutoutBehaviour.IGNORE + else -> CutoutBehaviour.SHOW + } + } } enum class LandscapeCutoutBehaviour(@StringRes val titleResId: Int) { HIDE(R.string.pad_cutout_areas), // Similar to CUTOUT_MODE_NEVER / J2K's pad DEFAULT(R.string.cutout_ignore), // Similar to CUTOUT_MODE_SHORT_EDGES / J2K's ignore + ; + + companion object { + fun migrate(oldValue: Int) = + when (oldValue) { + 0 -> LandscapeCutoutBehaviour.HIDE + else -> LandscapeCutoutBehaviour.DEFAULT + } + } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt b/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt index 4baed80fc8..979a82f130 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt @@ -274,13 +274,7 @@ object Migrations { val basePreferences: BasePreferences = Injekt.get() try { val oldExtensionInstall = prefs.getInt("extension_installer", 0) - basePreferences.extensionInstaller().set( - when (oldExtensionInstall) { - 1 -> BasePreferences.ExtensionInstaller.SHIZUKU - 2 -> BasePreferences.ExtensionInstaller.PRIVATE - else -> BasePreferences.ExtensionInstaller.PACKAGEINSTALLER - } - ) + basePreferences.extensionInstaller().set(BasePreferences.ExtensionInstaller.migrate(oldExtensionInstall)) } catch (_: Exception) { basePreferences.extensionInstaller().set(BasePreferences.ExtensionInstaller.PACKAGEINSTALLER) } @@ -289,25 +283,14 @@ object Migrations { val readerPreferences: ReaderPreferences = Injekt.get() try { val oldCutoutBehaviour = prefs.getInt(PreferenceKeys.pagerCutoutBehavior, 0) - readerPreferences.pagerCutoutBehavior().set( - when (oldCutoutBehaviour) { - PagerConfig.CUTOUT_PAD -> CutoutBehaviour.HIDE - PagerConfig.CUTOUT_IGNORE -> CutoutBehaviour.IGNORE - else -> CutoutBehaviour.SHOW - } - ) + readerPreferences.pagerCutoutBehavior().set(CutoutBehaviour.migrate(oldCutoutBehaviour)) } catch (_: Exception) { readerPreferences.pagerCutoutBehavior().set(CutoutBehaviour.SHOW) } try { val oldCutoutBehaviour = prefs.getInt("landscape_cutout_behavior", 0) - readerPreferences.landscapeCutoutBehavior().set( - when (oldCutoutBehaviour) { - 0 -> LandscapeCutoutBehaviour.HIDE - else -> LandscapeCutoutBehaviour.DEFAULT - } - ) + readerPreferences.landscapeCutoutBehavior().set(LandscapeCutoutBehaviour.migrate(oldCutoutBehaviour)) } catch (_: Exception) { readerPreferences.landscapeCutoutBehavior().set(LandscapeCutoutBehaviour.DEFAULT) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/PreferenceBackupRestorer.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/PreferenceBackupRestorer.kt index 4cd56156b7..d705a2eee0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/PreferenceBackupRestorer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/restorers/PreferenceBackupRestorer.kt @@ -1,8 +1,11 @@ package eu.kanade.tachiyomi.data.backup.restore.restorers import android.content.Context +import dev.yokai.domain.base.BasePreferences +import dev.yokai.domain.ui.settings.ReaderPreferences import eu.kanade.tachiyomi.core.preference.AndroidPreferenceStore import eu.kanade.tachiyomi.core.preference.PreferenceStore +import eu.kanade.tachiyomi.core.preference.getEnum import eu.kanade.tachiyomi.data.backup.create.BackupCreatorJob import eu.kanade.tachiyomi.data.backup.models.BackupPreference import eu.kanade.tachiyomi.data.backup.models.BackupSourcePreferences @@ -13,6 +16,7 @@ import eu.kanade.tachiyomi.data.backup.models.LongPreferenceValue import eu.kanade.tachiyomi.data.backup.models.StringPreferenceValue import eu.kanade.tachiyomi.data.backup.models.StringSetPreferenceValue import eu.kanade.tachiyomi.data.library.LibraryUpdateJob +import eu.kanade.tachiyomi.data.preference.PreferenceKeys import eu.kanade.tachiyomi.extension.ExtensionUpdateJob import eu.kanade.tachiyomi.source.sourcePreferences import eu.kanade.tachiyomi.ui.library.LibrarySort @@ -56,6 +60,26 @@ class PreferenceBackupRestorer( } // end j2k fork differences + // << Yokai-J2K compat + if (key == "extension_installer" && value is IntPreferenceValue) { + val enum = BasePreferences.ExtensionInstaller.migrate(value.value) + preferenceStore.getEnum(key, enum).set(enum) + return@forEach + } + + if (key == PreferenceKeys.pagerCutoutBehavior && value is IntPreferenceValue) { + val enum = ReaderPreferences.CutoutBehaviour.migrate(value.value) + preferenceStore.getEnum(key, enum).set(enum) + return@forEach + } + + if (key == "landscape_cutout_behavior" && value is IntPreferenceValue) { + val enum = ReaderPreferences.LandscapeCutoutBehaviour.migrate(value.value) + preferenceStore.getEnum(key, enum).set(enum) + return@forEach + } + // >> Yokai-J2K compat + when (value) { is IntPreferenceValue -> { if (prefs[key] is Int?) {