- return Data.accounts.size() + 1;
- }
- public void startSelection() {
- try (LockHolder lh = Data.accounts.lockForWriting()) {
- for (int i = 0; i < Data.accounts.size(); i++) {
- LedgerAccount acc = Data.accounts.get(i);
- acc.setHiddenByStarToBe(acc.isHiddenByStar());
- }
- this.selectionActive = true;
- lh.downgrade();
- notifyDataSetChanged();
- }
- }
-
- public void stopSelection() {
- this.selectionActive = false;
- notifyDataSetChanged();
- }
-
- public boolean isSelectionActive() {
- return selectionActive;
- }
-
- 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);
- }
- }
- 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++;
- }
- }
- }