Revise Call Settings in Telephony.
- Deleting settings/strings which have been moved to Dialer.
+ Delete DefaultRingtonePreference (moved to Dialer).
+ Move some methods into PhoneCommon, where they can be common utils.
+ Move SIP settings off the main call settings page into a
preference screen.
Bug: 16788935
Change-Id: Ic9171d5d06d98a8556cdb38477668d8e7e2d07f6
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c343deb..0745ad7 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1139,11 +1139,6 @@
on this device. [CHAR LIMIT=40] -->
<string name="not_voice_capable">Voice calling not supported</string>
- <!-- Title of settings screen for managing the "Respond via SMS" feature. [CHAR LIMIT=30] -->
- <string name="respond_via_sms_setting_title">Quick responses</string>
- <!-- Settings summary string for the "Respond via SMS" feature. [CHAR LIMIT=40] -->
- <string name="respond_via_sms_setting_summary"></string>
-
<!-- String describing the Dial ImageButton
Used by AccessibilityService to announce the purpose of the button.
@@ -1161,12 +1156,6 @@
[CHAR LIMIT=30] -->
<string name="voicemail_notification_ringtone_title">Sound</string>
- <!-- The string used to describe a notification if it is the default one in the system. For
- example, if the user selects the default notification, it will appear as something like
- Default sound(Capella) in the notification summary.
- [CHAR LIMIT=40] -->
- <string name="default_notification_description">Default sound (<xliff:g id="default_sound_title">%1$s</xliff:g>)</string>
-
<!-- The default value value for voicemail notification. -->
<string name="voicemail_notification_vibrate_when_default" translatable="false">never</string>
@@ -1177,18 +1166,6 @@
<item>never</item>
</string-array>
- <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
- <string name="ringtone_title" msgid="5379026328015343686">Phone ringtone</string>
-
- <!-- Setting option name to enable or disable vibration when ringing
- the phone.
- [CHAR LIMIT=30] -->
- <string name="vibrate_on_ring_title">Vibrate when ringing</string>
-
- <!-- Setting option name to enable or disable DTMF tone sound
- [CHAR LIMIT=30] -->
- <string name="dtmf_tone_enable_title">Dial pad touch tones</string>
-
<!-- Setting option name to enable or disable dialpad autocomplete functionality
[CHAR LIMIT=30] -->
<string name="dial_pad_autocomplete">Dial pad autocomplete</string>
diff --git a/res/xml/call_feature_setting.xml b/res/xml/call_feature_setting.xml
index 30811e4..625ff4c 100644
--- a/res/xml/call_feature_setting.xml
+++ b/res/xml/call_feature_setting.xml
@@ -17,110 +17,77 @@
xmlns:phone="http://schemas.android.com/apk/res/com.android.phone"
android:title="@string/call_settings">
- <PreferenceCategory
- android:key="button_ringtone_category_key"
- android:title="@string/preference_category_ringtone"
- android:persistent="false">
-
- <com.android.phone.DefaultRingtonePreference
- android:key="button_ringtone_key"
- android:title="@string/ringtone_title"
- android:dialogTitle="@string/ringtone_title"
- android:persistent="false"
- android:ringtoneType="ringtone" />
-
- <CheckBoxPreference
- android:key="button_vibrate_on_ring"
- android:title="@string/vibrate_on_ring_title"
- android:persistent="false"
- android:defaultValue="false" />
- </PreferenceCategory>
-
- <PreferenceCategory
- android:key="button_misc_category_key"
- android:title="@string/other_settings"
- android:persistent="false" />
-
<Preference
- android:key="phone_accounts"
- android:title="@string/phone_accounts" >
+ android:key="phone_accounts"
+ android:title="@string/phone_accounts">
+
<intent
- android:targetClass="com.android.telecomm.PhoneAccountPreferencesActivity"
- android:targetPackage="com.android.telecomm" />
+ android:targetClass="com.android.telecomm.PhoneAccountPreferencesActivity"
+ android:targetPackage="com.android.telecomm" />
+
</Preference>
- <PreferenceScreen
- android:key="button_voicemail_category_key"
- android:title="@string/voicemail"
- android:persistent="false">
- <ListPreference
- android:key="button_voicemail_provider_key"
- android:title="@string/voicemail_provider"
- android:summary="@string/sum_voicemail_choose_provider"
- android:defaultValue=""
- android:persistent="true" />
- <PreferenceScreen
- android:key="button_voicemail_setting_key"
- android:title="@string/voicemail_settings"
- android:persistent="false">
+ <PreferenceScreen
+ android:key="button_voicemail_category_key"
+ android:title="@string/voicemail"
+ android:persistent="false">
- <!-- Note for all com.android.phone.EditPhoneNumberPreference objects
+ <ListPreference
+ android:key="button_voicemail_provider_key"
+ android:title="@string/voicemail_provider"
+ android:summary="@string/sum_voicemail_choose_provider"
+ android:defaultValue=""
+ android:persistent="true" />
- The last several attributes are for use with the EditText field
- in the dialog. These attributes are forwarded to that field
- when the edittext is created. The attributes include:
- 1. android:singleLine
- 2. android:autoText
- 3. android:background -->
+ <PreferenceScreen
+ android:key="button_voicemail_setting_key"
+ android:title="@string/voicemail_settings"
+ android:persistent="false">
- <com.android.phone.EditPhoneNumberPreference
- android:key="button_voicemail_key"
- android:title="@string/voicemail_settings_number_label"
- android:persistent="false"
- android:dialogTitle="@string/voicemail"
- phone:confirmMode="confirm"
- android:singleLine="true"
- android:autoText="false" />
- </PreferenceScreen>
+ <!-- Note for all com.android.phone.EditPhoneNumberPreference objects
- <RingtonePreference
- android:key="button_voicemail_notification_ringtone_key"
- android:title="@string/voicemail_notification_ringtone_title"
- android:persistent="true"
- android:ringtoneType="notification"
- android:defaultValue="content://settings/system/notification_sound" />
- <CheckBoxPreference
- android:key="button_voicemail_notification_vibrate_key"
- android:title="@string/voicemail_notification_vibrate_when_title"
- android:persistent="true"
- />
- </PreferenceScreen>
+ The last several attributes are for use with the EditText field
+ in the dialog. These attributes are forwarded to that field
+ when the edittext is created. The attributes include:
+ 1. android:singleLine
+ 2. android:autoText
+ 3. android:background -->
- <CheckBoxPreference
- android:key="button_play_dtmf_tone"
- android:title="@string/dtmf_tone_enable_title"
- android:persistent="false"
- android:defaultValue="true" />
+ <com.android.phone.EditPhoneNumberPreference
+ android:key="button_voicemail_key"
+ android:title="@string/voicemail_settings_number_label"
+ android:persistent="false"
+ android:dialogTitle="@string/voicemail"
+ phone:confirmMode="confirm"
+ android:singleLine="true"
+ android:autoText="false" />
- <PreferenceScreen
- android:key="button_respond_via_sms_key"
- android:title="@string/respond_via_sms_setting_title"
- android:summary="@string/respond_via_sms_setting_summary"
- android:persistent="false">
- <intent
- android:action="android.intent.action.MAIN"
- android:targetPackage="com.android.telecomm"
- android:targetClass="com.android.telecomm.RespondViaSmsSettings$Settings" />
- </PreferenceScreen>
+ </PreferenceScreen>
- <PreferenceScreen
- android:key="button_fdn_key"
- android:title="@string/fdn"
- android:persistent="false">
- <intent android:action="android.intent.action.MAIN"
- android:targetPackage="com.android.phone"
- android:targetClass="com.android.phone.FdnSetting" />
- </PreferenceScreen>
+ <RingtonePreference
+ android:key="button_voicemail_notification_ringtone_key"
+ android:title="@string/voicemail_notification_ringtone_title"
+ android:persistent="true"
+ android:ringtoneType="notification"
+ android:defaultValue="content://settings/system/notification_sound" />
+
+ <CheckBoxPreference
+ android:key="button_voicemail_notification_vibrate_key"
+ android:title="@string/voicemail_notification_vibrate_when_title"
+ android:persistent="true" />
+
+ </PreferenceScreen>
+
+ <PreferenceScreen
+ android:key="button_fdn_key"
+ android:title="@string/fdn"
+ android:persistent="false">
+
+ <intent android:action="android.intent.action.MAIN"
+ android:targetPackage="com.android.phone"
+ android:targetClass="com.android.phone.FdnSetting" />
+
+ </PreferenceScreen>
<CheckBoxPreference
android:key="button_auto_retry_key"
@@ -136,7 +103,7 @@
android:entries="@array/tty_mode_entries"
android:entryValues="@array/tty_mode_values"/>
- <CheckBoxPreference
+ <CheckBoxPreference
android:key="button_hac_key"
android:title="@string/hac_mode_title"
android:persistent="true"
@@ -158,6 +125,7 @@
<intent android:action="android.intent.action.MAIN"
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.GsmUmtsCallOptions"/>
+
</PreferenceScreen>
<PreferenceScreen
@@ -169,6 +137,7 @@
<intent android:action="android.intent.action.MAIN"
android:targetPackage="com.android.phone"
android:targetClass="com.android.phone.CdmaCallOptions"/>
+
</PreferenceScreen>
<CheckBoxPreference
@@ -176,4 +145,5 @@
android:title="@string/enable_video_calling_title"
android:persistent="true"
android:defaultValue="true" />
+
</PreferenceScreen>
diff --git a/sip/res/xml/sip_settings_category.xml b/sip/res/xml/sip_settings_category.xml
index 17ee577..9527d6a 100644
--- a/sip/res/xml/sip_settings_category.xml
+++ b/sip/res/xml/sip_settings_category.xml
@@ -15,34 +15,38 @@
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:phone="http://schemas.android.com/apk/res/com.android.phone">
- <PreferenceCategory
- android:key="sip_settings_category_key"
- android:title="@string/sip_settings"
+
+ <PreferenceScreen
+ android:key="sip_settings_preference_screen_key"
+ android:title="@string/sip_settings"
+ android:persistent="false" >
+
+ <PreferenceScreen
+ android:key="sip_account_settings_key"
+ android:title="@string/sip_accounts_title"
android:persistent="false">
- <PreferenceScreen
- android:key="sip_account_settings_key"
- android:title="@string/sip_accounts_title"
- android:persistent="false">
+ <intent android:action="android.intent.action.MAIN"
+ android:targetPackage="com.android.phone"
+ android:targetClass="com.android.services.telephony.sip.SipSettings" />
- <intent android:action="android.intent.action.MAIN"
- android:targetPackage="com.android.phone"
- android:targetClass="com.android.services.telephony.sip.SipSettings" />
- </PreferenceScreen>
+ </PreferenceScreen>
- <ListPreference
- android:key="sip_call_options_key"
- android:title="@string/sip_call_options_title"
- android:persistent="true"
- android:entries="@array/sip_call_options_entries"
- android:entryValues="@array/sip_call_options_values"/>
+ <ListPreference
+ android:key="sip_call_options_key"
+ android:title="@string/sip_call_options_title"
+ android:persistent="true"
+ android:entries="@array/sip_call_options_entries"
+ android:entryValues="@array/sip_call_options_values"/>
- <ListPreference
- android:key="sip_call_options_wifi_only_key"
- android:title="@string/sip_call_options_title"
- android:dialogTitle="@string/sip_call_options_wifi_only_title"
- android:persistent="true"
- android:entries="@array/sip_call_options_wifi_only_entries"
- android:entryValues="@array/sip_call_options_values"/>
- </PreferenceCategory>
+ <ListPreference
+ android:key="sip_call_options_wifi_only_key"
+ android:title="@string/sip_call_options_title"
+ android:dialogTitle="@string/sip_call_options_wifi_only_title"
+ android:persistent="true"
+ android:entries="@array/sip_call_options_wifi_only_entries"
+ android:entryValues="@array/sip_call_options_values"/>
+
+ </PreferenceScreen>
+
</PreferenceScreen>
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index 9f0dad7..103606a 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -34,27 +34,21 @@
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.database.Cursor;
-import android.database.sqlite.SQLiteException;
import android.media.AudioManager;
import android.media.RingtoneManager;
-import android.net.Uri;
import android.net.sip.SipManager;
import android.os.AsyncResult;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.UserHandle;
-import android.os.Vibrator;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
-import android.preference.PreferenceCategory;
-import android.preference.PreferenceGroup;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;
import android.provider.ContactsContract.CommonDataKinds;
-import android.provider.MediaStore;
import android.provider.Settings;
import android.telecomm.ConnectionService;
import android.telecomm.TelecommManager;
@@ -69,9 +63,11 @@
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
+import com.android.phone.common.util.SettingsUtil;
import com.android.services.telephony.sip.SipSharedPreferences;
import com.android.services.telephony.sip.SipUtil;
+import java.lang.String;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
@@ -95,14 +91,16 @@
* For the "Mobile network settings" screen under the main Settings app,
* See {@link MobileNetworkSettings}.
*
+ * TODO: Settings should be split into PreferenceFragments where possible (ie. voicemail, SIP).
+ *
* @see com.android.phone.MobileNetworkSettings
*/
public class CallFeaturesSetting extends PreferenceActivity
implements DialogInterface.OnClickListener,
- Preference.OnPreferenceChangeListener,
- Preference.OnPreferenceClickListener,
- EditPhoneNumberPreference.OnDialogClosedListener,
- EditPhoneNumberPreference.GetDefaultNumberListener {
+ Preference.OnPreferenceChangeListener,
+ Preference.OnPreferenceClickListener,
+ EditPhoneNumberPreference.OnDialogClosedListener,
+ EditPhoneNumberPreference.GetDefaultNumberListener {
private static final String LOG_TAG = "CallFeaturesSetting";
private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
@@ -176,13 +174,7 @@
/* package */ static final String BUTTON_VOICEMAIL_NOTIFICATION_RINGTONE_KEY =
"button_voicemail_notification_ringtone_key";
private static final String BUTTON_FDN_KEY = "button_fdn_key";
- private static final String BUTTON_RESPOND_VIA_SMS_KEY = "button_respond_via_sms_key";
- private static final String BUTTON_RINGTONE_CATEGORY = "button_ringtone_category_key";
-
- private static final String BUTTON_RINGTONE_KEY = "button_ringtone_key";
- private static final String BUTTON_VIBRATE_ON_RING = "button_vibrate_on_ring";
- private static final String BUTTON_PLAY_DTMF_TONE = "button_play_dtmf_tone";
private static final String BUTTON_DTMF_KEY = "button_dtmf_settings";
private static final String BUTTON_RETRY_KEY = "button_auto_retry_key";
private static final String BUTTON_TTY_KEY = "button_tty_mode_key";
@@ -193,12 +185,11 @@
private static final String VM_NUMBERS_SHARED_PREFERENCES_NAME = "vm_numbers";
- private static final String BUTTON_SIP_CALL_OPTIONS =
- "sip_call_options_key";
+ private static final String BUTTON_SIP_CALL_OPTIONS = "sip_call_options_key";
private static final String BUTTON_SIP_CALL_OPTIONS_WIFI_ONLY =
"sip_call_options_wifi_only_key";
- private static final String SIP_SETTINGS_CATEGORY_KEY =
- "sip_settings_category_key";
+ private static final String SIP_SETTINGS_PREFERENCE_SCREEN_KEY =
+ "sip_settings_preference_screen_key";
private Intent mContactListIntent;
@@ -207,8 +198,7 @@
private static final int EVENT_FORWARDING_CHANGED = 501;
private static final int EVENT_FORWARDING_GET_COMPLETED = 502;
- private static final int MSG_UPDATE_RINGTONE_SUMMARY = 1;
- private static final int MSG_UPDATE_VOICEMAIL_RINGTONE_SUMMARY = 2;
+ private static final int MSG_UPDATE_VOICEMAIL_RINGTONE_SUMMARY = 1;
public static final String HAC_KEY = "HACSetting";
public static final String HAC_VAL_ON = "ON";
@@ -251,14 +241,11 @@
private EditPhoneNumberPreference mSubMenuVoicemailSettings;
- private Runnable mRingtoneLookupRunnable;
- private final Handler mRingtoneLookupComplete = new Handler() {
+ private Runnable mVoicemailRingtoneLookupRunnable;
+ private final Handler mVoicemailRingtoneLookupComplete = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
- case MSG_UPDATE_RINGTONE_SUMMARY:
- mRingtonePreference.setSummary((CharSequence) msg.obj);
- break;
case MSG_UPDATE_VOICEMAIL_RINGTONE_SUMMARY:
mVoicemailNotificationRingtone.setSummary((CharSequence) msg.obj);
break;
@@ -266,10 +253,7 @@
}
};
- private Preference mRingtonePreference;
- private CheckBoxPreference mVibrateWhenRinging;
/** Whether dialpad plays DTMF tone or not. */
- private CheckBoxPreference mPlayDtmfTone;
private CheckBoxPreference mButtonAutoRetry;
private CheckBoxPreference mButtonHAC;
private ListPreference mButtonDTMF;
@@ -489,9 +473,6 @@
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
if (preference == mSubMenuVoicemailSettings) {
return true;
- } else if (preference == mPlayDtmfTone) {
- Settings.System.putInt(getContentResolver(), Settings.System.DTMF_TONE_WHEN_DIALING,
- mPlayDtmfTone.isChecked() ? 1 : 0);
} else if (preference == mButtonDTMF) {
return true;
} else if (preference == mButtonTTY) {
@@ -553,11 +534,8 @@
log("onPreferenceChange(). preferenece: \"" + preference + "\""
+ ", value: \"" + objValue + "\"");
}
- if (preference == mVibrateWhenRinging) {
- boolean doVibrate = (Boolean) objValue;
- Settings.System.putInt(mPhone.getContext().getContentResolver(),
- Settings.System.VIBRATE_WHEN_RINGING, doVibrate ? 1 : 0);
- } else if (preference == mButtonDTMF) {
+
+ if (preference == mButtonDTMF) {
int index = mButtonDTMF.findIndexOfValue((String) objValue);
Settings.System.putInt(mPhone.getContext().getContentResolver(),
Settings.System.DTMF_TONE_TYPE_WHEN_DIALING, index);
@@ -1533,9 +1511,6 @@
mSubMenuVoicemailSettings.setDialogTitle(R.string.voicemail_settings_number_label);
}
- mRingtonePreference = findPreference(BUTTON_RINGTONE_KEY);
- mVibrateWhenRinging = (CheckBoxPreference) findPreference(BUTTON_VIBRATE_ON_RING);
- mPlayDtmfTone = (CheckBoxPreference) findPreference(BUTTON_PLAY_DTMF_TONE);
mButtonDTMF = (ListPreference) findPreference(BUTTON_DTMF_KEY);
mButtonAutoRetry = (CheckBoxPreference) findPreference(BUTTON_RETRY_KEY);
mButtonHAC = (CheckBoxPreference) findPreference(BUTTON_HAC_KEY);
@@ -1543,6 +1518,7 @@
mConnectionService = (ListPreference)
findPreference(BUTTON_DEFAULT_CONNECTION_SERVICE);
mVoicemailProviders = (ListPreference) findPreference(BUTTON_VOICEMAIL_PROVIDER_KEY);
+
if (mVoicemailProviders != null) {
mVoicemailProviders.setOnPreferenceChangeListener(this);
mVoicemailSettings = (PreferenceScreen)findPreference(BUTTON_VOICEMAIL_SETTING_KEY);
@@ -1553,24 +1529,8 @@
initVoiceMailProviders();
}
- if (mVibrateWhenRinging != null) {
- Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
- if (vibrator != null && vibrator.hasVibrator()) {
- mVibrateWhenRinging.setOnPreferenceChangeListener(this);
- } else {
- PreferenceCategory ringToneCategory = (PreferenceCategory)findPreference(BUTTON_RINGTONE_CATEGORY);
- ringToneCategory.removePreference(mVibrateWhenRinging);
- mVibrateWhenRinging = null;
- }
- }
-
final ContentResolver contentResolver = getContentResolver();
- if (mPlayDtmfTone != null) {
- mPlayDtmfTone.setChecked(Settings.System.getInt(contentResolver,
- Settings.System.DTMF_TONE_WHEN_DIALING, 1) != 0);
- }
-
if (mButtonDTMF != null) {
if (getResources().getBoolean(R.bool.dtmf_type_enabled)) {
mButtonDTMF.setOnPreferenceChangeListener(this);
@@ -1611,23 +1571,25 @@
if (!getResources().getBoolean(R.bool.world_phone)) {
Preference options = prefSet.findPreference(BUTTON_CDMA_OPTIONS);
- if (options != null)
+ if (options != null) {
prefSet.removePreference(options);
+ }
options = prefSet.findPreference(BUTTON_GSM_UMTS_OPTIONS);
- if (options != null)
+ if (options != null) {
prefSet.removePreference(options);
+ }
int phoneType = mPhone.getPhoneType();
if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
Preference fdnButton = prefSet.findPreference(BUTTON_FDN_KEY);
- if (fdnButton != null)
+ if (fdnButton != null) {
prefSet.removePreference(fdnButton);
+ }
if (!getResources().getBoolean(R.bool.config_voice_privacy_disable)) {
addPreferencesFromResource(R.xml.cdma_call_privacy);
}
} else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
- if (getResources().getBoolean(
- R.bool.config_additional_call_setting)) {
+ if (getResources().getBoolean(R.bool.config_additional_call_setting)) {
addPreferencesFromResource(R.xml.gsm_umts_call_options);
}
} else {
@@ -1663,16 +1625,16 @@
mVMProviderSettingsForced = false;
createSipCallSettings();
- mRingtoneLookupRunnable = new Runnable() {
+ mVoicemailRingtoneLookupRunnable = new Runnable() {
@Override
public void run() {
- if (mRingtonePreference != null) {
- updateRingtoneName(RingtoneManager.TYPE_RINGTONE, mRingtonePreference,
- MSG_UPDATE_RINGTONE_SUMMARY);
- }
if (mVoicemailNotificationRingtone != null) {
- updateRingtoneName(RingtoneManager.TYPE_NOTIFICATION,
- mVoicemailNotificationRingtone, MSG_UPDATE_VOICEMAIL_RINGTONE_SUMMARY);
+ SettingsUtil.updateRingtoneName(
+ mPhone.getContext(),
+ mVoicemailRingtoneLookupComplete,
+ RingtoneManager.TYPE_NOTIFICATION,
+ mVoicemailNotificationRingtone,
+ MSG_UPDATE_VOICEMAIL_RINGTONE_SUMMARY);
}
}
};
@@ -1692,65 +1654,6 @@
}
}
- /**
- * Updates ringtone name. This is a method copied from com.android.settings.SoundSettings
- *
- * @see com.android.settings.SoundSettings
- */
- private void updateRingtoneName(int type, Preference preference, int msg) {
- if (preference == null) return;
- final Uri ringtoneUri;
- boolean defaultRingtone = false;
- if (type == RingtoneManager.TYPE_RINGTONE) {
- // For ringtones, we can just lookup the system default because changing the settings
- // in Call Settings changes the system default.
- ringtoneUri = RingtoneManager.getActualDefaultRingtoneUri(this, type);
- } else {
- final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(
- mPhone.getContext());
- // for voicemail notifications, we use the value saved in Phone's shared preferences.
- String uriString = prefs.getString(preference.getKey(), null);
- if (TextUtils.isEmpty(uriString)) {
- // silent ringtone
- ringtoneUri = null;
- } else {
- if (uriString.equals(Settings.System.DEFAULT_NOTIFICATION_URI.toString())) {
- // If it turns out that the voicemail notification is set to the system
- // default notification, we retrieve the actual URI to prevent it from showing
- // up as "Unknown Ringtone".
- defaultRingtone = true;
- ringtoneUri = RingtoneManager.getActualDefaultRingtoneUri(this, type);
- } else {
- ringtoneUri = Uri.parse(uriString);
- }
- }
- }
- CharSequence summary = getString(com.android.internal.R.string.ringtone_unknown);
- // Is it a silent ringtone?
- if (ringtoneUri == null) {
- summary = getString(com.android.internal.R.string.ringtone_silent);
- } else {
- // Fetch the ringtone title from the media provider
- try {
- Cursor cursor = getContentResolver().query(ringtoneUri,
- new String[] { MediaStore.Audio.Media.TITLE }, null, null, null);
- if (cursor != null) {
- if (cursor.moveToFirst()) {
- summary = cursor.getString(0);
- }
- cursor.close();
- }
- } catch (SQLiteException sqle) {
- // Unknown title for the ringtone
- }
- }
- if (defaultRingtone) {
- summary = mPhone.getContext().getString(
- R.string.default_notification_description, summary);
- }
- mRingtoneLookupComplete.sendMessage(mRingtoneLookupComplete.obtainMessage(msg, summary));
- }
-
private void createSipCallSettings() {
// Add Internet call settings.
if (SipUtil.isVoipSupported(this)) {
@@ -1779,8 +1682,8 @@
findPreference(BUTTON_SIP_CALL_OPTIONS);
ListPreference wifiOnly = (ListPreference)
findPreference(BUTTON_SIP_CALL_OPTIONS_WIFI_ONLY);
- PreferenceGroup sipSettings = (PreferenceGroup)
- findPreference(SIP_SETTINGS_CATEGORY_KEY);
+ PreferenceScreen sipSettings = (PreferenceScreen)
+ getPreferenceScreen().findPreference(SIP_SETTINGS_PREFERENCE_SCREEN_KEY);
if (SipManager.isSipWifiOnly(this)) {
sipSettings.removePreference(wifiAnd3G);
return wifiOnly;
@@ -1796,7 +1699,7 @@
mForeground = true;
if (isAirplaneModeOn()) {
- Preference sipSettings = findPreference(SIP_SETTINGS_CATEGORY_KEY);
+ Preference sipSettings = findPreference(SIP_SETTINGS_PREFERENCE_SCREEN_KEY);
PreferenceScreen screen = getPreferenceScreen();
int count = screen.getPreferenceCount();
for (int i = 0 ; i < count ; ++i) {
@@ -1806,10 +1709,6 @@
return;
}
- if (mVibrateWhenRinging != null) {
- mVibrateWhenRinging.setChecked(getVibrateWhenRinging(this));
- }
-
if (mButtonDTMF != null) {
int dtmf = Settings.System.getInt(getContentResolver(),
Settings.System.DTMF_TONE_TYPE_WHEN_DIALING, Constants.DTMF_TONE_TYPE_NORMAL);
@@ -1842,7 +1741,8 @@
BUTTON_VOICEMAIL_NOTIFICATION_VIBRATE_KEY, false));
}
- lookupRingtoneName();
+ // Look up the voicemail ringtone name asynchronously and update its preference.
+ new Thread(mVoicemailRingtoneLookupRunnable).start();
}
// Migrate settings from BUTTON_VOICEMAIL_NOTIFICATION_VIBRATE_WHEN_KEY to
@@ -1864,28 +1764,6 @@
return false;
}
- /**
- * Obtain the setting for "vibrate when ringing" setting.
- *
- * Watch out: if the setting is missing in the device, this will try obtaining the old
- * "vibrate on ring" setting from AudioManager, and save the previous setting to the new one.
- */
- public static boolean getVibrateWhenRinging(Context context) {
- Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
- if (vibrator == null || !vibrator.hasVibrator()) {
- return false;
- }
- return Settings.System.getInt(context.getContentResolver(),
- Settings.System.VIBRATE_WHEN_RINGING, 0) != 0;
- }
-
- /**
- * Lookups ringtone name asynchronously and updates the relevant Preference.
- */
- private void lookupRingtoneName() {
- new Thread(mRingtoneLookupRunnable).start();
- }
-
private boolean isAirplaneModeOn() {
return Settings.System.getInt(getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, 0) != 0;
diff --git a/src/com/android/phone/DefaultRingtonePreference.java b/src/com/android/phone/DefaultRingtonePreference.java
deleted file mode 100644
index 8205fd0..0000000
--- a/src/com/android/phone/DefaultRingtonePreference.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-package com.android.phone;
-
-import android.content.Context;
-import android.content.Intent;
-import android.media.RingtoneManager;
-import android.net.Uri;
-import android.preference.RingtonePreference;
-import android.util.AttributeSet;
-
-/**
- * RingtonePreference which doesn't show default ringtone setting.
- *
- * @see com.android.settings.DefaultRingtonePreference
- */
-public class DefaultRingtonePreference extends RingtonePreference {
- public DefaultRingtonePreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- @Override
- protected void onPrepareRingtonePickerIntent(Intent ringtonePickerIntent) {
- super.onPrepareRingtonePickerIntent(ringtonePickerIntent);
-
- /*
- * Since this preference is for choosing the default ringtone, it
- * doesn't make sense to show a 'Default' item.
- */
- ringtonePickerIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false);
- }
-
- @Override
- protected void onSaveRingtone(Uri ringtoneUri) {
- RingtoneManager.setActualDefaultRingtoneUri(getContext(), getRingtoneType(), ringtoneUri);
- }
-
- @Override
- protected Uri onRestoreRingtone() {
- return RingtoneManager.getActualDefaultRingtoneUri(getContext(), getRingtoneType());
- }
-}
diff --git a/src/com/android/phone/Ringer.java b/src/com/android/phone/Ringer.java
index 668f8dc..b542ede 100644
--- a/src/com/android/phone/Ringer.java
+++ b/src/com/android/phone/Ringer.java
@@ -36,6 +36,8 @@
import android.util.Log;
import com.android.internal.telephony.Phone;
+import com.android.phone.common.util.SettingsUtil;
+
/**
* Ringer manager for the Phone app.
*/
@@ -210,7 +212,7 @@
boolean shouldVibrate() {
AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
int ringerMode = audioManager.getRingerMode();
- if (CallFeaturesSetting.getVibrateWhenRinging(mContext)) {
+ if (SettingsUtil.getVibrateWhenRingingSetting(mContext)) {
return ringerMode != AudioManager.RINGER_MODE_SILENT;
} else {
return ringerMode == AudioManager.RINGER_MODE_VIBRATE;