Remove DTMF length setting.

+ Add interface for checking the config to determine if the user can
change the DTMF tone length or if the device is a world phone:.
- Remove DTMF length logic, layouts, and strings. This is moved to
the Dialer application, where it can be placed in context of the
other sound-related settings.

Bug: 19372734
Change-Id: If9b4b07ffbe82704a38d1d1ec53ad5e6509e8dd7
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3a7961a..403e8bb 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1067,22 +1067,6 @@
         <item>3</item>
     </string-array>
 
-    <!-- Dtmf tones settings -->
-    <!-- Title for the DTMF Tones options displayed in Call Settings -->
-    <string name="dtmf_tones_title">DTMF tones</string>
-    <!-- Summary for the DTMF Tones options displayed in Call Settings -->
-    <string name="dtmf_tones_summary">Set the length of DTMF tones</string>
-    <!-- Options displayed as part of DTMF Tones in Call Settings -->
-    <string-array name="dtmf_tone_entries">
-      <item>Normal</item>
-      <item>Long</item>
-    </string-array>
-    <!-- Do not translate. -->
-    <string-array name="dtmf_tone_values" translatable="false">
-       <item>0</item>
-       <item>1</item>
-    </string-array>
-
     <!-- Title for the dialog used to display CDMA DisplayInfo -->
     <string name="network_info_message">Network message</string>
     <!-- Title for the dialog used to display a network error message to the user -->
diff --git a/res/xml/call_feature_setting.xml b/res/xml/call_feature_setting.xml
index 4ae0bf6..5c90bc8 100644
--- a/res/xml/call_feature_setting.xml
+++ b/res/xml/call_feature_setting.xml
@@ -108,13 +108,6 @@
         android:persistent="true"
         android:summary="@string/hac_mode_summary"/>
 
-    <ListPreference
-        android:key="button_dtmf_settings"
-        android:title="@string/dtmf_tones_title"
-        android:summary="@string/dtmf_tones_summary"
-        android:entries="@array/dtmf_tone_entries"
-        android:entryValues="@array/dtmf_tone_values"/>
-
     <PreferenceScreen
         android:key="button_gsm_more_expand_key"
         android:title="@string/labelGSMMore"
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index eae9bfc..95d7510 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -154,7 +154,6 @@
     private static final String BUTTON_VOICEMAIL_SETTING_KEY = "button_voicemail_setting_key";
     private static final String BUTTON_FDN_KEY   = "button_fdn_key";
 
-    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";
     private static final String BUTTON_HAC_KEY         = "button_hac_key";
@@ -189,10 +188,8 @@
 
     private EditPhoneNumberPreference mSubMenuVoicemailSettings;
 
-    /** Whether dialpad plays DTMF tone or not. */
     private CheckBoxPreference mButtonAutoRetry;
     private CheckBoxPreference mButtonHAC;
-    private ListPreference mButtonDTMF;
     private TtyModeListPreference mButtonTTY;
     private VoicemailProviderListPreference mVoicemailProviders;
     private PreferenceScreen mVoicemailSettingsScreen;
@@ -332,8 +329,6 @@
     public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
         if (preference == mSubMenuVoicemailSettings) {
             return true;
-        } else if (preference == mButtonDTMF) {
-            return true;
         } else if (preference == mButtonTTY) {
             return true;
         } else if (preference == mButtonAutoRetry) {
@@ -397,11 +392,7 @@
     public boolean onPreferenceChange(Preference preference, Object objValue) {
         if (DBG) log("onPreferenceChange: \"" + preference + "\" changed to \"" + objValue + "\"");
 
-        if (preference == mButtonDTMF) {
-            int index = mButtonDTMF.findIndexOfValue((String) objValue);
-            Settings.System.putInt(mPhone.getContext().getContentResolver(),
-                    Settings.System.DTMF_TONE_TYPE_WHEN_DIALING, index);
-        } else if (preference == mVoicemailProviders) {
+        if (preference == mVoicemailProviders) {
             final String newProviderKey = (String) objValue;
 
             // If previous provider key and the new one is same, we don't need to handle it.
@@ -1186,7 +1177,6 @@
         mSubMenuVoicemailSettings.setDialogOnClosedListener(this);
         mSubMenuVoicemailSettings.setDialogTitle(R.string.voicemail_settings_number_label);
 
-        mButtonDTMF = (ListPreference) findPreference(BUTTON_DTMF_KEY);
         mButtonAutoRetry = (CheckBoxPreference) findPreference(BUTTON_RETRY_KEY);
         mButtonHAC = (CheckBoxPreference) findPreference(BUTTON_HAC_KEY);
         mButtonTTY = (TtyModeListPreference) findPreference(
@@ -1214,16 +1204,6 @@
 
         mEnableVideoCalling = (CheckBoxPreference) findPreference(ENABLE_VIDEO_CALLING_KEY);
 
-        if (getResources().getBoolean(R.bool.dtmf_type_enabled)) {
-            mButtonDTMF.setOnPreferenceChangeListener(this);
-            int dtmf = Settings.System.getInt(getContentResolver(),
-                    Settings.System.DTMF_TONE_TYPE_WHEN_DIALING, Constants.DTMF_TONE_TYPE_NORMAL);
-            mButtonDTMF.setValueIndex(dtmf);
-        } else {
-            prefSet.removePreference(mButtonDTMF);
-            mButtonDTMF = null;
-        }
-
         if (getResources().getBoolean(R.bool.auto_retry_enabled)) {
             mButtonAutoRetry.setOnPreferenceChangeListener(this);
             int autoretry = Settings.Global.getInt(
@@ -1264,9 +1244,6 @@
                     getContentResolver(), Settings.Global.HIDE_CARRIER_NETWORK_SETTINGS, 0) == 1;
             if (shouldHideCarrierSettings) {
                 prefSet.removePreference(fdnButton);
-                if (mButtonDTMF != null) {
-                    prefSet.removePreference(mButtonDTMF);
-                }
             } else {
                 if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
                     prefSet.removePreference(fdnButton);
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 246c376..2162c36 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -2235,6 +2235,16 @@
                 && mTelephonySharedPreferences.getBoolean(PREF_ENABLE_VIDEO_CALLING, true);
     }
 
+    @Override
+    public boolean canChangeDtmfToneLength() {
+        return mPhone.getContext().getResources().getBoolean(R.bool.dtmf_type_enabled);
+    }
+
+    @Override
+    public boolean isWorldPhone() {
+        return mPhone.getContext().getResources().getBoolean(R.bool.world_phone);
+    }
+
     /**
      * Returns the unique device ID of phone, for example, the IMEI for
      * GSM and the MEID for CDMA phones. Return null if device ID is not available.