diff options
| author | Siyamed Sinir <siyamed@google.com> | 2017-11-28 13:29:18 -0800 |
|---|---|---|
| committer | Siyamed Sinir <siyamed@google.com> | 2017-12-22 21:09:39 +0000 |
| commit | a381c4ced38de01c88f7e660d5dab85607675ce4 (patch) | |
| tree | 7ffc13ef11f9c4b8ba900b5ef8cf00c64d1699db /core/java | |
| parent | 4158c9fbf321ec227bb30fb426cb5cf886f09125 (diff) | |
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
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/app/KeyguardManager.java | 12 |
1 files 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} |
