import android.database.sqlite.SQLiteDatabase;
import android.graphics.Typeface;
import android.os.AsyncTask;
-import androidx.annotation.NonNull;
-import androidx.appcompat.widget.AppCompatTextView;
-import androidx.recyclerview.widget.RecyclerView;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.StyleSpan;
import android.widget.TextView;
import net.ktnx.mobileledger.R;
+import net.ktnx.mobileledger.model.Data;
import net.ktnx.mobileledger.model.LedgerTransaction;
import net.ktnx.mobileledger.model.LedgerTransactionAccount;
import net.ktnx.mobileledger.model.TransactionListItem;
import java.util.GregorianCalendar;
import java.util.TimeZone;
+import androidx.annotation.NonNull;
+import androidx.appcompat.widget.AppCompatTextView;
+import androidx.recyclerview.widget.RecyclerView;
+
import static net.ktnx.mobileledger.utils.DimensionUtils.dp2px;
public class TransactionListAdapter extends RecyclerView.Adapter<TransactionRowHolder> {
- private String boldAccountName;
public void onBindViewHolder(@NonNull TransactionRowHolder holder, int position) {
TransactionListItem item = TransactionListViewModel.getTransactionListItem(position);
// tr.getAccounts().size()));
TransactionLoader loader = new TransactionLoader();
- loader.execute(new TransactionLoaderParams(tr, holder, position, boldAccountName,
- item.isOdd()));
+ loader.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,
+ new TransactionLoaderParams(tr, holder, position, Data.accountFilter.get(),
+ item.isOdd()));
// WORKAROUND what seems to be a bug in CardHolder somewhere
// when a view that was previously holding a delimiter is re-purposed
// occasionally it stays too short (not high enough)
-// holder.vTransaction.measure(View.MeasureSpec
-// .makeMeasureSpec(holder.itemView.getWidth(), View.MeasureSpec.EXACTLY),
-// View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
+ holder.vTransaction.measure(View.MeasureSpec
+ .makeMeasureSpec(holder.itemView.getWidth(), View.MeasureSpec.EXACTLY),
+ View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
break;
case DELIMITER:
Date date = item.getDate();
@Override
public int getItemCount() {
- return TransactionListViewModel.getTransactionCount() + 1;
- }
- public void setBoldAccountName(String boldAccountName) {
- this.boldAccountName = boldAccountName;
- }
- public void resetBoldAccountName() {
- this.boldAccountName = null;
+ return Data.transactions.size() + 1;
}
-
enum LoaderStep {HEAD, ACCOUNTS, DONE}
-
private static class TransactionLoader
extends AsyncTask<TransactionLoaderParams, TransactionLoaderStep, Void> {
@Override
LedgerTransaction tr = p[0].transaction;
boolean odd = p[0].odd;
- SQLiteDatabase db = MLDB.getReadableDatabase();
+ SQLiteDatabase db = MLDB.getDatabase();
tr.loadData(db);
publishProgress(new TransactionLoaderStep(p[0].holder, p[0].position, tr, odd));