diff --git a/res/values/translatable.xml b/res/values/translatable.xml index 44382fde..b61def37 100644 --- a/res/values/translatable.xml +++ b/res/values/translatable.xml @@ -208,7 +208,7 @@ THE SOFTWARE. Miscellaneous Features Use dark theme - Enables the dark material theme (requires restart) + Enables the dark material theme Disable Lockscreen Prevent the lockscreen from activating when in the library or playback screen Enable Idle Timeout diff --git a/src/ch/blinkenlights/android/vanilla/PlaybackActivity.java b/src/ch/blinkenlights/android/vanilla/PlaybackActivity.java index 7d7ace44..23e5fe92 100644 --- a/src/ch/blinkenlights/android/vanilla/PlaybackActivity.java +++ b/src/ch/blinkenlights/android/vanilla/PlaybackActivity.java @@ -55,8 +55,7 @@ import android.widget.Toast; public abstract class PlaybackActivity extends Activity implements Handler.Callback, View.OnClickListener, - CoverView.Callback, - SharedPreferences.OnSharedPreferenceChangeListener + CoverView.Callback { private Action mUpAction; private Action mDownAction; @@ -119,11 +118,11 @@ public abstract class PlaybackActivity extends Activity startService(new Intent(this, PlaybackService.class)); SharedPreferences prefs = PlaybackService.getSettings(this); - prefs.registerOnSharedPreferenceChangeListener(this); mUpAction = Action.getAction(prefs, PrefKeys.SWIPE_UP_ACTION, Action.Nothing); mDownAction = Action.getAction(prefs, PrefKeys.SWIPE_DOWN_ACTION, Action.Nothing); Window window = getWindow(); + if (prefs.getBoolean(PrefKeys.DISABLE_LOCKSCREEN, false)) window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); @@ -144,15 +143,6 @@ public abstract class PlaybackActivity extends Activity } - @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - if (key.equals(PrefKeys.USE_DARK_THEME)) { - // Terminate this activity as the currently used theme is outdated - finish(); - } - } - - @Override public boolean onKeyDown(int keyCode, KeyEvent event) diff --git a/src/ch/blinkenlights/android/vanilla/PlaybackService.java b/src/ch/blinkenlights/android/vanilla/PlaybackService.java index 49521b83..515a5f3a 100644 --- a/src/ch/blinkenlights/android/vanilla/PlaybackService.java +++ b/src/ch/blinkenlights/android/vanilla/PlaybackService.java @@ -849,6 +849,11 @@ public final class PlaybackService extends Service refreshReplayGainValues(); } else if (PrefKeys.ENABLE_READAHEAD.equals(key)) { mReadaheadEnabled = settings.getBoolean(PrefKeys.ENABLE_READAHEAD, false); + } else if (PrefKeys.USE_DARK_THEME.equals(key)) { + // Theme changed: trigger a restart of all registered activites + ArrayList list = sActivities; + for (int i = list.size(); --i != -1; ) + list.get(i).recreate(); } /* Tell androids cloud-backup manager that we just changed our preferences */ (new BackupManager(this)).dataChanged();