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();