X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FNewTransactionModel.java;h=1f4cec56ab462ee6d903ab42254a5e57e20b7531;hp=e1e1166d7b4cba65e962f0c067e7755f07225830;hb=2a016b0b3e56869059fa1831940c0cb96bdf3402;hpb=7cb9091315c4adf9bb278995469c0bb401c33939 diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionModel.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionModel.java index e1e1166d..1f4cec56 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionModel.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionModel.java @@ -53,6 +53,21 @@ public class NewTransactionModel extends ViewModel { private final MutableLiveData isSubmittable = new MutableLiveData<>(false); private final MutableLiveData focusedItem = new MutableLiveData<>(0); private final MutableLiveData accountCount = new MutableLiveData<>(0); + private final MutableLiveData 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 observer) { + this.simulateSave.observe(owner, observer); + } public int getAccountCount() { return items.size(); } @@ -277,6 +292,12 @@ public class NewTransactionModel extends ViewModel { 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} //========================================================================================== @@ -289,6 +310,7 @@ public class NewTransactionModel extends ViewModel { private MutableLiveData amountHint = new MutableLiveData<>(null); private NewTransactionModel model; private MutableLiveData editable = new MutableLiveData<>(true); + private boolean focusIsOnAmount = false; public Item(NewTransactionModel model) { this.model = model; type = ItemType.bottomFiller; @@ -307,6 +329,9 @@ public class NewTransactionModel extends ViewModel { this.account = account; this.editable.setValue(true); } + public boolean focusIsOnAmount() { + return focusIsOnAmount; + } public NewTransactionModel getModel() { return model; } @@ -368,6 +393,13 @@ public class NewTransactionModel extends ViewModel { 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); @@ -467,5 +499,8 @@ public class NewTransactionModel extends ViewModel { public void stopObservingEditableFlag(Observer observer) { editable.removeObserver(observer); } + public void setFocusIsOnAmount(boolean flag) { + focusIsOnAmount = flag; + } } }