From a381c4ced38de01c88f7e660d5dab85607675ce4 Mon Sep 17 00:00:00 2001 From: Siyamed Sinir Date: Tue, 28 Nov 2017 13:29:18 -0800 Subject: DO NOT MERGE Fix mTrustManager NPE When isDeviceLocked function is called in KeyguardManager, mTrustManager can be null. To prevent NPE during this call, moved the mTrustManager access to a synchronized getter. Test: run cts -c android.print.cts.PageRangeAdjustmentTest -m testWantedPagesAlreadyWrittenForPreview Test: run cts -c android.accessibilityservice.cts.AccessibilityEndToEndTest -m testTypeViewTextChangedAccessibilityEvent Test: run cts -c com.android.cts.appsecurity.DocumentsTest -m testCreateExisting Test: run cts -c com.android.cts.devicepolicy.ManagedProfileTest -m testCrossProfileCopyPaste Test: run cts -c android.text.method.cts.PasswordTransformationMethodTest Bug: 69471788 Change-Id: I4b4a0bb3b127424fecdad85ba559ce861af165e4 --- core/java/android/app/KeyguardManager.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/java/android/app/KeyguardManager.java b/core/java/android/app/KeyguardManager.java index 2c1231773bb4..4bebdfa7e4d8 100644 --- a/core/java/android/app/KeyguardManager.java +++ b/core/java/android/app/KeyguardManager.java @@ -249,7 +249,7 @@ public class KeyguardManager { */ public boolean isDeviceLocked(int userId) { try { - return mTrustManager.isDeviceLocked(userId); + return getTrustManager().isDeviceLocked(userId); } catch (RemoteException e) { return false; } @@ -274,12 +274,20 @@ public class KeyguardManager { */ public boolean isDeviceSecure(int userId) { try { - return mTrustManager.isDeviceSecure(userId); + return getTrustManager().isDeviceSecure(userId); } catch (RemoteException e) { return false; } } + private synchronized ITrustManager getTrustManager() { + if (mTrustManager == null) { + mTrustManager = ITrustManager.Stub.asInterface( + ServiceManager.getService(Context.TRUST_SERVICE)); + } + return mTrustManager; + } + /** * @deprecated Use {@link android.view.WindowManager.LayoutParams#FLAG_DISMISS_KEYGUARD} * and/or {@link android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED} -- cgit v1.2.3-59-g8ed1b