More themes

This commit is contained in:
M66B
2019-12-26 16:15:46 +01:00
parent 37f526ec21
commit 78f8e3a445
7 changed files with 234 additions and 46 deletions

View File

@@ -83,27 +83,53 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
if (!this.getClass().equals(ActivityMain.class)) {
String theme = prefs.getString("theme", "light");
int uiMode = getResources().getConfiguration().uiMode;
Log.i("UI mode=" + uiMode);
if ("dark".equals(theme))
setTheme(R.style.AppThemeBlueOrangeDark);
else if ("black".equals(theme))
setTheme(R.style.AppThemeBlack);
else if ("grey_light".equals(theme))
setTheme(R.style.AppThemeGreySteelBlueLight);
else if ("grey_dark".equals(theme))
setTheme(R.style.AppThemeGreySteelBlueDark);
else if ("system".equals(theme)) {
int uiMode = getResources().getConfiguration().uiMode;
Log.i("UI mode=" + uiMode);
if ((uiMode & Configuration.UI_MODE_NIGHT_YES) != 0)
setTheme(R.style.AppThemeBlack);
} else if ("grey_system".equals(theme)) {
int uiMode = getResources().getConfiguration().uiMode;
Log.i("UI mode=" + uiMode);
if ((uiMode & Configuration.UI_MODE_NIGHT_YES) != 0)
setTheme(R.style.AppThemeGreySteelBlueDark);
else
switch (theme) {
case "light":
case "blue_orange_light":
setTheme(R.style.AppThemeBlueOrangeLight);
break;
case "yellow_purple_light":
setTheme(R.style.AppThemeYellowPurpleLight);
break;
case "green_red_light":
setTheme(R.style.AppThemeGreenRedLight);
break;
case "grey_light":
setTheme(R.style.AppThemeGreySteelBlueLight);
break;
case "dark":
case "blue_orange_dark":
setTheme(R.style.AppThemeBlueOrangeDark);
break;
case "yellow_purple_dark":
setTheme(R.style.AppThemeYellowPurpleDark);
break;
case "green_red_dark":
setTheme(R.style.AppThemeGreenRedDark);
break;
case "grey_dark":
setTheme(R.style.AppThemeGreySteelBlueDark);
break;
case "black":
setTheme(R.style.AppThemeBlack);
break;
case "system":
if ((uiMode & Configuration.UI_MODE_NIGHT_YES) != 0)
setTheme(R.style.AppThemeBlueOrangeDark);
else
setTheme(R.style.AppThemeBlueOrangeLight);
break;
case "grey_system":
if ((uiMode & Configuration.UI_MODE_NIGHT_YES) != 0)
setTheme(R.style.AppThemeGreySteelBlueDark);
else
setTheme(R.style.AppThemeGreySteelBlueLight);
break;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

View File

@@ -667,26 +667,43 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
String theme = prefs.getString("theme", "light");
switch (theme) {
case "dark":
rgTheme.check(R.id.rbThemeDark);
case "light":
case "blue_orange_light":
rgTheme.check(R.id.rbThemeBlueOrangeLight);
break;
case "black":
rgTheme.check(R.id.rbThemeBlack);
case "yellow_purple_light":
rgTheme.check(R.id.rbThemeYellowPurpleLight);
break;
case "green_red_light":
rgTheme.check(R.id.rbThemeGreenRedLight);
break;
case "grey_light":
rgTheme.check(R.id.rbThemeGreyLight);
break;
case "dark":
case "blue_orange_dark":
rgTheme.check(R.id.rbThemeBlueOrangeDark);
break;
case "yellow_purple_dark":
rgTheme.check(R.id.rbThemeYellowPurpleDark);
break;
case "green_red_dark":
rgTheme.check(R.id.rbThemeGreenRedDark);
break;
case "grey_dark":
rgTheme.check(R.id.rbThemeGreyDark);
break;
case "black":
rgTheme.check(R.id.rbThemeBlack);
break;
case "system":
rgTheme.check(R.id.rbThemeSystem);
break;
case "grey_system":
rgTheme.check(R.id.rbThemeGreySystem);
break;
default:
rgTheme.check(R.id.rbThemeLight);
}
rgTheme.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@@ -697,21 +714,35 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
ContactInfo.clearCache();
switch (checkedId) {
case R.id.rbThemeLight:
prefs.edit().putString("theme", "light").apply();
case R.id.rbThemeBlueOrangeLight:
prefs.edit().putString("theme", "blue_orange_light").apply();
break;
case R.id.rbThemeDark:
prefs.edit().putString("theme", "dark").apply();
case R.id.rbThemeYellowPurpleLight:
prefs.edit().putString("theme", "yellow_purple_light").apply();
break;
case R.id.rbThemeBlack:
prefs.edit().putString("theme", "black").apply();
case R.id.rbThemeGreenRedLight:
prefs.edit().putString("theme", "green_red_light").apply();
break;
case R.id.rbThemeGreyLight:
prefs.edit().putString("theme", "grey_light").apply();
break;
case R.id.rbThemeBlueOrangeDark:
prefs.edit().putString("theme", "blue_orange_dark").apply();
break;
case R.id.rbThemeYellowPurpleDark:
prefs.edit().putString("theme", "yellow_purple_dark").apply();
break;
case R.id.rbThemeGreenRedDark:
prefs.edit().putString("theme", "green_red_dark").apply();
break;
case R.id.rbThemeGreyDark:
prefs.edit().putString("theme", "grey_dark").apply();
break;
case R.id.rbThemeBlack:
prefs.edit().putString("theme", "black").apply();
break;
case R.id.rbThemeSystem:
prefs.edit().putString("theme", "system").apply();
break;