Settings: Rebind to volume sliders after returning from stopped.

Bug: 18118623
Change-Id: I29fb22a1a4476639a4f5cce06affd8ce58b6105d
This commit is contained in:
John Spurlock
2014-12-08 15:20:33 -05:00
parent f68bc64593
commit aaaa54ec0e

View File

@@ -50,6 +50,7 @@ public class VolumeSeekBarPreference extends SeekBarPreference
private boolean mMuted;
private int mIconResId;
private int mMuteIconResId;
private boolean mStopped;
public VolumeSeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr,
int defStyleRes) {
@@ -77,8 +78,15 @@ public class VolumeSeekBarPreference extends SeekBarPreference
mCallback = callback;
}
public void onActivityResume() {
if (mStopped) {
init();
}
}
@Override
public void onActivityStop() {
mStopped = true;
if (mVolumizer != null) {
mVolumizer.stop();
}
@@ -91,10 +99,15 @@ public class VolumeSeekBarPreference extends SeekBarPreference
Log.w(TAG, "No stream found, not binding volumizer");
return;
}
mSeekBar = (SeekBar) view.findViewById(com.android.internal.R.id.seekbar);
mIconView = (ImageView) view.findViewById(com.android.internal.R.id.icon);
mSuppressionTextView = (TextView) view.findViewById(R.id.suppression_text);
init();
}
private void init() {
if (mSeekBar == null) return;
getPreferenceManager().registerOnActivityStopListener(this);
final SeekBar seekBar = (SeekBar) view.findViewById(com.android.internal.R.id.seekbar);
if (seekBar == mSeekBar) return;
mSeekBar = seekBar;
final SeekBarVolumizer.Callback sbvc = new SeekBarVolumizer.Callback() {
@Override
public void onSampleStarting(SeekBarVolumizer sbv) {
@@ -121,19 +134,11 @@ public class VolumeSeekBarPreference extends SeekBarPreference
}
mVolumizer.start();
mVolumizer.setSeekBar(mSeekBar);
mIconView = (ImageView) view.findViewById(com.android.internal.R.id.icon);
updateIconView();
mSuppressionTextView = (TextView) view.findViewById(R.id.suppression_text);
mCallback.onStreamValueChanged(mStream, mSeekBar.getProgress());
updateSuppressionText();
}
public void onActivityResume() {
if (mVolumizer != null) {
mVolumizer.start();
}
}
// during initialization, this preference is the SeekBar listener
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {