Merge "Fix 3201870: Move OwnerInfo settings to Location&Security."
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 6d2a1eb..f4ff9f3 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -566,8 +566,10 @@
     <string name="lock_after_timeout_summary">Adjust the delay before the device automatically locks</string>
     <!-- Text shown next to checkbox for showing owner info on LockScreen [CHAR LIMIT=50]-->
     <string name="show_owner_info_on_lockscreen_label">Show owner info on lock screen</string>
-    <!-- Text shown on top-level settings for owner info [CHAR LIMIT=20]-->
+    <!-- Text shown for title of owner info setting [CHAR LIMIT=20]-->
     <string name="owner_info_settings_title">Owner info</string>
+    <!-- Text shown for summary of owner info setting [CHAR LIMIT=40]-->
+    <string name="owner_info_settings_summary">Set or disable showing owner info on lock screen</string>
     <!-- Main Settings screen setting option title for the item to take you the security and location screen -->
     <string name="security_settings_title">Location &amp; security</string>
     <!-- Location & security settings screen title -->
@@ -598,6 +600,12 @@
     <!--  Summary for PreferenceScreen to changeecurity method: None/Pattern/PIN/Password [CHAR LIMIT=45]  -->
     <string name="unlock_set_unlock_launch_picker_change_summary">Change or disable pattern, PIN, or password security</string>
 
+    <!--  Title for PreferenceScreen to enable any lockscreen method: None/Pattern/PIN/Password [CHAR LIMIT=22] -->
+    <string name="unlock_set_unlock_launch_picker_enable_title">Enable screen lock</string>
+
+    <!--  Summary for PreferenceScreen to changeecurity method: None/Pattern/PIN/Password [CHAR LIMIT=45]  -->
+    <string name="unlock_set_unlock_launch_picker_enable_summary">Choose a method to lock the screen</string>
+
     <!-- Title for preference that disables unlock security [CHAR LIMIT=22] -->
     <string name="unlock_set_unlock_off_title">Off</string>
     <!-- Summary for preference that disables unlock security [CHAR LIMIT=45] -->
@@ -2448,7 +2456,7 @@
 
     <!-- Activity title for battery usage history details -->
     <string name="history_details_title">History details</string>
-    
+
     <!-- Activity title for battery usage details for an app. or power consumer -->
     <string name="details_title">Use details</string>
     <!-- Subtitle for application/subsystem details -->
diff --git a/res/xml/security_settings_chooser.xml b/res/xml/security_settings_chooser.xml
index 095c69f..7b5d9c9 100644
--- a/res/xml/security_settings_chooser.xml
+++ b/res/xml/security_settings_chooser.xml
@@ -26,6 +26,12 @@
             android:summary="@string/unlock_set_unlock_launch_picker_summary"
             android:persistent="false"/>
 
+        <PreferenceScreen
+            android:fragment="com.android.settings.OwnerInfoSettings"
+            android:key="owner_info_settings"
+            android:title="@string/owner_info_settings_title"
+            android:summary="@string/owner_info_settings_summary"/>
+
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/res/xml/security_settings_lockscreen.xml b/res/xml/security_settings_lockscreen.xml
new file mode 100644
index 0000000..f66151d
--- /dev/null
+++ b/res/xml/security_settings_lockscreen.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <PreferenceCategory
+        android:key="security_category"
+        android:title="@string/lock_settings_title">
+
+        <PreferenceScreen
+            android:key="unlock_set_or_change"
+            android:title="@string/unlock_set_unlock_launch_picker_enable_title"
+            android:summary="@string/unlock_set_unlock_launch_picker_enable_summary"
+            android:persistent="false"/>
+
+    </PreferenceCategory>
+
+</PreferenceScreen>
diff --git a/res/xml/security_settings_password.xml b/res/xml/security_settings_password.xml
index 6411091..369f9ce 100644
--- a/res/xml/security_settings_password.xml
+++ b/res/xml/security_settings_password.xml
@@ -25,9 +25,9 @@
             android:title="@string/lock_after_timeout"
             android:summary="@string/lock_after_timeout_summary"
             android:entries="@array/lock_after_timeout_entries"
