/*
- * 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
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();
}
holder.row.setTag(R.id.POS, position);
- }
- else {
- holder.vTrailer.setVisibility(View.VISIBLE);
- holder.row.setVisibility(View.GONE);
- }
}
}
@Override
public int getItemCount() {
- return Data.accounts.size() + (Data.profile.getValue()
- .isPostingPermitted() ? 1 : 0);
+ return Data.accounts.size();
}
static class LedgerRowHolder extends RecyclerView.ViewHolder {
TextView tvAccountName, tvAccountAmounts;
ConstraintLayout row;
- View vTrailer;
View expanderContainer;
ImageView expander;
View accountExpanderContainer;
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);