diff --git a/app/src/main/java/dev/yokai/domain/extension/TrustExtension.kt b/app/src/main/java/dev/yokai/domain/extension/TrustExtension.kt deleted file mode 100644 index baee9ef96c..0000000000 --- a/app/src/main/java/dev/yokai/domain/extension/TrustExtension.kt +++ /dev/null @@ -1,29 +0,0 @@ -package dev.yokai.domain.extension - -import android.content.pm.PackageInfo -import androidx.core.content.pm.PackageInfoCompat -import dev.yokai.domain.source.SourcePreferences -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get - -class TrustExtension( - private val sourcePreferences: SourcePreferences = Injekt.get(), -) { - fun isTrusted(pkgInfo: PackageInfo, signatureHash: String): Boolean { - val key = "${pkgInfo.packageName}:${PackageInfoCompat.getLongVersionCode(pkgInfo)}:$signatureHash" - return key in sourcePreferences.trustedExtensions().get() - } - - fun trust(pkgName: String, versionCode: Long, signatureHash: String) { - sourcePreferences.trustedExtensions().let { exts -> - val removed = exts.get().filterNot { it.startsWith("$pkgName:") }.toMutableSet() - - removed += "$pkgName:$versionCode:$signatureHash" - exts.set(removed) - } - } - - fun revokeAll() { - sourcePreferences.trustedExtensions().delete() - } -} diff --git a/app/src/main/java/eu/kanade/tachiyomi/di/AppModule.kt b/app/src/main/java/eu/kanade/tachiyomi/di/AppModule.kt index a9a774f47f..4f4d42bb8b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/di/AppModule.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/di/AppModule.kt @@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.di import android.app.Application import androidx.core.content.ContextCompat -import dev.yokai.domain.extension.TrustExtension import eu.kanade.tachiyomi.core.preference.AndroidPreferenceStore import eu.kanade.tachiyomi.core.preference.PreferenceStore import eu.kanade.tachiyomi.data.cache.ChapterCache @@ -62,8 +61,6 @@ class AppModule(val app: Application) : InjektModule { addSingletonFactory { MangaShortcutManager() } - addSingletonFactory { TrustExtension() } - // Asynchronously init expensive components for a faster cold start ContextCompat.getMainExecutor(app).execute { diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt index 10cfdc6316..b2c307d6ad 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt @@ -4,9 +4,8 @@ import android.content.Context import android.graphics.drawable.Drawable import android.os.Build import android.os.Parcelable -import dev.yokai.domain.extension.TrustExtension +import dev.yokai.domain.source.SourcePreferences 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 @@ -41,7 +40,7 @@ import java.util.Locale class ExtensionManager( private val context: Context, private val preferences: PreferencesHelper = Injekt.get(), - private val trustExtension: TrustExtension = Injekt.get(), + private val sourcePreferences: SourcePreferences = Injekt.get(), ) { /** @@ -317,7 +316,12 @@ class ExtensionManager( val untrustedPkgName = untrustedExtensionsFlow.value.map { it.pkgName }.toSet() if (pkgName !in untrustedPkgName) return - trustExtension.trust(pkgName, versionCode, signatureHash) + sourcePreferences.trustedExtensions().let { exts -> + val removed = exts.get().filterNot { it.startsWith("$pkgName:") }.toMutableSet() + + removed += "$pkgName:$versionCode:$signatureHash" + exts.set(removed) + } val nowTrustedExtensions = untrustedExtensionsFlow.value .filter { it.pkgName == pkgName && it.versionCode == versionCode } diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt index d489b95600..ddadc5265b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt @@ -8,7 +8,7 @@ import android.content.pm.PackageManager import android.os.Build import androidx.core.content.pm.PackageInfoCompat import dalvik.system.PathClassLoader -import dev.yokai.domain.extension.TrustExtension +import dev.yokai.domain.source.SourcePreferences import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.extension.model.Extension @@ -34,7 +34,7 @@ import java.nio.file.attribute.BasicFileAttributes internal object ExtensionLoader { private val preferences: PreferencesHelper by injectLazy() - private val trustExtension: TrustExtension by injectLazy() + private val sourcePreferences: SourcePreferences by injectLazy() private val loadNsfwSource by lazy { preferences.showNsfwSources().get() } @@ -429,7 +429,8 @@ internal object ExtensionLoader { } private fun isTrusted(pkgInfo: PackageInfo, signatures: List): Boolean { - return trustExtension.isTrusted(pkgInfo, signatures.last()) + val key = "${pkgInfo.packageName}:${PackageInfoCompat.getLongVersionCode(pkgInfo)}:${signatures.last()}" + return key in sourcePreferences.trustedExtensions().get() } /** 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 b11ac40799..e448654c06 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 @@ -16,7 +16,7 @@ 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.extension.TrustExtension +import dev.yokai.domain.source.SourcePreferences import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.cache.ChapterCache @@ -79,7 +79,7 @@ class SettingsAdvancedController : SettingsController() { private val downloadManager: DownloadManager by injectLazy() - private val trustExtension: TrustExtension by injectLazy() + private val sourcePreferences: SourcePreferences by injectLazy() private val isUpdaterEnabled = BuildConfig.INCLUDE_UPDATER @@ -377,7 +377,7 @@ class SettingsAdvancedController : SettingsController() { title = "Revoke all" onClick { - trustExtension.revokeAll() + sourcePreferences.trustedExtensions().delete() activity?.toast(R.string.requires_app_restart) } }