+ Data.profile.addObserver(new Observer() {
+ @Override
+ public void update(Observable o, Object arg) {
+ MobileLedgerProfile profile = Data.profile.get();
+ runOnUiThread(() -> {
+ if (profile == null) toolbar.setSubtitle("");
+ else toolbar.setSubtitle(profile.getName());
+ });
+ }
+ });
+
+ String profileUUID = MLDB.get_option_value(MLDB.OPT_PROFILE_UUID, null);
+ if (profileUUID == null) {
+ SharedPreferences backend = getSharedPreferences("backend", MODE_PRIVATE);
+ Log.d("profiles", "Migrating from preferences to profiles");
+ // migration to multiple profiles
+ profileUUID = UUID.randomUUID().toString();
+ MobileLedgerProfile profile = new MobileLedgerProfile(profileUUID, "default",
+ backend.getString("backend_url", ""),
+ backend.getBoolean("backend_use_http_auth", false),
+ backend.getString("backend_auth_user", null),
+ backend.getString("backend_auth_password", null));
+ profile.storeInDB();
+ SharedPreferences.Editor editor = backend.edit();
+ editor.clear();
+ editor.apply();
+ Data.profile.set(profile);
+ MLDB.set_option_value(MLDB.OPT_PROFILE_UUID, profileUUID);
+ }
+ else {
+ MobileLedgerProfile profile = MobileLedgerProfile.loadUUIDFromDB(profileUUID);
+ Data.profile.set(profile);
+ }
+