mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
refactor: Turn ExtensionInstaller types from Int to Enum
This commit is contained in:
parent
4f1cdb2518
commit
81499289d3
12 changed files with 50 additions and 27 deletions
|
@ -35,7 +35,7 @@ android {
|
|||
minSdk = AndroidConfig.minSdk
|
||||
targetSdk = AndroidConfig.targetSdk
|
||||
applicationId = "eu.kanade.tachiyomi"
|
||||
versionCode = 118
|
||||
versionCode = 119
|
||||
versionName = "1.7.11"
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
multiDexEnabled = true
|
||||
|
|
|
@ -1,8 +1,18 @@
|
|||
package dev.yokai.domain.base
|
||||
|
||||
import androidx.annotation.StringRes
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.core.preference.PreferenceStore
|
||||
import eu.kanade.tachiyomi.core.preference.getEnum
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionInstaller
|
||||
|
||||
class BasePreferences(private val preferenceStore: PreferenceStore) {
|
||||
fun extensionInstaller() = preferenceStore.getInt("extension_installer", ExtensionInstaller.PACKAGE_INSTALLER)
|
||||
fun extensionInstaller() = preferenceStore.getEnum("extension_installer", ExtensionInstaller.PACKAGEINSTALLER)
|
||||
|
||||
enum class ExtensionInstaller(@StringRes val titleResId: Int, val requiresSystemPermission: Boolean) {
|
||||
// LEGACY(R.string.ext_installer_legacy, true),
|
||||
PACKAGEINSTALLER(R.string.ext_installer_packageinstaller, true),
|
||||
SHIZUKU(R.string.ext_installer_shizuku, false),
|
||||
PRIVATE(R.string.ext_installer_private, false),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package eu.kanade.tachiyomi
|
|||
|
||||
import androidx.core.content.edit
|
||||
import androidx.preference.PreferenceManager
|
||||
import dev.yokai.domain.base.BasePreferences
|
||||
import eu.kanade.tachiyomi.data.backup.BackupCreatorJob
|
||||
import eu.kanade.tachiyomi.data.download.DownloadProvider
|
||||
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
|
||||
|
@ -15,6 +16,7 @@ import eu.kanade.tachiyomi.data.track.TrackManager
|
|||
import eu.kanade.tachiyomi.data.updater.AppDownloadInstallJob
|
||||
import eu.kanade.tachiyomi.data.updater.AppUpdateJob
|
||||
import eu.kanade.tachiyomi.extension.ExtensionUpdateJob
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionInstaller
|
||||
import eu.kanade.tachiyomi.network.PREF_DOH_CLOUDFLARE
|
||||
import eu.kanade.tachiyomi.ui.library.LibraryPresenter
|
||||
import eu.kanade.tachiyomi.ui.library.LibrarySort
|
||||
|
@ -260,6 +262,21 @@ object Migrations {
|
|||
remove("trusted_signatures")
|
||||
}
|
||||
}
|
||||
if (oldVersion < 119) {
|
||||
val basePreferences: BasePreferences = Injekt.get()
|
||||
try {
|
||||
val oldExtensionInstall = prefs.getInt("extension_installer", 0)
|
||||
basePreferences.extensionInstaller().set(
|
||||
when (oldExtensionInstall) {
|
||||
ExtensionInstaller.SHIZUKU -> BasePreferences.ExtensionInstaller.SHIZUKU
|
||||
ExtensionInstaller.PRIVATE -> BasePreferences.ExtensionInstaller.PRIVATE
|
||||
else -> BasePreferences.ExtensionInstaller.PACKAGEINSTALLER
|
||||
}
|
||||
)
|
||||
} catch (_: Exception) {
|
||||
basePreferences.extensionInstaller().set(BasePreferences.ExtensionInstaller.PACKAGEINSTALLER)
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ import android.os.Parcelable
|
|||
import dev.yokai.domain.base.BasePreferences
|
||||
import dev.yokai.domain.extension.TrustExtension
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.data.preference.plusAssign
|
||||
import eu.kanade.tachiyomi.extension.api.ExtensionApi
|
||||
import eu.kanade.tachiyomi.extension.model.Extension
|
||||
import eu.kanade.tachiyomi.extension.model.InstallStep
|
||||
|
@ -463,10 +462,10 @@ class ExtensionManager(
|
|||
val prefs = Injekt.get<BasePreferences>().extensionInstaller().get()
|
||||
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ||
|
||||
(
|
||||
prefs == ExtensionInstaller.SHIZUKU &&
|
||||
prefs == BasePreferences.ExtensionInstaller.SHIZUKU &&
|
||||
(!checkIfShizukuIsRunning || ShizukuInstaller.isShizukuRunning())
|
||||
) ||
|
||||
prefs == ExtensionInstaller.PRIVATE
|
||||
prefs == BasePreferences.ExtensionInstaller.PRIVATE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ import androidx.work.PeriodicWorkRequestBuilder
|
|||
import androidx.work.WorkManager
|
||||
import androidx.work.WorkerParameters
|
||||
import dev.yokai.domain.base.BasePreferences
|
||||
import dev.yokai.domain.base.BasePreferences.ExtensionInstaller
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
|
||||
import eu.kanade.tachiyomi.data.notification.NotificationReceiver
|
||||
|
@ -27,7 +28,6 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
|||
import eu.kanade.tachiyomi.data.updater.AppDownloadInstallJob
|
||||
import eu.kanade.tachiyomi.extension.api.ExtensionApi
|
||||
import eu.kanade.tachiyomi.extension.model.Extension
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionInstaller
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionLoader
|
||||
import eu.kanade.tachiyomi.util.system.connectivityManager
|
||||
import eu.kanade.tachiyomi.util.system.localeContext
|
||||
|
|
|
@ -12,7 +12,6 @@ import android.os.Environment
|
|||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.net.toUri
|
||||
import dev.yokai.domain.base.BasePreferences
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.extension.ExtensionInstallerJob
|
||||
import eu.kanade.tachiyomi.extension.ExtensionManager
|
||||
import eu.kanade.tachiyomi.extension.ShizukuInstaller
|
||||
|
@ -267,12 +266,12 @@ internal class ExtensionInstaller(private val context: Context) {
|
|||
Build.VERSION.SDK_INT < Build.VERSION_CODES.S
|
||||
val basePreferences: BasePreferences by injectLazy()
|
||||
when (basePreferences.extensionInstaller().get()) {
|
||||
SHIZUKU -> {
|
||||
BasePreferences.ExtensionInstaller.SHIZUKU -> {
|
||||
pkgName ?: return
|
||||
setInstalling(pkgName, uri.hashCode())
|
||||
shizukuInstaller?.addToQueue(downloadId, pkgName, uri)
|
||||
}
|
||||
PRIVATE -> installPrivately(downloadId, pkgName, uri)
|
||||
BasePreferences.ExtensionInstaller.PRIVATE -> installPrivately(downloadId, pkgName, uri)
|
||||
else -> {
|
||||
val extensionManager = Injekt.get<ExtensionManager>()
|
||||
if (extensionManager.installedExtensionsFlow.value.find { it.pkgName == pkgName }?.isShared == false) {
|
||||
|
@ -478,8 +477,9 @@ internal class ExtensionInstaller(private val context: Context) {
|
|||
const val EXTRA_DOWNLOAD_ID = "ExtensionInstaller.extra.DOWNLOAD_ID"
|
||||
const val FILE_SCHEME = "file://"
|
||||
|
||||
const val PACKAGE_INSTALLER = 0
|
||||
@Deprecated("Use BasePreferences.ExtensionInstaller instead")
|
||||
const val SHIZUKU = 1
|
||||
@Deprecated("Use BasePreferences.ExtensionInstaller instead")
|
||||
const val PRIVATE = 2
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,10 +2,10 @@ package eu.kanade.tachiyomi.ui.extension
|
|||
|
||||
import android.widget.TextView
|
||||
import dev.yokai.domain.base.BasePreferences
|
||||
import dev.yokai.domain.base.BasePreferences.ExtensionInstaller
|
||||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||
import eu.davidea.flexibleadapter.items.IFlexible
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionInstaller
|
||||
import eu.kanade.tachiyomi.ui.extension.ExtensionAdapter.OnButtonClickListener
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ import androidx.recyclerview.widget.RecyclerView
|
|||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import dev.yokai.domain.base.BasePreferences
|
||||
import dev.yokai.domain.base.BasePreferences.ExtensionInstaller
|
||||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||
import eu.davidea.flexibleadapter.items.IFlexible
|
||||
import eu.kanade.tachiyomi.R
|
||||
|
@ -22,7 +23,6 @@ import eu.kanade.tachiyomi.databinding.RecyclerWithScrollerBinding
|
|||
import eu.kanade.tachiyomi.extension.model.Extension
|
||||
import eu.kanade.tachiyomi.extension.model.InstallStep
|
||||
import eu.kanade.tachiyomi.extension.model.InstalledExtensionsOrder
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionInstaller
|
||||
import eu.kanade.tachiyomi.ui.extension.details.ExtensionDetailsController
|
||||
import eu.kanade.tachiyomi.ui.main.MainActivity
|
||||
import eu.kanade.tachiyomi.ui.migration.BaseMigrationInterface
|
||||
|
|
|
@ -16,6 +16,8 @@ import androidx.lifecycle.lifecycleScope
|
|||
import androidx.preference.PreferenceScreen
|
||||
import com.google.firebase.crashlytics.ktx.crashlytics
|
||||
import com.google.firebase.ktx.Firebase
|
||||
import dev.yokai.domain.base.BasePreferences
|
||||
import dev.yokai.domain.base.BasePreferences.ExtensionInstaller
|
||||
import dev.yokai.domain.extension.TrustExtension
|
||||
import eu.kanade.tachiyomi.BuildConfig
|
||||
import eu.kanade.tachiyomi.R
|
||||
|
@ -29,7 +31,6 @@ import eu.kanade.tachiyomi.data.library.LibraryUpdateJob.Target
|
|||
import eu.kanade.tachiyomi.data.preference.PreferenceKeys
|
||||
import eu.kanade.tachiyomi.data.preference.changesIn
|
||||
import eu.kanade.tachiyomi.extension.ShizukuInstaller
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionInstaller
|
||||
import eu.kanade.tachiyomi.network.NetworkHelper
|
||||
import eu.kanade.tachiyomi.network.PREF_DOH_360
|
||||
import eu.kanade.tachiyomi.network.PREF_DOH_ADGUARD
|
||||
|
@ -332,19 +333,13 @@ class SettingsAdvancedController : SettingsController() {
|
|||
preferenceCategory {
|
||||
titleRes = R.string.extensions
|
||||
|
||||
intListPreference(activity) {
|
||||
listPreference(activity) {
|
||||
bindTo(basePreferences.extensionInstaller())
|
||||
titleRes = R.string.ext_installer_pref
|
||||
entriesRes = arrayOf(
|
||||
R.string.default_value,
|
||||
R.string.ext_installer_shizuku,
|
||||
R.string.ext_installer_private,
|
||||
)
|
||||
entryValues = listOf(
|
||||
ExtensionInstaller.PACKAGE_INSTALLER,
|
||||
ExtensionInstaller.SHIZUKU,
|
||||
ExtensionInstaller.PRIVATE,
|
||||
)
|
||||
|
||||
val values = ExtensionInstaller.entries.toList()
|
||||
entriesRes = values.map { it.titleResId }.toTypedArray()
|
||||
entryValues = values.map { it.name }.toTypedArray().toList()
|
||||
|
||||
onChange {
|
||||
it as Int
|
||||
|
@ -369,7 +364,7 @@ class SettingsAdvancedController : SettingsController() {
|
|||
infoPreference(R.string.ext_installer_summary).apply {
|
||||
basePreferences.extensionInstaller().changesIn(viewScope) {
|
||||
isVisible =
|
||||
it != ExtensionInstaller.PACKAGE_INSTALLER && Build.VERSION.SDK_INT < Build.VERSION_CODES.S
|
||||
it != ExtensionInstaller.PACKAGEINSTALLER && Build.VERSION.SDK_INT < Build.VERSION_CODES.S
|
||||
}
|
||||
}
|
||||
preference {
|
||||
|
|
|
@ -6,6 +6,8 @@ import android.os.Build
|
|||
import android.provider.Settings
|
||||
import androidx.preference.PreferenceScreen
|
||||
import androidx.preference.SwitchPreferenceCompat
|
||||
import dev.yokai.domain.base.BasePreferences
|
||||
import dev.yokai.domain.base.BasePreferences.ExtensionInstaller
|
||||
import dev.yokai.presentation.extension.repo.ExtensionRepoController
|
||||
import eu.kanade.tachiyomi.BuildConfig
|
||||
import eu.kanade.tachiyomi.R
|
||||
|
@ -15,7 +17,6 @@ import eu.kanade.tachiyomi.data.preference.changesIn
|
|||
import eu.kanade.tachiyomi.data.updater.AppDownloadInstallJob
|
||||
import eu.kanade.tachiyomi.extension.ExtensionManager
|
||||
import eu.kanade.tachiyomi.extension.ExtensionUpdateJob
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionInstaller
|
||||
import eu.kanade.tachiyomi.source.SourceManager
|
||||
import eu.kanade.tachiyomi.ui.main.MainActivity
|
||||
import eu.kanade.tachiyomi.ui.migration.MigrationController
|
||||
|
|
|
@ -24,6 +24,7 @@ import com.bluelinelabs.conductor.ControllerChangeType
|
|||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import dev.yokai.domain.base.BasePreferences
|
||||
import dev.yokai.domain.base.BasePreferences.ExtensionInstaller
|
||||
import dev.yokai.presentation.extension.repo.ExtensionRepoController
|
||||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||
import eu.davidea.flexibleadapter.items.IFlexible
|
||||
|
@ -31,7 +32,6 @@ import eu.kanade.tachiyomi.R
|
|||
import eu.kanade.tachiyomi.data.preference.PreferenceValues
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.databinding.BrowseControllerBinding
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionInstaller
|
||||
import eu.kanade.tachiyomi.source.CatalogueSource
|
||||
import eu.kanade.tachiyomi.source.LocalSource
|
||||
import eu.kanade.tachiyomi.source.Source
|
||||
|
|
|
@ -1205,4 +1205,5 @@
|
|||
<string name="sfw">SFW</string>
|
||||
<string name="nsfw">NSFW</string>
|
||||
<string name="content_type">Content Type</string>
|
||||
<string name="ext_installer_packageinstaller">Default</string>
|
||||
</resources>
|
Loading…
Add table
Add a link
Reference in a new issue