diff --git a/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt b/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt index cf83fd113..e4c1085d3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt @@ -19,6 +19,7 @@ import eu.kanade.tachiyomi.ui.library.setting.SortModeSetting import eu.kanade.tachiyomi.ui.reader.setting.OrientationType import eu.kanade.tachiyomi.util.preference.minusAssign import eu.kanade.tachiyomi.util.preference.plusAssign +import eu.kanade.tachiyomi.util.system.DeviceUtil import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.widget.ExtendedNavigationView import uy.kohesive.injekt.Injekt @@ -253,6 +254,9 @@ object Migrations { if (oldSecureScreen) { preferences.secureScreen().set(PreferenceValues.SecureScreenMode.ALWAYS) } + if (DeviceUtil.isMiui && preferences.extensionInstaller().get() == PreferenceValues.ExtensionInstaller.PACKAGEINSTALLER) { + preferences.extensionInstaller().set(PreferenceValues.ExtensionInstaller.LEGACY) + } } return true diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt index 916c9fe77..542f3bacc 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt @@ -59,23 +59,23 @@ object PreferenceValues { LOWEST(47), } - enum class TabletUiMode { - AUTOMATIC, - ALWAYS, - LANDSCAPE, - NEVER, + enum class TabletUiMode(val titleResId: Int) { + AUTOMATIC(R.string.automatic_background), + ALWAYS(R.string.lock_always), + LANDSCAPE(R.string.landscape), + NEVER(R.string.lock_never), } - enum class ExtensionInstaller { - LEGACY, - PACKAGEINSTALLER, - SHIZUKU, + enum class ExtensionInstaller(val titleResId: Int) { + LEGACY(R.string.ext_installer_legacy), + PACKAGEINSTALLER(R.string.ext_installer_packageinstaller), + SHIZUKU(R.string.ext_installer_shizuku), } - enum class SecureScreenMode { - ALWAYS, - INCOGNITO, - NEVER, + enum class SecureScreenMode(val titleResId: Int) { + ALWAYS(R.string.lock_always), + INCOGNITO(R.string.pref_incognito_mode), + NEVER(R.string.lock_never), } // SY --> diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt index 73d7a6963..da86c6dda 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt @@ -46,6 +46,7 @@ import eu.kanade.tachiyomi.util.preference.summaryRes import eu.kanade.tachiyomi.util.preference.switchPreference import eu.kanade.tachiyomi.util.preference.titleRes import eu.kanade.tachiyomi.util.storage.DiskUtil +import eu.kanade.tachiyomi.util.system.DeviceUtil import eu.kanade.tachiyomi.util.system.isPackageInstalled import eu.kanade.tachiyomi.util.system.powerManager import eu.kanade.tachiyomi.util.system.toast @@ -218,12 +219,17 @@ class SettingsAdvancedController : SettingsController() { bindTo(preferences.extensionInstaller()) titleRes = R.string.ext_installer_pref summary = "%s" - entriesRes = arrayOf( - R.string.ext_installer_legacy, - R.string.ext_installer_packageinstaller, - R.string.ext_installer_shizuku, - ) - entryValues = PreferenceValues.ExtensionInstaller.values().map { it.name }.toTypedArray() + + // PackageInstaller doesn't work on MIUI properly for non-allowlisted apps + val values = if (DeviceUtil.isMiui) { + PreferenceValues.ExtensionInstaller.values() + .filter { it != PreferenceValues.ExtensionInstaller.PACKAGEINSTALLER } + } else { + PreferenceValues.ExtensionInstaller.values().toList() + } + + entriesRes = values.map { it.titleResId }.toTypedArray() + entryValues = values.map { it.name }.toTypedArray() onChange { if (it == PreferenceValues.ExtensionInstaller.SHIZUKU.name && @@ -252,7 +258,7 @@ class SettingsAdvancedController : SettingsController() { bindTo(preferences.tabletUiMode()) titleRes = R.string.pref_tablet_ui_mode summary = "%s" - entriesRes = arrayOf(R.string.automatic_background, R.string.lock_always, R.string.landscape, R.string.lock_never) + entriesRes = PreferenceValues.TabletUiMode.values().map { it.titleResId }.toTypedArray() entryValues = PreferenceValues.TabletUiMode.values().map { it.name }.toTypedArray() onChange { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt index c565529e1..b7ee0168f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt @@ -84,7 +84,7 @@ class SettingsLibraryController : SettingsController() { } } - preferences.portraitColumns().asFlow().combine(preferences.landscapeColumns().asFlow()) { portraitCols, landscapeCols -> Pair(portraitCols, landscapeCols) } + combine(preferences.portraitColumns().asFlow(), preferences.landscapeColumns().asFlow()) { portraitCols, landscapeCols -> Pair(portraitCols, landscapeCols) } .onEach { (portraitCols, landscapeCols) -> val portrait = getColumnValue(portraitCols) val landscape = getColumnValue(landscapeCols) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsSecurityController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsSecurityController.kt index b1f63e59b..a9070511a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsSecurityController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsSecurityController.kt @@ -105,11 +105,7 @@ class SettingsSecurityController : SettingsController() { bindTo(preferences.secureScreen()) titleRes = R.string.secure_screen summary = "%s" - entriesRes = arrayOf( - R.string.lock_always, - R.string.pref_incognito_mode, - R.string.lock_never, - ) + entriesRes = PreferenceValues.SecureScreenMode.values().map { it.titleResId }.toTypedArray() entryValues = PreferenceValues.SecureScreenMode.values().map { it.name }.toTypedArray() } diff --git a/app/src/main/java/exh/EXHMigrations.kt b/app/src/main/java/exh/EXHMigrations.kt index c40488dbb..a8fae60b4 100644 --- a/app/src/main/java/exh/EXHMigrations.kt +++ b/app/src/main/java/exh/EXHMigrations.kt @@ -34,6 +34,7 @@ import eu.kanade.tachiyomi.ui.library.setting.SortDirectionSetting import eu.kanade.tachiyomi.ui.library.setting.SortModeSetting import eu.kanade.tachiyomi.ui.reader.setting.OrientationType import eu.kanade.tachiyomi.util.preference.minusAssign +import eu.kanade.tachiyomi.util.system.DeviceUtil import exh.eh.EHentaiUpdateWorker import exh.log.xLogE import exh.log.xLogW @@ -376,6 +377,9 @@ object EXHMigrations { if (oldSecureScreen) { preferences.secureScreen().set(PreferenceValues.SecureScreenMode.ALWAYS) } + if (DeviceUtil.isMiui && preferences.extensionInstaller().get() == PreferenceValues.ExtensionInstaller.PACKAGEINSTALLER) { + preferences.extensionInstaller().set(PreferenceValues.ExtensionInstaller.LEGACY) + } } // if (oldVersion under 1) { } (1 is current release version)