From ea3e53e6aea8ebae56500d2c6433ee392017f75b Mon Sep 17 00:00:00 2001 From: Cuong-Tran Date: Sat, 1 Feb 2025 03:23:17 +0700 Subject: [PATCH] Add manual install button to App installing notification --- .../kanade/tachiyomi/data/updater/AppUpdateDownloadJob.kt | 6 ++---- .../eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt | 8 +++++++- i18n-kmk/src/commonMain/moko-resources/base/strings.xml | 1 + 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateDownloadJob.kt b/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateDownloadJob.kt index 168cc0ad4..1414537da 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateDownloadJob.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateDownloadJob.kt @@ -206,9 +206,7 @@ class AppUpdateDownloadJob(private val context: Context, workerParams: WorkerPar val installParams = PackageInstaller.SessionParams( PackageInstaller.SessionParams.MODE_FULL_INSTALL, ) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - installParams.setRequireUserAction(PackageInstaller.SessionParams.USER_ACTION_NOT_REQUIRED) - } + installParams.setRequireUserAction(PackageInstaller.SessionParams.USER_ACTION_NOT_REQUIRED) val sessionId = packageInstaller.createSession(installParams) val session = packageInstaller.openSession(sessionId) session.openWrite("package", 0, -1).use { packageInSession -> @@ -228,7 +226,7 @@ class AppUpdateDownloadJob(private val context: Context, workerParams: WorkerPar ) val statusReceiver = pendingIntent.intentSender session.commit(statusReceiver) - notifier.onInstalling() + notifier.onInstalling(file.getUriCompat(context)) withContext(Dispatchers.IO) { data.close() } 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 c57014119..3b102c893 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 @@ -216,13 +216,19 @@ internal class AppUpdateNotifier(private val context: Context) { } // KMK --> - fun onInstalling() { + fun onInstalling(uri: Uri) { + val installIntent = NotificationHandler.installApkPendingActivity(context, uri) with(notificationBuilder) { setContentText(context.stringResource(MR.strings.ext_installing)) setSmallIcon(android.R.drawable.stat_sys_download) setProgress(0, 0, true) setOnlyAlertOnce(true) clearActions() + addAction( + R.drawable.ic_system_update_alt_white_24dp, + context.stringResource(KMR.strings.action_manual_install), + installIntent, + ) show(Notifications.ID_APP_INSTALL) } } diff --git a/i18n-kmk/src/commonMain/moko-resources/base/strings.xml b/i18n-kmk/src/commonMain/moko-resources/base/strings.xml index f05ba4495..90dc53a8f 100644 --- a/i18n-kmk/src/commonMain/moko-resources/base/strings.xml +++ b/i18n-kmk/src/commonMain/moko-resources/base/strings.xml @@ -138,6 +138,7 @@ Change Logs + Manual install Manual download