-            android:entryValues="@array/lock_after_timeout_values" 
+            android:entryValues="@array/lock_after_timeout_values"
             android:persistent="false"/>
-            
+
         <PreferenceScreen
             android:key="unlock_set_or_change"
             android:title="@string/unlock_set_unlock_launch_picker_change_title"
@@ -38,6 +38,12 @@
             android:key="unlock_tactile_feedback"
             android:title="@string/lockpattern_settings_enable_tactile_feedback_title"/>
 
+        <PreferenceScreen
+            android:fragment="com.android.settings.OwnerInfoSettings"
+            android:key="owner_info_settings"
+            android:title="@string/owner_info_settings_title"
+            android:summary="@string/owner_info_settings_summary"/>
+
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/res/xml/security_settings_pattern.xml b/res/xml/security_settings_pattern.xml
index 200c260..4ff9214 100644
--- a/res/xml/security_settings_pattern.xml
+++ b/res/xml/security_settings_pattern.xml
@@ -25,9 +25,9 @@
             android:title="@string/lock_after_timeout"
             android:summary="@string/lock_after_timeout_summary"
             android:entries="@array/lock_after_timeout_entries"
-            android:entryValues="@array/lock_after_timeout_values" 
+            android:entryValues="@array/lock_after_timeout_values"
             android:persistent="false"/>
-            
+
         <PreferenceScreen
             android:key="unlock_set_or_change"
             android:title="@string/unlock_set_unlock_launch_picker_change_title"
@@ -42,6 +42,12 @@
             android:key="unlock_tactile_feedback"
             android:title="@string/lockpattern_settings_enable_tactile_feedback_title"/>
 
+        <PreferenceScreen
+            android:fragment="com.android.settings.OwnerInfoSettings"
+            android:key="owner_info_settings"
+            android:title="@string/owner_info_settings_title"
+            android:summary="@string/owner_info_settings_summary"/>
+
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/res/xml/security_settings_pin.xml b/res/xml/security_settings_pin.xml
index 31fa110..369f9ce 100644
--- a/res/xml/security_settings_pin.xml
+++ b/res/xml/security_settings_pin.xml
@@ -25,9 +25,9 @@
             android:title="@string/lock_after_timeout"
             android:summary="@string/lock_after_timeout_summary"
             android:entries="@array/lock_after_timeout_entries"
-            android:entryValues="@array/lock_after_timeout_values" 
+            android:entryValues="@array/lock_after_timeout_values"
             android:persistent="false"/>
-                
+
         <PreferenceScreen
             android:key="unlock_set_or_change"
             android:title="@string/unlock_set_unlock_launch_picker_change_title"
@@ -38,6 +38,12 @@
             android:key="unlock_tactile_feedback"
             android:title="@string/lockpattern_settings_enable_tactile_feedback_title"/>
 
+        <PreferenceScreen
+            android:fragment="com.android.settings.OwnerInfoSettings"
+            android:key="owner_info_settings"
+            android:title="@string/owner_info_settings_title"
+            android:summary="@string/owner_info_settings_summary"/>
+
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/res/xml/settings_headers.xml b/res/xml/settings_headers.xml
index 5c99c5f..e4b668b 100644
--- a/res/xml/settings_headers.xml
+++ b/res/xml/settings_headers.xml
@@ -151,14 +151,6 @@
         android:icon="@drawable/ic_settings_date_time"
         android:title="@string/date_and_time_settings_title" />
 
-    <!-- Owner info -->
-
-    <header
-        android:id="@+id/owner_info_settings"
-        android:fragment="com.android.settings.OwnerInfoSettings"
-        android:icon="@drawable/ic_settings_about"
-        android:title="@string/owner_info_settings_title" />
-
     <!-- About Device -->
 
     <header
diff --git a/src/com/android/settings/OwnerInfoSettings.java b/src/com/android/settings/OwnerInfoSettings.java
index a6df7e3..77484e4 100644
--- a/src/com/android/settings/OwnerInfoSettings.java
+++ b/src/com/android/settings/OwnerInfoSettings.java
@@ -20,8 +20,6 @@
 import android.content.ContentResolver;
 import android.os.Bundle;
 import android.provider.Settings;
