Merge pull request #90 from the-salami/dark-mode
change day/night themes to support dark mode setting on Android 10+
This commit is contained in:
commit
a861e035ab
|
@ -24,6 +24,7 @@ import android.content.SharedPreferences;
|
||||||
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
@ -85,7 +86,13 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte
|
||||||
private static ImageLoader IMAGE_LOADER;
|
private static ImageLoader IMAGE_LOADER;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
// If Android Pie or older, set night mode by system clock
|
||||||
|
if (Build.VERSION.SDK_INT<29) {
|
||||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO);
|
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO);
|
||||||
|
} else {
|
||||||
|
// Else, for Android 10+, follow system dark mode setting
|
||||||
|
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final List<SubsonicFragment> backStack = new ArrayList<>();
|
final List<SubsonicFragment> backStack = new ArrayList<>();
|
||||||
|
|
|
@ -18,6 +18,7 @@ package net.nullsum.audinaut.util;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
|
import android.os.Build;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import net.nullsum.audinaut.R;
|
import net.nullsum.audinaut.R;
|
||||||
|
@ -33,7 +34,15 @@ public final class ThemeUtil {
|
||||||
|
|
||||||
public static String getTheme(Context context) {
|
public static String getTheme(Context context) {
|
||||||
SharedPreferences prefs = Util.getPreferences(context);
|
SharedPreferences prefs = Util.getPreferences(context);
|
||||||
String theme = prefs.getString(Constants.PREFERENCES_KEY_THEME, null);
|
String theme;
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT<29) {
|
||||||
|
// If Android Pie or older, default to null (handled below as light)
|
||||||
|
theme = prefs.getString(Constants.PREFERENCES_KEY_THEME, null);
|
||||||
|
} else {
|
||||||
|
// Else, for Android 10+, default to follow system dark mode setting
|
||||||
|
theme = prefs.getString(Constants.PREFERENCES_KEY_THEME, THEME_DAY_NIGHT);
|
||||||
|
}
|
||||||
|
|
||||||
if (THEME_DAY_NIGHT.equals(theme)) {
|
if (THEME_DAY_NIGHT.equals(theme)) {
|
||||||
int currentNightMode = context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
|
int currentNightMode = context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
|
||||||
|
|
|
@ -162,8 +162,8 @@
|
||||||
<string name="settings.theme_light">Light</string>
|
<string name="settings.theme_light">Light</string>
|
||||||
<string name="settings.theme_dark">Dark</string>
|
<string name="settings.theme_dark">Dark</string>
|
||||||
<string name="settings.theme_black">Black</string>
|
<string name="settings.theme_black">Black</string>
|
||||||
<string name="settings.theme_day_night">Day/Night</string>
|
<string name="settings.theme_day_night">Dynamic (Light/Dark)</string>
|
||||||
<string name="settings.theme_day_black_night">Day/Black Night</string>
|
<string name="settings.theme_day_black_night">Dynamic (Light/Black)</string>
|
||||||
<string name="settings.theme_fullscreen">Fullscreen</string>
|
<string name="settings.theme_fullscreen">Fullscreen</string>
|
||||||
<string name="settings.theme_fullscreen_summary">Hide as many UI elements as Android will allow</string>
|
<string name="settings.theme_fullscreen_summary">Hide as many UI elements as Android will allow</string>
|
||||||
<string name="settings.track_title">Display Track #</string>
|
<string name="settings.track_title">Display Track #</string>
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
android:title="@string/settings.appearance_title">
|
android:title="@string/settings.appearance_title">
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:defaultValue="light"
|
|
||||||
android:entries="@array/themeNames"
|
android:entries="@array/themeNames"
|
||||||
android:entryValues="@array/themeValues"
|
android:entryValues="@array/themeValues"
|
||||||
android:key="theme"
|
android:key="theme"
|
||||||
|
|
Loading…
Reference in New Issue