X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Faccount_summary%2FAccountSummaryAdapter.java;h=0540438ddcd6c47e4e7d9e873c393cd4a50cdb66;hb=29fa90b17cbb87f0b16f3607f0628fe0057d6560;hp=2490ff3bb51d13236db65f38694c3f5b48006930;hpb=7bfd85e40b6fb441937c055ea0da2aeb5b00f1f6;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/account_summary/AccountSummaryAdapter.java b/app/src/main/java/net/ktnx/mobileledger/ui/account_summary/AccountSummaryAdapter.java index 2490ff3b..0540438d 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/account_summary/AccountSummaryAdapter.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/account_summary/AccountSummaryAdapter.java @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Damyan Ivanov. + * Copyright © 2020 Damyan Ivanov. * This file is part of MoLe. * MoLe is free software: you can distribute it and/or modify it * under the term of the GNU General Public License as published by @@ -19,7 +19,6 @@ package net.ktnx.mobileledger.ui.account_summary; import android.content.Context; import android.content.res.Resources; -import android.graphics.Typeface; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -27,17 +26,17 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.recyclerview.widget.RecyclerView; + import net.ktnx.mobileledger.R; import net.ktnx.mobileledger.model.Data; import net.ktnx.mobileledger.model.LedgerAccount; import net.ktnx.mobileledger.ui.activity.MainActivity; import net.ktnx.mobileledger.utils.LockHolder; -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.recyclerview.widget.RecyclerView; - public class AccountSummaryAdapter extends RecyclerView.Adapter { public static final int AMOUNT_LIMIT = 3; @@ -46,21 +45,19 @@ public class AccountSummaryAdapter public void onBindViewHolder(@NonNull LedgerRowHolder holder, int position) { try (LockHolder lh = Data.accounts.lockForReading()) { - if (position < Data.accounts.size()) { LedgerAccount acc = Data.accounts.get(position); Context ctx = holder.row.getContext(); Resources rm = ctx.getResources(); holder.row.setTag(acc); holder.row.setVisibility(View.VISIBLE); - holder.vTrailer.setVisibility(View.GONE); holder.tvAccountName.setText(acc.getShortName()); ConstraintLayout.LayoutParams lp = (ConstraintLayout.LayoutParams) holder.tvAccountName.getLayoutParams(); lp.setMarginStart( acc.getLevel() * rm.getDimensionPixelSize(R.dimen.thumb_row_height) / 3); - holder.expanderContainer - .setVisibility(acc.hasSubAccounts() ? View.VISIBLE : View.GONE); + holder.expanderContainer.setVisibility( + acc.hasSubAccounts() ? View.VISIBLE : View.GONE); holder.expanderContainer.setRotation(acc.isExpanded() ? 0 : 180); int amounts = acc.getAmountCount(); if ((amounts > AMOUNT_LIMIT) && !acc.amountsExpanded()) { @@ -72,21 +69,7 @@ public class AccountSummaryAdapter holder.accountExpanderContainer.setVisibility(View.GONE); } - if (acc.isHiddenByStar()) { - 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); - } - holder.row.setTag(R.id.POS, position); - } - else { - holder.vTrailer.setVisibility(View.VISIBLE); - holder.row.setVisibility(View.GONE); - } } } @@ -94,42 +77,17 @@ public class AccountSummaryAdapter @Override public LedgerRowHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View row = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.account_summary_row, parent, false); + .inflate(R.layout.account_summary_row, parent, false); return new LedgerRowHolder(row); } @Override public int getItemCount() { - return Data.accounts.size() + (Data.profile.getValue() - .isPostingPermitted() ? 1 : 0); - } - public void selectItem(int position) { - try (LockHolder lh = Data.accounts.lockForWriting()) { - LedgerAccount acc = Data.accounts.get(position); - acc.toggleHiddenToBe(); - toggleChildrenOf(acc, acc.isHiddenByStarToBe(), position); - notifyItemChanged(position); - } + return Data.accounts.size(); } - private void toggleChildrenOf(LedgerAccount parent, boolean hiddenToBe, int parentPosition) { - int i = parentPosition + 1; - try (LockHolder lh = Data.accounts.lockForWriting()) { - for (int j = 0; j < Data.accounts.size(); j++) { - LedgerAccount acc = Data.accounts.get(j); - if (acc.getName().startsWith(parent.getName() + ":")) { - acc.setHiddenByStarToBe(hiddenToBe); - notifyItemChanged(i); - toggleChildrenOf(acc, hiddenToBe, i); - i++; - } - } - } - } - static class LedgerRowHolder extends RecyclerView.ViewHolder { TextView tvAccountName, tvAccountAmounts; ConstraintLayout row; - View vTrailer; View expanderContainer; ImageView expander; View accountExpanderContainer; @@ -138,23 +96,11 @@ public class AccountSummaryAdapter this.row = itemView.findViewById(R.id.account_summary_row); this.tvAccountName = itemView.findViewById(R.id.account_row_acc_name); this.tvAccountAmounts = itemView.findViewById(R.id.account_row_acc_amounts); - this.vTrailer = itemView.findViewById(R.id.account_summary_trailer); this.expanderContainer = itemView.findViewById(R.id.account_expander_container); this.expander = itemView.findViewById(R.id.account_expander); this.accountExpanderContainer = itemView.findViewById(R.id.account_row_amounts_expander_container); - expanderContainer.addOnLayoutChangeListener( - (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { - int w = right - left; - int h = bottom - top; - if (h > w) { - int p = (h - w) / 2; - v.setPadding(0, p, 0, p); - } - else v.setPadding(0, 0, 0, 0); - }); - itemView.setOnLongClickListener(this::onItemLongClick); tvAccountName.setOnLongClickListener(this::onItemLongClick); tvAccountAmounts.setOnLongClickListener(this::onItemLongClick);