list.add(new TransactionHead(""));
list.add(new TransactionAccount(""));
list.add(new TransactionAccount(""));
+ noteFocusChanged(0, FocusedElement.Description);
+ isSubmittable.setValue(false);
setItemsWithoutSubmittableChecks(list);
}
boolean accountsInInitialState() {
list.add(list.remove(index));
}
void toggleCurrencyVisible() {
- showCurrency.setValue(!Objects.requireNonNull(showCurrency.getValue()));
+ final boolean newValue = !Objects.requireNonNull(showCurrency.getValue());
+
+ // remove currency from all items, or reset currency to the default
+ // no need to clone the list, because the removal of the currency won't lead to
+ // visual changes -- the currency fields will be hidden or reset to default anyway
+ // still, there may be changes in the submittable state
+ final List<Item> list = Objects.requireNonNull(this.items.getValue());
+ for (int i = 1; i < list.size(); i++) {
+ ((TransactionAccount) list.get(i)).setCurrency(newValue ? Data.getProfile()
+ .getDefaultCommodity()
+ : null);
+ }
+ checkTransactionSubmittable(null);
+ showCurrency.setValue(newValue);
}
void stopObservingBusyFlag(Observer<Boolean> observer) {
busyFlag.removeObserver(observer);
}
final TransactionAccount newAcc = new TransactionAccount(acc);
newAcc.setAmountHint(null);
- if (!liveListCopied) {
- list = copyList(list);
- liveListCopied = true;
- }
list.set(i, newAcc);
listChanged = true;
}
private boolean amountSet;
private boolean amountValid = true;
private FocusedElement focusedElement = FocusedElement.Account;
- private boolean amountHintIsSet = true;
+ private boolean amountHintIsSet = false;
private boolean isLast = false;
private int accountNameCursorPosition;
public TransactionAccount(TransactionAccount origin) {
if (!TextUtils.isEmpty(comment))
b.append(String.format(" /%s/", comment));
+ if (isLast)
+ b.append(" last");
+
return b.toString();
}
public boolean equalContents(TransactionAccount other) {