X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Ftemplates%2FTemplateDetailsViewModel.java;h=6090d12138cd94a85f0b4fe0e5320466da9474aa;hb=467a7741917c1e4c4ba0d167f1e018080786711f;hp=f5dacdc1de2f57cff00b74a5db84429b44810c20;hpb=b953cc391328af937917ed94de6aeafb83cc715c;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/templates/TemplateDetailsViewModel.java b/app/src/main/java/net/ktnx/mobileledger/ui/templates/TemplateDetailsViewModel.java index f5dacdc1..6090d121 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/templates/TemplateDetailsViewModel.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/templates/TemplateDetailsViewModel.java @@ -44,6 +44,7 @@ public class TemplateDetailsViewModel extends ViewModel { new MutableLiveData<>(Collections.emptyList()); private Long mPatternId; private String mDefaultPatternName; + private boolean itemsLoaded = false; public String getDefaultPatternName() { return mDefaultPatternName; @@ -86,6 +87,9 @@ public class TemplateDetailsViewModel extends ViewModel { items.setValue(newList); } public LiveData> getItems(Long patternId) { + if (itemsLoaded && Objects.equals(patternId, this.mPatternId)) + return items; + if (patternId != null && patternId <= 0) throw new IllegalArgumentException("Pattern ID " + patternId + " is invalid"); @@ -93,6 +97,7 @@ public class TemplateDetailsViewModel extends ViewModel { if (mPatternId == null) { resetItems(); + itemsLoaded = true; return items; } @@ -114,6 +119,7 @@ public class TemplateDetailsViewModel extends ViewModel { Logger.debug("patterns-db", "Loaded pattern item " + i); } items.postValue(l); + itemsLoaded = true; dbList.removeObserver(this); } @@ -157,6 +163,7 @@ public class TemplateDetailsViewModel extends ViewModel { TemplateAccountDAO taDAO = DB.get() .getTemplateAccountDAO(); + taDAO.prepareForSave(mPatternId); for (int i = 1; i < list.size(); i++) { final TemplateDetailsItem.AccountRow accRowItem = list.get(i) .asAccountRowItem(); @@ -175,6 +182,7 @@ public class TemplateDetailsViewModel extends ViewModel { dbAccount.getId(), dbAccount.getAccountName(), dbAccount.getAccountComment(), dbAccount.getNegateAmount(), accRowItem)); } + taDAO.finishSave(mPatternId); }); } } \ No newline at end of file