Fixed theme combinations

pull/171/head 1.868
M66B 5 years ago
parent bc0910ee27
commit 5a18c22cbd

@ -658,39 +658,78 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
} }
public static class FragmentDialogTheme extends FragmentDialogBase { public static class FragmentDialogTheme extends FragmentDialogBase {
private RadioGroup rgTheme;
private SwitchCompat swReverse;
private SwitchCompat swDark;
private SwitchCompat swSystem;
private void eval() {
int checkedId = rgTheme.getCheckedRadioButtonId();
swReverse.setEnabled(checkedId == R.id.rbThemeBlueOrange ||
checkedId == R.id.rbThemeYellowPurple ||
checkedId == R.id.rbThemeRedGreen);
swDark.setEnabled(checkedId == R.id.rbThemeBlueOrange ||
checkedId == R.id.rbThemeYellowPurple ||
checkedId == R.id.rbThemeRedGreen ||
checkedId == R.id.rbThemeGrey);
swSystem.setEnabled(checkedId == R.id.rbThemeBlueOrange ||
checkedId == R.id.rbThemeGrey);
boolean reverse = (swReverse.isEnabled() && swReverse.isChecked());
boolean dark = (swDark.isEnabled() && swDark.isChecked());
boolean system = (swSystem.isEnabled() && swSystem.isChecked());
swReverse.setEnabled(swReverse.isEnabled() && !system);
swSystem.setEnabled(swSystem.isEnabled() && !reverse && !dark);
}
@NonNull @NonNull
@Override @Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
View dview = LayoutInflater.from(getContext()).inflate(R.layout.dialog_theme, null); View dview = LayoutInflater.from(getContext()).inflate(R.layout.dialog_theme, null);
final RadioGroup rgTheme = dview.findViewById(R.id.rgTheme); rgTheme = dview.findViewById(R.id.rgTheme);
final SwitchCompat swReverse = dview.findViewById(R.id.swReverse); swReverse = dview.findViewById(R.id.swReverse);
final SwitchCompat swDark = dview.findViewById(R.id.swDark); swDark = dview.findViewById(R.id.swDark);
final SwitchCompat swSystem = dview.findViewById(R.id.swSystem); swSystem = dview.findViewById(R.id.swSystem);
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
String theme = prefs.getString("theme", "light"); String theme = prefs.getString("theme", "light");
swReverse.setChecked(theme.startsWith("orange_blue") || swReverse.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
theme.startsWith("purple_yellow") || @Override
theme.startsWith("green_red")); public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
swDark.setChecked(theme.endsWith("dark")); eval();
swSystem.setChecked(theme.endsWith("system")); }
});
swDark.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
eval();
}
});
swSystem.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
eval();
}
});
rgTheme.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { rgTheme.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override @Override
public void onCheckedChanged(RadioGroup group, int checkedId) { public void onCheckedChanged(RadioGroup group, int checkedId) {
swReverse.setEnabled(checkedId == R.id.rbThemeBlueOrange || eval();
checkedId == R.id.rbThemeYellowPurple ||
checkedId == R.id.rbThemeRedGreen);
swDark.setEnabled(checkedId == R.id.rbThemeBlueOrange ||
checkedId == R.id.rbThemeYellowPurple ||
checkedId == R.id.rbThemeRedGreen ||
checkedId == R.id.rbThemeGrey);
swSystem.setEnabled(checkedId == R.id.rbThemeBlueOrange ||
checkedId == R.id.rbThemeGrey);
} }
}); });
swReverse.setChecked(theme.startsWith("orange_blue") ||
theme.startsWith("purple_yellow") ||
theme.startsWith("green_red"));
swDark.setChecked(theme.endsWith("dark"));
swSystem.setChecked(theme.endsWith("system"));
switch (theme) { switch (theme) {
case "light": case "light":
case "dark": case "dark":

Loading…
Cancel
Save