From 725fa78c5fe46642b4f0ad1f18a653f966a130b7 Mon Sep 17 00:00:00 2001 From: Bill Farmer Date: Tue, 24 Oct 2023 10:11:15 +0100 Subject: [PATCH] Update theme switch --- .../billthefarmer/tuner/SettingsFragment.java | 17 ++++++++++---- .../java/org/billthefarmer/tuner/Status.java | 2 +- .../java/org/billthefarmer/tuner/Tuner.java | 23 ++++++++++++++++--- .../org/billthefarmer/tuner/TunerView.java | 2 +- 4 files changed, 34 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/billthefarmer/tuner/SettingsFragment.java b/src/main/java/org/billthefarmer/tuner/SettingsFragment.java index deb1fac..ddc5534 100644 --- a/src/main/java/org/billthefarmer/tuner/SettingsFragment.java +++ b/src/main/java/org/billthefarmer/tuner/SettingsFragment.java @@ -25,6 +25,7 @@ import android.app.ActionBar; import android.app.Dialog; +import android.content.Intent; import android.content.SharedPreferences; import android.graphics.drawable.Drawable; import android.os.Build; @@ -135,8 +136,7 @@ public void onCreate(Bundle savedInstanceState) preference = (ListPreference) findPreference(Tuner.PREF_TEMPER); v = Integer.valueOf(preference.getValue()); preference = (ListPreference) findPreference(Tuner.PREF_KEY); - if (v == getActivity().getResources() - .getInteger(R.integer.default_temper)) + if (v == getResources().getInteger(R.integer.default_temper)) { preference.setEnabled(false); preference.setValueIndex(0); @@ -186,8 +186,7 @@ public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, ActionBar actionBar = dialog.getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); Toolbar toolbar = dialog.findViewById - (dialog.getContext().getResources().getIdentifier - ("action_bar", "id", "android")); + (getResources().getIdentifier("action_bar", "id", "android")); toolbar.setNavigationOnClickListener((v) -> { dialog.dismiss(); @@ -304,7 +303,15 @@ public void onSharedPreferenceChanged(SharedPreferences preferences, if (key.equals(Tuner.PREF_THEME)) { - if (Build.VERSION.SDK_INT != Build.VERSION_CODES.M) + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.M) + { + Intent intent = new + Intent(getActivity(), getActivity().getClass()); + getActivity().startActivity(intent); + getActivity().finish(); + } + + else getActivity().recreate(); } } diff --git a/src/main/java/org/billthefarmer/tuner/Status.java b/src/main/java/org/billthefarmer/tuner/Status.java index f75f127..f08d43a 100644 --- a/src/main/java/org/billthefarmer/tuner/Status.java +++ b/src/main/java/org/billthefarmer/tuner/Status.java @@ -55,7 +55,7 @@ public Status(Context context, AttributeSet attrs) resources = getResources(); final TypedArray typedArray = - context.obtainStyledAttributes(attrs, R.styleable.Tuner, 0, 0); + context.obtainStyledAttributes(attrs, R.styleable.Tuner); textColour = typedArray.getColor(R.styleable.Tuner_TextColour, diff --git a/src/main/java/org/billthefarmer/tuner/Tuner.java b/src/main/java/org/billthefarmer/tuner/Tuner.java index 295e291..ea609bc 100644 --- a/src/main/java/org/billthefarmer/tuner/Tuner.java +++ b/src/main/java/org/billthefarmer/tuner/Tuner.java @@ -656,7 +656,14 @@ public boolean onLongClick(View v) if (++theme > BLACK) theme = LIGHT; - if (Build.VERSION.SDK_INT != Build.VERSION_CODES.M) + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.M) + { + Intent intent = new Intent(this, getClass()); + startActivity(intent); + finish(); + } + + else recreate(); break; @@ -757,8 +764,18 @@ protected void onResume() getPreferences(); // Change theme - if (current != theme && Build.VERSION.SDK_INT != Build.VERSION_CODES.M) - recreate(); + if (current != theme) + { + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.M) + { + Intent intent = new Intent(this, getClass()); + startActivity(intent); + finish(); + } + + else + recreate(); + } // Load custom temperaments loadCustomTemperaments(); diff --git a/src/main/java/org/billthefarmer/tuner/TunerView.java b/src/main/java/org/billthefarmer/tuner/TunerView.java index 0d9c378..e046d87 100644 --- a/src/main/java/org/billthefarmer/tuner/TunerView.java +++ b/src/main/java/org/billthefarmer/tuner/TunerView.java @@ -61,7 +61,7 @@ protected TunerView(Context context, AttributeSet attrs) resources = getResources(); final TypedArray typedArray = - context.obtainStyledAttributes(attrs, R.styleable.Tuner, 0, 0); + context.obtainStyledAttributes(attrs, R.styleable.Tuner); textColour = typedArray.getColor(R.styleable.Tuner_TextColour,