X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fnew_transaction%2FNewTransactionFragment.java;h=8499d6f02f6ce886af876d7c3d7c14dd307f158a;hb=3ab99e1679326277d6ba7f8ce28f17a96dfa07aa;hp=140b3a74e0512d68e39159366af8817cbec3fe85;hpb=ea6e0ebc968bb3a3b7fb913d9e0282d374957815;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionFragment.java b/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionFragment.java index 140b3a74..8499d6f0 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionFragment.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionFragment.java @@ -49,15 +49,15 @@ import com.google.android.material.snackbar.Snackbar; import net.ktnx.mobileledger.R; import net.ktnx.mobileledger.db.DB; -import net.ktnx.mobileledger.db.PatternAccount; -import net.ktnx.mobileledger.db.PatternHeader; +import net.ktnx.mobileledger.db.TemplateAccount; +import net.ktnx.mobileledger.db.TemplateHeader; import net.ktnx.mobileledger.json.API; import net.ktnx.mobileledger.model.Data; import net.ktnx.mobileledger.model.LedgerTransaction; import net.ktnx.mobileledger.model.LedgerTransactionAccount; import net.ktnx.mobileledger.model.MobileLedgerProfile; import net.ktnx.mobileledger.ui.QRScanCapableFragment; -import net.ktnx.mobileledger.ui.patterns.PatternsActivity; +import net.ktnx.mobileledger.ui.templates.TemplatesActivity; import net.ktnx.mobileledger.utils.Logger; import net.ktnx.mobileledger.utils.Misc; import net.ktnx.mobileledger.utils.SimpleDate; @@ -90,15 +90,15 @@ public class NewTransactionFragment extends QRScanCapableFragment { setHasOptionsMenu(true); } private void startNewPatternActivity(String scanned) { - Intent intent = new Intent(requireContext(), PatternsActivity.class); + Intent intent = new Intent(requireContext(), TemplatesActivity.class); Bundle args = new Bundle(); - args.putString(PatternsActivity.ARG_ADD_PATTERN, scanned); + args.putString(TemplatesActivity.ARG_ADD_TEMPLATE, scanned); requireContext().startActivity(intent, args); } private void alertNoPatternMatch(String scanned) { MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext()); builder.setCancelable(true) - .setMessage(R.string.no_pattern_matches) + .setMessage(R.string.no_template_matches) .setPositiveButton(R.string.add_button, (dialog, which) -> startNewPatternActivity(scanned)) .create() @@ -110,13 +110,13 @@ public class NewTransactionFragment extends QRScanCapableFragment { if (Misc.emptyIsNull(text) == null) return; - LiveData> allPatterns = DB.get() - .getPatternDAO() - .getPatterns(); + LiveData> allPatterns = DB.get() + .getPatternDAO() + .getTemplates(); allPatterns.observe(getViewLifecycleOwner(), patternHeaders -> { - ArrayList matchingPatterns = new ArrayList<>(); + ArrayList matchingPatterns = new ArrayList<>(); - for (PatternHeader ph : patternHeaders) { + for (TemplateHeader ph : patternHeaders) { String patternSource = ph.getRegularExpression(); if (Misc.emptyIsNull(patternSource) == null) continue; @@ -147,8 +147,8 @@ public class NewTransactionFragment extends QRScanCapableFragment { choosePattern(matchingPatterns, text); }); } - private void choosePattern(ArrayList matchingPatterns, String matchedText) { - final String patternNameColumn = getString(R.string.pattern_name); + private void choosePattern(ArrayList matchingPatterns, String matchedText) { + final String patternNameColumn = "name"; AbstractCursor cursor = new AbstractCursor() { @Override public int getCount() { @@ -156,48 +156,58 @@ public class NewTransactionFragment extends QRScanCapableFragment { } @Override public String[] getColumnNames() { - return new String[]{patternNameColumn}; + return new String[]{"_id", patternNameColumn}; } @Override public String getString(int column) { + if (column == 0) + return String.valueOf(getPosition()); return matchingPatterns.get(getPosition()) .getName(); } @Override public short getShort(int column) { + if (column == 0) + return (short) getPosition(); return -1; } @Override public int getInt(int column) { - return -1; + return getShort(column); } @Override public long getLong(int column) { - return -1; + return getShort(column); } @Override public float getFloat(int column) { - return -1; + return getShort(column); } @Override public double getDouble(int column) { - return -1; + return getShort(column); } @Override public boolean isNull(int column) { return false; } + @Override + public int getColumnCount() { + return 2; + } }; MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext()); builder.setCancelable(true) - .setTitle(R.string.choose_pattern_to_apply) - .setSingleChoiceItems(cursor, -1, patternNameColumn, - (dialog, which) -> applyPattern(matchingPatterns.get(which), matchedText)) + .setTitle(R.string.choose_template_to_apply) + .setSingleChoiceItems(cursor, -1, patternNameColumn, (dialog, which) -> { + applyPattern(matchingPatterns.get(which), matchedText); + dialog.dismiss(); + }) .create() .show(); } - private void applyPattern(PatternHeader patternHeader, String text) { + private void applyPattern(TemplateHeader patternHeader, String text) { Pattern pattern = Pattern.compile(patternHeader.getRegularExpression()); Matcher m = pattern.matcher(text); @@ -248,11 +258,11 @@ public class NewTransactionFragment extends QRScanCapableFragment { DB.get() .getPatternDAO() - .getPatternWithAccounts(patternHeader.getId()) + .getTemplateWithAccounts(patternHeader.getId()) .observe(getViewLifecycleOwner(), entry -> { int rowIndex = 0; final boolean accountsInInitialState = viewModel.accountsInInitialState(); - for (PatternAccount acc : entry.accounts) { + for (TemplateAccount acc : entry.accounts) { rowIndex++; String accountName = extractStringFromMatches(m, acc.getAccountNameMatchGroup(),