From dbf18a285ba0e338c2abc1be69a7b1d583d187cf Mon Sep 17 00:00:00 2001 From: Miranda Kephart Date: Thu, 6 Jan 2022 12:23:45 -0500 Subject: [PATCH] Add RECEIVER_EXPORTED flags to screenshots Builds on T+ require either the RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED flag to be set when registering a broadcast receiver. Recently a change went in to change from logging a warning to throwing an error, causing sysui to crash when screenshots are taken. This change adds the RECEIVER_EXPORTED flag to screenshot code. Bug: 213406883 Fix: 213406883 Test: verified that warnings no longer appear and sysui does not crash when taking a screenshot Change-Id: I0fa1c2272f1a994e51945be5f6c67cdccbb84cc2 --- core/java/com/android/internal/util/ScreenshotHelper.java | 2 +- .../com/android/systemui/screenshot/TakeScreenshotService.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core/java/com/android/internal/util/ScreenshotHelper.java b/core/java/com/android/internal/util/ScreenshotHelper.java index 04e4819f6ead9..d3c3917cd7910 100644 --- a/core/java/com/android/internal/util/ScreenshotHelper.java +++ b/core/java/com/android/internal/util/ScreenshotHelper.java @@ -178,7 +178,7 @@ public class ScreenshotHelper { public ScreenshotHelper(Context context) { mContext = context; IntentFilter filter = new IntentFilter(ACTION_USER_SWITCHED); - mContext.registerReceiver(mBroadcastReceiver, filter); + mContext.registerReceiver(mBroadcastReceiver, filter, Context.RECEIVER_EXPORTED); } /** diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java b/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java index f380911b64032..84e21e4126ccc 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java @@ -113,7 +113,8 @@ public class TakeScreenshotService extends Service { @Override public IBinder onBind(@NonNull Intent intent) { - registerReceiver(mCloseSystemDialogs, new IntentFilter(ACTION_CLOSE_SYSTEM_DIALOGS)); + registerReceiver(mCloseSystemDialogs, new IntentFilter(ACTION_CLOSE_SYSTEM_DIALOGS), + Context.RECEIVER_EXPORTED); final Messenger m = new Messenger(mHandler); if (DEBUG_SERVICE) { Log.d(TAG, "onBind: returning connection: " + m);