X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Ftemplates%2FTemplateDetailsViewModel.java;h=8836f10d6ebc735d5f02af3cc8bbf74295e984c9;hb=7e6225d06aa3ef6209be571324f468017cbeab95;hp=988d1bb86e8f07c4176938514c7219be46369612;hpb=936c7f5f095871cd317ce1d8b3ca55d368031849;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 988d1bb8..8836f10d 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 @@ -33,6 +33,7 @@ import net.ktnx.mobileledger.db.TemplateHeader; import net.ktnx.mobileledger.db.TemplateWithAccounts; import net.ktnx.mobileledger.model.TemplateDetailsItem; import net.ktnx.mobileledger.utils.Logger; +import net.ktnx.mobileledger.utils.Misc; import java.util.ArrayList; import java.util.Collections; @@ -42,17 +43,19 @@ import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; public class TemplateDetailsViewModel extends ViewModel { + static final String TAG = "template-details-model"; + static final String DB_TAG = TAG + "-db"; private final MutableLiveData> items = new MutableLiveData<>(Collections.emptyList()); private final AtomicInteger syntheticItemId = new AtomicInteger(0); private Long mPatternId; - private String mDefaultPatternName; + private String mDefaultTemplateName; private boolean itemsLoaded = false; - public String getDefaultPatternName() { - return mDefaultPatternName; + public String getDefaultTemplateName() { + return mDefaultTemplateName; } - public void setDefaultPatternName(String name) { - mDefaultPatternName = name; + public void setDefaultTemplateName(String name) { + mDefaultTemplateName = name; } public void resetItems() { @@ -72,10 +75,10 @@ public class TemplateDetailsViewModel extends ViewModel { srcList = Collections.unmodifiableList(srcList); - { - Logger.debug("tmpl", "Considering old list"); + if (BuildConfig.DEBUG) { + Logger.debug(TAG, "Considering old list"); for (TemplateDetailsItem item : srcList) - Logger.debug("tmpl", String.format(Locale.US, " id %d pos %d", item.getId(), + Logger.debug(TAG, String.format(Locale.US, " id %d pos %d", item.getId(), item.getPosition())); } @@ -85,7 +88,6 @@ public class TemplateDetailsViewModel extends ViewModel { if (srcList.size() < 1) { final TemplateDetailsItem.Header header = TemplateDetailsItem.createHeader(); - header.setName(mDefaultPatternName); header.setId(0); newList.add(header); changes = true; @@ -135,7 +137,7 @@ public class TemplateDetailsViewModel extends ViewModel { } if (changes) { - Logger.debug("tmpl", "Changes detected, applying new list"); + Logger.debug(TAG, "Changes detected, applying new list"); if (async) items.postValue(newList); @@ -143,7 +145,7 @@ public class TemplateDetailsViewModel extends ViewModel { items.setValue(newList); } else - Logger.debug("tmpl", "No changes, ignoring new list"); + Logger.debug(TAG, "No changes, ignoring new list"); } public int genItemId() { return syntheticItemId.decrementAndGet(); @@ -172,7 +174,7 @@ public class TemplateDetailsViewModel extends ViewModel { ArrayList l = new ArrayList<>(); TemplateDetailsItem header = TemplateDetailsItem.fromRoomObject(src.header); - Logger.debug("tmpl-db", "Got header template item with id of " + header.getId()); + Logger.debug(DB_TAG, "Got header template item with id of " + header.getId()); l.add(header); Collections.sort(src.accounts, (o1, o2) -> Long.compare(o1.getPosition(), o2.getPosition())); @@ -181,7 +183,7 @@ public class TemplateDetailsViewModel extends ViewModel { } for (TemplateDetailsItem i : l) { - Logger.debug("tmpl-db", "Loaded pattern item " + i); + Logger.debug(DB_TAG, "Loaded pattern item " + i); } applyList(l, true); itemsLoaded = true; @@ -211,11 +213,16 @@ public class TemplateDetailsViewModel extends ViewModel { TemplateDetailsItem.Header modelHeader = list.get(0) .asHeaderItem(); + + modelHeader.setName(Misc.trim(modelHeader.getName())); + if (modelHeader.getName().isEmpty()) + modelHeader.setName(getDefaultTemplateName()); + TemplateHeaderDAO headerDAO = DB.get() .getTemplateDAO(); TemplateHeader dbHeader = modelHeader.toDBO(); if (newPattern) { - dbHeader.setId(null); + dbHeader.setId(0L); dbHeader.setId(mPatternId = headerDAO.insertSync(dbHeader)); } else @@ -236,7 +243,7 @@ public class TemplateDetailsViewModel extends ViewModel { dbAccount.setTemplateId(mPatternId); dbAccount.setPosition(i); if (dbAccount.getId() < 0) { - dbAccount.setId(null); + dbAccount.setId(0); dbAccount.setId(taDAO.insertSync(dbAccount)); } else @@ -252,6 +259,10 @@ public class TemplateDetailsViewModel extends ViewModel { } private ArrayList copyItems() { List oldList = items.getValue(); + + if (oldList == null) + return new ArrayList<>(); + ArrayList result = new ArrayList<>(oldList.size()); for (TemplateDetailsItem item : oldList) { @@ -316,7 +327,7 @@ public class TemplateDetailsViewModel extends ViewModel { items.setValue(newList); } public void removeItem(int position) { - Logger.debug("tmpl", "Removing item at position " + position); + Logger.debug(TAG, "Removing item at position " + position); ArrayList newList = copyItems(); newList.remove(position); for (int i = position; i < newList.size(); i++)