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;
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() {
if (srcList.size() < 1) {
final TemplateDetailsItem.Header header = TemplateDetailsItem.createHeader();
- header.setName(mDefaultPatternName);
header.setId(0);
newList.add(header);
changes = true;
ArrayList<TemplateDetailsItem> l = new ArrayList<>();
TemplateDetailsItem header = TemplateDetailsItem.fromRoomObject(src.header);
+ Logger.debug("tmpl-db", "Got header template item with id of " + header.getId());
l.add(header);
Collections.sort(src.accounts,
(o1, o2) -> Long.compare(o1.getPosition(), o2.getPosition()));
}
for (TemplateDetailsItem i : l) {
- Logger.debug("patterns-db", "Loaded pattern item " + i);
+ Logger.debug("tmpl-db", "Loaded pattern item " + i);
}
applyList(l, true);
itemsLoaded = true;
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();
items.setValue(newList);
}
public void removeItem(int position) {
- ArrayList<TemplateDetailsItem> newList = new ArrayList<>(items.getValue());
+ Logger.debug("tmpl", "Removing item at position " + position);
+ ArrayList<TemplateDetailsItem> newList = copyItems();
newList.remove(position);
+ for (int i = position; i < newList.size(); i++)
+ newList.get(i)
+ .setPosition(i);
applyList(newList);
}
}
\ No newline at end of file