From e9b9c8f6358ee790dc80f448cce143741df164e9 Mon Sep 17 00:00:00 2001 From: Stefan Niedermann Date: Fri, 9 Apr 2021 18:21:21 +0200 Subject: #690 Upcoming cards Show dummy data Signed-off-by: Stefan Niedermann --- .../deck/persistence/sync/SyncManager.java | 10 ++++--- .../ui/upcomingcards/UpcomingCardsActvitiy.java | 1 + .../ui/upcomingcards/UpcomingCardsViewModel.java | 31 ++++++++++++---------- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java index 7866fe3f1..cd7eebbbb 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java @@ -872,6 +872,10 @@ public class SyncManager { return dataBaseAdapter.getFullBoardById(accountId, localId); } + public Board getBoardById(Long localId) { + return dataBaseAdapter.getBoardByLocalIdDirectly(localId); + } + @AnyThread public void createStack(long accountId, @NonNull String title, long boardLocalId, @NonNull ResponseCallback callback) { doAsync(() -> { @@ -1892,10 +1896,8 @@ public class SyncManager { } @WorkerThread - public LiveData> getCardsForFilterWidget(@NonNull FilterWidget filterWidget) { - return wrapInLiveData(() -> { - return dataBaseAdapter.getCardsForFilterWidget(filterWidget); - }); + public List getCardsForFilterWidget(@NonNull FilterWidget filterWidget) { + return dataBaseAdapter.getCardsForFilterWidget(filterWidget); } // # single card widget diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActvitiy.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActvitiy.java index 303c91e7d..eeef0c9c4 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActvitiy.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsActvitiy.java @@ -28,6 +28,7 @@ public class UpcomingCardsActvitiy extends AppCompatActivity { setSupportActionBar(binding.toolbar); final UpcomingCardsAdapter adapter = new UpcomingCardsAdapter(this, getSupportFragmentManager()); + binding.recyclerView.setAdapter(adapter); viewModel = new ViewModelProvider(this).get(UpcomingCardsViewModel.class); viewModel.getUpcomingCards().observe(this, adapter::setCardList); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsViewModel.java index f6d43043d..f8ab3b345 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsViewModel.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/upcomingcards/UpcomingCardsViewModel.java @@ -5,6 +5,7 @@ import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; import java.util.List; import java.util.stream.Collectors; @@ -16,11 +17,10 @@ import it.niedermann.nextcloud.deck.model.widget.filter.EWidgetType; import it.niedermann.nextcloud.deck.model.widget.filter.FilterWidget; import it.niedermann.nextcloud.deck.model.widget.filter.FilterWidgetAccount; import it.niedermann.nextcloud.deck.model.widget.filter.FilterWidgetSort; +import it.niedermann.nextcloud.deck.model.widget.filter.FilterWidgetUser; +import it.niedermann.nextcloud.deck.model.widget.filter.dto.FilterWidgetCard; import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; -import static androidx.lifecycle.Transformations.map; -import static androidx.lifecycle.Transformations.switchMap; - @SuppressWarnings("WeakerAccess") public class UpcomingCardsViewModel extends AndroidViewModel { @@ -32,23 +32,26 @@ public class UpcomingCardsViewModel extends AndroidViewModel { } public LiveData> getUpcomingCards() { - return switchMap(syncManager.readAccounts(), (accounts) -> { + final MutableLiveData> ret = new MutableLiveData<>(); + new Thread(() -> { + List accounts = syncManager.readAccountsDirectly(); + final FilterWidget config = new FilterWidget(); config.setWidgetType(EWidgetType.UPCOMING_WIDGET); config.setSorts(new FilterWidgetSort(ESortCriteria.DUE_DATE, true)); config.setAccounts(accounts.stream().map(account -> { final FilterWidgetAccount fwa = new FilterWidgetAccount(account.getId(), false); - // TODO syncManager.getUserByUidDirectly(account.getId(), account.getUserName()).getLocalId()) -// fwa.setUsers(new FilterWidgetUser(new User(1L, "stefan")); + fwa.setUsers(new FilterWidgetUser(syncManager.getUserByUidDirectly(account.getId(), account.getUserName()).getLocalId())); return fwa; }).collect(Collectors.toList())); - return map(this.syncManager.getCardsForFilterWidget(new FilterWidget()), - (filterWidgetCards) -> { - return filterWidgetCards.stream().map((filterWidgetCard -> { - final Board board = filterWidgetCard.getBoard(); - return new UpcomingCardsAdapterItem(filterWidgetCard.getCard(), new Account(), board.getId(), board.getLocalId(), board.isPermissionEdit()); - })).collect(Collectors.toList()); - }); - }); + List filterWidgetCards = this.syncManager.getCardsForFilterWidget(new FilterWidget()); + ret.postValue(filterWidgetCards.stream().map((filterWidgetCard -> { + final Board board = syncManager.getBoardById( + syncManager.getBoardLocalIdByLocalCardIdDirectly(filterWidgetCard.getCard().getLocalId()) + ); + return new UpcomingCardsAdapterItem(filterWidgetCard.getCard(), new Account(), board.getId(), board.getLocalId(), board.isPermissionEdit()); + })).collect(Collectors.toList())); + }).start(); + return ret; } } -- cgit v1.2.3