private final MutableLiveData<Boolean> isSubmittable = new MutableLiveData<>(false);
private final MutableLiveData<Integer> focusedItem = new MutableLiveData<>(0);
private final MutableLiveData<Integer> accountCount = new MutableLiveData<>(0);
+ private final MutableLiveData<Boolean> simulateSave = new MutableLiveData<>(false);
+ public boolean getSimulateSave() {
+ return simulateSave.getValue();
+ }
+ public void setSimulateSave(boolean simulateSave) {
+ this.simulateSave.setValue(simulateSave);
+ }
+ public void toggleSimulateSave() {
+ simulateSave.setValue(!simulateSave.getValue());
+ }
+ public void observeSimulateSave(@NonNull @NotNull androidx.lifecycle.LifecycleOwner owner,
+ @NonNull
+ androidx.lifecycle.Observer<? super Boolean> observer) {
+ this.simulateSave.observe(owner, observer);
+ }
public int getAccountCount() {
return items.size();
}
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;
}
this.date.setValue(date);
}
public void setDate(String text) {
+ if ((text == null) || text.trim()
+ .isEmpty())
+ {
+ setDate((Date) null);
+ return;
+ }
+
int year, month, day;
final Calendar c = GregorianCalendar.getInstance();
Matcher m = reYMD.matcher(text);
public void stopObservingEditableFlag(Observer<Boolean> observer) {
editable.removeObserver(observer);
}
+ public void setFocusIsOnAmount(boolean flag) {
+ focusIsOnAmount = flag;
+ }
}
}