diff options
author | desperateCoder <echotodevnull@gmail.com> | 2020-12-15 12:03:49 +0300 |
---|---|---|
committer | desperateCoder <echotodevnull@gmail.com> | 2020-12-15 12:03:49 +0300 |
commit | f09f9da6b4b804ca7630cafe5508b21bf8b48a9b (patch) | |
tree | ae087099f05465784b4e8b22924b567432e9a4ea /app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java | |
parent | b8c2247c7a0dbc90eb779bff32bb7ef1b2dbd34a (diff) |
#597 filter widget: fix filter algorithm: stacks for board
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java index 919ee7431..59d276f60 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java @@ -1162,8 +1162,6 @@ public class DataBaseAdapter { cardsResult.addAll(db.getCardDao().getFilteredFullCardsForStackDirectly(getQueryForFilter(filter, null, null))); } else { for (FilterWidgetAccount account : filterWidget.getAccounts()) { - List<Long> accounts = new ArrayList<>(); - accounts.add(account.getId()); filter.setNoAssignedUser(account.isIncludeNoUser()); List<User> users = new ArrayList<>(); if (!account.getUsers().isEmpty()) { @@ -1177,19 +1175,24 @@ public class DataBaseAdapter { if (!account.getBoards().isEmpty()) { for (FilterWidgetBoard board : account.getBoards()) { filter.setNoAssignedLabel(board.isIncludeNoLabel()); - List<Long> stacks = new ArrayList<>(); + List<Long> stacks; for (FilterWidgetLabel label : board.getLabels()) { Label l = new Label(); l.setLocalId(label.getLabelId()); filter.addLabel(l); } - for (FilterWidgetStack stack : board.getStacks()) { - stacks.add(stack.getStackId()); + if (board.getStacks().isEmpty()) { + stacks = db.getStackDao().getLocalStackIdsByLocalBoardIdDirectly(board.getBoardId()); + } else { + stacks = new ArrayList<>(); + for (FilterWidgetStack stack : board.getStacks()) { + stacks.add(stack.getStackId()); + } } - cardsResult.addAll(db.getCardDao().getFilteredFullCardsForStackDirectly(getQueryForFilter(filter, accounts, stacks))); + cardsResult.addAll(db.getCardDao().getFilteredFullCardsForStackDirectly(getQueryForFilter(filter, Collections.singletonList(account.getId()), stacks))); } } else { - cardsResult.addAll(db.getCardDao().getFilteredFullCardsForStackDirectly(getQueryForFilter(filter, accounts, null))); + cardsResult.addAll(db.getCardDao().getFilteredFullCardsForStackDirectly(getQueryForFilter(filter, Collections.singletonList(account.getId()), null))); } } } |