diff options
| author | Jules Aguillon | 2022-11-11 15:39:28 +0100 |
|---|---|---|
| committer | Jules Aguillon | 2022-11-11 15:39:28 +0100 |
| commit | ef34303c7eaa781ed4655016538aac47f0aef002 (patch) | |
| tree | fd35fdfa1d75de5bd7216677b4f25cf263bee286 /srcs/juloo.keyboard2/SettingsActivity.java | |
| parent | f1ce6abe5a37c9ca57d885ecb9a3218969bc7fdf (diff) | |
| download | unexpected-keyboard-ef34303c7eaa781ed4655016538aac47f0aef002.tar.gz unexpected-keyboard-ef34303c7eaa781ed4655016538aac47f0aef002.zip | |
Avoid crashing in direct-boot mode
The settings activity can't open in direct-boot mode. The emoji pane
opens without the "last used" data.
Diffstat (limited to 'srcs/juloo.keyboard2/SettingsActivity.java')
| -rw-r--r-- | srcs/juloo.keyboard2/SettingsActivity.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/srcs/juloo.keyboard2/SettingsActivity.java b/srcs/juloo.keyboard2/SettingsActivity.java index c6454a7..04fe501 100644 --- a/srcs/juloo.keyboard2/SettingsActivity.java +++ b/srcs/juloo.keyboard2/SettingsActivity.java @@ -14,9 +14,13 @@ 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 = PreferenceManager.getDefaultSharedPreferences(this); } + catch (Exception _e) { fallbackEncrypted(); return; } addPreferencesFromResource(R.xml.settings); - PreferenceManager.getDefaultSharedPreferences(this) - .registerOnSharedPreferenceChangeListener(this.new OnPreferencesChange()); + prefs.registerOnSharedPreferenceChangeListener(this.new OnPreferencesChange()); } /** The default theme is [Theme.DeviceDefault], which is dark. Detect if the @@ -31,6 +35,12 @@ public class SettingsActivity extends PreferenceActivity } } + void fallbackEncrypted() + { + // Can't communicate with the user here. + finish(); + } + /** See DirectBootAwarePreferences. */ class OnPreferencesChange implements SharedPreferences.OnSharedPreferenceChangeListener { |
