mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-15 12:19:54 +01:00
Merge branch '1653-npe-settings-fragment' into 'master'
Don't try to display settings before they are fully loaded Closes #1653 See merge request briar/briar!1194
This commit is contained in:
@@ -137,6 +137,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
|
|||||||
|
|
||||||
// Fields that are accessed from background threads must be volatile
|
// Fields that are accessed from background threads must be volatile
|
||||||
private volatile Settings settings, btSettings, torSettings;
|
private volatile Settings settings, btSettings, torSettings;
|
||||||
|
private volatile boolean settingsLoaded = false;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
volatile SettingsManager settingsManager;
|
volatile SettingsManager settingsManager;
|
||||||
@@ -351,6 +352,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
|
|||||||
settings = settingsManager.getSettings(SETTINGS_NAMESPACE);
|
settings = settingsManager.getSettings(SETTINGS_NAMESPACE);
|
||||||
btSettings = settingsManager.getSettings(BT_NAMESPACE);
|
btSettings = settingsManager.getSettings(BT_NAMESPACE);
|
||||||
torSettings = settingsManager.getSettings(TOR_NAMESPACE);
|
torSettings = settingsManager.getSettings(TOR_NAMESPACE);
|
||||||
|
settingsLoaded = true;
|
||||||
logDuration(LOG, "Loading settings", start);
|
logDuration(LOG, "Loading settings", start);
|
||||||
displaySettings();
|
displaySettings();
|
||||||
} catch (DbException e) {
|
} catch (DbException e) {
|
||||||
@@ -361,6 +363,9 @@ public class SettingsFragment extends PreferenceFragmentCompat
|
|||||||
|
|
||||||
private void displaySettings() {
|
private void displaySettings() {
|
||||||
listener.runOnUiThreadUnlessDestroyed(() -> {
|
listener.runOnUiThreadUnlessDestroyed(() -> {
|
||||||
|
// due to events, we might try to display before a load completed
|
||||||
|
if (!settingsLoaded) return;
|
||||||
|
|
||||||
boolean btEnabledSetting =
|
boolean btEnabledSetting =
|
||||||
btSettings.getBoolean(PREF_BT_ENABLE, false);
|
btSettings.getBoolean(PREF_BT_ENABLE, false);
|
||||||
enableBluetooth.setValue(Boolean.toString(btEnabledSetting));
|
enableBluetooth.setValue(Boolean.toString(btEnabledSetting));
|
||||||
|
|||||||
Reference in New Issue
Block a user