Merge "Change wifi sleep policy" into honeycomb
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index ce70f87..17c2fcd 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -714,7 +714,8 @@
         <!-- Lock screen settings -->
         <activity android:name="ConfirmLockPattern"/>
 
-        <activity android:name="ConfirmLockPassword"/>
+        <activity android:name="ConfirmLockPassword"
+            android:windowSoftInputMode="stateUnchanged|adjustResize"/>
 
         <activity android:name="ChooseLockGeneric"
             android:label="@string/lockpassword_choose_lock_generic_header">
@@ -726,7 +727,8 @@
 
         <activity android:name="ChooseLockPattern" android:exported="false"/>
 
-        <activity android:name="ChooseLockPassword" android:exported="false"/>
+        <activity android:name="ChooseLockPassword" android:exported="false"
+            android:windowSoftInputMode="stateUnchanged|adjustResize"/>
 
         <activity android:name="ChooseLockPatternTutorial" android:exported="false"/>
 
diff --git a/res/layout-xlarge-land/choose_lock_password.xml b/res/layout-xlarge-land/choose_lock_password.xml
index 5f7cfaf..586e7d5 100644
--- a/res/layout-xlarge-land/choose_lock_password.xml
+++ b/res/layout-xlarge-land/choose_lock_password.xml
@@ -25,7 +25,7 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginTop="72dip"
+        android:layout_marginTop="20dip"
         android:orientation="horizontal">
 
         <!-- "Enter PIN(Password) to unlock" -->
diff --git a/res/layout-xlarge-land/confirm_lock_password.xml b/res/layout-xlarge-land/confirm_lock_password.xml
index d03923e..7ae8944 100644
--- a/res/layout-xlarge-land/confirm_lock_password.xml
+++ b/res/layout-xlarge-land/confirm_lock_password.xml
@@ -26,7 +26,7 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginTop="72dip"
+        android:layout_marginTop="20dip"
         android:orientation="horizontal">
 
         <!-- "Enter PIN(Password) to unlock" -->
diff --git a/res/layout-xlarge/date_time_settings_setupwizard.xml b/res/layout-xlarge/date_time_settings_setupwizard.xml
index 0b5d6bf..73aba01 100644
--- a/res/layout-xlarge/date_time_settings_setupwizard.xml
+++ b/res/layout-xlarge/date_time_settings_setupwizard.xml
@@ -18,7 +18,7 @@
     android:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:paddingTop="96dip"
+    android:paddingTop="160dip"
     android:paddingLeft="128dip"
     android:paddingRight="128dip"
     android:paddingBottom="96dip">
@@ -41,7 +41,7 @@
     <View
         android:id="@+id/top_divider"
         android:layout_width="match_parent"
-        android:layout_height="1px"
+        android:layout_height="3dip"
         android:layout_below="@id/title"
         android:background="@color/divider_color" />
 
diff --git a/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml b/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
index 4bc3d1c..d3af1f8 100644
--- a/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
+++ b/res/layout-xlarge/wifi_settings_for_setup_wizard_xl.xml
@@ -20,8 +20,8 @@
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:paddingTop="120dip"
-    android:paddingLeft="96dip"
-    android:paddingRight="96dip"
+    android:paddingLeft="128dip"
+    android:paddingRight="128dip"
     android:paddingBottom="0dip" >
 
     <RelativeLayout
diff --git a/res/values-xlarge/colors.xml b/res/values-xlarge/colors.xml
index 414f7c2..4447333 100644
--- a/res/values-xlarge/colors.xml
+++ b/res/values-xlarge/colors.xml
@@ -18,5 +18,5 @@
 -->
 
 <resources>
-    <color name="divider_color">#ff666666</color>
+    <color name="divider_color">#20ffffff</color>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index a358070..7012440 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -580,7 +580,7 @@
 
     <!-- Security Picker --><skip />
     <!--  Title for security picker to choose the unlock method: None/Pattern/PIN/Password [CHAR LIMIT=22] -->
