diff options
author | desperateCoder <echotodevnull@gmail.com> | 2021-04-09 21:16:10 +0300 |
---|---|---|
committer | Niedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com> | 2021-04-10 14:38:50 +0300 |
commit | b630a63f0133223c8d5d9266224f4ffae5b64ec0 (patch) | |
tree | 5f451980979f63e39c09f695c201cf36fc4724a2 /app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java | |
parent | ec169382d41f5c12f62dc33e6469b6e26830c7da (diff) |
#690 use same logic for widgets
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 | 37 |
1 files changed, 23 insertions, 14 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 59fde4a10..49face983 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 @@ -14,6 +14,8 @@ import androidx.annotation.WorkerThread; import androidx.lifecycle.LiveData; import androidx.sqlite.db.SimpleSQLiteQuery; +import org.jetbrains.annotations.NotNull; + import java.time.Instant; import java.util.ArrayList; import java.util.Collection; @@ -1255,21 +1257,28 @@ public class DataBaseAdapter { public LiveData<List<UpcomingCardsAdapterItem>> getCardsForUpcomingCard() { LiveData<List<FullCard>> upcomingCardsLiveData = db.getCardDao().getUpcomingCards(); - return LiveDataHelper.postCustomValue(upcomingCardsLiveData, cardsResult -> { - filterRelationsForCard(cardsResult); - List<UpcomingCardsAdapterItem> result = new ArrayList<>(cardsResult.size()); - Map<Long, Account> accountCache = new HashMap<>(); - for (FullCard fullCard : cardsResult) { - Board board = db.getBoardDao().getBoardByLocalCardIdDirectly(fullCard.getLocalId()); - Account account = accountCache.get(fullCard.getAccountId()); - if (account == null) { - account = db.getAccountDao().getAccountByIdDirectly(fullCard.getAccountId()); - accountCache.put(fullCard.getAccountId(), account); - } - result.add(new UpcomingCardsAdapterItem(fullCard, account, board.getLocalId(), board.getId(), board.isPermissionEdit())); + return LiveDataHelper.postCustomValue(upcomingCardsLiveData, this::cardResultsToUpcomingCardsAdapterItems); + } + + public List<UpcomingCardsAdapterItem> getCardsForUpcomingCardForWidget() { + return cardResultsToUpcomingCardsAdapterItems(db.getCardDao().getUpcomingCardsDirectly()); + } + + @NotNull + private List<UpcomingCardsAdapterItem> cardResultsToUpcomingCardsAdapterItems(List<FullCard> cardsResult) { + filterRelationsForCard(cardsResult); + List<UpcomingCardsAdapterItem> result = new ArrayList<>(cardsResult.size()); + Map<Long, Account> accountCache = new HashMap<>(); + for (FullCard fullCard : cardsResult) { + Board board = db.getBoardDao().getBoardByLocalCardIdDirectly(fullCard.getLocalId()); + Account account = accountCache.get(fullCard.getAccountId()); + if (account == null) { + account = db.getAccountDao().getAccountByIdDirectly(fullCard.getAccountId()); + accountCache.put(fullCard.getAccountId(), account); } - return result; - }); + result.add(new UpcomingCardsAdapterItem(fullCard, account, board.getLocalId(), board.getId(), board.isPermissionEdit())); + } + return result; } public List<FilterWidgetCard> getCardsForFilterWidget(@NonNull Integer filterWidgetId) { |