summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/settings/SecuritySettings.java23
-rw-r--r--src/com/android/settings/bluetooth/BluetoothSettings.java3
-rw-r--r--src/com/android/settings/deviceinfo/Status.java104
3 files changed, 85 insertions, 45 deletions
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index eea98b4..704eacd 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -212,6 +212,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
// lock after preference
mLockAfter = setupLockAfterPreference(pm);
+ updateLockAfterPreferenceSummary();
// visible pattern
mVisiblePattern = (CheckBoxPreference) pm.findPreference(KEY_VISIBLE_PATTERN);
@@ -303,6 +304,27 @@ public class SecuritySettings extends SettingsPreferenceFragment
return result;
}
+ private void updateLockAfterPreferenceSummary() {
+ // Not all security types have a "lock after" preference, so ignore those that don't.
+ if (mLockAfter == null) return;
+
+ // Update summary message with current value
+ long currentTimeout = Settings.Secure.getLong(getContentResolver(),
+ Settings.Secure.LOCK_SCREEN_LOCK_AFTER_TIMEOUT, 0);
+ final CharSequence[] entries = mLockAfter.getEntries();
+ final CharSequence[] values = mLockAfter.getEntryValues();
+ int best = 0;
+ for (int i = 0; i < values.length; i++) {
+ long timeout = Long.valueOf(values[i].toString());
+ if (currentTimeout >= timeout) {
+ best = i;
+ }
+ }
+ String summary = mLockAfter.getContext()
+ .getString(R.string.lock_after_timeout_summary, entries[best]);
+ mLockAfter.setSummary(summary);
+ }
+
private static void disableUnusableTimeouts(ListPreference pref, long maxTimeout) {
final CharSequence[] entries = pref.getEntries();
final CharSequence[] values = pref.getEntryValues();
@@ -788,6 +810,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
} catch (NumberFormatException e) {
Log.e("SecuritySettings", "could not persist lockAfter timeout setting", e);
}
+ updateLockAfterPreferenceSummary();
} else if (preference == mUseLocation) {
boolean newValue = value == null ? false : (Boolean) value;
GoogleLocationSettingHelper.setUseLocationForServices(getActivity(), newValue);
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 class BluetoothSettings extends SettingsPreferenceFragment
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.PhoneFactory;
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 @@ import java.lang.ref.WeakReference;
*/
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 @@ public class Status extends PreferenceActivity {
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 @@ public class Status extends PreferenceActivity {
setWifiStatus();
setBtStatus();
}
-
+
@Override
protected void onResume() {
super.onResume();
@@ -266,6 +271,17 @@ public class Status extends PreferenceActivity {
}
/**
+ * 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 @@ public class Status extends PreferenceActivity {
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 @@ public class Status extends PreferenceActivity {
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() {