-    <string name="lock_settings_picker_title">Screen unlock security</string>
+    <string name="lock_settings_picker_title">Configure lock screen</string>
 
     <!--  Main Security lock settings --><skip />
     <!--  Title for PreferenceScreen to launch picker for security method when there is none [CHAR LIMIT=22] -->
@@ -1381,8 +1381,10 @@
     <string name="device_status_activity_title">Status</string>
     <!-- About phone screen, title of the item to go into the Phone status screen -->
     <string name="device_status">Status</string>
+    <!-- About tablet screen, summary of the item that takes you to tablet status screen -->
+    <string name="device_status_summary" product="tablet">Status of the battery, network, and other information</string>
     <!-- About phone screen, summary of the item to go into the phone status screen -->
-    <string name="device_status_summary">Phone number, signal, etc.</string>
+    <string name="device_status_summary" product="default">Phone number, signal, etc.</string>
     <!-- Main settings screen item's title to go into the storage settings screen [CHAR LIMIT=25] -->
     <string name="storage_settings" >Storage</string>
     <!-- Storage settings screen title -->
@@ -2943,7 +2945,7 @@
 
     <!-- Wifi Setup For Setup Wizard with XL screen -->
     <!-- Title shown in Wifi Setup For Setup Wizard with XL screen -->
-    <string name="wifi_setup_title">WiFi setup</string>
+    <string name="wifi_setup_title">Wi-Fi setup</string>
     <!-- Text message shown when Wifi is not connected.
          Used in Wifi Setup For Setup Wizard with XL screen. -->
     <string name="wifi_setup_not_connected">Not connected</string>
diff --git a/res/xml/application_settings.xml b/res/xml/application_settings.xml
index 9042ba9..a06377d 100644
--- a/res/xml/application_settings.xml
+++ b/res/xml/application_settings.xml
@@ -34,6 +34,7 @@
         android:entries="@array/app_install_location_entries"
         android:entryValues="@array/app_install_location_values"/>
 
+    <!-- Disabled quick launch settings pending UI redesign.
     <PreferenceScreen
             android:key="quick_launch"
             android:title="@string/quick_launch_title"
@@ -42,7 +43,8 @@
                 android:targetPackage="com.android.settings"
                 android:targetClass="com.android.settings.quicklaunch.QuickLaunchSettings" />
     </PreferenceScreen>
