X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Ftemplates%2FTemplateDetailsAdapter.java;h=1872ff2ff7d0ee5139219ed899aed529ffcf8783;hb=a7822614a0442e0de5e65c3b59a9143efb41961a;hp=297fa73e3f012c7bd42b40cc6047d228b4c32cda;hpb=df8fe87b16b5c8df1b90e9cd5b27c1a24aaa27bd;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/templates/TemplateDetailsAdapter.java b/app/src/main/java/net/ktnx/mobileledger/ui/templates/TemplateDetailsAdapter.java index 297fa73e..1872ff2f 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/templates/TemplateDetailsAdapter.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/templates/TemplateDetailsAdapter.java @@ -18,6 +18,7 @@ package net.ktnx.mobileledger.ui.templates; import android.annotation.SuppressLint; +import android.content.Context; import android.content.res.Resources; import android.text.Editable; import android.text.TextWatcher; @@ -34,14 +35,15 @@ import androidx.recyclerview.widget.DiffUtil; 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 net.ktnx.mobileledger.ui.HelpDialog; +import net.ktnx.mobileledger.ui.QR; import net.ktnx.mobileledger.ui.TemplateDetailSourceSelectorFragment; import net.ktnx.mobileledger.utils.Logger; import net.ktnx.mobileledger.utils.Misc; @@ -49,7 +51,6 @@ import net.ktnx.mobileledger.utils.Misc; 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; @@ -100,7 +101,7 @@ class TemplateDetailsAdapter extends RecyclerView.Adapter items) { - ArrayList list = new ArrayList<>(); - for (TemplateBase p : items) { - TemplateDetailsItem item = TemplateDetailsItem.fromRoomObject(p); - list.add(item); - } - setItems(list); - } public void setItems(List 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) { @@ -400,6 +402,22 @@ class TemplateDetailsAdapter extends RecyclerView.Adapter { + if (updatePropagationDisabled) + return; + + getItem().setFallback(isChecked); + b.templateIsFallbackText.setText(isChecked ? R.string.template_is_fallback_yes + : R.string.template_is_fallback_no); + }); + final View.OnClickListener fallbackLabelClickListener = + (view) -> b.templateIsFallbackSwitch.toggle(); + b.templateIsFallbackLabel.setOnClickListener(fallbackLabelClickListener); + b.templateIsFallbackText.setOnClickListener(fallbackLabelClickListener); + b.templateParamsHelpButton.setOnClickListener(v -> HelpDialog.show(b.getRoot() + .getContext(), + R.string.template_details_template_params_label, R.array.template_params_help)); } @NotNull private TemplateDetailsItem.Header getItem() { @@ -479,57 +497,57 @@ class TemplateDetailsAdapter extends RecyclerView.Adapter selectHeaderDetailSource(v, HeaderDetail.DATE_YEAR)); - b.templateDetailsYearSource.setOnClickListener( + b.yearSource.setOnClickListener( v -> selectHeaderDetailSource(v, HeaderDetail.DATE_YEAR)); if (header.hasLiteralDateMonth()) { - b.templateDetailsMonthSource.setText(R.string.template_details_source_literal); + b.monthSource.setText(R.string.template_details_source_literal); final Integer dateMonth = header.getDateMonth(); b.templateDetailsDateMonth.setText( (dateMonth == null) ? null : String.valueOf(dateMonth)); - b.templateDetailsDateMonthLayout.setVisibility(View.VISIBLE); + b.monthLayout.setVisibility(View.VISIBLE); } else { - b.templateDetailsDateMonthLayout.setVisibility(View.GONE); - b.templateDetailsMonthSource.setText( + b.monthLayout.setVisibility(View.GONE); + b.monthSource.setText( String.format(Locale.US, groupNoText, header.getDateMonthMatchGroup(), getMatchGroupText(header.getDateMonthMatchGroup()))); } - b.templateDetailsMonthSourceLabel.setOnClickListener( + b.monthSourceLabel.setOnClickListener( v -> selectHeaderDetailSource(v, HeaderDetail.DATE_MONTH)); - b.templateDetailsMonthSource.setOnClickListener( + b.monthSource.setOnClickListener( v -> selectHeaderDetailSource(v, HeaderDetail.DATE_MONTH)); if (header.hasLiteralDateDay()) { - b.templateDetailsDaySource.setText(R.string.template_details_source_literal); + b.daySource.setText(R.string.template_details_source_literal); final Integer dateDay = header.getDateDay(); b.templateDetailsDateDay.setText( (dateDay == null) ? null : String.valueOf(dateDay)); - b.templateDetailsDateDayLayout.setVisibility(View.VISIBLE); + b.dayLayout.setVisibility(View.VISIBLE); } else { - b.templateDetailsDateDayLayout.setVisibility(View.GONE); - b.templateDetailsDaySource.setText( + b.dayLayout.setVisibility(View.GONE); + b.daySource.setText( String.format(Locale.US, groupNoText, header.getDateDayMatchGroup(), getMatchGroupText(header.getDateDayMatchGroup()))); } - b.templateDetailsDaySourceLabel.setOnClickListener( + b.daySourceLabel.setOnClickListener( v -> selectHeaderDetailSource(v, HeaderDetail.DATE_DAY)); - b.templateDetailsDaySource.setOnClickListener( + b.daySource.setOnClickListener( v -> selectHeaderDetailSource(v, HeaderDetail.DATE_DAY)); if (header.hasLiteralTransactionDescription()) { @@ -571,6 +589,11 @@ class TemplateDetailsAdapter extends RecyclerView.Adapter { @@ -731,6 +760,8 @@ class TemplateDetailsAdapter extends RecyclerView.Adapter