From c79553f58043ae4fa0dd801c2473f6111f52b154 Mon Sep 17 00:00:00 2001 From: Beverly Date: Mon, 18 Apr 2022 19:28:47 +0000 Subject: [PATCH] Make the KEYGUARD_DELAYED broadcast priority Test: manually install POC app, see that device still locks after display timeout Fixes: 206470146 Change-Id: Iede6c2dab5a85191f92596c32818d35e782bcccf --- .../com/android/systemui/keyguard/KeyguardViewMediator.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index a5618568d6c73..0f5022df17d8f 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -1083,6 +1083,7 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable, final IntentFilter delayedActionFilter = new IntentFilter(); delayedActionFilter.addAction(DELAYED_KEYGUARD_ACTION); delayedActionFilter.addAction(DELAYED_LOCK_PROFILE_ACTION); + delayedActionFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); mContext.registerReceiver(mDelayedLockBroadcastReceiver, delayedActionFilter, SYSTEMUI_PERMISSION, null /* scheduler */, Context.RECEIVER_EXPORTED_UNAUDITED); @@ -1392,6 +1393,7 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable, // Lock in the future long when = SystemClock.elapsedRealtime() + timeout; Intent intent = new Intent(DELAYED_KEYGUARD_ACTION); + intent.setPackage(mContext.getPackageName()); intent.putExtra("seq", mDelayedShowingSequence); intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); PendingIntent sender = PendingIntent.getBroadcast(mContext, @@ -1412,11 +1414,13 @@ public class KeyguardViewMediator extends CoreStartable implements Dumpable, } else { long userWhen = SystemClock.elapsedRealtime() + userTimeout; Intent lockIntent = new Intent(DELAYED_LOCK_PROFILE_ACTION); + lockIntent.setPackage(mContext.getPackageName()); lockIntent.putExtra("seq", mDelayedProfileShowingSequence); lockIntent.putExtra(Intent.EXTRA_USER_ID, profileId); lockIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); PendingIntent lockSender = PendingIntent.getBroadcast( - mContext, 0, lockIntent, PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_MUTABLE_UNAUDITED); + mContext, 0, lockIntent, + PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_IMMUTABLE); mAlarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, userWhen, lockSender); }