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