diff --git a/CHANGELOG.md b/CHANGELOG.md index 18108f6209..708c9ee9db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -52,7 +52,7 @@ - Some code refactors - Simplify some messy code - Rewrite version checker - - Rewrite Migrator + - Rewrite Migrator (ghostbear) - Split the project into several modules - Migrated i18n to use Moko Resources - Removed unnecessary dependencies diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5cb5b6076c..36aa319cc7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -54,7 +54,7 @@ val supportedAbis = setOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64") android { defaultConfig { applicationId = "eu.kanade.tachiyomi" - versionCode = 140 + versionCode = 141 versionName = _versionName testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled = true diff --git a/app/src/main/java/eu/kanade/tachiyomi/App.kt b/app/src/main/java/eu/kanade/tachiyomi/App.kt index 7d77173989..603b05ef4c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/App.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/App.kt @@ -172,12 +172,7 @@ open class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.F Preference.appStateKey("last_version_code"), 0, ) - // TODO: Remove later - val old = preferenceStore.getInt("last_version_code", -1) - if (old.get() >= preference.get()) { - preference.set(old.get()) - old.delete() - } + if (preference.get() < 141) preference.set(0) Logger.i { "Migration from ${preference.get()} to ${BuildConfig.VERSION_CODE}" } Migrator.initialize( diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/ThemeUtil.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/ThemeUtil.kt index 83ce972fe8..09ea623dda 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/ThemeUtil.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/ThemeUtil.kt @@ -68,9 +68,11 @@ object ThemeUtil { fun AppCompatActivity.setThemeByPref(preferences: PreferencesHelper) { setTheme(getPrefTheme(preferences).styleRes) - val wic = WindowInsetsControllerCompat(window, window.decorView) - wic.isAppearanceLightStatusBars = !isDarkMode(preferences) - wic.isAppearanceLightNavigationBars = !isDarkMode(preferences) + if (preferences.nightMode().get() != AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM) { + val wic = WindowInsetsControllerCompat(window, window.decorView) + wic.isAppearanceLightStatusBars = !isDarkMode(preferences) + wic.isAppearanceLightNavigationBars = !isDarkMode(preferences) + } } fun AppCompatActivity.getThemeWithExtras(theme: Resources.Theme, preferences: PreferencesHelper, oldTheme: Resources.Theme?): Resources.Theme { diff --git a/app/src/main/java/yokai/core/migration/migrations/ChapterCacheMigration.kt b/app/src/main/java/yokai/core/migration/migrations/ChapterCacheMigration.kt deleted file mode 100644 index 2cc10959a1..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/ChapterCacheMigration.kt +++ /dev/null @@ -1,25 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext -import java.io.File - -/** - * Delete external chapter cache dir. - */ -class ChapterCacheMigration : Migration { - override val version: Float = 26f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - val extCache = context.externalCacheDir - if (extCache != null) { - val chapterCache = File(extCache, "chapter_disk_cache") - if (chapterCache.exists()) { - chapterCache.deleteRecursively() - } - } - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/CoverCacheMigration.kt b/app/src/main/java/yokai/core/migration/migrations/CoverCacheMigration.kt deleted file mode 100644 index c188dcc92a..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/CoverCacheMigration.kt +++ /dev/null @@ -1,27 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext -import java.io.File - -/** - * Move covers to external files dir. - */ -class CoverCacheMigration : Migration { - override val version: Float = 19f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - val oldDir = File(context.externalCacheDir, "cover_disk_cache") - if (oldDir.exists()) { - val destDir = context.getExternalFilesDir("covers") - if (destDir != null) { - oldDir.listFiles()?.forEach { - it.renameTo(File(destDir, it.name)) - } - } - } - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/CustomInfoMigration.kt b/app/src/main/java/yokai/core/migration/migrations/CustomInfoMigration.kt deleted file mode 100644 index f96ba69af2..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/CustomInfoMigration.kt +++ /dev/null @@ -1,19 +0,0 @@ -package yokai.core.migration.migrations - -import eu.kanade.tachiyomi.ui.library.LibraryPresenter -import eu.kanade.tachiyomi.util.system.withIOContext -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext - -class CustomInfoMigration : Migration { - override val version: Float = 66f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - try { - withIOContext { LibraryPresenter.updateCustoms() } - } catch (e: Exception) { - return false - } - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/CutoutMigration.kt b/app/src/main/java/yokai/core/migration/migrations/CutoutMigration.kt index 60c37b6142..ed6179a3d5 100644 --- a/app/src/main/java/yokai/core/migration/migrations/CutoutMigration.kt +++ b/app/src/main/java/yokai/core/migration/migrations/CutoutMigration.kt @@ -21,14 +21,12 @@ class CutoutMigration : Migration { val oldCutoutBehaviour = prefs.getInt(PreferenceKeys.pagerCutoutBehavior, 0) 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(LandscapeCutoutBehaviour.migrate(oldCutoutBehaviour)) } catch (_: Exception) { - readerPreferences.landscapeCutoutBehavior().set(LandscapeCutoutBehaviour.DEFAULT) } return true } diff --git a/app/src/main/java/yokai/core/migration/migrations/DoHMigration.kt b/app/src/main/java/yokai/core/migration/migrations/DoHMigration.kt deleted file mode 100644 index c12e6e6a2e..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/DoHMigration.kt +++ /dev/null @@ -1,27 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import androidx.core.content.edit -import androidx.preference.PreferenceManager -import eu.kanade.tachiyomi.data.preference.PreferenceKeys -import eu.kanade.tachiyomi.network.PREF_DOH_CLOUDFLARE -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext - -class DoHMigration : Migration { - override val version: Float = 71f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - val prefs = PreferenceManager.getDefaultSharedPreferences(context) - // Migrate DNS over HTTPS setting - val wasDohEnabled = prefs.getBoolean("enable_doh", false) - if (wasDohEnabled) { - prefs.edit { - putInt(PreferenceKeys.dohProvider, PREF_DOH_CLOUDFLARE) - remove("enable_doh") - } - } - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/DownloadedChaptersMigration.kt b/app/src/main/java/yokai/core/migration/migrations/DownloadedChaptersMigration.kt deleted file mode 100644 index ec9f716b07..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/DownloadedChaptersMigration.kt +++ /dev/null @@ -1,16 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import eu.kanade.tachiyomi.data.download.DownloadProvider -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext - -class DownloadedChaptersMigration : Migration { - override val version: Float = 54f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - DownloadProvider(context).renameChapters() - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/EnabledLanguageMigration.kt b/app/src/main/java/yokai/core/migration/migrations/EnabledLanguageMigration.kt deleted file mode 100644 index cdd88acd2b..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/EnabledLanguageMigration.kt +++ /dev/null @@ -1,19 +0,0 @@ -package yokai.core.migration.migrations - -import eu.kanade.tachiyomi.data.preference.PreferencesHelper -import eu.kanade.tachiyomi.data.preference.plusAssign -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext - -class EnabledLanguageMigration : Migration { - override val version: Float = 83f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val preferences: PreferencesHelper = migrationContext.get() ?: return false - - if (preferences.enabledLanguages().isSet()) { - preferences.enabledLanguages() += "all" - } - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/EvernoteJobUpgradeMigration.kt b/app/src/main/java/yokai/core/migration/migrations/EvernoteJobUpgradeMigration.kt deleted file mode 100644 index 727886edfb..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/EvernoteJobUpgradeMigration.kt +++ /dev/null @@ -1,24 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import eu.kanade.tachiyomi.BuildConfig -import eu.kanade.tachiyomi.data.library.LibraryUpdateJob -import eu.kanade.tachiyomi.data.updater.AppUpdateJob -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext - -/** - * Restore jobs after upgrading to evernote's job scheduler. - */ -class EvernoteJobUpgradeMigration : Migration { - override val version: Float = 14f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - if (BuildConfig.INCLUDE_UPDATER) { - AppUpdateJob.setupTask(context) - } - LibraryUpdateJob.setupTask(context) - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/ExtensionInstallerEnumMigration.kt b/app/src/main/java/yokai/core/migration/migrations/ExtensionInstallerEnumMigration.kt index 481f2aa4f1..1ac2730c18 100644 --- a/app/src/main/java/yokai/core/migration/migrations/ExtensionInstallerEnumMigration.kt +++ b/app/src/main/java/yokai/core/migration/migrations/ExtensionInstallerEnumMigration.kt @@ -21,7 +21,6 @@ class ExtensionInstallerEnumMigration : Migration { val oldExtensionInstall = prefs.getInt("extension_installer", 0) basePreferences.extensionInstaller().set(BasePreferences.ExtensionInstaller.migrate(oldExtensionInstall)) } catch (_: Exception) { - basePreferences.extensionInstaller().set(BasePreferences.ExtensionInstaller.PACKAGEINSTALLER) } return true } diff --git a/app/src/main/java/yokai/core/migration/migrations/InternalChapterCacheUpdateMigration.kt b/app/src/main/java/yokai/core/migration/migrations/InternalChapterCacheUpdateMigration.kt deleted file mode 100644 index 8d7377915b..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/InternalChapterCacheUpdateMigration.kt +++ /dev/null @@ -1,19 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext -import java.io.File - -/** - * Delete internal chapter cache dir. - */ -class InternalChapterCacheUpdateMigration : Migration { - override val version: Float = 15f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - File(context.cacheDir, "chapter_disk_cache").deleteRecursively() - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/LibrarySortMigration.kt b/app/src/main/java/yokai/core/migration/migrations/LibrarySortMigration.kt deleted file mode 100644 index e3f6dd9daf..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/LibrarySortMigration.kt +++ /dev/null @@ -1,32 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import androidx.core.content.edit -import androidx.preference.PreferenceManager -import eu.kanade.tachiyomi.ui.library.LibrarySort -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext - -class LibrarySortMigration : Migration { - override val version: Float = 110f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - val prefs = PreferenceManager.getDefaultSharedPreferences(context) - - try { - val librarySortString = prefs.getString("library_sorting_mode", "") - if (!librarySortString.isNullOrEmpty()) { - prefs.edit { - remove("library_sorting_mode") - putInt( - "library_sorting_mode", - LibrarySort.deserialize(librarySortString).mainValue, - ) - } - } - } catch (_: Exception) { - } - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/LibraryUpdateResetMigration.kt b/app/src/main/java/yokai/core/migration/migrations/LibraryUpdateResetMigration.kt deleted file mode 100644 index a253c3d6f6..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/LibraryUpdateResetMigration.kt +++ /dev/null @@ -1,17 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import eu.kanade.tachiyomi.data.library.LibraryUpdateJob -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext - -class LibraryUpdateResetMigration : Migration { - override val version: Float = 105f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - LibraryUpdateJob.cancelAllWorks(context) - LibraryUpdateJob.setupTask(context) - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/Migrations.kt b/app/src/main/java/yokai/core/migration/migrations/Migrations.kt index 935473a28b..b88ccf5039 100644 --- a/app/src/main/java/yokai/core/migration/migrations/Migrations.kt +++ b/app/src/main/java/yokai/core/migration/migrations/Migrations.kt @@ -5,35 +5,15 @@ import kotlinx.collections.immutable.persistentListOf import yokai.core.migration.Migration val migrations: ImmutableList = persistentListOf( + // Always run SetupAppUpdateMigration(), SetupBackupCreateMigration(), SetupExtensionUpdateMigration(), SetupLibraryUpdateMigration(), - // For archive purposes - EvernoteJobUpgradeMigration(), - InternalChapterCacheUpdateMigration(), - CoverCacheMigration(), - ChapterCacheMigration(), - DownloadedChaptersMigration(), - WorkManagerMigration(), - CustomInfoMigration(), - MyAnimeListMigration(), - DoHMigration(), - RotationTypeMigration(), - ShortcutsMigration(), - RotationTypeEnumMigration(), - EnabledLanguageMigration(), - UpdateIntervalMigration(), - ReaderUpdateMigration(), - PrefsMigration(), - LibraryUpdateResetMigration(), - TrackerPrivateSettingsMigration(), - LibrarySortMigration(), - // Yokai fork - ThePurgeMigration(), - ExtensionInstallerEnumMigration(), CutoutMigration(), + ExtensionInstallerEnumMigration(), RepoJsonMigration(), + ThePurgeMigration(), ) diff --git a/app/src/main/java/yokai/core/migration/migrations/MyAnimeListMigration.kt b/app/src/main/java/yokai/core/migration/migrations/MyAnimeListMigration.kt deleted file mode 100644 index 7ea32a1378..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/MyAnimeListMigration.kt +++ /dev/null @@ -1,28 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import eu.kanade.tachiyomi.data.track.TrackManager -import eu.kanade.tachiyomi.util.system.toast -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext -import yokai.i18n.MR - -/** - * Force MAL log out due to login flow change - * v67: switched from scraping to WebView - * v68: switched from WebView to OAuth - */ -class MyAnimeListMigration : Migration { - override val version: Float = 68f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val trackManager = migrationContext.get() ?: return false - val context = migrationContext.get() ?: return false - - if (trackManager.myAnimeList.isLogged) { - trackManager.myAnimeList.logout() - context.toast(MR.strings.myanimelist_relogin) - } - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/PrefsMigration.kt b/app/src/main/java/yokai/core/migration/migrations/PrefsMigration.kt deleted file mode 100644 index 7dfc6d1b1f..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/PrefsMigration.kt +++ /dev/null @@ -1,37 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import androidx.preference.PreferenceManager -import eu.kanade.tachiyomi.data.preference.PreferenceValues -import eu.kanade.tachiyomi.data.preference.PreferencesHelper -import eu.kanade.tachiyomi.ui.recents.RecentsPresenter -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext -import kotlin.math.max - -class PrefsMigration : Migration { - override val version: Float = 102f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - val preferences = migrationContext.get() ?: return false - val prefs = PreferenceManager.getDefaultSharedPreferences(context) - - val oldSecureScreen = prefs.getBoolean("secure_screen", false) - if (oldSecureScreen) { - preferences.secureScreen().set(PreferenceValues.SecureScreenMode.ALWAYS) - } - - val oldDLAfterReading = prefs.getInt("auto_download_after_reading", 0) - if (oldDLAfterReading > 0) { - preferences.autoDownloadWhileReading().set(max(2, oldDLAfterReading)) - } - - val oldGroupHistory = prefs.getBoolean("group_chapters_history", true) - if (!oldGroupHistory) { - preferences.groupChaptersHistory().set(RecentsPresenter.GroupType.Never) - } - - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/ReaderUpdateMigration.kt b/app/src/main/java/yokai/core/migration/migrations/ReaderUpdateMigration.kt deleted file mode 100644 index aad271a53e..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/ReaderUpdateMigration.kt +++ /dev/null @@ -1,29 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import androidx.preference.PreferenceManager -import eu.kanade.tachiyomi.data.preference.PreferencesHelper -import eu.kanade.tachiyomi.ui.library.LibraryPresenter -import eu.kanade.tachiyomi.util.system.withIOContext -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext - -class ReaderUpdateMigration : Migration { - override val version: Float = 88f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - val preferences = migrationContext.get() ?: return false - val prefs = PreferenceManager.getDefaultSharedPreferences(context) - - withIOContext { - LibraryPresenter.updateRatiosAndColors() - } - val oldReaderTap = prefs.getBoolean("reader_tap", true) - if (!oldReaderTap) { - preferences.navigationModePager().set(5) - preferences.navigationModeWebtoon().set(5) - } - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/RotationTypeEnumMigration.kt b/app/src/main/java/yokai/core/migration/migrations/RotationTypeEnumMigration.kt deleted file mode 100644 index fd2460f92b..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/RotationTypeEnumMigration.kt +++ /dev/null @@ -1,38 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import androidx.core.content.edit -import androidx.preference.PreferenceManager -import eu.kanade.tachiyomi.ui.reader.settings.OrientationType -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext - -class RotationTypeEnumMigration : Migration { - override val version: Float = 77f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - val prefs = PreferenceManager.getDefaultSharedPreferences(context) - - // Migrate Rotation and Viewer values to default values for viewer_flags - val newOrientation = when (prefs.getInt("pref_rotation_type_key", 1)) { - 1 -> OrientationType.FREE.flagValue - 2 -> OrientationType.PORTRAIT.flagValue - 3 -> OrientationType.LANDSCAPE.flagValue - 4 -> OrientationType.LOCKED_PORTRAIT.flagValue - 5 -> OrientationType.LOCKED_LANDSCAPE.flagValue - else -> OrientationType.FREE.flagValue - } - - // Reading mode flag and prefValue is the same value - val newReadingMode = prefs.getInt("pref_default_viewer_key", 1) - - prefs.edit { - putInt("pref_default_orientation_type_key", newOrientation) - remove("pref_rotation_type_key") - putInt("pref_default_reading_mode_key", newReadingMode) - remove("pref_default_viewer_key") - } - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/RotationTypeMigration.kt b/app/src/main/java/yokai/core/migration/migrations/RotationTypeMigration.kt deleted file mode 100644 index 5f6037d13b..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/RotationTypeMigration.kt +++ /dev/null @@ -1,22 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import androidx.core.content.edit -import androidx.preference.PreferenceManager -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext - -class RotationTypeMigration : Migration { - override val version: Float = 73f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - val prefs = PreferenceManager.getDefaultSharedPreferences(context) - if (prefs.contains("pref_rotation_type_key")) { - prefs.edit { - putInt("pref_rotation_type_key", 1) - } - } - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/ShortcutsMigration.kt b/app/src/main/java/yokai/core/migration/migrations/ShortcutsMigration.kt deleted file mode 100644 index 3079b423ea..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/ShortcutsMigration.kt +++ /dev/null @@ -1,36 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import androidx.core.content.edit -import androidx.preference.PreferenceManager -import eu.kanade.tachiyomi.data.library.LibraryUpdateJob -import eu.kanade.tachiyomi.data.preference.PreferenceKeys -import eu.kanade.tachiyomi.data.preference.PreferencesHelper -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext - -class ShortcutsMigration : Migration { - override val version: Float = 75f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - val preferences = migrationContext.get() ?: return false - val prefs = PreferenceManager.getDefaultSharedPreferences(context) - - val wasShortcutsDisabled = !prefs.getBoolean("show_manga_app_shortcuts", true) - if (wasShortcutsDisabled) { - prefs.edit { - putBoolean(PreferenceKeys.showSourcesInShortcuts, false) - putBoolean(PreferenceKeys.showSeriesInShortcuts, false) - remove("show_manga_app_shortcuts") - } - } - // Handle removed every 1 or 2 hour library updates - val updateInterval = preferences.libraryUpdateInterval().get() - if (updateInterval == 1 || updateInterval == 2) { - preferences.libraryUpdateInterval().set(3) - LibraryUpdateJob.setupTask(context, 3) - } - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/TrackerPrivateSettingsMigration.kt b/app/src/main/java/yokai/core/migration/migrations/TrackerPrivateSettingsMigration.kt deleted file mode 100644 index a3200a4d60..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/TrackerPrivateSettingsMigration.kt +++ /dev/null @@ -1,26 +0,0 @@ -package yokai.core.migration.migrations - -import eu.kanade.tachiyomi.core.preference.Preference -import eu.kanade.tachiyomi.core.preference.PreferenceStore -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext - -class TrackerPrivateSettingsMigration : Migration { - override val version: Float = 108f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val preferenceStore: PreferenceStore = migrationContext.get() ?: return false - preferenceStore.getAll() - .filter { it.key.startsWith("pref_mangasync_") || it.key.startsWith("track_token_") } - .forEach { (key, value) -> - if (value is String) { - preferenceStore - .getString(Preference.privateKey(key)) - .set(value) - - preferenceStore.getString(key).delete() - } - } - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/UpdateIntervalMigration.kt b/app/src/main/java/yokai/core/migration/migrations/UpdateIntervalMigration.kt deleted file mode 100644 index ee9e98d51a..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/UpdateIntervalMigration.kt +++ /dev/null @@ -1,24 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import eu.kanade.tachiyomi.data.library.LibraryUpdateJob -import eu.kanade.tachiyomi.data.preference.PreferencesHelper -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext - -class UpdateIntervalMigration : Migration { - override val version: Float = 86f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - val preferences = migrationContext.get() ?: return false - - // Handle removed every 3, 4, 6, and 8 hour library updates - val updateInterval = preferences.libraryUpdateInterval().get() - if (updateInterval in listOf(3, 4, 6, 8)) { - preferences.libraryUpdateInterval().set(12) - LibraryUpdateJob.setupTask(context, 12) - } - return true - } -} diff --git a/app/src/main/java/yokai/core/migration/migrations/WorkManagerMigration.kt b/app/src/main/java/yokai/core/migration/migrations/WorkManagerMigration.kt deleted file mode 100644 index f75d279389..0000000000 --- a/app/src/main/java/yokai/core/migration/migrations/WorkManagerMigration.kt +++ /dev/null @@ -1,33 +0,0 @@ -package yokai.core.migration.migrations - -import android.app.Application -import eu.kanade.tachiyomi.BuildConfig -import eu.kanade.tachiyomi.data.backup.create.BackupCreatorJob -import eu.kanade.tachiyomi.data.library.LibraryUpdateJob -import eu.kanade.tachiyomi.data.updater.AppUpdateJob -import eu.kanade.tachiyomi.extension.ExtensionUpdateJob -import eu.kanade.tachiyomi.ui.library.LibraryPresenter -import eu.kanade.tachiyomi.util.system.withIOContext -import yokai.core.migration.Migration -import yokai.core.migration.MigrationContext - -/** - * Restore jobs after migrating from Evernote's job scheduler to WorkManager. - */ -class WorkManagerMigration : Migration { - override val version: Float = 62f - - override suspend fun invoke(migrationContext: MigrationContext): Boolean { - val context = migrationContext.get() ?: return false - withIOContext { - LibraryPresenter.updateDB() - } - if (BuildConfig.INCLUDE_UPDATER) { - AppUpdateJob.setupTask(context) - } - LibraryUpdateJob.setupTask(context) - BackupCreatorJob.setupTask(context) - ExtensionUpdateJob.setupTask(context) - return true - } -}