Settings: Restart volumizers explicitly on resume.

onBindView is no longer called in all cases, so use
onResume as an additional signal that the user returned
to the settings page.  onActivityStop is called in both
cases to cleanup.

Bug: 17461564
Change-Id: I73a6775260951d4fd82ca8c3d8eb852f8dcc7452
This commit is contained in:
John Spurlock
2014-11-26 10:03:17 -05:00
parent 647f9752ce
commit 04b2e7957d
2 changed files with 11 additions and 1 deletions

View File

@@ -82,6 +82,7 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
private final H mHandler = new H(); private final H mHandler = new H();
private final SettingsObserver mSettingsObserver = new SettingsObserver(); private final SettingsObserver mSettingsObserver = new SettingsObserver();
private final Receiver mReceiver = new Receiver(); private final Receiver mReceiver = new Receiver();
private final ArrayList<VolumeSeekBarPreference> mVolumePrefs = new ArrayList<>();
private Context mContext; private Context mContext;
private PackageManager mPM; private PackageManager mPM;
@@ -148,6 +149,9 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
mSettingsObserver.register(true); mSettingsObserver.register(true);
mReceiver.register(true); mReceiver.register(true);
updateEffectsSuppressor(); updateEffectsSuppressor();
for (VolumeSeekBarPreference volumePref : mVolumePrefs) {
volumePref.onActivityResume();
}
} }
@Override @Override
@@ -159,11 +163,11 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
} }
// === Volumes === // === Volumes ===
private VolumeSeekBarPreference initVolumePreference(String key, int stream) { private VolumeSeekBarPreference initVolumePreference(String key, int stream) {
final VolumeSeekBarPreference volumePref = (VolumeSeekBarPreference) findPreference(key); final VolumeSeekBarPreference volumePref = (VolumeSeekBarPreference) findPreference(key);
volumePref.setCallback(mVolumeCallback); volumePref.setCallback(mVolumeCallback);
volumePref.setStream(stream); volumePref.setStream(stream);
mVolumePrefs.add(volumePref);
return volumePref; return volumePref;
} }

View File

@@ -120,6 +120,12 @@ public class VolumeSeekBarPreference extends SeekBarPreference
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) {