OSDN Git Service

Check for missing preference before setting title.
authorJim Miller <jaggies@google.com>
Fri, 9 Sep 2016 18:54:12 +0000 (11:54 -0700)
committerJim Miller <jaggies@google.com>
Fri, 9 Sep 2016 18:54:12 +0000 (11:54 -0700)
Some preferences aren't available due to DPM, so check for null
before setting the title.

Fixes bug 31184335

Change-Id: I69f97274eef87755269fd8f7897edcc36087f8b2

src/com/android/settings/ChooseLockGeneric.java

index 6db6f76..8d39e6b 100644 (file)
@@ -355,14 +355,18 @@ public class ChooseLockGeneric extends SettingsActivity {
 
         private void updatePreferenceText() {
             if (mForFingerprint) {
-                Preference pattern = findPreference(KEY_UNLOCK_SET_PATTERN);
-                pattern.setTitle(R.string.fingerprint_unlock_set_unlock_pattern);
-
-                Preference pin = findPreference(KEY_UNLOCK_SET_PIN);
-                pin.setTitle(R.string.fingerprint_unlock_set_unlock_pin);
-
-                Preference password = findPreference(KEY_UNLOCK_SET_PASSWORD);
-                password.setTitle(R.string.fingerprint_unlock_set_unlock_password);
+                final String key[] = { KEY_UNLOCK_SET_PATTERN,
+                        KEY_UNLOCK_SET_PIN,
+                        KEY_UNLOCK_SET_PASSWORD };
+                final int res[] = { R.string.fingerprint_unlock_set_unlock_pattern,
+                        R.string.fingerprint_unlock_set_unlock_pin,
+                        R.string.fingerprint_unlock_set_unlock_password };
+                for (int i = 0; i < key.length; i++) {
+                    Preference pref = findPreference(key[i]);
+                    if (pref != null) { // can be removed by device admin
+                        pref.setTitle(res[i]);
+                    }
+                }
             }
 
             if (mManagedPasswordProvider.isSettingManagedPasswordSupported()) {