Convert GeneralSettings to SoundSettings.

Rather than create a new fragment for "Sounds and vibration", reuse
the existing general settings fragment.

The other settings which used to reside general settings have been
moved into their own top-level settings fragments.

+ Rename layout file and fragment.
+ Tweak string names.
- Delete category heading; no longer necessary.

Bug: 19372734
Change-Id: I5690df7ecbd49da5d5af94889e6b68e053ce25ba
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ab8fd27..1e7a48b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -694,12 +694,9 @@
          [CHAR LIMIT=40] -->
     <string name="display_options_title">Display options</string>
 
-    <!-- Label for the general dialer settings section [CHAR LIMIT=30]-->
-    <string name="general_settings_label">General</string>
-
-    <!-- Title for the category "sounds", which is shown above sounds and vibration related
-         settings. [CHAR LIMIT=30] -->
-    <string name="sounds_and_vibrate_category_title">Sounds and vibrate</string>
+    <!-- Title for the "Sounds and vibration" settings control settings related to ringtones,
+         dialpad tones, and vibration for incoming calls. [CHAR LIMIT=40] -->
+    <string name="sounds_and_vibration_title">Sounds and vibration</string>
 
     <!-- Setting option name to pick ringtone (a list dialog comes up). [CHAR LIMIT=30] -->
     <string name="ringtone_title">Phone ringtone</string>
diff --git a/res/xml/general_settings.xml b/res/xml/general_settings.xml
deleted file mode 100644
index c856e1a..0000000
--- a/res/xml/general_settings.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-  ~ Copyright (C) 2014 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
-  -->
-
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <PreferenceCategory
-        android:key="dialer_general_sounds_category_key"
-        android:title="@string/sounds_and_vibrate_category_title"
-        android:persistent="false">
-
-        <com.android.dialer.settings.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_play_dtmf_tone"
-            android:title="@string/dtmf_tone_enable_title"
-            android:persistent="false"
-            android:defaultValue="true" />
-
-        <CheckBoxPreference
-            android:key="button_vibrate_on_ring"
-            android:title="@string/vibrate_on_ring_title"
-            android:persistent="false"
-            android:defaultValue="false" />
-
-    </PreferenceCategory>
-
-</PreferenceScreen>
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
new file mode 100644
index 0000000..e933eed
--- /dev/null
+++ b/res/xml/sound_settings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+  ~ Copyright (C) 2014 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
+  -->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <com.android.dialer.settings.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_play_dtmf_tone"
+        android:title="@string/dtmf_tone_enable_title"
+        android:persistent="false"
+        android:defaultValue="true" />
+
+    <CheckBoxPreference
+        android:key="button_vibrate_on_ring"
+        android:title="@string/vibrate_on_ring_title"
+        android:persistent="false"
+        android:defaultValue="false" />
+
+</PreferenceScreen>
diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java
index 935b6c7..08beffd 100644
--- a/src/com/android/dialer/settings/DialerSettingsActivity.java
+++ b/src/com/android/dialer/settings/DialerSettingsActivity.java
@@ -41,10 +41,10 @@
         displayOptionsHeader.fragment = DisplayOptionsFragment.class.getName();
         target.add(displayOptionsHeader);
 
-        Header generalSettingsHeader = new Header();
-        generalSettingsHeader.titleRes = R.string.general_settings_label;
-        generalSettingsHeader.fragment = GeneralSettingsFragment.class.getName();
-        target.add(generalSettingsHeader);
+        Header soundSettingsHeader = new Header();
+        soundSettingsHeader.titleRes = R.string.sounds_and_vibration_title;
+        soundSettingsHeader.fragment = SoundSettingsFragment.class.getName();
+        target.add(soundSettingsHeader);
 
         Header quickResponseSettingsHeader = new Header();
         Intent quickResponseSettingsIntent =
diff --git a/src/com/android/dialer/settings/GeneralSettingsFragment.java b/src/com/android/dialer/settings/SoundSettingsFragment.java
similarity index 93%
rename from src/com/android/dialer/settings/GeneralSettingsFragment.java
rename to src/com/android/dialer/settings/SoundSettingsFragment.java
index 7d82286..6a9bc1e 100644
--- a/src/com/android/dialer/settings/GeneralSettingsFragment.java
+++ b/src/com/android/dialer/settings/SoundSettingsFragment.java
@@ -24,7 +24,6 @@
 import android.os.Vibrator;
 import android.preference.CheckBoxPreference;
 import android.preference.Preference;
-import android.preference.PreferenceCategory;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceScreen;
 import android.provider.Settings;
@@ -40,9 +39,8 @@
 import java.lang.String;
 import java.lang.Thread;
 
-public class GeneralSettingsFragment extends PreferenceFragment
+public class SoundSettingsFragment extends PreferenceFragment
         implements Preference.OnPreferenceChangeListener {
-    private static final String CATEGORY_SOUNDS_KEY    = "dialer_general_sounds_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";
@@ -73,19 +71,18 @@
 
         mContext = getActivity().getApplicationContext();
 
-        addPreferencesFromResource(R.xml.general_settings);
+        addPreferencesFromResource(R.xml.sound_settings);
 
         mRingtonePreference = findPreference(BUTTON_RINGTONE_KEY);
         mVibrateWhenRinging = (CheckBoxPreference) findPreference(BUTTON_VIBRATE_ON_RING);
         mPlayDtmfTone = (CheckBoxPreference) findPreference(BUTTON_PLAY_DTMF_TONE);
 
-        PreferenceCategory soundCategory = (PreferenceCategory) findPreference(CATEGORY_SOUNDS_KEY);
         if (mVibrateWhenRinging != null) {
             Vibrator vibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
             if (vibrator != null && vibrator.hasVibrator()) {
                 mVibrateWhenRinging.setOnPreferenceChangeListener(this);
             } else {
-                soundCategory.removePreference(mVibrateWhenRinging);
+                getPreferenceScreen().removePreference(mVibrateWhenRinging);
                 mVibrateWhenRinging = null;
             }
         }
@@ -111,6 +108,18 @@
         };
     }
 
+    @Override
+    public void onResume() {
+        super.onResume();
+
+        if (mVibrateWhenRinging != null) {
+            mVibrateWhenRinging.setChecked(getVibrateWhenRingingSetting(mContext));
+        }
+
+        // Lookup the ringtone name asynchronously.
+        new Thread(mRingtoneLookupRunnable).start();
+    }
+
     /**
      * Supports onPreferenceChangeListener to look for preference changes.
      *
@@ -139,17 +148,6 @@
         return true;
     }
 
-    @Override
-    public void onResume() {
-        super.onResume();
-
-        if (mVibrateWhenRinging != null) {
-            mVibrateWhenRinging.setChecked(getVibrateWhenRingingSetting(mContext));
-        }
-
-        // Lookup the ringtone name asynchronously.
-        new Thread(mRingtoneLookupRunnable).start();
-    }
 
     /**
      * Obtain the setting for "vibrate when ringing" setting.