drawer.addDrawerListener(barDrawerToggle);
}
barDrawerToggle.syncState();
- drawer.addDrawerListener(new DrawerLayout.DrawerListener() {
- @Override
- public void onDrawerSlide(@NonNull View drawerView, float slideOffset) {
- if (slideOffset > 0.2)
- fabHide();
- }
- @Override
- public void onDrawerOpened(@NonNull View drawerView) {
- fabHide();
- }
- @Override
- public void onDrawerClosed(@NonNull View drawerView) {
- fabShouldShow();
- }
- @Override
- public void onDrawerStateChanged(int newState) {}
- });
-
try {
PackageInfo pi = getApplicationContext().getPackageManager()
(v) -> mProfileListAdapter.flipEditingProfiles());
if (drawerListener == null) {
drawerListener = new DrawerLayout.SimpleDrawerListener() {
+ @Override
+ public void onDrawerSlide(@NonNull View drawerView, float slideOffset) {
+ if (slideOffset > 0.2)
+ fabHide();
+ }
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
mProfileListAdapter.setAnimationsEnabled(false);
mProfileListAdapter.editingProfiles.setValue(false);
+ Data.drawerOpen.setValue(false);
+ fabShouldShow();
}
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
mProfileListAdapter.setAnimationsEnabled(true);
+ Data.drawerOpen.setValue(true);
+ fabHide();
}
};
drawer.addDrawerListener(drawerListener);
}
- setupProfile();
+
+ Data.drawerOpen.observe(this, open -> {
+ if (open)
+ drawer.open();
+ else
+ drawer.close();
+ });
}
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;
}
- drawer.closeDrawers();
+ 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();
Data.transactions.clear();
debug("transactions", "requesting list reload");
public void fabShouldShow() {
if ((profile != null) && profile.isPostingPermitted() && !drawer.isOpen())
fab.show();
+ else
+ fabHide();
}
public void fabHide() {
fab.hide();
}
public void onAccountSummaryRowViewClicked(View view) {
ViewGroup row;
- if (view.getId() == R.id.account_expander)
- row = (ViewGroup) view.getParent()
- .getParent();
- else
- row = (ViewGroup) view.getParent();
+ switch (view.getId()) {
+ case R.id.account_expander:
+ row = (ViewGroup) view.getParent()
+ .getParent()
+ .getParent();
+ break;
+ case R.id.account_expander_container:
+ case R.id.account_row_acc_name:
+ row = (ViewGroup) view.getParent()
+ .getParent();
+ break;
+ default:
+ row = (ViewGroup) view.getParent();
+ break;
+ }
LedgerAccount acc = (LedgerAccount) row.getTag();
switch (view.getId()) {