From e5a3125c1c398fd96939ac3abff6c0a0b81b2d5d Mon Sep 17 00:00:00 2001 From: Svet Ganov Date: Mon, 4 Jun 2018 18:18:34 -0700 Subject: [PATCH] Don't access keyguard from instant apps. Test: manual bug:109652548 Change-Id: Ife1302e39e4f71f66d032619068a7e0214856b32 --- .../policy/PhoneFallbackEventHandler.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/core/java/com/android/internal/policy/PhoneFallbackEventHandler.java b/core/java/com/android/internal/policy/PhoneFallbackEventHandler.java index 19593011e751d..d8ee4dd342699 100644 --- a/core/java/com/android/internal/policy/PhoneFallbackEventHandler.java +++ b/core/java/com/android/internal/policy/PhoneFallbackEventHandler.java @@ -112,7 +112,7 @@ public class PhoneFallbackEventHandler implements FallbackEventHandler { } case KeyEvent.KEYCODE_CALL: { - if (getKeyguardManager().inKeyguardRestrictedInputMode() || dispatcher == null) { + if (isNotInstantAppAndKeyguardRestricted(dispatcher)) { break; } if (event.getRepeatCount() == 0) { @@ -139,7 +139,7 @@ public class PhoneFallbackEventHandler implements FallbackEventHandler { } case KeyEvent.KEYCODE_CAMERA: { - if (getKeyguardManager().inKeyguardRestrictedInputMode() || dispatcher == null) { + if (isNotInstantAppAndKeyguardRestricted(dispatcher)) { break; } if (event.getRepeatCount() == 0) { @@ -164,7 +164,7 @@ public class PhoneFallbackEventHandler implements FallbackEventHandler { } case KeyEvent.KEYCODE_SEARCH: { - if (getKeyguardManager().inKeyguardRestrictedInputMode() || dispatcher == null) { + if (isNotInstantAppAndKeyguardRestricted(dispatcher)) { break; } if (event.getRepeatCount() == 0) { @@ -202,6 +202,11 @@ public class PhoneFallbackEventHandler implements FallbackEventHandler { return false; } + private boolean isNotInstantAppAndKeyguardRestricted(KeyEvent.DispatcherState dispatcher) { + return !mContext.getPackageManager().isInstantApp() + && (getKeyguardManager().inKeyguardRestrictedInputMode() || dispatcher == null); + } + boolean onKeyUp(int keyCode, KeyEvent event) { if (DEBUG) { Log.d(TAG, "up " + keyCode); @@ -238,7 +243,7 @@ public class PhoneFallbackEventHandler implements FallbackEventHandler { } case KeyEvent.KEYCODE_CAMERA: { - if (getKeyguardManager().inKeyguardRestrictedInputMode()) { + if (isNotInstantAppAndKeyguardRestricted(dispatcher)) { break; } if (event.isTracking() && !event.isCanceled()) { @@ -248,7 +253,7 @@ public class PhoneFallbackEventHandler implements FallbackEventHandler { } case KeyEvent.KEYCODE_CALL: { - if (getKeyguardManager().inKeyguardRestrictedInputMode()) { + if (isNotInstantAppAndKeyguardRestricted(dispatcher)) { break; } if (event.isTracking() && !event.isCanceled()) {