diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-05-08 16:25:00 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-05-08 16:25:00 +0300 |
commit | 2f2052d04090399e407b45546cc8ad288c987531 (patch) | |
tree | b422b9d4cf7017e9f43d1405527b9a70677ff7d6 /app/src/main/java/it/niedermann/nextcloud/deck | |
parent | 3b75f8cf55f2d14027cfa2c388330c75cd3f6652 (diff) |
Make basics for managing archived boards
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck')
4 files changed, 23 insertions, 11 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 866f8510e..b92a3d690 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 @@ -321,8 +321,7 @@ public class SyncManager { * @return all archived or non-archived <code>Board</code>s depending on <code>archived</code> parameter */ public LiveData<List<Board>> getBoards(long accountId, boolean archived) { - // TODO implement archived flag - return dataBaseAdapter.getBoards(accountId); + return dataBaseAdapter.getBoards(accountId, archived); } /** @@ -331,8 +330,7 @@ public class SyncManager { * @return all archived or non-archived <code>FullBoard</code>s depending on <code>archived</code> parameter */ public LiveData<List<FullBoard>> getFullBoards(long accountId, boolean archived) { - // TODO implement archived flag - return dataBaseAdapter.getFullBoards(accountId); + return dataBaseAdapter.getFullBoards(accountId, archived); } /** 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 0d95c1f8e..77be75bbf 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 @@ -380,8 +380,11 @@ public class DataBaseAdapter { return distinctUntilChanged(db.getAccountDao().getAllAccounts()); } - public LiveData<List<Board>> getBoards(long accountId) { - return distinctUntilChanged(db.getBoardDao().getBoardsForAccount(accountId)); + public LiveData<List<Board>> getBoards(long accountId, boolean archived) { + return distinctUntilChanged( + archived + ? db.getBoardDao().getArchivedBoardsForAccount(accountId) + : db.getBoardDao().getNonArchivedBoardsForAccount(accountId)); } public LiveData<List<Board>> getBoardsWithEditPermission(long accountId) { @@ -800,7 +803,9 @@ public class DataBaseAdapter { return db.getLabelDao().getLabelByBoardIdAndTitleDirectly(boardId, title); } - public LiveData<List<FullBoard>> getFullBoards(long accountId) { - return db.getBoardDao().getFullBoards(accountId); + public LiveData<List<FullBoard>> getFullBoards(long accountId, boolean archived) { + return archived + ? db.getBoardDao().getArchivedFullBoards(accountId) + : db.getBoardDao().getNonArchivedFullBoards(accountId); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/BoardDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/BoardDao.java index 778c212ba..ad01fd0b0 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/BoardDao.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/BoardDao.java @@ -13,12 +13,19 @@ import it.niedermann.nextcloud.deck.model.full.FullBoard; @Dao public interface BoardDao extends GenericDao<Board> { + @Query("SELECT * FROM board WHERE accountId = :accountId and archived = 1 and (deletedAt = 0 or deletedAt is null) and status <> 3 order by title asc") + LiveData<List<Board>> getArchivedBoardsForAccount(final long accountId); + @Query("SELECT * FROM board WHERE accountId = :accountId and archived = 0 and (deletedAt = 0 or deletedAt is null) and status <> 3 order by title asc") - LiveData<List<Board>> getBoardsForAccount(final long accountId); + LiveData<List<Board>> getNonArchivedBoardsForAccount(final long accountId); + + @Transaction + @Query("SELECT * FROM board WHERE accountId = :accountId and archived = 1 and (deletedAt = 0 or deletedAt is null) and status <> 3 order by title asc") + LiveData<List<FullBoard>> getArchivedFullBoards(long accountId); @Transaction @Query("SELECT * FROM board WHERE accountId = :accountId and archived = 0 and (deletedAt = 0 or deletedAt is null) and status <> 3 order by title asc") - LiveData<List<FullBoard>> getFullBoards(long accountId); + LiveData<List<FullBoard>> getNonArchivedFullBoards(long accountId); @Query("SELECT * FROM board WHERE accountId = :accountId and id = :remoteId") LiveData<Board> getBoardByRemoteId(final long accountId, final long remoteId); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardViewHolder.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardViewHolder.java index 1ccd4679d..cf209f36f 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardViewHolder.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/archivedboards/ArchivedBoardViewHolder.java @@ -5,12 +5,14 @@ import androidx.recyclerview.widget.RecyclerView; import it.niedermann.nextcloud.deck.databinding.ItemArchivedBoardBinding; import it.niedermann.nextcloud.deck.model.Board; +@SuppressWarnings("WeakerAccess") public class ArchivedBoardViewHolder extends RecyclerView.ViewHolder { - ItemArchivedBoardBinding binding; + private final ItemArchivedBoardBinding binding; public ArchivedBoardViewHolder(ItemArchivedBoardBinding binding) { super(binding.getRoot()); + this.binding = binding; } void bind(Board board) { |