From 18615600ae6e23ffd12442fa6a2dba83b58c7fb2 Mon Sep 17 00:00:00 2001 From: xudiwen Date: Tue, 9 May 2017 17:30:57 +0800 Subject: [PATCH] NullPointerException when running monkey test in IccLockSettings In Android N, finish() in onCreate() cannot avoid onViewCreated() lifecycle in Fragment, so a crash occurs in com.android.settings.IccLockSettings because of insecure call in updatePreference(). It's a tiny bug only appears when running monkey test. Test: run monkey test with page IccLockSettings. This bug was reported to Google Issue Tracker. Link: https://issuetracker.google.com/issues/38152568 Change-Id: I143b046fd7ac5ffba55e51254c7dd068274d342e Signed-off-by: xudiwen --- src/com/android/settings/IccLockSettings.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/IccLockSettings.java b/src/com/android/settings/IccLockSettings.java index 9d7f10aa84d..b51bbfac6c2 100644 --- a/src/com/android/settings/IccLockSettings.java +++ b/src/com/android/settings/IccLockSettings.java @@ -247,11 +247,15 @@ public class IccLockSettings extends SettingsPreferenceFragment } private void updatePreferences() { - mPinDialog.setEnabled(mPhone != null); - mPinToggle.setEnabled(mPhone != null); + if (mPinDialog != null) { + mPinDialog.setEnabled(mPhone != null); + } + if (mPinToggle != null) { + mPinToggle.setEnabled(mPhone != null); - if (mPhone != null) { - mPinToggle.setChecked(mPhone.getIccCard().getIccLockEnabled()); + if (mPhone != null) { + mPinToggle.setChecked(mPhone.getIccCard().getIccLockEnabled()); + } } }