-import android.text.Editable;
-import android.text.TextWatcher;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index 9236013..8666d64 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -58,7 +58,7 @@
 /**
  * Gesture lock pattern settings.
  */
-public class SecuritySettings extends SettingsPreferenceFragment 
+public class SecuritySettings extends SettingsPreferenceFragment
         implements OnPreferenceChangeListener {
     private static final String KEY_UNLOCK_SET_OR_CHANGE = "unlock_set_or_change";
 
@@ -107,11 +107,11 @@
     // This is necessary because the Network Location Provider can change settings
     // if the user does not confirm enabling the provider.
     private ContentQueryMap mContentQueryMap;
-    
+
     private ChooseLockSettingsHelper mChooseLockSettingsHelper;
     private LockPatternUtils mLockPatternUtils;
     private ListPreference mLockAfter;
-    
+
     private SettingsObserver mSettingsObserver;
 
     private final class SettingsObserver implements Observer {
@@ -183,24 +183,30 @@
 
         PreferenceManager pm = getPreferenceManager();
 
-        // Lock screen
+        // Add options for lock/unlock screen
+        int resid = 0;
         if (!mLockPatternUtils.isSecure()) {
-            addPreferencesFromResource(R.xml.security_settings_chooser);
+            if (mLockPatternUtils.isLockScreenDisabled()) {
+                resid = R.xml.security_settings_lockscreen;
+            } else {
+                resid = R.xml.security_settings_chooser;
+            }
         } else {
             switch (mLockPatternUtils.getKeyguardStoredPasswordQuality()) {
                 case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
-                    addPreferencesFromResource(R.xml.security_settings_pattern);
+                    resid = R.xml.security_settings_pattern;
                     break;
                 case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
-                    addPreferencesFromResource(R.xml.security_settings_pin);
+                    resid = R.xml.security_settings_pin;
                     break;
                 case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
                 case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
                 case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX:
-                    addPreferencesFromResource(R.xml.security_settings_password);
+                    resid = R.xml.security_settings_password;
                     break;
             }
         }
+        addPreferencesFromResource(resid);
 
         // lock after preference
         mLockAfter = setupLockAfterPreference(pm);
@@ -276,14 +282,14 @@
     private ListPreference setupLockAfterPreference(PreferenceManager pm) {
         ListPreference result = (ListPreference) pm.findPreference(LOCK_AFTER_TIMEOUT_KEY);
         if (result != null) {
-            int lockAfterValue = Settings.Secure.getInt(getContentResolver(), 
-                    Settings.Secure.LOCK_SCREEN_LOCK_AFTER_TIMEOUT, 
+            int lockAfterValue = Settings.Secure.getInt(getContentResolver(),
+                    Settings.Secure.LOCK_SCREEN_LOCK_AFTER_TIMEOUT,
                     FALLBACK_LOCK_AFTER_TIMEOUT_VALUE);
             result.setValue(String.valueOf(lockAfterValue));
             result.setOnPreferenceChangeListener(this);
             final long adminTimeout = mDPM != null ? mDPM.getMaximumTimeToLock(null) : 0;
             final ContentResolver cr = getContentResolver();
-            final long displayTimeout = Math.max(0, 
+            final long displayTimeout = Math.max(0,
                     Settings.System.getInt(cr, SCREEN_OFF_TIMEOUT, 0));
             if (adminTimeout > 0) {
                 // This setting is a slave to display timeout when a device policy is enforced.
@@ -377,9 +383,12 @@
         } else if (preference == mAssistedGps) {
             Settings.Secure.putInt(getContentResolver(), Settings.Secure.ASSISTED_GPS_ENABLED,
                     mAssistedGps.isChecked() ? 1 : 0);
+        } else {
+            // If we didn't handle it, let preferences handle it.
+            return super.onPreferenceTreeClick(preferenceScreen, preference);
         }
 
-        return false;
+        return true;
     }
 
     /*
@@ -501,7 +510,7 @@
                 Boolean bval = (Boolean)value;
                 mWillEnableEncryptedFS = bval.booleanValue();
                 showSwitchEncryptedFSDialog();
-            } 
+            }
             return true;
         }