import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.RecyclerView;
+import net.ktnx.mobileledger.BuildConfig;
import net.ktnx.mobileledger.R;
import net.ktnx.mobileledger.databinding.TemplateDetailsAccountBinding;
import net.ktnx.mobileledger.databinding.TemplateDetailsHeaderBinding;
import net.ktnx.mobileledger.db.AccountAutocompleteAdapter;
-import net.ktnx.mobileledger.db.TemplateBase;
import net.ktnx.mobileledger.model.Data;
import net.ktnx.mobileledger.model.TemplateDetailsItem;
import net.ktnx.mobileledger.ui.QRScanCapableFragment;
import org.jetbrains.annotations.NotNull;
import java.text.ParseException;
-import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.regex.Matcher;
final int fromPosition = viewHolder.getAdapterPosition();
final int toPosition = target.getAdapterPosition();
+ if (fromPosition == toPosition) {
+ Logger.debug("drag", String.format(Locale.US,
+ "Ignoring request to move an account from position %d to %d",
+ fromPosition, toPosition));
+ return false;
+ }
+
+ Logger.debug("drag",
+ String.format(Locale.US, "Moving account from %d to %d", fromPosition,
+ toPosition));
mModel.moveItem(fromPosition, toPosition);
return true;
public long getItemId(int position) {
// header item is always first and IDs id may duplicate some of the account IDs
if (position == 0)
- return -1;
+ return 0;
TemplateDetailsItem.AccountRow accRow = differ.getCurrentList()
.get(position)
.asAccountRowItem();
return differ.getCurrentList()
.size();
}
- public void setTemplateItems(List<TemplateBase> items) {
- ArrayList<TemplateDetailsItem> list = new ArrayList<>();
- for (TemplateBase p : items) {
- TemplateDetailsItem item = TemplateDetailsItem.fromRoomObject(p);
- list.add(item);
- }
- setItems(list);
- }
public void setItems(List<TemplateDetailsItem> items) {
+ if (BuildConfig.DEBUG) {
+ Logger.debug("tmpl", "Got new list");
+ for (int i = 1; i < items.size(); i++) {
+ final TemplateDetailsItem item = items.get(i);
+ Logger.debug("tmpl",
+ String.format(Locale.US, " %d: id %d, pos %d", i, item.getId(), item.getPosition()));
+ }
+ }
differ.submitList(items);
}
public String getMatchGroupText(int groupNumber) {
Logger.debug(D_TEMPLATE_UI,
"Storing changed account name " + s + "; accRow=" + accRow);
accRow.setAccountName(String.valueOf(s));
+
+ mModel.applyList(null);
}
};
b.templateDetailsAccountName.addTextChangedListener(accountNameWatcher);
Logger.debug(D_TEMPLATE_UI,
"Storing changed account comment " + s + "; accRow=" + accRow);
accRow.setAccountComment(String.valueOf(s));
+
+ mModel.applyList(null);
}
};
b.templateDetailsAccountComment.addTextChangedListener(accountCommentWatcher);
b.templateDetailsAccountAmount.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
-
}
@Override
public void afterTextChanged(Editable s) {
b.templateDetailsAccountAmountLayout.setError("!");
}
}
+
+ mModel.applyList(null);
}
});
b.templateDetailsAccountAmount.setOnFocusChangeListener((v, hasFocus) -> {