Merge "Fix 4686480: Cleanup LockScreen settings"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 5e37d06..d92e14f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -125,10 +125,6 @@
android:value="com.android.settings.wifi.WifiSettings" />
<meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
android:resource="@id/wireless_settings" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_TITLE"
- android:resource="@string/wireless_networks_settings_title" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_CLASS"
- android:value="com.android.settings.Settings$WirelessSettingsActivity" />
</activity>
<activity android:name=".wifi.WifiPickerActivity"
@@ -233,10 +229,6 @@
android:value="com.android.settings.bluetooth.BluetoothSettings" />
<meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
android:resource="@id/wireless_settings" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_TITLE"
- android:resource="@string/wireless_networks_settings_title" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_CLASS"
- android:value="com.android.settings.Settings$WirelessSettingsActivity" />
</activity>
<activity-alias android:name=".bluetooth.AdvancedBluetoothSettings"
@@ -873,10 +865,6 @@
android:value="com.android.settings.DevelopmentSettings" />
<meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
android:resource="@id/application_settings" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_TITLE"
- android:resource="@string/applications_settings_header" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_CLASS"
- android:value="com.android.settings.Settings$ApplicationSettingsActivity" />
</activity>
<activity-alias android:name="DevelopmentSettings"
@@ -894,10 +882,6 @@
android:value="com.android.settings.DevelopmentSettings" />
<meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
android:resource="@id/application_settings" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_TITLE"
- android:resource="@string/applications_settings_header" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_CLASS"
- android:value="com.android.settings.Settings$ApplicationSettingsActivity" />
</activity-alias>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9bde6cd..137b171 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -936,8 +936,8 @@
<!-- Bluetooth settings: The title of the preference (list item) that initiates a scan for devices -->
<string name="bluetooth_preference_scan_title">Scan for devices</string>
- <!-- Bluetooth settings: The title of the preference (list item) that finds nearby devices [CHAR LIMIT=30] -->
- <string name="bluetooth_preference_find_nearby_title">Find nearby devices</string>
+ <!-- Bluetooth settings: The title of the action button that finds nearby devices [CHAR LIMIT=20] -->
+ <string name="bluetooth_preference_find_nearby_title">Scan</string>
<!-- Bluetooth settings: The sub heading for device settings. [CHAR LIMIT=30] -->
<string name="bluetooth_preference_device_settings">Device settings</string>
<!-- Bluetooth settings: The sub heading for paired devices. [CHAR LIMIT=30] -->
@@ -1082,6 +1082,10 @@
<string name="wifi_notify_open_networks">Network notification</string>
<!-- Checkbox summary for option to notify user when open networks are nearby -->
<string name="wifi_notify_open_networks_summary">Notify me when an open network is available</string>
+ <!-- Checkbox title for option to toggle wifi watchdog service -->
+ <string name="wifi_enable_watchdog_service">Wi-Fi Connectivity Checks</string>
+ <!-- Checkbox summary for option to toggle wifi watchdog service -->
+ <string name="wifi_enable_watchdog_service_summary">Detect and manage potential network connectivity problems</string>
<!-- Setting title for setting the wifi sleep policy -->
<string name="wifi_setting_sleep_policy_title">Wi-Fi disconnect policy</string>
<!-- Setting summary for setting the wifi sleep policy -->
@@ -2548,7 +2552,7 @@
<string name="builtin_keyboard_settings_summary">Physical keyboard settings</string>
<!-- Development Settings. the title for the item to take the user to Development settings. Development settings are settings meant for application developers. -->
- <string name="development_settings_title">Development</string>
+ <string name="development_settings_title">Developer options</string>
<!-- Development Settings summary. The summary of the item to take the user to Development settings. Development settings are settings meant for application developers. -->
<string name="development_settings_summary">Set options for application development</string>
<!-- Setting checkbox title for Whether to enable USB debugging support on the phone. -->
diff --git a/res/xml/device_info_settings.xml b/res/xml/device_info_settings.xml
index 492c9d1..4dfc718 100644
--- a/res/xml/device_info_settings.xml
+++ b/res/xml/device_info_settings.xml
@@ -23,7 +23,7 @@
android:summary="@string/system_update_settings_list_item_summary">
<intent android:action="android.settings.SYSTEM_UPDATE_SETTINGS" />
</PreferenceScreen>
-
+
<!-- Device status - launches activity -->
<PreferenceScreen android:key="status_info"
android:title="@string/device_status"
@@ -32,13 +32,6 @@
android:targetPackage="com.android.settings"
android:targetClass="com.android.settings.deviceinfo.Status" />
</PreferenceScreen>
-
- <PreferenceScreen
- android:key="power_usage"
- android:fragment="com.android.settings.fuelgauge.PowerUsageSummary"
- android:title="@string/power_usage_summary_title"
- android:summary="@string/power_usage_summary">
- </PreferenceScreen>
<!-- Legal Information -->
<PreferenceScreen
diff --git a/res/xml/wifi_advanced_settings.xml b/res/xml/wifi_advanced_settings.xml
index 1444de1..d7344b1 100644
--- a/res/xml/wifi_advanced_settings.xml
+++ b/res/xml/wifi_advanced_settings.xml
@@ -24,6 +24,13 @@
android:summary="@string/wifi_notify_open_networks_summary"
android:persistent="false" />
+ <!-- android:dependency="enable_wifi" -->
+ <CheckBoxPreference
+ android:key="wifi_enable_watchdog_service"
+ android:title="@string/wifi_enable_watchdog_service"
+ android:summary="@string/wifi_enable_watchdog_service_summary"
+ android:persistent="false" />
+
<ListPreference
android:key="sleep_policy"
android:title="@string/wifi_setting_sleep_policy_title"
diff --git a/src/com/android/settings/CryptKeeperSettings.java b/src/com/android/settings/CryptKeeperSettings.java
index a9002fa..41a4be5 100644
--- a/src/com/android/settings/CryptKeeperSettings.java
+++ b/src/com/android/settings/CryptKeeperSettings.java
@@ -63,8 +63,14 @@
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0);
+ int invalidCharger = intent.getIntExtra(BatteryManager.EXTRA_INVALID_CHARGER, 0);
+
boolean levelOk = level >= MIN_BATTERY_LEVEL;
- boolean pluggedOk = plugged == BatteryManager.BATTERY_PLUGGED_AC;
+ boolean pluggedOk =
+ (plugged == BatteryManager.BATTERY_PLUGGED_AC ||
+ plugged == BatteryManager.BATTERY_PLUGGED_USB) &&
+ invalidCharger == 0;
+
// Update UI elements based on power/battery status
mInitiateButton.setEnabled(levelOk && pluggedOk);
mPowerWarning.setVisibility(pluggedOk ? View.GONE : View.VISIBLE );
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java
index c3fe955..76f5a8e 100644
--- a/src/com/android/settings/DeviceInfoSettings.java
+++ b/src/com/android/settings/DeviceInfoSettings.java
@@ -40,7 +40,7 @@
public class DeviceInfoSettings extends SettingsPreferenceFragment {
- private static final String TAG = "DeviceInfoSettings";
+ private static final String LOG_TAG = "DeviceInfoSettings";
private static final String KEY_CONTAINER = "container";
private static final String KEY_TEAM = "team";
@@ -128,6 +128,7 @@
try {
startActivity(intent);
} catch (Exception e) {
+ Log.e(LOG_TAG, "Unable to start activity " + intent.toString());
}
}
}
@@ -142,7 +143,7 @@
try {
preferenceGroup.removePreference(findPreference(preference));
} catch (RuntimeException e) {
- Log.d(TAG, "Property '" + property + "' missing and no '"
+ Log.d(LOG_TAG, "Property '" + property + "' missing and no '"
+ preference + "' preference");
}
}
@@ -163,7 +164,7 @@
SystemProperties.get(property,
getResources().getString(R.string.device_info_default)));
} catch (RuntimeException e) {
-
+ // No recovery
}
}
@@ -192,10 +193,10 @@
Matcher m = p.matcher(procVersionStr);
if (!m.matches()) {
- Log.e(TAG, "Regex did not match on /proc/version: " + procVersionStr);
+ Log.e(LOG_TAG, "Regex did not match on /proc/version: " + procVersionStr);
return "Unavailable";
} else if (m.groupCount() < 4) {
- Log.e(TAG, "Regex match on /proc/version only returned " + m.groupCount()
+ Log.e(LOG_TAG, "Regex match on /proc/version only returned " + m.groupCount()
+ " groups");
return "Unavailable";
} else {
@@ -204,7 +205,7 @@
.append(m.group(4))).toString();
}
} catch (IOException e) {
- Log.e(TAG,
+ Log.e(LOG_TAG,
"IO Exception when getting kernel version for Device Info screen",
e);
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index f07d965..c63d061 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -76,12 +76,13 @@
@Override
protected void onCreate(Bundle savedInstanceState) {
+ setTheme(android.R.style.Theme_Holo_SplitActionBarWhenNarrow);
getMetaData();
mInLocalHeaderSwitch = true;
super.onCreate(savedInstanceState);
mInLocalHeaderSwitch = false;
- if (isMultiPane()) {
+ if (!onIsHidingHeaders() && onIsMultiPane()) {
highlightHeader();
// Force the title so that it doesn't get overridden by a direct launch of
// a specific settings screen.
@@ -107,6 +108,10 @@
}
});
}
+
+ // TODO Add support for android.R.id.home in all Setting's onOptionsItemSelected
+ // getActionBar().setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP,
+ // ActionBar.DISPLAY_HOME_AS_UP);
}
@Override
@@ -193,7 +198,7 @@
// If it is not launched from history, then reset to top-level
if ((intent.getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) == 0
- && mFirstHeader != null && isMultiPane()) {
+ && mFirstHeader != null && !onIsHidingHeaders() && onIsMultiPane()) {
switchToHeaderLocal(mFirstHeader);
}
}
@@ -211,7 +216,9 @@
public Intent getIntent() {
Intent superIntent = super.getIntent();
String startingFragment = getStartingFragmentClass(superIntent);
- if (startingFragment != null && !isMultiPane()) {
+ // This is called from super.onCreate, isMultiPane() is not yet reliable
+ // Do not use onIsHidingHeaders either, which relies itself on this method
+ if (startingFragment != null && !onIsMultiPane()) {
Intent modIntent = new Intent(superIntent);
modIntent.putExtra(EXTRA_SHOW_FRAGMENT, startingFragment);
Bundle args = superIntent.getExtras();
diff --git a/src/com/android/settings/TextToSpeechSettings.java b/src/com/android/settings/TextToSpeechSettings.java
index f7945d8..d76f08f 100644
--- a/src/com/android/settings/TextToSpeechSettings.java
+++ b/src/com/android/settings/TextToSpeechSettings.java
@@ -26,15 +26,12 @@
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.ContentResolver;
-import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
-import android.content.pm.PackageManager;
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
-import android.preference.PreferenceGroup;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.speech.tts.TextToSpeech;
@@ -695,13 +692,16 @@
mTts = new TextToSpeech(getActivity().getApplicationContext(), this, engine);
mEnableDemo = false;
mVoicesMissing = false;
- updateWidgetState();
- checkVoiceData();
- // Finally, persist this value to settings.
+ // Persist this value to settings and update the UI before we check
+ // voice data because if the TTS class connected without any exception, "engine"
+ // will be the default engine irrespective of whether the voice check
+ // passes or not.
Settings.Secure.putString(getContentResolver(), TTS_DEFAULT_SYNTH, engine);
- // .. and update the UI.
mDefaultSynthPref.setValue(engine);
+ updateWidgetState();
+
+ checkVoiceData();
Log.v(TAG, "The default synth is now: " + engine);
}
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index 9c90b20..f20ad78 100644
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -40,9 +40,8 @@
public final class BluetoothSettings extends DeviceListPreferenceFragment {
private static final String TAG = "BluetoothSettings";
- private static final int MENU_ID_MAKE_DISCOVERABLE = Menu.FIRST;
- private static final int MENU_ID_SCAN = Menu.FIRST + 1;
- private static final int MENU_ID_ADVANCED = Menu.FIRST + 2;
+ private static final int MENU_ID_SCAN = Menu.FIRST;
+ private static final int MENU_ID_ADVANCED = Menu.FIRST + 1;
private BluetoothEnabler mBluetoothEnabler;
@@ -80,8 +79,6 @@
activity.getActionBar().setSubtitle(mLocalAdapter.getName());
}
- // TODO activity.setTheme(android.R.style.Theme_Holo_SplitActionBarWhenNarrow);
-
setHasOptionsMenu(true);
}
@@ -104,23 +101,22 @@
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
boolean bluetoothIsEnabled = mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON;
- menu.add(Menu.NONE, MENU_ID_MAKE_DISCOVERABLE, 0, R.string.bluetooth_visibility)
- .setEnabled(bluetoothIsEnabled);
menu.add(Menu.NONE, MENU_ID_SCAN, 0, R.string.bluetooth_preference_find_nearby_title)
- .setIcon(R.drawable.ic_menu_scan_network).setEnabled(bluetoothIsEnabled);
+ //.setIcon(R.drawable.ic_menu_scan_network)
+ .setEnabled(bluetoothIsEnabled)
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(Menu.NONE, MENU_ID_ADVANCED, 0, R.string.bluetooth_menu_advanced)
- .setIcon(android.R.drawable.ic_menu_manage);
+ //.setIcon(android.R.drawable.ic_menu_manage)
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
- case MENU_ID_MAKE_DISCOVERABLE:
// TODO
// if (mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON) {
// onAddNetworkPressed();
// }
- return true;
case MENU_ID_SCAN:
if (mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON) {
mLocalAdapter.startScanning(true);
diff --git a/src/com/android/settings/wifi/AdvancedSettings.java b/src/com/android/settings/wifi/AdvancedSettings.java
index 4855c99..cd7b8a3 100644
--- a/src/com/android/settings/wifi/AdvancedSettings.java
+++ b/src/com/android/settings/wifi/AdvancedSettings.java
@@ -43,6 +43,7 @@
private static final String KEY_FREQUENCY_BAND = "frequency_band";
private static final String KEY_NOTIFY_OPEN_NETWORKS = "notify_open_networks";
private static final String KEY_SLEEP_POLICY = "sleep_policy";
+ private static final String KEY_ENABLE_WIFI_WATCHDOG = "wifi_enable_watchdog_service";
private WifiManager mWifiManager;
@@ -72,6 +73,13 @@
Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 0) == 1);
notifyOpenNetworks.setEnabled(mWifiManager.isWifiEnabled());
+ CheckBoxPreference watchdogEnabled =
+ (CheckBoxPreference) findPreference(KEY_ENABLE_WIFI_WATCHDOG);
+ watchdogEnabled.setChecked(Secure.getInt(getContentResolver(),
+ Secure.WIFI_WATCHDOG_ON, 1) == 1);
+
+ watchdogEnabled.setEnabled(mWifiManager.isWifiEnabled());
+
ListPreference frequencyPref = (ListPreference) findPreference(KEY_FREQUENCY_BAND);
if (mWifiManager.isDualBandSupported()) {
@@ -111,12 +119,17 @@
Secure.putInt(getContentResolver(),
Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON,
((CheckBoxPreference) preference).isChecked() ? 1 : 0);
+ } else if (KEY_ENABLE_WIFI_WATCHDOG.equals(key)) {
+ Secure.putInt(getContentResolver(),
+ Secure.WIFI_WATCHDOG_ON,
+ ((CheckBoxPreference) preference).isChecked() ? 1 : 0);
} else {
return super.onPreferenceTreeClick(screen, preference);
}
return true;
}
+ @Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey();
diff --git a/src/com/android/settings/wifi/AdvancedWifiSettings.java b/src/com/android/settings/wifi/AdvancedWifiSettings.java
index 1da8b68..bc92b3a 100644
--- a/src/com/android/settings/wifi/AdvancedWifiSettings.java
+++ b/src/com/android/settings/wifi/AdvancedWifiSettings.java
@@ -76,6 +76,7 @@
}
}
+ @Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey();
if (key == null) return true;
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index a829602..549e695 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -253,11 +253,16 @@
if (!mInXlSetupWizard) {
final boolean wifiIsEnabled = mWifiManager.isWifiEnabled();
menu.add(Menu.NONE, MENU_ID_SCAN, 0, R.string.wifi_menu_scan)
- .setIcon(R.drawable.ic_menu_scan_network).setEnabled(wifiIsEnabled);
+ //.setIcon(R.drawable.ic_menu_scan_network)
+ .setEnabled(wifiIsEnabled)
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(Menu.NONE, MENU_ID_ADD_NETWORK, 0, R.string.wifi_add_network)
- .setIcon(android.R.drawable.ic_menu_add).setEnabled(wifiIsEnabled);
+ //.setIcon(android.R.drawable.ic_menu_add)
+ .setEnabled(wifiIsEnabled)
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(Menu.NONE, MENU_ID_ADVANCED, 0, R.string.wifi_menu_advanced)
- .setIcon(android.R.drawable.ic_menu_manage);
+ //.setIcon(android.R.drawable.ic_menu_manage)
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
super.onCreateOptionsMenu(menu, inflater);
}