diff --git a/src/com/android/settings/notification/VolumeSeekBarPreference.java b/src/com/android/settings/notification/VolumeSeekBarPreference.java index 0000eba2ba7..dd9df446242 100644 --- a/src/com/android/settings/notification/VolumeSeekBarPreference.java +++ b/src/com/android/settings/notification/VolumeSeekBarPreference.java @@ -131,6 +131,11 @@ public class VolumeSeekBarPreference extends SeekBarPreference { protected void init() { if (mSeekBar == null) return; + // It's unnecessary to set up relevant volumizer configuration if preference is disabled. + if (!isEnabled()) { + mSeekBar.setEnabled(false); + return; + } final SeekBarVolumizer.Callback sbvc = new SeekBarVolumizer.Callback() { @Override public void onSampleStarting(SeekBarVolumizer sbv) { @@ -179,10 +184,6 @@ public class VolumeSeekBarPreference extends SeekBarPreference { if (mListener != null) { mListener.onUpdateMuteState(); } - if (!isEnabled()) { - mSeekBar.setEnabled(false); - mVolumizer.stop(); - } } protected void updateIconView() { diff --git a/tests/robotests/src/com/android/settings/notification/VolumeSeekBarPreferenceTest.java b/tests/robotests/src/com/android/settings/notification/VolumeSeekBarPreferenceTest.java index 59f0bcb91b9..ad374cdaa79 100644 --- a/tests/robotests/src/com/android/settings/notification/VolumeSeekBarPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/notification/VolumeSeekBarPreferenceTest.java @@ -81,6 +81,7 @@ public class VolumeSeekBarPreferenceTest { @Test public void init_listenerIsCalled() { + when(mPreference.isEnabled()).thenReturn(true); doCallRealMethod().when(mPreference).setListener(mListener); doCallRealMethod().when(mPreference).init(); @@ -92,6 +93,18 @@ public class VolumeSeekBarPreferenceTest { @Test public void init_listenerNotSet_noException() { + when(mPreference.isEnabled()).thenReturn(true); + doCallRealMethod().when(mPreference).init(); + + mPreference.init(); + + verify(mPreference, never()).updateContentDescription(CONTENT_DESCRIPTION); + } + + @Test + public void init_preferenceIsDisabled_shouldNotInvokeListener() { + when(mPreference.isEnabled()).thenReturn(false); + doCallRealMethod().when(mPreference).setListener(mListener); doCallRealMethod().when(mPreference).init(); mPreference.init();