X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Ftemplates%2FTemplateDetailsAdapter.java;h=ccf1b813fed8b58cd2fcf7f5fb2f56b1348de043;hb=fa6ed80a6ea4cfb968a60e45423980c2ab513531;hp=eae2ba33a56cdddfe5b9d6ef3cd6657b739493e0;hpb=83db1f17aed57a1917d2e3c90554272c6e23cc70;p=mobile-ledger-staging.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 eae2ba33..ccf1b813 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 @@ -30,6 +30,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; +import androidx.lifecycle.LifecycleOwner; import androidx.recyclerview.widget.AsyncListDiffer; import androidx.recyclerview.widget.DiffUtil; import androidx.recyclerview.widget.ItemTouchHelper; @@ -40,8 +41,10 @@ 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.DB; import net.ktnx.mobileledger.model.Data; import net.ktnx.mobileledger.model.TemplateDetailsItem; +import net.ktnx.mobileledger.ui.CurrencySelectorFragment; import net.ktnx.mobileledger.ui.HelpDialog; import net.ktnx.mobileledger.ui.QR; import net.ktnx.mobileledger.ui.TemplateDetailSourceSelectorFragment; @@ -277,7 +280,7 @@ class TemplateDetailsAdapter extends RecyclerView.Adapter selectAccountRowDetailSource(v, AccDetail.ACCOUNT)); @@ -832,6 +850,32 @@ class TemplateDetailsAdapter extends RecyclerView.Adapter selectAccountRowDetailSource(v, AccDetail.AMOUNT)); b.templateDetailsAccountAmountSource.setOnClickListener( v -> selectAccountRowDetailSource(v, AccDetail.AMOUNT)); + b.templateDetailsAccountCurrencySource.setOnClickListener( + v -> selectAccountRowDetailSource(v, AccDetail.CURRENCY)); + b.templateAccountCurrencySourceLabel.setOnClickListener( + v -> selectAccountRowDetailSource(v, AccDetail.CURRENCY)); + if (accRow.hasLiteralCurrency()) + b.templateDetailsAccountCurrency.setOnClickListener(v -> { + CurrencySelectorFragment cpf = CurrencySelectorFragment.newInstance( + CurrencySelectorFragment.DEFAULT_COLUMN_COUNT, false); + cpf.setOnCurrencySelectedListener(text -> { + if (text == null) { + b.templateDetailsAccountCurrency.setText(R.string.btn_no_currency); + accRow.setCurrency(null); + } + else { + b.templateDetailsAccountCurrency.setText(text); + DB.get() + .getCurrencyDAO() + .getByName(text) + .observe((LifecycleOwner) b.getRoot() + .getContext(), accRow::setCurrency); + } + }); + cpf.show( + ((TemplatesActivity) b.templateDetailsAccountCurrency.getContext()).getSupportFragmentManager(), + "currency-selector"); + }); } finally { enableUpdatePropagation(); @@ -861,6 +905,9 @@ class TemplateDetailsAdapter extends RecyclerView.Adapter