From f6b1440bf236192eeffbfbc940ecf2e78b9f4b46 Mon Sep 17 00:00:00 2001 From: Jayman Rana <111602593+JaymanR@users.noreply.github.com> Date: Thu, 27 Mar 2025 13:41:30 -0400 Subject: [PATCH] Fix backup sharing from notifications not working when app is in background (#1929) (cherry picked from commit 3e5d3d099fed5feb6a6807196bea5fed72973fe9) # Conflicts: # CHANGELOG.md --- .../eu/kanade/tachiyomi/data/backup/BackupNotifier.kt | 2 +- .../data/notification/NotificationReceiver.kt | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt index 90b55188a..7d22b20b3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt @@ -80,7 +80,7 @@ class BackupNotifier(private val context: Context) { addAction( R.drawable.ic_share_24dp, context.stringResource(MR.strings.action_share), - NotificationReceiver.shareBackupPendingBroadcast(context, file.uri), + NotificationReceiver.shareBackupPendingActivity(context, file.uri), ) show(Notifications.ID_BACKUP_COMPLETE) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt b/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt index 84e62fca3..1007e716d 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt @@ -602,18 +602,17 @@ class NotificationReceiver : BroadcastReceiver() { } /** - * Returns [PendingIntent] that starts a share activity for a backup file. + * Returns [PendingIntent] that directly launches a share activity for a backup file. * * @param context context of application * @param uri uri of backup file * @return [PendingIntent] */ - internal fun shareBackupPendingBroadcast(context: Context, uri: Uri): PendingIntent { - val intent = Intent(context, NotificationReceiver::class.java).apply { - action = ACTION_SHARE_BACKUP - putExtra(EXTRA_URI, uri) + internal fun shareBackupPendingActivity(context: Context, uri: Uri): PendingIntent { + val intent = uri.toShareIntent(context, "application/x-protobuf+gzip").apply { + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_GRANT_READ_URI_PERMISSION) } - return PendingIntent.getBroadcast( + return PendingIntent.getActivity( context, 0, intent,