};
drawer.addDrawerListener(drawerListener);
}
- setupProfile();
}
private void scheduleDataRetrievalIfStale(Date lastUpdate) {
long now = new Date().getTime();
*/
private void onProfileChanged(MobileLedgerProfile profile) {
boolean haveProfile = profile != null;
- findViewById(R.id.no_profiles_layout).setVisibility(haveProfile ? View.GONE : View.VISIBLE);
- findViewById(R.id.pager_layout).setVisibility(haveProfile ? View.VISIBLE : View.VISIBLE);
if (haveProfile)
setTitle(profile.getName());
this.profile = profile;
- mProfileListAdapter.notifyDataSetChanged();
-
int newProfileTheme = haveProfile ? profile.getThemeHue() : -1;
if (newProfileTheme != Colors.profileThemeId) {
debug("profiles",
String.format(Locale.ENGLISH, "profile theme %d → %d", Colors.profileThemeId,
newProfileTheme));
- MainActivity.this.profileThemeChanged();
Colors.profileThemeId = newProfileTheme;
+ profileThemeChanged();
// profileThemeChanged would restart the activity, so no need to reload the
// data sets below
return;
}
+ findViewById(R.id.no_profiles_layout).setVisibility(haveProfile ? View.GONE : View.VISIBLE);
+ findViewById(R.id.pager_layout).setVisibility(haveProfile ? View.VISIBLE : View.VISIBLE);
+
+ mProfileListAdapter.notifyDataSetChanged();
+
drawer.closeDrawers();
Data.transactions.clear();
scheduleDataRetrievalIfStale(newValue);
}
private void profileThemeChanged() {
- Bundle bundle = new Bundle();
- onSaveInstanceState(bundle);
-
storeThemeIdInPrefs(profile.getThemeHue());
- // restart activity to reflect theme change
- finish();
-
// un-hook all observed LiveData
Data.profile.removeObservers(this);
Data.profiles.removeObservers(this);
Data.lastUpdateDate.removeObservers(this);
- Intent intent = new Intent(this, this.getClass());
- intent.putExtra(BUNDLE_SAVED_STATE, bundle);
- startActivity(intent);
+
+ recreate();
}
private void storeThemeIdInPrefs(int themeId) {
// store the new theme id in the preferences
}
}
public void fabShouldShow() {
- if ((profile != null) && profile.isPostingPermitted())
+ if ((profile != null) && profile.isPostingPermitted() && !drawer.isOpen())
fab.show();
+ else
+ fabHide();
}
public void fabHide() {
fab.hide();