]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/templates/TemplateDetailsViewModel.java
Room-based profile management
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / templates / TemplateDetailsViewModel.java
index e1143c463cfb58e5735db1479429a5c4c373e1c6..c49e44d092f75d0b49490492136ebdcb2f474501 100644 (file)
@@ -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;
@@ -44,16 +45,15 @@ import java.util.concurrent.atomic.AtomicInteger;
 public class TemplateDetailsViewModel extends ViewModel {
     private final MutableLiveData<List<TemplateDetailsItem>> 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;
-    private final AtomicInteger syntheticItemId = new AtomicInteger(0);
-
-    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() {
@@ -86,7 +86,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;
@@ -212,11 +211,14 @@ 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
@@ -237,7 +239,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
@@ -253,6 +255,10 @@ public class TemplateDetailsViewModel extends ViewModel {
     }
     private ArrayList<TemplateDetailsItem> copyItems() {
         List<TemplateDetailsItem> oldList = items.getValue();
+
+        if (oldList == null)
+            return new ArrayList<>();
+
         ArrayList<TemplateDetailsItem> result = new ArrayList<>(oldList.size());
 
         for (TemplateDetailsItem item : oldList) {