- void commitSelections(Context context) {
- try(SQLiteDatabase db = MLDB.getWritableDatabase(context)) {
- db.beginTransaction();
- try {
- for (LedgerAccount acc : accounts) {
- Log.d("db", String.format("Setting %s to %s", acc.getName(),
- acc.isHidden() ? "hidden" : "starred"));
- db.execSQL("UPDATE accounts SET hidden=? WHERE name=?",
- new Object[]{acc.isHiddenToBe() ? 1 : 0, acc.getName()});
- }
- db.setTransactionSuccessful();
- for (LedgerAccount acc : accounts ) { acc.setHidden(acc.isHiddenToBe()); }
- }
- finally { db.endTransaction(); }
- }
- }
-}
-
-class AccountSummaryAdapter extends RecyclerView.Adapter<AccountSummaryAdapter
-.LedgerRowHolder> {
- private List<LedgerAccount> accounts;
- private boolean selectionActive;
-
- AccountSummaryAdapter(List<LedgerAccount> accounts) {
- this.accounts = accounts;
- this.selectionActive = false;
- }
-
- public void onBindViewHolder(@NonNull LedgerRowHolder holder, int position) {
- LedgerAccount acc = accounts.get(position);
- Context ctx = holder.row.getContext();
- Resources rm = ctx.getResources();
-
- holder.tvAccountName.setText(acc.getShortName());
- holder.tvAccountName.setPadding(
- acc.getLevel() * rm.getDimensionPixelSize(R.dimen.activity_horizontal_margin) / 2,
- 0, 0,
- 0);
- holder.tvAccountAmounts.setText(acc.getAmountsString());
-
- if (acc.isHidden()) {
- holder.tvAccountName.setTypeface(null, Typeface.ITALIC);
- holder.tvAccountAmounts.setTypeface(null, Typeface.ITALIC);
- }
- else {
- holder.tvAccountName.setTypeface(null, Typeface.NORMAL);
- holder.tvAccountAmounts.setTypeface(null, Typeface.NORMAL);
- }
-
- 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.selectionCb.setVisibility( selectionActive ? View.VISIBLE : View.GONE);
- holder.selectionCb.setChecked(!acc.isHiddenToBe());
-
- holder.row.setTag(R.id.POS, position);
- }
-
- @NonNull
- @Override
- public LedgerRowHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- View row = LayoutInflater.from(parent.getContext())
- .inflate(R.layout.account_summary_row, parent, false);
- return new LedgerRowHolder(row);
- }