From 35310c70fea3beb9873ebe8e55a4f548afb50f19 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 (cherry picked from commit 181dbbb638686a284fa24c4e43d7c022a4f8e4bb) --- .../eu/kanade/presentation/more/MoreScreen.kt | 31 +---------------- .../data/updater/AppUpdateChecker.kt | 7 ---- .../data/updater/AppUpdateNotifier.kt | 21 ------------ .../eu/kanade/tachiyomi/ui/more/MoreTab.kt | 2 -- .../util/system/ContextExtensions.kt | 18 ---------- .../interactor/GetApplicationRelease.kt | 4 --- .../interactor/GetApplicationReleaseTest.kt | 33 ------------------- .../moko-resources/base/strings.xml | 1 - 8 files changed, 1 insertion(+), 116 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 3f68c4ae3..704b69a6f 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,5 @@ package eu.kanade.presentation.more -import androidx.compose.foundation.clickable -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.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 @@ -22,11 +15,9 @@ import androidx.compose.material.icons.outlined.Storage import androidx.compose.material3.HorizontalDivider import androidx.compose.runtime.Composable import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.vectorResource -import eu.kanade.presentation.components.WarningBanner import eu.kanade.presentation.more.settings.widget.SwitchPreferenceWidget import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget import eu.kanade.tachiyomi.R @@ -51,7 +42,6 @@ fun MoreScreen( onDownloadedOnlyChange: (Boolean) -> Unit, incognitoMode: Boolean, onIncognitoModeChange: (Boolean) -> Unit, - isFDroid: Boolean, // SY --> showNavUpdates: Boolean, showNavHistory: Boolean, @@ -75,26 +65,7 @@ fun MoreScreen( val delegateSourcePreferences = remember { Injekt.get() } // SY <-- - Scaffold( - topBar = { - Column( - modifier = Modifier.windowInsetsPadding( - WindowInsets.systemBars.only(WindowInsetsSides.Top + WindowInsetsSides.Horizontal), - ), - ) { - if (isFDroid) { - WarningBanner( - textRes = MR.strings.fdroid_warning, - modifier = Modifier.clickable { - uriHandler.openUri( - "https://komikku-app.github.io/docs/faq/general#how-do-i-update-from-the-f-droid-builds", - ) - }, - ) - } - } - }, - ) { contentPadding -> + Scaffold { contentPadding -> ScrollbarLazyColumn( // KMK: use contentPadding as preferable padding for ScrollbarLazyColumn when not using stickyHeader contentPadding = 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 43615651f..0f2ad1ff4 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 @@ -3,7 +3,6 @@ package eu.kanade.tachiyomi.data.updater import android.content.Context import android.os.Build import eu.kanade.tachiyomi.BuildConfig -import eu.kanade.tachiyomi.util.system.isInstalledFromFDroid import tachiyomi.core.common.util.lang.withIOContext import tachiyomi.domain.UnsortedPreferences import tachiyomi.domain.release.interactor.GetApplicationRelease @@ -35,7 +34,6 @@ class AppUpdateChecker( val result = getApplicationRelease.await( GetApplicationRelease.Arguments( isPreview = BuildConfig.PREVIEW || peekIntoPreview, - isThirdParty = context.isInstalledFromFDroid(), commitCount = BuildConfig.COMMIT_COUNT.toInt(), versionName = BuildConfig.VERSION_NAME, repository = getGithubRepo(peekIntoPreview), @@ -54,10 +52,6 @@ class AppUpdateChecker( AppUpdateNotifier(context).promptUpdate(result.release) } - is GetApplicationRelease.Result.ThirdPartyInstallation -> AppUpdateNotifier( - context, - ).promptFdroidUpdate() - else -> {} } @@ -85,7 +79,6 @@ class AppUpdateChecker( getApplicationRelease.awaitReleaseNotes( GetApplicationRelease.Arguments( isPreview = BuildConfig.PREVIEW || peekIntoPreview, - isThirdParty = context.isInstalledFromFDroid(), commitCount = BuildConfig.COMMIT_COUNT.toInt(), versionName = BuildConfig.VERSION_NAME, repository = getGithubRepo(peekIntoPreview), 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 79e83f68f..4137ced66 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 @@ -152,27 +152,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_komikku) - setContentIntent( - NotificationHandler.openUrl( - context, - "https://komikku-app.github.io/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 3827f12e7..bfda3e456 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 @@ -30,7 +30,6 @@ import eu.kanade.tachiyomi.ui.libraryUpdateError.LibraryUpdateErrorScreen import eu.kanade.tachiyomi.ui.setting.SettingsScreen import eu.kanade.tachiyomi.ui.stats.StatsScreen import eu.kanade.tachiyomi.ui.updates.UpdatesTab -import eu.kanade.tachiyomi.util.system.isInstalledFromFDroid import exh.ui.batchadd.BatchAddScreen import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow @@ -74,7 +73,6 @@ data object MoreTab : Tab { onDownloadedOnlyChange = { screenModel.downloadedOnly = it }, incognitoMode = screenModel.incognitoMode, onIncognitoModeChange = { screenModel.incognitoMode = it }, - isFDroid = context.isInstalledFromFDroid(), // SY --> showNavUpdates = screenModel.showNavUpdates, showNavHistory = screenModel.showNavHistory, 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 ab78ee12d..83b8b8325 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 = "package:$packageName".toUri() 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 2834e210e..c4d5e79da 100644 --- a/domain/src/main/java/tachiyomi/domain/release/interactor/GetApplicationRelease.kt +++ b/domain/src/main/java/tachiyomi/domain/release/interactor/GetApplicationRelease.kt @@ -50,7 +50,6 @@ class GetApplicationRelease( versionTag = latest.version, ) return when { - isNewVersion && arguments.isThirdParty -> Result.ThirdPartyInstallation isNewVersion -> Result.NewUpdate(latest) else -> Result.NoNewUpdate } @@ -117,8 +116,6 @@ class GetApplicationRelease( data class Arguments( /** If current version is Preview (beta) build */ val isPreview: Boolean, - /** If current version is from third party */ - val isThirdParty: Boolean, /** Commit count of current version */ val commitCount: Int, /** Current version name, could be version tag (v0.1.2) or commit count (r1234) */ @@ -133,7 +130,6 @@ 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 3b36470e6..c4b448afa 100644 --- a/domain/src/test/java/tachiyomi/domain/release/interactor/GetApplicationReleaseTest.kt +++ b/domain/src/test/java/tachiyomi/domain/release/interactor/GetApplicationReleaseTest.kt @@ -30,35 +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 { } - - val releases = listOf( - Release( - "v2.0.0", - "info", - "http://example.com/release_link", - listOf("http://example.com/assets"), - ), - ) - - coEvery { releaseService.releaseNotes(any()) } returns releases - - 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 @@ -78,7 +49,6 @@ class GetApplicationReleaseTest { val result = getApplicationRelease.await( GetApplicationRelease.Arguments( isPreview = true, - isThirdParty = false, commitCount = 1000, versionName = "", repository = "test", @@ -109,7 +79,6 @@ class GetApplicationReleaseTest { val result = getApplicationRelease.await( GetApplicationRelease.Arguments( isPreview = false, - isThirdParty = false, commitCount = 0, versionName = "v1.0.0", repository = "test", @@ -139,7 +108,6 @@ class GetApplicationReleaseTest { val result = getApplicationRelease.await( GetApplicationRelease.Arguments( isPreview = false, - isThirdParty = false, commitCount = 0, versionName = "v2.0.0", repository = "test", @@ -168,7 +136,6 @@ class GetApplicationReleaseTest { val result = getApplicationRelease.await( GetApplicationRelease.Arguments( isPreview = false, - isThirdParty = false, commitCount = 0, versionName = "v1.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 011fb65d6..673c72ff5 100644 --- a/i18n/src/commonMain/moko-resources/base/strings.xml +++ b/i18n/src/commonMain/moko-resources/base/strings.xml @@ -931,7 +931,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