diff options
| author | Jules Aguillon | 2022-12-11 21:57:40 +0100 |
|---|---|---|
| committer | Jules Aguillon | 2022-12-11 21:57:40 +0100 |
| commit | bf318729555cc6e3362716e16d60b53d466e808f (patch) | |
| tree | 799b3307a5caa0eedf3e32a276ae99c8583b53af /srcs/juloo.keyboard2/SettingsActivity.java | |
| parent | 199ca5cf03f1778d9a41622f4b0ed02912c2a20b (diff) | |
| download | unexpected-keyboard-bf318729555cc6e3362716e16d60b53d466e808f.tar.gz unexpected-keyboard-bf318729555cc6e3362716e16d60b53d466e808f.zip | |
Handle configuration change quickly
setInputView() was not called when the view was re-created through
refresh_config(). Also, the refresh_config() function was not able to
properly set the current layout.
Now keep the default layout (_localeTextLayout) and the current non-text
layout (if any, _currentSpecialLayout) separately to be able to refresh
them later.
setInputView() is called everytime the view is created instead of by
onStartInputView() specifically.
The setting activity now save the preferences to the protected storage
in onStop() instead of listening for onSharedPreferenceChanged.
Diffstat (limited to 'srcs/juloo.keyboard2/SettingsActivity.java')
| -rw-r--r-- | srcs/juloo.keyboard2/SettingsActivity.java | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/srcs/juloo.keyboard2/SettingsActivity.java b/srcs/juloo.keyboard2/SettingsActivity.java index 6381d55..6fd050c 100644 --- a/srcs/juloo.keyboard2/SettingsActivity.java +++ b/srcs/juloo.keyboard2/SettingsActivity.java @@ -14,13 +14,11 @@ public class SettingsActivity extends PreferenceActivity { detectSystemTheme(); super.onCreate(savedInstanceState); - SharedPreferences prefs; // The preferences can't be read when in direct-boot mode. Avoid crashing // and don't allow changing the settings. - try { prefs = getPreferenceManager().getSharedPreferences(); } + try { getPreferenceManager().getSharedPreferences(); } catch (Exception _e) { fallbackEncrypted(); return; } addPreferencesFromResource(R.xml.settings); - prefs.registerOnSharedPreferenceChangeListener(this.new OnPreferencesChange()); } /** The default theme is [Theme.DeviceDefault], which is dark. Detect if the @@ -41,14 +39,11 @@ public class SettingsActivity extends PreferenceActivity finish(); } - /** See DirectBootAwarePreferences. */ - class OnPreferencesChange implements SharedPreferences.OnSharedPreferenceChangeListener + protected void onStop() { - @Override - public void onSharedPreferenceChanged(SharedPreferences prefs, String _key) - { - DirectBootAwarePreferences - .copy_preferences_to_protected_storage(SettingsActivity.this, prefs); - } + DirectBootAwarePreferences + .copy_preferences_to_protected_storage(this, + getPreferenceManager().getSharedPreferences()); + super.onStop(); } } |
