import android.content.Context;
import android.content.res.Resources;
-import android.os.Build;
+import android.database.sqlite.SQLiteDatabase;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TableLayout;
+import android.widget.TableRow;
import android.widget.TextView;
import net.ktnx.mobileledger.model.LedgerTransaction;
+import net.ktnx.mobileledger.model.LedgerTransactionAccount;
+import net.ktnx.mobileledger.utils.Globals;
+import net.ktnx.mobileledger.utils.MLDB;
+import java.util.Iterator;
import java.util.List;
class TransactionListAdapter
public void onBindViewHolder(@NonNull TransactionRowHolder holder, int position) {
LedgerTransaction tr = transactions.get(position);
Context ctx = holder.row.getContext();
- Resources rm = ctx.getResources();
- holder.tvDescription.setText(String.format("%s\n%s", tr.getDescription(), tr.getDate()));
- TableLayout tbl = holder.row.findViewById(R.id.transaction_row_acc_amounts);
- tbl.removeAllViews();
- for (Iterator<LedgerTransactionItem> it = tr.getItemsIterator(); it.hasNext(); ) {
- LedgerTransactionItem acc = it.next();
- TableRow row = new TableRow(holder.row.getContext());
- TextView child = new TextView(ctx);
- child.setText(acc.getShortAccountName());
- row.addView(child);
- child = new TextView(ctx);
- child.setText(acc.toString());
- row.addView(child);
- tbl.addView(row);
- }
+ try (SQLiteDatabase db = MLDB.getReadableDatabase(ctx)) {
+ tr.loadData(db);
- if (position % 2 == 0) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) holder.row
- .setBackgroundColor(rm.getColor(R.color.table_row_even_bg, ctx.getTheme()));
- else holder.row.setBackgroundColor(rm.getColor(R.color.table_row_even_bg));
- }
- else {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) holder.row
- .setBackgroundColor(rm.getColor(R.color.drawer_background, ctx.getTheme()));
- else holder.row.setBackgroundColor(rm.getColor(R.color.drawer_background));
- }
+ holder.tvDescription
+ .setText(String.format("%s\n%s", tr.getDescription(), tr.getDate()));
+ TableLayout tbl = holder.row.findViewById(R.id.transaction_row_acc_amounts);
+ tbl.removeAllViews();
+ for (LedgerTransactionAccount acc : tr.getAccounts()) {
+ TableRow row = new TableRow(holder.row.getContext());
+ TextView child = new TextView(ctx);
+ child.setText(acc.getShortAccountName());
+ row.addView(child);
+ child = new TextView(ctx);
+ child.setText(acc.toString());
+ row.addView(child);
+ tbl.addView(row);
+ }
- holder.row.setTag(R.id.POS, position);
+ if (position % 2 == 0) {
+ holder.row.setBackgroundColor(Globals.table_row_even_bg);
+ }
+ else {
+ holder.row.setBackgroundColor(Globals.table_row_odd_bg);
+ }
+
+ holder.row.setTag(R.id.POS, position);
+ }
}
@NonNull