-        
+    -->
+
     <PreferenceScreen
             android:fragment="com.android.settings.applications.ManageApplications"
             android:title="@string/manageapplications_settings_title"
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
index b8db82e..1bebebb 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/ChooseLockPassword.java
@@ -218,8 +218,8 @@
             // Update the breadcrumb (title) if this is embedded in a PreferenceActivity
             if (activity instanceof PreferenceActivity) {
                 final PreferenceActivity preferenceActivity = (PreferenceActivity) activity;
-                int id = mIsAlphaMode ? R.string.lockpassword_confirm_your_password_header
-                        : R.string.lockpassword_confirm_your_pin_header;
+                int id = mIsAlphaMode ? R.string.lockpassword_choose_your_password_header
+                        : R.string.lockpassword_choose_your_pin_header;
                 CharSequence title = getText(id);
                 preferenceActivity.showBreadCrumbs(title, title);
             }
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index aa5decb..54f9fb1 100644
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -286,7 +286,8 @@
     public void onDeviceAdded(CachedBluetoothDevice cachedDevice) {
 
         if (mDevicePreferenceMap.get(cachedDevice) != null) {
-            throw new IllegalStateException("Got onDeviceAdded, but cachedDevice already exists");
+            Log.e(TAG, "Got onDeviceAdded, but cachedDevice already exists");
+            return;
         }
 
         if (mScreenType != SCREEN_TYPE_SETTINGS
diff --git a/src/com/android/settings/deviceinfo/Status.java b/src/com/android/settings/deviceinfo/Status.java
index 99a8975..e443c1d 100644
--- a/src/com/android/settings/deviceinfo/Status.java
+++ b/src/com/android/settings/deviceinfo/Status.java
@@ -43,6 +43,7 @@
 import com.android.internal.telephony.PhoneStateIntentReceiver;
 import com.android.internal.telephony.TelephonyProperties;
 import com.android.settings.R;
+import com.android.settings.Utils;
 
 import java.lang.ref.WeakReference;
 
@@ -62,8 +63,22 @@
  */
 public class Status extends PreferenceActivity {
 
+    private static final String KEY_SERVICE_STATE = "service_state";
+    private static final String KEY_OPERATOR_NAME = "operator_name";
+    private static final String KEY_ROAMING_STATE = "roaming_state";
+    private static final String KEY_NETWORK_TYPE = "network_type";
+    private static final String KEY_PHONE_NUMBER = "number";
+    private static final String KEY_IMEI_SV = "imei_sv";
+    private static final String KEY_IMEI = "imei";
+    private static final String KEY_PRL_VERSION = "prl_version";
+    private static final String KEY_MIN_NUMBER = "min_number";
+    private static final String KEY_MEID_NUMBER = "meid_number";
+    private static final String KEY_SIGNAL_STRENGTH = "signal_strength";
+    private static final String KEY_BATTERY_STATUS = "battery_status";
+    private static final String KEY_BATTERY_LEVEL = "battery_level";
     private static final String KEY_WIFI_MAC_ADDRESS = "wifi_mac_address";
     private static final String KEY_BT_ADDRESS = "bt_address";
+
     private static final int EVENT_SIGNAL_STRENGTH_CHANGED = 200;
     private static final int EVENT_SERVICE_STATE_CHANGED = 300;
 
@@ -166,69 +181,59 @@
         Preference removablePref;
 
         mHandler = new MyHandler(this);
-        
+
         mTelephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
 
         addPreferencesFromResource(R.xml.device_info_status);
-        mBatteryLevel = findPreference("battery_level");
-        mBatteryStatus = findPreference("battery_status");
-        
+        mBatteryLevel = findPreference(KEY_BATTERY_LEVEL);
+        mBatteryStatus = findPreference(KEY_BATTERY_STATUS);
+
         mRes = getResources();
         if (sUnknown == null) {
             sUnknown = mRes.getString(R.string.device_info_default);
         }
-        
+
         mPhone = PhoneFactory.getDefaultPhone();
         // Note - missing in zaku build, be careful later...
-        mSignalStrength = findPreference("signal_strength");			
+        mSignalStrength = findPreference(KEY_SIGNAL_STRENGTH);
         mUptime = findPreference("up_time");
-        
+
         //NOTE "imei" is the "Device ID" since it represents the IMEI in GSM and the MEID in CDMA
         if (mPhone.getPhoneName().equals("CDMA")) {
-            setSummaryText("meid_number", mPhone.getMeid());
-            setSummaryText("min_number", mPhone.getCdmaMin());
-            setSummaryText("prl_version", mPhone.getCdmaPrlVersion());
+            setSummaryText(KEY_MEID_NUMBER, mPhone.getMeid());
+            setSummaryText(KEY_MIN_NUMBER, mPhone.getCdmaMin());
+            setSummaryText(KEY_PRL_VERSION, mPhone.getCdmaPrlVersion());
 
             // device is not GSM/UMTS, do not display GSM/UMTS features
             // check Null in case no specified preference in overlay xml
-            removablePref = findPreference("imei");
-            if (removablePref != null) {
-                getPreferenceScreen().removePreference(removablePref);
-            }
-            removablePref = findPreference("imei_sv");
-            if (removablePref != null) {
-                getPreferenceScreen().removePreference(removablePref);
-            }
+            removePreferenceFromScreen(KEY_IMEI);
+            removePreferenceFromScreen(KEY_IMEI_SV);
         } else {
-            setSummaryText("imei", mPhone.getDeviceId());
+            setSummaryText(KEY_IMEI, mPhone.getDeviceId());
 
-            setSummaryText("imei_sv",
+            setSummaryText(KEY_IMEI_SV,
                     ((TelephonyManager) getSystemService(TELEPHONY_SERVICE))
                         .getDeviceSoftwareVersion());
 
             // device is not CDMA, do not display CDMA features
             // check Null in case no specified preference in overlay xml
-            removablePref = findPreference("prl_version");
-            if (removablePref != null) {
-                getPreferenceScreen().removePreference(removablePref);
-            }
-            removablePref = findPreference("meid_number");
-            if (removablePref != null) {
-                getPreferenceScreen().removePreference(removablePref);
-            }
-            removablePref = findPreference("min_number");
-            if (removablePref != null) {
-                getPreferenceScreen().removePreference(removablePref);
-            }
+            removePreferenceFromScreen(KEY_PRL_VERSION);
+            removePreferenceFromScreen(KEY_MEID_NUMBER);
+            removePreferenceFromScreen(KEY_MIN_NUMBER);
         }
 
-        String rawNumber = mPhone.getLine1Number();  // may be null or empty
-        String formattedNumber = null;
-        if (!TextUtils.isEmpty(rawNumber)) {
-            formattedNumber = PhoneNumberUtils.formatNumber(rawNumber);
+        // Remove the phone number preference if the device is not voice capable.
+        if (!Utils.isVoiceCapable(this)) {
+            removePreferenceFromScreen(KEY_PHONE_NUMBER);
+        } else {
+            String rawNumber = mPhone.getLine1Number();  // may be null or empty
+            String formattedNumber = null;
+            if (!TextUtils.isEmpty(rawNumber)) {
+                formattedNumber = PhoneNumberUtils.formatNumber(rawNumber);
+            }
+            // If formattedNumber is null or empty, it'll display as "Unknown".
+            setSummaryText(KEY_PHONE_NUMBER, formattedNumber);
         }
-        // If formattedNumber is null or empty, it'll display as "Unknown".
-        setSummaryText("number", formattedNumber);
 
         mPhoneStateReceiver = new PhoneStateIntentReceiver(this, mHandler);
         mPhoneStateReceiver.notifySignalStrength(EVENT_SIGNAL_STRENGTH_CHANGED);
@@ -237,7 +242,7 @@
         setWifiStatus();
         setBtStatus();
     }
-    
+
     @Override
     protected void onResume() {
         super.onResume();
@@ -266,6 +271,17 @@
     }
 
     /**
+     * Removes the specified preference, if it exists.
+     * @param key the key for the Preference item
+     */
+    private void removePreferenceFromScreen(String key) {
+        Preference pref = findPreference(key);
+        if (pref != null) {
+            getPreferenceScreen().removePreference(pref);
+        }
+    }
+
+    /**
      * @param preference The key for the Preference item
      * @param property The system property to fetch
      * @param alt The default value, if the property doesn't exist
@@ -291,7 +307,7 @@
     
     private void updateNetworkType() {
         // Whether EDGE, UMTS, etc...
-        setSummary("network_type", TelephonyProperties.PROPERTY_DATA_NETWORK_TYPE, sUnknown);
+        setSummary(KEY_NETWORK_TYPE, TelephonyProperties.PROPERTY_DATA_NETWORK_TYPE, sUnknown);
     }
     
     private void updateDataState() {
@@ -333,14 +349,14 @@
                 break;
         }
         
-        setSummaryText("service_state", display);
+        setSummaryText(KEY_SERVICE_STATE, display);
         
         if (serviceState.getRoaming()) {
-            setSummaryText("roaming_state", mRes.getString(R.string.radioInfo_roaming_in));
+            setSummaryText(KEY_ROAMING_STATE, mRes.getString(R.string.radioInfo_roaming_in));
         } else {
-            setSummaryText("roaming_state", mRes.getString(R.string.radioInfo_roaming_not));
+            setSummaryText(KEY_ROAMING_STATE, mRes.getString(R.string.radioInfo_roaming_not));
         }
-        setSummaryText("operator_name", serviceState.getOperatorAlphaLong());
+        setSummaryText(KEY_OPERATOR_NAME, serviceState.getOperatorAlphaLong());
     }
     
     void updateSignalStrength() {