package net.ktnx.mobileledger.ui.new_transaction;
import android.annotation.SuppressLint;
+import android.os.Handler;
+import android.os.Looper;
import android.text.TextUtils;
import androidx.annotation.NonNull;
return this.isSubmittable;
}
void reset() {
+ Logger.debug("new-trans", "Resetting model");
List<Item> list = new ArrayList<>();
list.add(new TransactionHead(""));
list.add(new TransactionAccount(""));
list.add(new TransactionAccount(""));
+ noteFocusChanged(0, FocusedElement.Description);
setItemsWithoutSubmittableChecks(list);
}
boolean accountsInInitialState() {
newItems.add(accRow);
}
- items.postValue(newItems);
+ new Handler(Looper.getMainLooper()).post(() -> setItems(newItems));
});
}
private int extractIntFromMatches(MatchResult m, Integer group, Integer literal) {
private FocusedElement focusedElement = FocusedElement.Account;
private boolean amountHintIsSet = true;
private boolean isLast = false;
+ private int accountNameCursorPosition;
public TransactionAccount(TransactionAccount origin) {
id = origin.id;
accountName = origin.accountName;
amountValid = origin.amountValid;
focusedElement = origin.focusedElement;
isLast = origin.isLast;
+ accountNameCursorPosition = origin.accountNameCursorPosition;
}
public TransactionAccount(LedgerTransactionAccount account) {
super();
if (!TextUtils.isEmpty(comment))
b.append(String.format(" /%s/", comment));
+ if (isLast)
+ b.append(" last");
+
return b.toString();
}
public boolean equalContents(TransactionAccount other) {
equal));
return equal;
}
+ public int getAccountNameCursorPosition() {
+ return accountNameCursorPosition;
+ }
+ public void setAccountNameCursorPosition(int position) {
+ this.accountNameCursorPosition = position;
+ }
}
private static class BalanceForCurrency {