diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/notification/PlayingNotificationImpl24.java b/app/src/main/java/com/kabouzeid/gramophone/service/notification/PlayingNotificationImpl24.java index ee4bb75e..0ae6e977 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/notification/PlayingNotificationImpl24.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/notification/PlayingNotificationImpl24.java @@ -101,7 +101,7 @@ public class PlayingNotificationImpl24 extends PlayingNotification { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { builder.setStyle(new MediaStyle().setMediaSession(service.getMediaSession().getSessionToken()).setShowActionsInCompactView(0, 1, 2)) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC); - if (PreferenceUtil.getInstance(service).coloredNotification()) + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.O && PreferenceUtil.getInstance(service).coloredNotification()) builder.setColor(color); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java index 54467994..95781a17 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java @@ -294,6 +294,21 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia }); } + final TwoStatePreference coloredNotification = (TwoStatePreference) findPreference("colored_notification"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + coloredNotification.setEnabled(PreferenceUtil.getInstance(getActivity()).classicNotification()); + } else { + coloredNotification.setChecked(PreferenceUtil.getInstance(getActivity()).coloredNotification()); + coloredNotification.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + // Save preference + PreferenceUtil.getInstance(getActivity()).setColoredNotification((Boolean) newValue); + return true; + } + }); + } + final TwoStatePreference colorAppShortcuts = (TwoStatePreference) findPreference("should_color_app_shortcuts"); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N_MR1) { colorAppShortcuts.setVisible(false); @@ -342,6 +357,11 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia case PreferenceUtil.NOW_PLAYING_SCREEN_ID: updateNowPlayingScreenSummary(); break; + case PreferenceUtil.CLASSIC_NOTIFICATION: + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + findPreference("colored_notification").setEnabled(sharedPreferences.getBoolean(key, false)); + } + break; } } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java index 565df23e..b16242f6 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java @@ -158,6 +158,12 @@ public final class PreferenceUtil { return mPreferences.getBoolean(CLASSIC_NOTIFICATION, false); } + public void setColoredNotification(final boolean value) { + final SharedPreferences.Editor editor = mPreferences.edit(); + editor.putBoolean(COLORED_NOTIFICATION, value); + editor.apply(); + } + public void setClassicNotification(final boolean value) { final SharedPreferences.Editor editor = mPreferences.edit(); editor.putBoolean(CLASSIC_NOTIFICATION, value); diff --git a/app/src/main/res/xml/pref_notification.xml b/app/src/main/res/xml/pref_notification.xml index c5ad5e51..b36de10c 100644 --- a/app/src/main/res/xml/pref_notification.xml +++ b/app/src/main/res/xml/pref_notification.xml @@ -2,18 +2,18 @@ - - + +