2021-01-18 13:04:10 +00:00
|
|
|
package eu.faircode.email;
|
|
|
|
|
|
|
|
import android.app.Dialog;
|
2021-06-27 06:13:56 +00:00
|
|
|
import android.content.Context;
|
2021-01-18 13:04:10 +00:00
|
|
|
import android.content.DialogInterface;
|
2021-10-23 07:27:02 +00:00
|
|
|
import android.content.Intent;
|
2021-01-18 13:04:10 +00:00
|
|
|
import android.content.SharedPreferences;
|
2021-02-08 15:22:09 +00:00
|
|
|
import android.graphics.Paint;
|
2021-10-26 13:58:23 +00:00
|
|
|
import android.os.Build;
|
2021-01-18 13:04:10 +00:00
|
|
|
import android.os.Bundle;
|
2021-10-26 16:56:39 +00:00
|
|
|
import android.provider.Settings;
|
2021-01-18 13:04:10 +00:00
|
|
|
import android.view.LayoutInflater;
|
|
|
|
import android.view.View;
|
2021-10-23 07:27:02 +00:00
|
|
|
import android.widget.Button;
|
2021-01-18 13:04:10 +00:00
|
|
|
import android.widget.CompoundButton;
|
2021-10-26 13:58:23 +00:00
|
|
|
import android.widget.RadioButton;
|
2021-01-18 13:04:10 +00:00
|
|
|
import android.widget.RadioGroup;
|
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
import androidx.appcompat.app.AlertDialog;
|
|
|
|
import androidx.appcompat.widget.SwitchCompat;
|
2021-06-27 06:13:56 +00:00
|
|
|
import androidx.core.content.ContextCompat;
|
2021-01-18 13:04:10 +00:00
|
|
|
import androidx.preference.PreferenceManager;
|
|
|
|
|
|
|
|
public class FragmentDialogTheme extends FragmentDialogBase {
|
|
|
|
private RadioGroup rgTheme;
|
|
|
|
private SwitchCompat swReverse;
|
2021-10-26 13:58:23 +00:00
|
|
|
private RadioButton rbThemeYou;
|
2021-10-26 16:48:01 +00:00
|
|
|
private TextView tvYou;
|
2021-01-18 13:04:10 +00:00
|
|
|
private RadioGroup rgThemeOptions;
|
2021-09-27 06:40:23 +00:00
|
|
|
private TextView tvSystem;
|
2021-01-18 13:04:10 +00:00
|
|
|
private SwitchCompat swBlack;
|
2021-09-21 12:58:54 +00:00
|
|
|
private SwitchCompat swHtmlLight;
|
2021-09-27 06:40:23 +00:00
|
|
|
private SwitchCompat swComposerLight;
|
2021-10-23 07:27:02 +00:00
|
|
|
private Button btnMore;
|
2021-02-08 15:22:09 +00:00
|
|
|
private TextView tvMore;
|
2021-01-18 13:04:10 +00:00
|
|
|
|
|
|
|
private void eval() {
|
|
|
|
int checkedId = rgTheme.getCheckedRadioButtonId();
|
|
|
|
boolean grey = (checkedId == R.id.rbThemeGrey);
|
2021-06-27 06:13:56 +00:00
|
|
|
boolean solarized = (checkedId == R.id.rbThemeSolarized);
|
2021-10-26 13:58:23 +00:00
|
|
|
boolean you = (checkedId == R.id.rbThemeYou);
|
|
|
|
boolean colored = (grey || solarized || you ||
|
2021-01-18 13:04:10 +00:00
|
|
|
checkedId == R.id.rbThemeBlueOrange ||
|
2021-01-19 18:42:07 +00:00
|
|
|
checkedId == R.id.rbThemeRedGreen ||
|
|
|
|
checkedId == R.id.rbThemeYellowPurple);
|
2021-01-18 13:04:10 +00:00
|
|
|
int optionId = rgThemeOptions.getCheckedRadioButtonId();
|
|
|
|
|
2021-10-26 13:58:23 +00:00
|
|
|
swReverse.setEnabled(colored && !grey && !solarized && !you);
|
2021-01-18 13:04:10 +00:00
|
|
|
|
|
|
|
rgThemeOptions.setEnabled(colored);
|
|
|
|
for (int i = 0; i < rgThemeOptions.getChildCount(); i++)
|
|
|
|
rgThemeOptions.getChildAt(i).setEnabled(colored);
|
|
|
|
|
2021-09-27 06:40:23 +00:00
|
|
|
tvSystem.setEnabled(colored && optionId == R.id.rbThemeSystem);
|
|
|
|
|
2021-06-27 06:13:56 +00:00
|
|
|
swBlack.setEnabled(colored && !grey && !solarized && optionId != R.id.rbThemeLight);
|
2021-01-18 13:04:10 +00:00
|
|
|
|
2021-09-21 12:58:54 +00:00
|
|
|
swHtmlLight.setEnabled(!colored || optionId != R.id.rbThemeLight);
|
2021-09-27 06:54:24 +00:00
|
|
|
swComposerLight.setEnabled(!colored || optionId != R.id.rbThemeLight);
|
2021-01-18 13:04:10 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@NonNull
|
|
|
|
@Override
|
|
|
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
2021-10-23 07:27:02 +00:00
|
|
|
Bundle args = getArguments();
|
|
|
|
boolean settings = (args != null && args.getBoolean("settings"));
|
|
|
|
|
2021-09-24 06:16:14 +00:00
|
|
|
final Context context = getContext();
|
|
|
|
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
|
|
|
String theme = prefs.getString("theme", "blue_orange_system");
|
|
|
|
boolean default_light = prefs.getBoolean("default_light", false);
|
2021-09-27 06:40:23 +00:00
|
|
|
boolean composer_light = prefs.getBoolean("composer_light", false);
|
2021-09-24 06:16:14 +00:00
|
|
|
|
|
|
|
View dview = LayoutInflater.from(context).inflate(R.layout.dialog_theme, null);
|
2021-01-18 13:04:10 +00:00
|
|
|
rgTheme = dview.findViewById(R.id.rgTheme);
|
2021-10-26 13:58:23 +00:00
|
|
|
rbThemeYou = dview.findViewById(R.id.rbThemeYou);
|
2021-10-26 16:48:01 +00:00
|
|
|
tvYou = dview.findViewById(R.id.tvYou);
|
2021-01-18 13:04:10 +00:00
|
|
|
swReverse = dview.findViewById(R.id.swReverse);
|
|
|
|
rgThemeOptions = dview.findViewById(R.id.rgThemeOptions);
|
2021-09-24 06:16:14 +00:00
|
|
|
tvSystem = dview.findViewById(R.id.tvSystem);
|
2021-01-18 13:04:10 +00:00
|
|
|
swBlack = dview.findViewById(R.id.swBlack);
|
2021-09-21 12:58:54 +00:00
|
|
|
swHtmlLight = dview.findViewById(R.id.swHtmlLight);
|
2021-09-27 06:40:23 +00:00
|
|
|
swComposerLight = dview.findViewById(R.id.swComposerLight);
|
2021-10-23 07:27:02 +00:00
|
|
|
btnMore = dview.findViewById(R.id.btnMore);
|
2021-02-08 15:22:09 +00:00
|
|
|
tvMore = dview.findViewById(R.id.tvMore);
|
2021-01-18 13:04:10 +00:00
|
|
|
|
|
|
|
rgTheme.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
|
|
|
|
@Override
|
|
|
|
public void onCheckedChanged(RadioGroup group, int checkedId) {
|
|
|
|
eval();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2021-10-26 16:48:01 +00:00
|
|
|
rbThemeYou.setVisibility(Build.VERSION.SDK_INT < Build.VERSION_CODES.S ? View.GONE : View.VISIBLE);
|
|
|
|
tvYou.setVisibility(Build.VERSION.SDK_INT < Build.VERSION_CODES.S ? View.GONE : View.VISIBLE);
|
2021-10-26 13:58:23 +00:00
|
|
|
|
2021-10-26 16:56:39 +00:00
|
|
|
tvYou.setOnClickListener(new View.OnClickListener() {
|
|
|
|
@Override
|
|
|
|
public void onClick(View v) {
|
|
|
|
startActivity(new Intent(Settings.ACTION_SETTINGS));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2021-01-18 13:04:10 +00:00
|
|
|
swReverse.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
|
|
|
@Override
|
|
|
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
|
|
|
eval();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
rgThemeOptions.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
|
|
|
|
@Override
|
|
|
|
public void onCheckedChanged(RadioGroup group, int checkedId) {
|
|
|
|
eval();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
swBlack.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
|
|
|
@Override
|
|
|
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
|
|
|
eval();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
boolean reversed =
|
|
|
|
(theme.startsWith("orange_blue") ||
|
|
|
|
theme.startsWith("purple_yellow") ||
|
|
|
|
theme.startsWith("green_red"));
|
|
|
|
boolean dark = theme.endsWith("dark");
|
|
|
|
boolean system = (theme.endsWith("system") || theme.endsWith("system_black"));
|
|
|
|
boolean black = (!"black".equals(theme) && theme.endsWith("black"));
|
|
|
|
|
|
|
|
swReverse.setChecked(reversed);
|
|
|
|
|
|
|
|
if (system)
|
|
|
|
rgThemeOptions.check(R.id.rbThemeSystem);
|
|
|
|
else if (dark || black)
|
|
|
|
rgThemeOptions.check(R.id.rbThemeDark);
|
|
|
|
else
|
|
|
|
rgThemeOptions.check(R.id.rbThemeLight);
|
|
|
|
|
|
|
|
swBlack.setChecked(black);
|
2021-09-21 12:58:54 +00:00
|
|
|
swHtmlLight.setChecked(default_light);
|
2021-09-27 06:40:23 +00:00
|
|
|
swComposerLight.setChecked(composer_light);
|
2021-09-21 12:58:54 +00:00
|
|
|
|
2021-01-18 13:04:10 +00:00
|
|
|
switch (theme) {
|
|
|
|
case "light":
|
|
|
|
case "dark":
|
|
|
|
case "system":
|
|
|
|
case "blue_orange_system":
|
|
|
|
case "blue_orange_system_black":
|
|
|
|
case "blue_orange_light":
|
|
|
|
case "blue_orange_dark":
|
|
|
|
case "blue_orange_black":
|
|
|
|
case "orange_blue_system":
|
|
|
|
case "orange_blue_system_black":
|
|
|
|
case "orange_blue_light":
|
|
|
|
case "orange_blue_dark":
|
|
|
|
case "orange_blue_black":
|
|
|
|
rgTheme.check(R.id.rbThemeBlueOrange);
|
|
|
|
break;
|
|
|
|
case "red_green_system":
|
|
|
|
case "red_green_system_black":
|
|
|
|
case "red_green_light":
|
|
|
|
case "red_green_dark":
|
|
|
|
case "red_green_black":
|
|
|
|
case "green_red_system":
|
|
|
|
case "green_red_system_black":
|
|
|
|
case "green_red_light":
|
|
|
|
case "green_red_dark":
|
|
|
|
case "green_red_black":
|
|
|
|
rgTheme.check(R.id.rbThemeRedGreen);
|
|
|
|
break;
|
2021-01-19 18:42:07 +00:00
|
|
|
case "yellow_purple_system":
|
|
|
|
case "yellow_purple_system_black":
|
|
|
|
case "yellow_purple_light":
|
|
|
|
case "yellow_purple_dark":
|
|
|
|
case "yellow_purple_black":
|
|
|
|
case "purple_yellow_system":
|
|
|
|
case "purple_yellow_system_black":
|
|
|
|
case "purple_yellow_light":
|
|
|
|
case "purple_yellow_dark":
|
|
|
|
case "purple_yellow_black":
|
|
|
|
rgTheme.check(R.id.rbThemeYellowPurple);
|
|
|
|
break;
|
2021-06-26 18:14:40 +00:00
|
|
|
|
2021-01-18 13:04:10 +00:00
|
|
|
case "grey_system":
|
|
|
|
case "grey_light":
|
|
|
|
case "grey_dark":
|
|
|
|
rgTheme.check(R.id.rbThemeGrey);
|
|
|
|
break;
|
|
|
|
|
2021-06-26 18:14:40 +00:00
|
|
|
case "solarized":
|
2021-06-27 06:13:56 +00:00
|
|
|
case "solarized_light":
|
|
|
|
case "solarized_dark":
|
|
|
|
case "solarized_system":
|
2021-06-26 18:14:40 +00:00
|
|
|
rgTheme.check(R.id.rbThemeSolarized);
|
|
|
|
break;
|
|
|
|
|
2021-01-18 13:04:10 +00:00
|
|
|
case "black":
|
|
|
|
rgTheme.check(R.id.rbThemeBlack);
|
|
|
|
break;
|
|
|
|
case "black_and_white":
|
|
|
|
rgTheme.check(R.id.rbThemeBlackAndWhite);
|
|
|
|
break;
|
2021-10-26 13:58:23 +00:00
|
|
|
case "you_light":
|
|
|
|
case "you_dark":
|
|
|
|
case "you_black":
|
|
|
|
case "you_system":
|
|
|
|
case "you_system_black":
|
|
|
|
rgTheme.check(R.id.rbThemeYou);
|
|
|
|
break;
|
2021-01-18 13:04:10 +00:00
|
|
|
}
|
|
|
|
|
2021-02-08 15:22:09 +00:00
|
|
|
tvMore.setPaintFlags(tvMore.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
|
|
|
|
tvMore.setOnClickListener(new View.OnClickListener() {
|
|
|
|
@Override
|
|
|
|
public void onClick(View v) {
|
|
|
|
Helper.viewFAQ(v.getContext(), 164);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2021-10-23 07:27:02 +00:00
|
|
|
btnMore.setVisibility(settings ? View.GONE : View.VISIBLE);
|
|
|
|
btnMore.setOnClickListener(new View.OnClickListener() {
|
|
|
|
@Override
|
|
|
|
public void onClick(View v) {
|
|
|
|
dismiss();
|
|
|
|
v.getContext().startActivity(new Intent(v.getContext(), ActivitySetup.class)
|
|
|
|
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)
|
|
|
|
.putExtra("tab", "display"));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2021-01-18 13:04:10 +00:00
|
|
|
return new AlertDialog.Builder(getContext())
|
|
|
|
.setView(dview)
|
|
|
|
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
|
|
|
@Override
|
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
|
getActivity().getIntent().putExtra("tab", "display");
|
|
|
|
|
|
|
|
ContactInfo.clearCache(getContext());
|
|
|
|
|
|
|
|
int optionId = rgThemeOptions.getCheckedRadioButtonId();
|
|
|
|
boolean reverse = (swReverse.isEnabled() && swReverse.isChecked());
|
|
|
|
boolean dark = (rgThemeOptions.isEnabled() && optionId == R.id.rbThemeDark);
|
|
|
|
boolean system = (rgThemeOptions.isEnabled() && optionId == R.id.rbThemeSystem);
|
|
|
|
boolean black = (swBlack.isEnabled() && swBlack.isChecked());
|
|
|
|
|
|
|
|
SharedPreferences.Editor editor = prefs.edit();
|
|
|
|
|
|
|
|
editor.remove("highlight_color");
|
|
|
|
|
2021-02-05 10:15:02 +00:00
|
|
|
int checkedRadioButtonId = rgTheme.getCheckedRadioButtonId();
|
|
|
|
if (checkedRadioButtonId == R.id.rbThemeBlueOrange) {
|
|
|
|
if (system)
|
|
|
|
editor.putString("theme",
|
|
|
|
(reverse ? "orange_blue_system" : "blue_orange_system") +
|
|
|
|
(black ? "_black" : "")).apply();
|
|
|
|
else
|
|
|
|
editor.putString("theme",
|
|
|
|
(reverse ? "orange_blue" : "blue_orange") +
|
|
|
|
(black ? "_black" : dark ? "_dark" : "_light")).apply();
|
|
|
|
} else if (checkedRadioButtonId == R.id.rbThemeRedGreen) {
|
|
|
|
if (system)
|
|
|
|
editor.putString("theme",
|
|
|
|
(reverse ? "green_red_system" : "red_green_system") +
|
|
|
|
(black ? "_black" : "")).apply();
|
|
|
|
else
|
|
|
|
editor.putString("theme",
|
|
|
|
(reverse ? "green_red" : "red_green") +
|
|
|
|
(black ? "_black" : dark ? "_dark" : "_light")).apply();
|
|
|
|
} else if (checkedRadioButtonId == R.id.rbThemeYellowPurple) {
|
|
|
|
if (system)
|
|
|
|
editor.putString("theme",
|
|
|
|
(reverse ? "purple_yellow_system" : "yellow_purple_system") +
|
|
|
|
(black ? "_black" : "")).apply();
|
|
|
|
else
|
|
|
|
editor.putString("theme",
|
|
|
|
(reverse ? "purple_yellow" : "yellow_purple") +
|
|
|
|
(black ? "_black" : dark ? "_dark" : "_light")).apply();
|
|
|
|
} else if (checkedRadioButtonId == R.id.rbThemeGrey) {
|
|
|
|
if (system)
|
|
|
|
editor.putString("theme", "grey_system").apply();
|
|
|
|
else
|
|
|
|
editor.putString("theme",
|
|
|
|
"grey" + (dark ? "_dark" : "_light")).apply();
|
2021-06-26 18:14:40 +00:00
|
|
|
} else if (checkedRadioButtonId == R.id.rbThemeSolarized) {
|
2021-06-27 06:13:56 +00:00
|
|
|
if (system)
|
|
|
|
editor.putString("theme", "solarized_system").apply();
|
|
|
|
else
|
|
|
|
editor.putString("theme",
|
|
|
|
"solarized" + (dark ? "_dark" : "_light")).apply();
|
2021-02-05 10:15:02 +00:00
|
|
|
} else if (checkedRadioButtonId == R.id.rbThemeBlack) {
|
|
|
|
editor.putString("theme", "black").apply();
|
|
|
|
} else if (checkedRadioButtonId == R.id.rbThemeBlackAndWhite) {
|
|
|
|
editor.putString("theme", "black_and_white").apply();
|
2021-10-26 13:58:23 +00:00
|
|
|
} else if (checkedRadioButtonId == R.id.rbThemeYou) {
|
|
|
|
if (system)
|
|
|
|
editor.putString("theme", "you_system" +
|
|
|
|
(black ? "_black" : "")).apply();
|
|
|
|
else
|
|
|
|
editor.putString("theme", "you" +
|
|
|
|
(black ? "_black" : dark ? "_dark" : "_light")).apply();
|
2021-01-18 13:04:10 +00:00
|
|
|
}
|
|
|
|
|
2021-09-21 12:58:54 +00:00
|
|
|
editor.putBoolean("default_light", swHtmlLight.isChecked());
|
2021-09-27 06:40:23 +00:00
|
|
|
editor.putBoolean("composer_light", swComposerLight.isChecked());
|
2021-09-21 12:58:54 +00:00
|
|
|
|
2021-01-18 13:04:10 +00:00
|
|
|
editor.apply();
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.setNegativeButton(android.R.string.cancel, null)
|
|
|
|
.create();
|
|
|
|
}
|
2021-06-27 06:13:56 +00:00
|
|
|
|
2021-07-13 06:15:36 +00:00
|
|
|
static int getTheme(ActivityBase activity) {
|
|
|
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
|
|
|
|
String theme = prefs.getString("theme", "blue_orange_system");
|
2021-09-27 06:40:23 +00:00
|
|
|
boolean composer_light = prefs.getBoolean("composer_light", false);
|
2021-07-13 06:15:36 +00:00
|
|
|
|
|
|
|
boolean night = Helper.isNight(activity);
|
2021-09-27 06:40:23 +00:00
|
|
|
boolean light = (composer_light && activity instanceof ActivityCompose);
|
|
|
|
if (light)
|
|
|
|
night = false;
|
|
|
|
EntityLog.log(activity, "Activity theme=" + theme +
|
|
|
|
"light = " + light + " night=" + night);
|
2021-07-13 06:15:36 +00:00
|
|
|
|
|
|
|
switch (theme) {
|
|
|
|
// Light
|
|
|
|
case "light":
|
|
|
|
case "blue_orange_light":
|
|
|
|
return R.style.AppThemeBlueOrangeLight;
|
|
|
|
case "orange_blue_light":
|
|
|
|
return R.style.AppThemeOrangeBlueLight;
|
|
|
|
|
|
|
|
case "yellow_purple_light":
|
|
|
|
return R.style.AppThemeYellowPurpleLight;
|
|
|
|
case "purple_yellow_light":
|
|
|
|
return R.style.AppThemePurpleYellowLight;
|
|
|
|
|
|
|
|
case "red_green_light":
|
|
|
|
return R.style.AppThemeRedGreenLight;
|
|
|
|
case "green_red_light":
|
|
|
|
return R.style.AppThemeGreenRedLight;
|
|
|
|
|
|
|
|
// Dark
|
|
|
|
case "dark":
|
|
|
|
case "blue_orange_dark":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemeBlueOrangeLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemeBlueOrangeDark;
|
2021-07-13 06:15:36 +00:00
|
|
|
case "orange_blue_dark":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemeOrangeBlueLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemeOrangeBlueDark;
|
2021-07-13 06:15:36 +00:00
|
|
|
|
|
|
|
case "yellow_purple_dark":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemeYellowPurpleLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemeYellowPurpleDark;
|
2021-07-13 06:15:36 +00:00
|
|
|
case "purple_yellow_dark":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemePurpleYellowLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemePurpleYellowDark;
|
2021-07-13 06:15:36 +00:00
|
|
|
|
|
|
|
case "red_green_dark":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemeRedGreenLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemeRedGreenDark;
|
2021-07-13 06:15:36 +00:00
|
|
|
case "green_red_dark":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemeGreenRedLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemeGreenRedDark;
|
2021-07-13 06:15:36 +00:00
|
|
|
|
2021-09-27 06:40:23 +00:00
|
|
|
// Black
|
2021-07-13 06:15:36 +00:00
|
|
|
case "blue_orange_black":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemeBlueOrangeLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemeBlueOrangeBlack;
|
2021-07-13 06:15:36 +00:00
|
|
|
case "orange_blue_black":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemeOrangeBlueLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemeOrangeBlueBlack;
|
2021-07-13 06:15:36 +00:00
|
|
|
case "yellow_purple_black":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemeYellowPurpleLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemeYellowPurpleBlack;
|
2021-07-13 06:15:36 +00:00
|
|
|
case "purple_yellow_black":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemePurpleYellowLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemePurpleYellowBlack;
|
2021-07-13 06:15:36 +00:00
|
|
|
case "red_green_black":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemeRedGreenLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemeRedGreenBlack;
|
2021-07-13 06:15:36 +00:00
|
|
|
case "green_red_black":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemeGreenRedLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemeGreenRedBlack;
|
2021-07-13 06:15:36 +00:00
|
|
|
|
2021-09-27 06:40:23 +00:00
|
|
|
// Grey
|
2021-07-13 06:15:36 +00:00
|
|
|
case "grey_light":
|
|
|
|
return R.style.AppThemeGreySteelBlueLight;
|
|
|
|
case "grey_dark":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemeGreySteelBlueLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemeGreySteelBlueDark;
|
2021-07-13 06:15:36 +00:00
|
|
|
|
2021-09-27 06:40:23 +00:00
|
|
|
// Solarized
|
2021-07-13 06:15:36 +00:00
|
|
|
case "solarized_light":
|
|
|
|
return R.style.AppThemeSolarizedLight;
|
|
|
|
case "solarized":
|
|
|
|
case "solarized_dark":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemeSolarizedLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemeSolarizedDark;
|
2021-07-13 06:15:36 +00:00
|
|
|
|
2021-09-27 06:40:23 +00:00
|
|
|
// Black
|
2021-07-13 06:15:36 +00:00
|
|
|
case "black":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemeGreySteelBlueLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemeBlack;
|
2021-07-13 06:15:36 +00:00
|
|
|
|
|
|
|
case "black_and_white":
|
2021-09-27 06:40:23 +00:00
|
|
|
if (light)
|
|
|
|
return R.style.AppThemeGreySteelBlueLight;
|
|
|
|
else
|
|
|
|
return R.style.AppThemeBlackAndWhite;
|
2021-07-13 06:15:36 +00:00
|
|
|
|
2021-09-27 06:40:23 +00:00
|
|
|
// System
|
2021-07-13 06:15:36 +00:00
|
|
|
case "system":
|
|
|
|
case "blue_orange_system":
|
|
|
|
return (night
|
|
|
|
? R.style.AppThemeBlueOrangeDark : R.style.AppThemeBlueOrangeLight);
|
|
|
|
case "blue_orange_system_black":
|
|
|
|
return (night
|
|
|
|
? R.style.AppThemeBlueOrangeBlack : R.style.AppThemeBlueOrangeLight);
|
|
|
|
case "orange_blue_system":
|
|
|
|
return (night
|
|
|
|
? R.style.AppThemeOrangeBlueDark : R.style.AppThemeOrangeBlueLight);
|
|
|
|
case "orange_blue_system_black":
|
|
|
|
return (night
|
|
|
|
? R.style.AppThemeOrangeBlueBlack : R.style.AppThemeOrangeBlueLight);
|
|
|
|
case "yellow_purple_system":
|
|
|
|
return (night
|
|
|
|
? R.style.AppThemeYellowPurpleDark : R.style.AppThemeYellowPurpleLight);
|
|
|
|
case "yellow_purple_system_black":
|
|
|
|
return (night
|
|
|
|
? R.style.AppThemeYellowPurpleBlack : R.style.AppThemeYellowPurpleLight);
|
|
|
|
case "purple_yellow_system":
|
|
|
|
return (night
|
|
|
|
? R.style.AppThemePurpleYellowDark : R.style.AppThemePurpleYellowLight);
|
|
|
|
case "purple_yellow_system_black":
|
|
|
|
return (night
|
|
|
|
? R.style.AppThemePurpleYellowBlack : R.style.AppThemePurpleYellowLight);
|
|
|
|
case "red_green_system":
|
|
|
|
return (night
|
|
|
|
? R.style.AppThemeRedGreenDark : R.style.AppThemeRedGreenLight);
|
|
|
|
case "red_green_system_black":
|
|
|
|
return (night
|
|
|
|
? R.style.AppThemeRedGreenBlack : R.style.AppThemeRedGreenLight);
|
|
|
|
case "green_red_system":
|
|
|
|
return (night
|
|
|
|
? R.style.AppThemeGreenRedDark : R.style.AppThemeGreenRedLight);
|
|
|
|
case "green_red_system_black":
|
|
|
|
return (night
|
|
|
|
? R.style.AppThemeGreenRedBlack : R.style.AppThemeGreenRedLight);
|
|
|
|
case "grey_system":
|
|
|
|
return (night
|
|
|
|
? R.style.AppThemeGreySteelBlueDark : R.style.AppThemeGreySteelBlueLight);
|
|
|
|
case "solarized_system":
|
|
|
|
return (night
|
|
|
|
? R.style.AppThemeSolarizedDark : R.style.AppThemeSolarizedLight);
|
|
|
|
|
2021-10-26 13:58:23 +00:00
|
|
|
case "you_light":
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)
|
|
|
|
return R.style.AppThemeYouLight;
|
|
|
|
case "you_dark":
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)
|
|
|
|
return (light ? R.style.AppThemeYouLight : R.style.AppThemeYouDark);
|
|
|
|
case "you_black":
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)
|
|
|
|
return (light ? R.style.AppThemeYouLight : R.style.AppThemeYouBlack);
|
|
|
|
case "you_system":
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)
|
|
|
|
return (night ? R.style.AppThemeYouDark : R.style.AppThemeYouLight);
|
|
|
|
case "you_system_black":
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)
|
|
|
|
return (night ? R.style.AppThemeYouBlack : R.style.AppThemeYouLight);
|
|
|
|
|
2021-07-13 06:15:36 +00:00
|
|
|
default:
|
|
|
|
Log.e("Unknown theme=" + theme);
|
|
|
|
return R.style.AppThemeBlueOrangeLight;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-06-27 06:13:56 +00:00
|
|
|
static void setBackground(Context context, View view, boolean compose) {
|
|
|
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
|
|
|
boolean cards = prefs.getBoolean("cards", true);
|
|
|
|
boolean beige = prefs.getBoolean("beige", true);
|
2021-06-27 06:40:39 +00:00
|
|
|
boolean tabular_card_bg = prefs.getBoolean("tabular_card_bg", false);
|
2021-06-27 06:13:56 +00:00
|
|
|
String theme = prefs.getString("theme", "blue_orange_system");
|
|
|
|
boolean dark = Helper.isDarkTheme(context);
|
|
|
|
boolean solarized = (theme != null && theme.startsWith("solarized"));
|
|
|
|
|
2021-06-27 06:40:39 +00:00
|
|
|
if (cards) {
|
|
|
|
if (compose) {
|
|
|
|
if (!dark || solarized)
|
|
|
|
view.setBackgroundColor(Helper.resolveColor(context, R.attr.colorCardBackground));
|
|
|
|
} else {
|
|
|
|
if (!dark && !solarized)
|
|
|
|
view.setBackgroundColor(ContextCompat.getColor(context, beige
|
|
|
|
? R.color.lightColorBackground_cards_beige
|
|
|
|
: R.color.lightColorBackground_cards));
|
|
|
|
}
|
2021-06-27 06:13:56 +00:00
|
|
|
} else {
|
2021-06-27 06:40:39 +00:00
|
|
|
if (tabular_card_bg)
|
|
|
|
view.setBackgroundColor(Helper.resolveColor(context, R.attr.colorCardBackground));
|
2021-06-27 06:13:56 +00:00
|
|
|
}
|
|
|
|
}
|
2021-01-18 13:04:10 +00:00
|
|
|
}
|