OSDN Git Service

Show current screen lock as summary
authorJason Monk <jmonk@google.com>
Mon, 30 Mar 2015 15:00:36 +0000 (11:00 -0400)
committerJason Monk <jmonk@google.com>
Mon, 30 Mar 2015 15:00:36 +0000 (11:00 -0400)
Bug: 19819290
Change-Id: Iefdacd6b86f96e6f3577351e7f92b86217b1b7ad

res/values/strings.xml
src/com/android/settings/ChooseLockGeneric.java

index d87d98f..a927cf4 100644 (file)
     <!-- Title for preference that guides the user through creating an unlock password [CHAR LIMIT=45] -->
     <string name="unlock_set_unlock_password_summary">High security</string>
 
+    <!-- Summary specifying that this is the current screen lock setting [CHAR LIMIT=45] -->
+    <string name="current_screen_lock">Current screen lock</string>
+
     <!--  Content of warning dialog about disabling device protection features when user is switching from a secure unlock method to an insecure one. [CHAR LIMIT=NONE] -->
     <string name="unlock_disable_frp_warning_content">Device protection features will no longer work.</string>
 
index 6d31e60..7dac884 100644 (file)
@@ -244,12 +244,40 @@ public class ChooseLockGeneric extends SettingsActivity {
                 }
                 addPreferencesFromResource(R.xml.security_settings_picker);
                 disableUnusablePreferences(quality, hideDisabledPrefs);
+                updateCurrentPreference();
                 updatePreferenceSummaryIfNeeded();
             } else {
                 updateUnlockMethodAndFinish(quality, false);
             }
         }
 
+        private void updateCurrentPreference() {
+            String currentKey = getKeyForCurrent();
+            Preference preference = findPreference(currentKey);
+            if (preference != null) {
+                preference.setSummary(R.string.current_screen_lock);
+            }
+        }
+
+        private String getKeyForCurrent() {
+            if (mLockPatternUtils.isLockScreenDisabled()) {
+                return KEY_UNLOCK_SET_OFF;
+            }
+            switch (mLockPatternUtils.getKeyguardStoredPasswordQuality()) {
+                case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
+                    return KEY_UNLOCK_SET_PATTERN;
+                case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
+                case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
+                    return KEY_UNLOCK_SET_PIN;
+                case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
+                case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
+                    return KEY_UNLOCK_SET_PASSWORD;
+                case DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED:
+                    return KEY_UNLOCK_SET_NONE;
+            }
+            return null;
+        }
+
         /** increases the quality if necessary */
         private int upgradeQuality(int quality) {
             quality = upgradeQualityForDPM(quality);