diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 9bfeb1309d4..750b0835719 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -241,4 +241,18 @@ GTC + + + Off + Alert + Vibrate + + + + + 0 + 1 + 2 + + diff --git a/res/values/strings.xml b/res/values/strings.xml index b57726eecbe..a644e8e624a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -965,7 +965,7 @@ Status - IMEI, phone number, signal, etc. + Phone number, signal, etc. SD card & phone storage @@ -975,7 +975,13 @@ IMEI SV - Phone number + My phone number + + MIN + + PRL Version + + MEID Mobile network type @@ -1885,4 +1891,9 @@ found in the list of installed applications. VPN VPN Set up & manage VPN configurations, connections + + + Emergency tone + + Set behavior when an emergency call is placed diff --git a/res/xml/device_info_status.xml b/res/xml/device_info_status.xml index 2d4c772391f..dee606d6fb8 100644 --- a/res/xml/device_info_status.xml +++ b/res/xml/device_info_status.xml @@ -32,6 +32,24 @@ android:title="@string/status_number" android:summary="@string/device_info_not_available" android:persistent="false" /> + + + + + + + + diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index c9c6c4b573c..bb35f70ad3b 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -41,6 +41,7 @@ import android.text.method.LinkMovementMethod; import android.widget.TextView; import com.android.internal.widget.LockPatternUtils; +import android.telephony.TelephonyManager; import java.util.Observable; import java.util.Observer; @@ -169,18 +170,24 @@ public class SecuritySettings extends PreferenceActivity implements mChoosePattern.setIntent(intent); inlinePrefCat.addPreference(mChoosePattern); - PreferenceScreen simLockPreferences = getPreferenceManager() - .createPreferenceScreen(this); - simLockPreferences.setTitle(R.string.sim_lock_settings_category); - // Intent to launch SIM lock settings - intent = new Intent(); - intent.setClassName("com.android.settings", "com.android.settings.IccLockSettings"); - simLockPreferences.setIntent(intent); + int activePhoneType = TelephonyManager.getDefault().getPhoneType(); + + // do not display SIM lock for CDMA phone + if (TelephonyManager.PHONE_TYPE_CDMA != activePhoneType) + { + PreferenceScreen simLockPreferences = getPreferenceManager() + .createPreferenceScreen(this); + simLockPreferences.setTitle(R.string.sim_lock_settings_category); + // Intent to launch SIM lock settings + intent = new Intent(); + intent.setClassName("com.android.settings", "com.android.settings.IccLockSettings"); + simLockPreferences.setIntent(intent); - PreferenceCategory simLockCat = new PreferenceCategory(this); - simLockCat.setTitle(R.string.sim_lock_settings_title); - root.addPreference(simLockCat); - simLockCat.addPreference(simLockPreferences); + PreferenceCategory simLockCat = new PreferenceCategory(this); + simLockCat.setTitle(R.string.sim_lock_settings_title); + root.addPreference(simLockCat); + simLockCat.addPreference(simLockPreferences); + } // Passwords PreferenceCategory passwordsCat = new PreferenceCategory(this); diff --git a/src/com/android/settings/SoundAndDisplaySettings.java b/src/com/android/settings/SoundAndDisplaySettings.java index 41114506a9d..3d3a5d0606e 100644 --- a/src/com/android/settings/SoundAndDisplaySettings.java +++ b/src/com/android/settings/SoundAndDisplaySettings.java @@ -37,6 +37,7 @@ import android.preference.CheckBoxPreference; import android.provider.Settings; import android.util.Log; import android.view.IWindowManager; +import android.telephony.TelephonyManager; public class SoundAndDisplaySettings extends PreferenceActivity implements Preference.OnPreferenceChangeListener { @@ -44,6 +45,7 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements /** If there is no setting in the provider, use this. */ private static final int FALLBACK_SCREEN_TIMEOUT_VALUE = 30000; + private static final int FALLBACK_EMERGENCY_TONE_VALUE = 0; private static final String KEY_SILENT = "silent"; private static final String KEY_VIBRATE = "vibrate"; @@ -54,6 +56,7 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements private static final String KEY_ACCELEROMETER = "accelerometer"; private static final String KEY_PLAY_MEDIA_NOTIFICATION_SOUNDS = "play_media_notification_sounds"; private static final String KEY_COMPATIBILITY_MODE = "compatibility_mode"; + private static final String KEY_EMERGENCY_TONE ="emergency_tone"; private CheckBoxPreference mSilent; @@ -91,6 +94,7 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ContentResolver resolver = getContentResolver(); + int activePhoneType = TelephonyManager.getDefault().getPhoneType(); mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); mWindowManager = IWindowManager.Stub.asInterface(ServiceManager.getService("window")); @@ -99,6 +103,11 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements addPreferencesFromResource(R.xml.sound_and_display_settings); + if (TelephonyManager.PHONE_TYPE_CDMA != activePhoneType) { + // device is not CDMA, do not display CDMA emergency_tone + getPreferenceScreen().removePreference(findPreference(KEY_EMERGENCY_TONE)); + } + mSilent = (CheckBoxPreference) findPreference(KEY_SILENT); mPlayMediaNotificationSounds = (CheckBoxPreference) findPreference(KEY_PLAY_MEDIA_NOTIFICATION_SOUNDS); @@ -125,6 +134,14 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements screenTimeoutPreference.setValue(String.valueOf(Settings.System.getInt( resolver, SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE))); screenTimeoutPreference.setOnPreferenceChangeListener(this); + + if (TelephonyManager.PHONE_TYPE_CDMA == activePhoneType) { + ListPreference emergencyTonePreference = + (ListPreference) findPreference(KEY_EMERGENCY_TONE); + emergencyTonePreference.setValue(String.valueOf(Settings.System.getInt( + resolver, Settings.System.EMERGENCY_TONE, FALLBACK_EMERGENCY_TONE_VALUE))); + emergencyTonePreference.setOnPreferenceChangeListener(this); + } } @Override @@ -273,6 +290,14 @@ public class SoundAndDisplaySettings extends PreferenceActivity implements } catch (NumberFormatException e) { Log.e(TAG, "could not persist screen timeout setting", e); } + } else if (KEY_EMERGENCY_TONE.equals(preference.getKey())) { + int value = Integer.parseInt((String) objValue); + try { + Settings.System.putInt(getContentResolver(), + Settings.System.EMERGENCY_TONE, value); + } catch (NumberFormatException e) { + Log.e(TAG, "could not persist emergency tone setting", e); + } } return true; diff --git a/src/com/android/settings/deviceinfo/Status.java b/src/com/android/settings/deviceinfo/Status.java index 09fd461689b..4b1cbbf5309 100644 --- a/src/com/android/settings/deviceinfo/Status.java +++ b/src/com/android/settings/deviceinfo/Status.java @@ -182,11 +182,27 @@ public class Status extends PreferenceActivity { mUptime = findPreference("up_time"); //NOTE "imei" is the "Device ID" since it represents the IMEI in GSM and the MEID in CDMA - setSummaryText("imei", mPhone.getDeviceId()); - - setSummaryText("imei_sv", - ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)) + if (mPhone.getPhoneName().equals("CDMA")) { + setSummaryText("meid_number", mPhone.getMeid()); + setSummaryText("min_number", mPhone.getCdmaMin()); + setSummaryText("prl_version", mPhone.getCdmaPrlVersion()); + + // device is not GSM/UMTS, do not display GSM/UMTS features + getPreferenceScreen().removePreference(findPreference("imei")); + getPreferenceScreen().removePreference(findPreference("imei_sv")); + } else { + setSummaryText("imei", mPhone.getDeviceId()); + + setSummaryText("imei_sv", + ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)) .getDeviceSoftwareVersion()); + + // device is not CDMA, do not display CDMA features + getPreferenceScreen().removePreference(findPreference("prl_version")); + getPreferenceScreen().removePreference(findPreference("meid_number")); + getPreferenceScreen().removePreference(findPreference("min_number")); + } + setSummaryText("number", mPhone.getLine1Number()); mPhoneStateReceiver = new PhoneStateIntentReceiver(this, mHandler);