acct_name = acct_name.replace("\"", "");
L(String.format("found account: %s", acct_name));
- lastAccount = profile.loadAccount(acct_name);
- if (lastAccount == null) {
+ lastAccount = profile.tryLoadAccount(db, acct_name);
+ if (lastAccount == null)
lastAccount = new LedgerAccount(acct_name);
- profile.storeAccount(db, lastAccount);
- }
+ else lastAccount.removeAmounts();
+ profile.storeAccount(db, lastAccount);
// make sure the parent account(s) are present,
// synthesising them if necessary
while (!toAppend.isEmpty()) {
String aName = toAppend.pop();
LedgerAccount acc = new LedgerAccount(aName);
- acc.setHidden(lastAccount.isHidden());
- if (!onlyStarred || !acc.isHidden())
- accountList.add(acc);
+ acc.setHiddenByStar(lastAccount.isHiddenByStar());
+ if ((!onlyStarred || !acc.isHiddenByStar()) &&
+ acc.isVisible(accountList)) accountList.add(acc);
L(String.format("gap-filling with %s", aName));
accountNames.put(aName, null);
profile.storeAccount(db, acc);
}
}
- if (!onlyStarred || !lastAccount.isHidden())
+ if ((!onlyStarred || !lastAccount.isHiddenByStar()) &&
+ lastAccount.isVisible(accountList))
accountList.add(lastAccount);
accountNames.put(acct_name, null);