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:
akwizgran
2019-11-07 15:29:55 +00:00

View File

@@ -137,6 +137,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
// Fields that are accessed from background threads must be volatile
private volatile Settings settings, btSettings, torSettings;
private volatile boolean settingsLoaded = false;
@Inject
volatile SettingsManager settingsManager;
@@ -351,6 +352,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
settings = settingsManager.getSettings(SETTINGS_NAMESPACE);
btSettings = settingsManager.getSettings(BT_NAMESPACE);
torSettings = settingsManager.getSettings(TOR_NAMESPACE);
settingsLoaded = true;
logDuration(LOG, "Loading settings", start);
displaySettings();
} catch (DbException e) {
@@ -361,6 +363,9 @@ public class SettingsFragment extends PreferenceFragmentCompat
private void displaySettings() {
listener.runOnUiThreadUnlessDestroyed(() -> {
// due to events, we might try to display before a load completed
if (!settingsLoaded) return;
boolean btEnabledSetting =
btSettings.getBoolean(PREF_BT_ENABLE, false);
enableBluetooth.setValue(Boolean.toString(btEnabledSetting));