mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-05-20 00:40:29 +00:00
properly apply user defined theme immediately
This commit is contained in:
parent
72dac6a9ea
commit
d2f414811f
4 changed files with 20 additions and 5 deletions
|
@ -100,6 +100,10 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
|
|||
}
|
||||
}
|
||||
|
||||
public void forceUpdateKeyboardTheme() {
|
||||
mLatinIME.setInputView(onCreateInputView(mIsHardwareAcceleratedDrawingEnabled));
|
||||
}
|
||||
|
||||
private boolean updateKeyboardThemeAndContextThemeWrapper(final Context context,
|
||||
final KeyboardTheme keyboardTheme) {
|
||||
final boolean nightModeChanged = (mCurrentUiMode & Configuration.UI_MODE_NIGHT_MASK)
|
||||
|
|
|
@ -21,6 +21,7 @@ import android.os.Bundle
|
|||
import android.preference.ListPreference
|
||||
import android.preference.Preference
|
||||
import android.preference.TwoStatePreference
|
||||
import org.dslul.openboard.inputmethod.keyboard.KeyboardSwitcher
|
||||
import org.dslul.openboard.inputmethod.keyboard.KeyboardTheme
|
||||
import org.dslul.openboard.inputmethod.latin.R
|
||||
import org.dslul.openboard.inputmethod.latin.common.Constants
|
||||
|
@ -33,6 +34,7 @@ import java.util.*
|
|||
class AppearanceSettingsFragment : SubScreenFragment(), Preference.OnPreferenceChangeListener {
|
||||
|
||||
private var selectedThemeId = 0
|
||||
private var needsReload = false
|
||||
|
||||
private lateinit var themeFamilyPref: ListPreference
|
||||
private lateinit var themeVariantPref: ListPreference
|
||||
|
@ -71,6 +73,13 @@ class AppearanceSettingsFragment : SubScreenFragment(), Preference.OnPreferenceC
|
|||
findPreference(Settings.PREF_CUSTOM_INPUT_STYLES))
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
if (needsReload)
|
||||
KeyboardSwitcher.getInstance().forceUpdateKeyboardTheme()
|
||||
needsReload = false
|
||||
}
|
||||
|
||||
override fun onPreferenceChange(preference: Preference, value: Any?): Boolean {
|
||||
(preference as? ListPreference)?.apply {
|
||||
summary = entries[entryValues.indexOfFirst { it == value }]
|
||||
|
@ -185,7 +194,7 @@ class AppearanceSettingsFragment : SubScreenFragment(), Preference.OnPreferenceC
|
|||
3 -> Settings.PREF_THEME_USER_COLOR_ACCENT
|
||||
else -> Settings.PREF_THEME_USER_COLOR_KEYS
|
||||
}
|
||||
val d = ColorPickerDialog(activity, items[i], sharedPreferences, pref)
|
||||
val d = ColorPickerDialog(activity, items[i], sharedPreferences, pref) { needsReload = true}
|
||||
d.show()
|
||||
}
|
||||
.show()
|
||||
|
|
|
@ -30,7 +30,7 @@ import android.widget.TextView;
|
|||
import org.dslul.openboard.inputmethod.latin.R;
|
||||
|
||||
public class ColorPickerDialog extends AlertDialog implements SeekBar.OnSeekBarChangeListener {
|
||||
protected ColorPickerDialog(Context context, String title, SharedPreferences prefs, String colorPref) {
|
||||
protected ColorPickerDialog(Context context, String title, SharedPreferences prefs, String colorPref, Runnable onChanged) {
|
||||
super(context);
|
||||
setTitle(title);
|
||||
View view = getLayoutInflater().inflate(R.layout.color_dialog, null);
|
||||
|
@ -80,6 +80,7 @@ public class ColorPickerDialog extends AlertDialog implements SeekBar.OnSeekBarC
|
|||
mSeekBarGreen.getProgress(),
|
||||
mSeekBarBlue.getProgress());
|
||||
prefs.edit().putInt(colorPref, value).apply();
|
||||
onChanged.run();
|
||||
dismiss();
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue