From 04b2e7957d17098d6fb4e338bc039a4bc022aa0a Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Wed, 26 Nov 2014 10:03:17 -0500 Subject: [PATCH] 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 --- .../android/settings/notification/NotificationSettings.java | 6 +++++- .../settings/notification/VolumeSeekBarPreference.java | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/notification/NotificationSettings.java b/src/com/android/settings/notification/NotificationSettings.java index bd08d8fab81..c9bc80df9dc 100644 --- a/src/com/android/settings/notification/NotificationSettings.java +++ b/src/com/android/settings/notification/NotificationSettings.java @@ -82,6 +82,7 @@ public class NotificationSettings extends SettingsPreferenceFragment implements private final H mHandler = new H(); private final SettingsObserver mSettingsObserver = new SettingsObserver(); private final Receiver mReceiver = new Receiver(); + private final ArrayList mVolumePrefs = new ArrayList<>(); private Context mContext; private PackageManager mPM; @@ -148,6 +149,9 @@ public class NotificationSettings extends SettingsPreferenceFragment implements mSettingsObserver.register(true); mReceiver.register(true); updateEffectsSuppressor(); + for (VolumeSeekBarPreference volumePref : mVolumePrefs) { + volumePref.onActivityResume(); + } } @Override @@ -159,11 +163,11 @@ public class NotificationSettings extends SettingsPreferenceFragment implements } // === Volumes === - private VolumeSeekBarPreference initVolumePreference(String key, int stream) { final VolumeSeekBarPreference volumePref = (VolumeSeekBarPreference) findPreference(key); volumePref.setCallback(mVolumeCallback); volumePref.setStream(stream); + mVolumePrefs.add(volumePref); return volumePref; } diff --git a/src/com/android/settings/notification/VolumeSeekBarPreference.java b/src/com/android/settings/notification/VolumeSeekBarPreference.java index 0fdcc199c4c..6050aecfd80 100644 --- a/src/com/android/settings/notification/VolumeSeekBarPreference.java +++ b/src/com/android/settings/notification/VolumeSeekBarPreference.java @@ -120,6 +120,12 @@ public class VolumeSeekBarPreference extends SeekBarPreference 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) {