fix: Handle compatibility issue with J2K backup file

This commit is contained in:
Ahmad Ansori Palembani 2024-08-05 20:58:24 +07:00
parent 32f1d677f2
commit 8dc0938581
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
6 changed files with 59 additions and 22 deletions

View file

@ -8,4 +8,4 @@
## Other ?? Technical stuff, what happened behind the scene ## Other ?? Technical stuff, what happened behind the scene
--> -->
## Fixes ## Fixes
- Fixed "Open source repo" icon's colour - Fixed incompatibility with J2K backup file

View file

@ -47,7 +47,7 @@ android {
targetSdk = AndroidConfig.targetSdk targetSdk = AndroidConfig.targetSdk
applicationId = "eu.kanade.tachiyomi" applicationId = "eu.kanade.tachiyomi"
versionCode = 139 versionCode = 139
versionName = "1.8.4.3" versionName = "1.8.4.4"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled = true multiDexEnabled = true

View file

@ -15,6 +15,16 @@ class BasePreferences(private val preferenceStore: PreferenceStore) {
SHIZUKU(R.string.ext_installer_shizuku, false), SHIZUKU(R.string.ext_installer_shizuku, false),
PRIVATE(R.string.ext_installer_private, 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 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", "") fun displayProfile() = preferenceStore.getString("pref_display_profile_key", "")

View file

@ -5,6 +5,7 @@ import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.core.preference.PreferenceStore import eu.kanade.tachiyomi.core.preference.PreferenceStore
import eu.kanade.tachiyomi.core.preference.getEnum import eu.kanade.tachiyomi.core.preference.getEnum
import eu.kanade.tachiyomi.data.preference.PreferenceKeys import eu.kanade.tachiyomi.data.preference.PreferenceKeys
import eu.kanade.tachiyomi.ui.reader.viewer.pager.PagerConfig
class ReaderPreferences(private val preferenceStore: PreferenceStore) { class ReaderPreferences(private val preferenceStore: PreferenceStore) {
fun cutoutShort() = preferenceStore.getBoolean("cutout_short", true) 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 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 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 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) { enum class LandscapeCutoutBehaviour(@StringRes val titleResId: Int) {
HIDE(R.string.pad_cutout_areas), // Similar to CUTOUT_MODE_NEVER / J2K's pad 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 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
}
}
} }
} }

View file

@ -274,13 +274,7 @@ object Migrations {
val basePreferences: BasePreferences = Injekt.get() val basePreferences: BasePreferences = Injekt.get()
try { try {
val oldExtensionInstall = prefs.getInt("extension_installer", 0) val oldExtensionInstall = prefs.getInt("extension_installer", 0)
basePreferences.extensionInstaller().set( basePreferences.extensionInstaller().set(BasePreferences.ExtensionInstaller.migrate(oldExtensionInstall))
when (oldExtensionInstall) {
1 -> BasePreferences.ExtensionInstaller.SHIZUKU
2 -> BasePreferences.ExtensionInstaller.PRIVATE
else -> BasePreferences.ExtensionInstaller.PACKAGEINSTALLER
}
)
} catch (_: Exception) { } catch (_: Exception) {
basePreferences.extensionInstaller().set(BasePreferences.ExtensionInstaller.PACKAGEINSTALLER) basePreferences.extensionInstaller().set(BasePreferences.ExtensionInstaller.PACKAGEINSTALLER)
} }
@ -289,25 +283,14 @@ object Migrations {
val readerPreferences: ReaderPreferences = Injekt.get() val readerPreferences: ReaderPreferences = Injekt.get()
try { try {
val oldCutoutBehaviour = prefs.getInt(PreferenceKeys.pagerCutoutBehavior, 0) val oldCutoutBehaviour = prefs.getInt(PreferenceKeys.pagerCutoutBehavior, 0)
readerPreferences.pagerCutoutBehavior().set( readerPreferences.pagerCutoutBehavior().set(CutoutBehaviour.migrate(oldCutoutBehaviour))
when (oldCutoutBehaviour) {
PagerConfig.CUTOUT_PAD -> CutoutBehaviour.HIDE
PagerConfig.CUTOUT_IGNORE -> CutoutBehaviour.IGNORE
else -> CutoutBehaviour.SHOW
}
)
} catch (_: Exception) { } catch (_: Exception) {
readerPreferences.pagerCutoutBehavior().set(CutoutBehaviour.SHOW) readerPreferences.pagerCutoutBehavior().set(CutoutBehaviour.SHOW)
} }
try { try {
val oldCutoutBehaviour = prefs.getInt("landscape_cutout_behavior", 0) val oldCutoutBehaviour = prefs.getInt("landscape_cutout_behavior", 0)
readerPreferences.landscapeCutoutBehavior().set( readerPreferences.landscapeCutoutBehavior().set(LandscapeCutoutBehaviour.migrate(oldCutoutBehaviour))
when (oldCutoutBehaviour) {
0 -> LandscapeCutoutBehaviour.HIDE
else -> LandscapeCutoutBehaviour.DEFAULT
}
)
} catch (_: Exception) { } catch (_: Exception) {
readerPreferences.landscapeCutoutBehavior().set(LandscapeCutoutBehaviour.DEFAULT) readerPreferences.landscapeCutoutBehavior().set(LandscapeCutoutBehaviour.DEFAULT)
} }

View file

@ -1,8 +1,11 @@
package eu.kanade.tachiyomi.data.backup.restore.restorers package eu.kanade.tachiyomi.data.backup.restore.restorers
import android.content.Context 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.AndroidPreferenceStore
import eu.kanade.tachiyomi.core.preference.PreferenceStore 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.create.BackupCreatorJob
import eu.kanade.tachiyomi.data.backup.models.BackupPreference import eu.kanade.tachiyomi.data.backup.models.BackupPreference
import eu.kanade.tachiyomi.data.backup.models.BackupSourcePreferences 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.StringPreferenceValue
import eu.kanade.tachiyomi.data.backup.models.StringSetPreferenceValue import eu.kanade.tachiyomi.data.backup.models.StringSetPreferenceValue
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
import eu.kanade.tachiyomi.data.preference.PreferenceKeys
import eu.kanade.tachiyomi.extension.ExtensionUpdateJob import eu.kanade.tachiyomi.extension.ExtensionUpdateJob
import eu.kanade.tachiyomi.source.sourcePreferences import eu.kanade.tachiyomi.source.sourcePreferences
import eu.kanade.tachiyomi.ui.library.LibrarySort import eu.kanade.tachiyomi.ui.library.LibrarySort
@ -56,6 +60,26 @@ class PreferenceBackupRestorer(
} }
// end j2k fork differences // 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) { when (value) {
is IntPreferenceValue -> { is IntPreferenceValue -> {
if (prefs[key] is Int?) { if (prefs[key] is Int?) {