X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2FTransactionListAdapter.java;h=7fa85d3a6c98b277350126403798588e985833bd;hp=96cbfba856cc010b80d8b94c95198b2a797a9825;hb=a5971dd3588704cc5c8dd9077d4d74860c5a06a9;hpb=0c437b5ed0d9da7e9340cb247d036cd141598065 diff --git a/app/src/main/java/net/ktnx/mobileledger/TransactionListAdapter.java b/app/src/main/java/net/ktnx/mobileledger/TransactionListAdapter.java index 96cbfba8..7fa85d3a 100644 --- a/app/src/main/java/net/ktnx/mobileledger/TransactionListAdapter.java +++ b/app/src/main/java/net/ktnx/mobileledger/TransactionListAdapter.java @@ -33,29 +33,26 @@ import android.widget.TextView; import net.ktnx.mobileledger.model.LedgerTransaction; import net.ktnx.mobileledger.model.LedgerTransactionAccount; +import net.ktnx.mobileledger.ui.transaction_list.TransactionListViewModel; import net.ktnx.mobileledger.utils.Globals; import net.ktnx.mobileledger.utils.MLDB; -import java.util.List; - import static net.ktnx.mobileledger.utils.DimensionUtils.dp2px; class TransactionListAdapter extends RecyclerView.Adapter { - private List transactions; - - TransactionListAdapter(List transactions) { - this.transactions = transactions; + TransactionListViewModel model; + public TransactionListAdapter(TransactionListViewModel model) { + this.model = model; } - public void onBindViewHolder(@NonNull TransactionRowHolder holder, int position) { + LedgerTransaction tr = model.getTransaction(position); // in a race when transaction list is reduced, but the model hasn't been notified yet // the view will disappear when the notifications reaches the model, so by simply omitting // the out-of-range get() call nothing bad happens - just a to-be-deleted view remains // a bit longer - if (position >= transactions.size()) return; + if (tr == null) return; - LedgerTransaction tr = transactions.get(position); Context ctx = holder.row.getContext(); try (SQLiteDatabase db = MLDB.getReadableDatabase(ctx)) { @@ -95,7 +92,7 @@ class TransactionListAdapter accName = (TextView) row.getChildAt(0); accAmount = (TextView) row.getChildAt(1); } - accName.setText(acc.getShortAccountName()); + accName.setText(acc.getAccountName()); accAmount.setText(acc.toString()); } if (holder.tableAccounts.getChildCount() > rowIndex) { @@ -109,6 +106,8 @@ class TransactionListAdapter else { holder.row.setBackgroundColor(Globals.table_row_odd_bg); } + + Log.d("transactions", String.format("Filled position %d", position)); } } @@ -122,8 +121,9 @@ class TransactionListAdapter } @Override - public int getItemCount() { - return transactions.size(); + public int getItemCount() + { + return model.getTransactionCount(); } class TransactionRowHolder extends RecyclerView.ViewHolder { TextView tvDescription, tvDate;