private final Item trailer = new Item(this);
private final ArrayList<Item> items = new ArrayList<>();
private final MutableLiveData<Boolean> isSubmittable = new MutableLiveData<>(false);
- private final MutableLiveData<Integer> focusedItem = new MutableLiveData<>(null);
+ private final MutableLiveData<Integer> focusedItem = new MutableLiveData<>(0);
private final MutableLiveData<Integer> accountCount = new MutableLiveData<>(0);
public int getAccountCount() {
return items.size();
@NonNull androidx.lifecycle.Observer<? super Integer> observer) {
this.accountCount.removeObserver(observer);
}
+ public int getFocusedItem() { return focusedItem.getValue(); }
public void setFocusedItem(int position) {
focusedItem.setValue(position);
}
public void sendCountNotifications() {
accountCount.setValue(getAccountCount());
}
+ public void sendFocusedNotification() {
+ focusedItem.setValue(focusedItem.getValue());
+ }
+ public void updateFocusedItem(int position) {
+ focusedItem.setValue(position);
+ }
+ public void noteFocusIsOnAccount(int position) {
+ getItem(position).setFocusIsOnAmount(false);
+ }
+ public void noteFocusIsOnAmount(int position) {
+ getItem(position).setFocusIsOnAmount(true);
+ }
enum ItemType {generalData, transactionRow, bottomFiller}
//==========================================================================================
private MutableLiveData<String> amountHint = new MutableLiveData<>(null);
private NewTransactionModel model;
private MutableLiveData<Boolean> editable = new MutableLiveData<>(true);
+ private boolean focusIsOnAmount = false;
public Item(NewTransactionModel model) {
this.model = model;
type = ItemType.bottomFiller;
this.account = account;
this.editable.setValue(true);
}
+ public boolean focusIsOnAmount() {
+ return focusIsOnAmount;
+ }
public NewTransactionModel getModel() {
return model;
}
public void stopObservingEditableFlag(Observer<Boolean> observer) {
editable.removeObserver(observer);
}
+ public void setFocusIsOnAmount(boolean flag) {
+ focusIsOnAmount = flag;
+ }
}
}