Fix vibrate settings for incoming calls.

Bug: 2489593
Change-Id: Id0347bada808f604febc51c3d69d30442c3d51c4
diff --git a/src/com/android/settings/SoundSettings.java b/src/com/android/settings/SoundSettings.java
index c7bfe71..c1f773c 100644
--- a/src/com/android/settings/SoundSettings.java
+++ b/src/com/android/settings/SoundSettings.java
@@ -106,6 +106,8 @@
         mSilent = (CheckBoxPreference) findPreference(KEY_SILENT);
 
         mPhoneVibrate = (ListPreference) findPreference(KEY_VIBRATE);
+        mPhoneVibrate.setOnPreferenceChangeListener(this);
+
         mVibrateInSilent = (CheckBoxPreference) findPreference(KEY_VIBRATE_IN_SILENT);
         mDtmfTone = (CheckBoxPreference) findPreference(KEY_DTMF_TONE);
         mDtmfTone.setPersistent(false);
@@ -216,18 +218,6 @@
                 mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
             }
             updateState(false);
-        } else if (preference == mPhoneVibrate) {
-            int vibeSetting = new Integer(mPhoneVibrate.getValue()).intValue();
-            switch (vibeSetting) {
-                case AudioManager.VIBRATE_SETTING_ON:
-                case AudioManager.VIBRATE_SETTING_OFF:
-                case AudioManager.VIBRATE_SETTING_ONLY_SILENT:
-                    mAudioManager.setVibrateSetting(
-                            AudioManager.VIBRATE_TYPE_RINGER,
-                            vibeSetting);
-                    updateState(false);
-                    break;
-            }
         } else if (preference == mVibrateInSilent) {
             boolean vibeInSilent = mVibrateInSilent.isChecked();
             Settings.System.putInt(getContentResolver(),
@@ -279,6 +269,18 @@
             } catch (NumberFormatException e) {
                 Log.e(TAG, "could not persist emergency tone setting", e);
             }
+        } else if (preference == mPhoneVibrate) {
+            int vibeSetting = new Integer(objValue.toString()).intValue();
+            switch (vibeSetting) {
+                case AudioManager.VIBRATE_SETTING_ON:
+                case AudioManager.VIBRATE_SETTING_OFF:
+                case AudioManager.VIBRATE_SETTING_ONLY_SILENT:
+                    mAudioManager.setVibrateSetting(
+                            AudioManager.VIBRATE_TYPE_RINGER,
+                            vibeSetting);
+                    updateState(false);
+                    break;
+            }
         }
 
         return true;