diff options
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 | 50 |
1 files changed, 31 insertions, 19 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 96dcbed81..2ef8436e0 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 @@ -12,7 +12,6 @@ import it.niedermann.nextcloud.deck.model.Card; import it.niedermann.nextcloud.deck.model.JoinBoardWithLabel; import it.niedermann.nextcloud.deck.model.JoinCardWithLabel; import it.niedermann.nextcloud.deck.model.JoinCardWithUser; -import it.niedermann.nextcloud.deck.model.JoinStackWithCard; import it.niedermann.nextcloud.deck.model.Label; import it.niedermann.nextcloud.deck.model.Stack; import it.niedermann.nextcloud.deck.model.User; @@ -74,7 +73,28 @@ public class DataBaseAdapter { } public FullCard getFullCardByRemoteIdDirectly(long accountId, long remoteId) { - return db.getCardDao().getFullCardByRemoteIdDirectly(accountId, remoteId); + FullCard card = db.getCardDao().getFullCardByRemoteIdDirectly(accountId, remoteId); + readRelationsForCard(card); + return card; + } + + private void readRelationsForCard(FullCard card) { + if (card != null){ + if (card.getLabelIDs() != null && !card.getLabelIDs().isEmpty()){ + card.setLabels(db.getLabelDao().getLabelsById(card.getLabelIDs())); + } + if (card.getAssignedUserIDs() != null && !card.getAssignedUserIDs().isEmpty()){ + card.setAssignedUsers(db.getUserDao().getUsersById(card.getAssignedUserIDs())); + } + } + } + private void readRelationsForCard(List<FullCard> card) { + if (card == null){ + return; + } + for (FullCard c : card) { + readRelationsForCard(c); + } } @@ -88,7 +108,11 @@ public class DataBaseAdapter { } public LiveData<List<FullCard>> getFullCardsForStack(long accountId, long localStackId) { - return db.getCardDao().getFullCardsForStack(accountId, localStackId); + return wrapInLiveData((MutableLiveData<List<FullCard>> liveData) -> { + List<FullCard> fullCardsForStack = db.getCardDao().getFullCardsForStackDirectly(accountId, localStackId); + readRelationsForCard(fullCardsForStack); + liveData.postValue(fullCardsForStack); + }); } public User getUserByRemoteIdDirectly(long accountId, long remoteId) { @@ -151,13 +175,6 @@ public class DataBaseAdapter { } - public void createJoinStackWithCard(long localCardId, long localStackId) { - JoinStackWithCard join = new JoinStackWithCard(); - join.setCardId(localCardId); - join.setStackId(localStackId); - db.getJoinStackWithCardDao().insert(join); - } - public void createJoinBoardWithLabel(long localBoardId, long localLabelId) { JoinBoardWithLabel join = new JoinBoardWithLabel(); join.setBoardId(localBoardId); @@ -170,14 +187,6 @@ public class DataBaseAdapter { db.getJoinBoardWithLabelDao().deleteByBoardId(localBoardId); } - public void deleteJoinedCardsForStack(long localStackId) { - db.getJoinStackWithCardDao().deleteByStackId(localStackId); - } - public void deleteJoinedCardForStackById(long localCardId) { - db.getJoinStackWithCardDao().deleteByCardId(localCardId); - } - - public void updateLabel(Label label) { db.getLabelDao().update(label); } @@ -233,6 +242,10 @@ public class DataBaseAdapter { liveData.postValue(newBoard); }); } + public void createBoardDirectly(long accountId, Board board) { + board.setAccountId(accountId); + db.getBoardDao().insert(board); + } public void deleteBoard(Board board) { @@ -294,7 +307,6 @@ public class DataBaseAdapter { public void updateCard(Card card) { db.getCardDao().update(card); - } |