From d3d0aeeb3b160e623bf4e7c5b68caea2ca2aa637 Mon Sep 17 00:00:00 2001 From: Miranda Kephart Date: Wed, 24 Jun 2020 11:50:07 -0400 Subject: Add FLAG_CANCEL_CURRENT to screenshot share intent The share intent uses clipData, which isn't used to match intents. Thus, subsequent screenshots didn't update the share intent, so trying to share a second screenshot would end up sharing the first one. Adding FLAG_CANCEL_CURRENT fixes this problem. Bug: 159751741 Fix: 159751741 Test: manual Change-Id: I5eb63f075c3156e5061ee9f63ba17afa6b7abbbd --- .../com/android/systemui/screenshot/SaveImageInBackgroundTask.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/SaveImageInBackgroundTask.java b/packages/SystemUI/src/com/android/systemui/screenshot/SaveImageInBackgroundTask.java index e3fbdbc7c30d..468b9b16addb 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/SaveImageInBackgroundTask.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/SaveImageInBackgroundTask.java @@ -281,8 +281,10 @@ class SaveImageInBackgroundTask extends AsyncTask { Intent.createChooser(sharingIntent, null, chooserAction.getIntentSender()) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK) .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); - PendingIntent pendingIntent = PendingIntent.getActivityAsUser(context, requestCode, - sharingChooserIntent, 0, null, UserHandle.CURRENT); + + // cancel current pending intent (if any) since clipData isn't used for matching + PendingIntent pendingIntent = PendingIntent.getActivityAsUser(context, 0, + sharingChooserIntent, PendingIntent.FLAG_CANCEL_CURRENT, null, UserHandle.CURRENT); // Create a share action for the notification PendingIntent shareAction = PendingIntent.getBroadcastAsUser(context, requestCode, -- cgit v1.2.3-59-g8ed1b