From 181dbbb638686a284fa24c4e43d7c022a4f8e4bb Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Wed, 26 Feb 2025 02:13:14 +0600 Subject: [PATCH] Remove F-droid warnings --- .../eu/kanade/presentation/more/MoreScreen.kt | 21 +------------- .../data/updater/AppUpdateChecker.kt | 5 ---- .../data/updater/AppUpdateNotifier.kt | 21 -------------- .../eu/kanade/tachiyomi/ui/more/MoreTab.kt | 2 -- .../util/system/ContextExtensions.kt | 18 ------------ .../interactor/GetApplicationRelease.kt | 3 -- .../interactor/GetApplicationReleaseTest.kt | 29 ------------------- .../moko-resources/base/strings.xml | 1 - 8 files changed, 1 insertion(+), 99 deletions(-) diff --git a/app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt b/app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt index fc690139a..48782b61b 100644 --- a/app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt @@ -1,12 +1,6 @@ package eu.kanade.presentation.more -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.WindowInsets -import androidx.compose.foundation.layout.WindowInsetsSides -import androidx.compose.foundation.layout.only import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.systemBars -import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.outlined.HelpOutline import androidx.compose.material.icons.automirrored.outlined.Label @@ -40,7 +34,6 @@ fun MoreScreen( onDownloadedOnlyChange: (Boolean) -> Unit, incognitoMode: Boolean, onIncognitoModeChange: (Boolean) -> Unit, - isFDroid: Boolean, onClickDownloadQueue: () -> Unit, onClickCategories: () -> Unit, onClickStats: () -> Unit, @@ -50,19 +43,7 @@ fun MoreScreen( ) { val uriHandler = LocalUriHandler.current - Scaffold( - topBar = { - Column( - modifier = Modifier.windowInsetsPadding( - WindowInsets.systemBars.only(WindowInsetsSides.Top + WindowInsetsSides.Horizontal), - ), - ) { - if (isFDroid) { - // Don't really care about slow updaters now - } - } - }, - ) { contentPadding -> + Scaffold { contentPadding -> ScrollbarLazyColumn( modifier = Modifier.padding(contentPadding), ) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateChecker.kt b/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateChecker.kt index d3632767c..cc94a9ef7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateChecker.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateChecker.kt @@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.data.updater import android.content.Context import eu.kanade.tachiyomi.BuildConfig -import eu.kanade.tachiyomi.util.system.isInstalledFromFDroid import tachiyomi.core.common.util.lang.withIOContext import tachiyomi.domain.release.interactor.GetApplicationRelease import uy.kohesive.injekt.injectLazy @@ -21,7 +20,6 @@ class AppUpdateChecker { val result = getApplicationRelease.await( GetApplicationRelease.Arguments( BuildConfig.PREVIEW, - context.isInstalledFromFDroid(), BuildConfig.COMMIT_COUNT.toInt(), BuildConfig.VERSION_NAME, GITHUB_REPO, @@ -31,9 +29,6 @@ class AppUpdateChecker { when (result) { is GetApplicationRelease.Result.NewUpdate -> AppUpdateNotifier(context).promptUpdate(result.release) - is GetApplicationRelease.Result.ThirdPartyInstallation -> AppUpdateNotifier( - context, - ).promptFdroidUpdate() else -> {} } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt index cc55040c7..bd9bdbe30 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt @@ -139,27 +139,6 @@ internal class AppUpdateNotifier(private val context: Context) { notificationBuilder.show(Notifications.ID_APP_UPDATE_PROMPT) } - /** - * Some people are still installing the app from F-Droid, so we avoid prompting GitHub-based - * updates. - * - * We can prompt them to migrate to the GitHub version though. - */ - fun promptFdroidUpdate() { - with(notificationBuilder) { - setContentTitle(context.stringResource(MR.strings.update_check_notification_update_available)) - setContentText(context.stringResource(MR.strings.update_check_fdroid_migration_info)) - setSmallIcon(R.drawable.ic_mihon) - setContentIntent( - NotificationHandler.openUrl( - context, - "https://mihon.app/docs/faq/general#how-do-i-update-from-the-f-droid-builds", - ), - ) - } - notificationBuilder.show(Notifications.ID_APP_UPDATE_PROMPT) - } - /** * Call when apk download throws a error * diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt index 0201ddc44..03604b59f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt @@ -26,7 +26,6 @@ import eu.kanade.tachiyomi.ui.category.CategoryScreen import eu.kanade.tachiyomi.ui.download.DownloadQueueScreen import eu.kanade.tachiyomi.ui.setting.SettingsScreen import eu.kanade.tachiyomi.ui.stats.StatsScreen -import eu.kanade.tachiyomi.util.system.isInstalledFromFDroid import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -68,7 +67,6 @@ data object MoreTab : Tab { onDownloadedOnlyChange = { screenModel.downloadedOnly = it }, incognitoMode = screenModel.incognitoMode, onIncognitoModeChange = { screenModel.incognitoMode = it }, - isFDroid = context.isInstalledFromFDroid(), onClickDownloadQueue = { navigator.push(DownloadQueueScreen) }, onClickCategories = { navigator.push(CategoryScreen()) }, onClickStats = { navigator.push(StatsScreen()) }, diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt index 9dd0c705f..f4367dcfc 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt @@ -16,7 +16,6 @@ import androidx.core.net.toUri import com.hippo.unifile.UniFile import eu.kanade.domain.ui.UiPreferences import eu.kanade.domain.ui.model.ThemeMode -import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.ui.base.delegate.ThemingDelegate import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences @@ -157,23 +156,6 @@ val Context.hasMiuiPackageInstaller get() = isPackageInstalled("com.miui.package val Context.isShizukuInstalled get() = isPackageInstalled("moe.shizuku.privileged.api") || Sui.isSui() -fun Context.isInstalledFromFDroid(): Boolean { - val installerPackageName = try { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - packageManager.getInstallSourceInfo(packageName).installingPackageName - } else { - @Suppress("DEPRECATION") - packageManager.getInstallerPackageName(packageName) - } - } catch (e: Exception) { - null - } - - return installerPackageName == "org.fdroid.fdroid" || - // F-Droid builds typically disable the updater - (!BuildConfig.INCLUDE_UPDATER && !isDebugBuildType) -} - fun Context.launchRequestPackageInstallsPermission() { Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES).apply { data = Uri.parse("package:$packageName") diff --git a/domain/src/main/java/tachiyomi/domain/release/interactor/GetApplicationRelease.kt b/domain/src/main/java/tachiyomi/domain/release/interactor/GetApplicationRelease.kt index 5a37b93bd..bd6cdc794 100644 --- a/domain/src/main/java/tachiyomi/domain/release/interactor/GetApplicationRelease.kt +++ b/domain/src/main/java/tachiyomi/domain/release/interactor/GetApplicationRelease.kt @@ -37,7 +37,6 @@ class GetApplicationRelease( release.version, ) return when { - isNewVersion && arguments.isThirdParty -> Result.ThirdPartyInstallation isNewVersion -> Result.NewUpdate(release) else -> Result.NoNewUpdate } @@ -75,7 +74,6 @@ class GetApplicationRelease( data class Arguments( val isPreview: Boolean, - val isThirdParty: Boolean, val commitCount: Int, val versionName: String, val repository: String, @@ -86,6 +84,5 @@ class GetApplicationRelease( data class NewUpdate(val release: Release) : Result data object NoNewUpdate : Result data object OsTooOld : Result - data object ThirdPartyInstallation : Result } } diff --git a/domain/src/test/java/tachiyomi/domain/release/interactor/GetApplicationReleaseTest.kt b/domain/src/test/java/tachiyomi/domain/release/interactor/GetApplicationReleaseTest.kt index fe564050a..f6d28f734 100644 --- a/domain/src/test/java/tachiyomi/domain/release/interactor/GetApplicationReleaseTest.kt +++ b/domain/src/test/java/tachiyomi/domain/release/interactor/GetApplicationReleaseTest.kt @@ -30,31 +30,6 @@ class GetApplicationReleaseTest { getApplicationRelease = GetApplicationRelease(releaseService, preferenceStore) } - @Test - fun `When has update but is third party expect third party installation`() = runTest { - every { preference.get() } returns 0 - every { preference.set(any()) }.answers { } - - coEvery { releaseService.latest(any()) } returns Release( - "v2.0.0", - "info", - "http://example.com/release_link", - listOf("http://example.com/assets"), - ) - - val result = getApplicationRelease.await( - GetApplicationRelease.Arguments( - isPreview = false, - isThirdParty = true, - commitCount = 0, - versionName = "v1.0.0", - repository = "test", - ), - ) - - result shouldBe GetApplicationRelease.Result.ThirdPartyInstallation - } - @Test fun `When has update but is preview expect new update`() = runTest { every { preference.get() } returns 0 @@ -72,7 +47,6 @@ class GetApplicationReleaseTest { val result = getApplicationRelease.await( GetApplicationRelease.Arguments( isPreview = true, - isThirdParty = false, commitCount = 1000, versionName = "", repository = "test", @@ -101,7 +75,6 @@ class GetApplicationReleaseTest { val result = getApplicationRelease.await( GetApplicationRelease.Arguments( isPreview = false, - isThirdParty = false, commitCount = 0, versionName = "v1.0.0", repository = "test", @@ -130,7 +103,6 @@ class GetApplicationReleaseTest { val result = getApplicationRelease.await( GetApplicationRelease.Arguments( isPreview = false, - isThirdParty = false, commitCount = 0, versionName = "v2.0.0", repository = "test", @@ -157,7 +129,6 @@ class GetApplicationReleaseTest { val result = getApplicationRelease.await( GetApplicationRelease.Arguments( isPreview = false, - isThirdParty = false, commitCount = 0, versionName = "v2.0.0", repository = "test", diff --git a/i18n/src/commonMain/moko-resources/base/strings.xml b/i18n/src/commonMain/moko-resources/base/strings.xml index 68ddae3e4..27d321f01 100644 --- a/i18n/src/commonMain/moko-resources/base/strings.xml +++ b/i18n/src/commonMain/moko-resources/base/strings.xml @@ -922,7 +922,6 @@ Tap to install update Download error New version available! - A new version is available from the official releases. Tap to learn how to migrate from unofficial F-Droid releases. No downloads