diff options
author | desperateCoder <echotodevnull@gmail.com> | 2019-05-14 20:27:33 +0300 |
---|---|---|
committer | desperateCoder <echotodevnull@gmail.com> | 2019-05-14 20:27:33 +0300 |
commit | 46b1a64476f42d7b2b641ad56b6ae676e8d96b9c (patch) | |
tree | 94a6301e2728ac0151e13bb80c034c9ff0f8f787 /app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db | |
parent | d18ef378d228b1ce91cb1419cec07b8314cb027f (diff) |
#51 create and assign label in single step
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db')
3 files changed, 24 insertions, 3 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 384655c46..283fef11c 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 @@ -90,6 +90,9 @@ public class DataBaseAdapter { readRelationsForCard(card); return card; } + public FullCard getFullCardByLocalIdDirectly(long accountId, long localId) { + return db.getCardDao().getFullCardByLocalIdDirectly(accountId, localId); + } private void readRelationsForCard(FullCard card) { if (card != null){ @@ -305,7 +308,11 @@ public class DataBaseAdapter { public LiveData<FullCard> getCardByLocalId(long accountId, long localCardId) { return LiveDataHelper.interceptLiveData(db.getCardDao().getFullCardByLocalId(accountId, localCardId), this::readRelationsForCard); } - + + public Card getCardByLocalIdDirectly(long accountId, long localCardId) { + return db.getCardDao().getCardByLocalIdDirectly(accountId, localCardId); + } + public long createCard(long accountId, Card card) { card.setAccountId(accountId); return db.getCardDao().insert(card); @@ -419,4 +426,8 @@ public class DataBaseAdapter { public List<Label> getLocallyChangedLabels(long accountId, long boardId) { return db.getLabelDao().getLocallyChangedLabelsDirectly(accountId, boardId); } + + public Board getBoardByLocalCardIdDirectly(long localCardId) { + return db.getBoardDao().getBoardByLocalCardIdDirectly(localCardId); + } } 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 3c206676f..e74922c60 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 @@ -1,11 +1,12 @@ package it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao; -import java.util.List; - import androidx.lifecycle.LiveData; import androidx.room.Dao; import androidx.room.Query; import androidx.room.Transaction; + +import java.util.List; + import it.niedermann.nextcloud.deck.model.Board; import it.niedermann.nextcloud.deck.model.full.FullBoard; @@ -41,4 +42,6 @@ public interface BoardDao extends GenericDao<Board> { LiveData<FullBoard> getFullBoardById(final long accountId, final long localId); + @Query("SELECT b.* FROM board b JOIN stack s ON s.boardId = b.localId JOIN card c ON c.localId = :localCardId") + Board getBoardByLocalCardIdDirectly(long localCardId); }
\ No newline at end of file diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java index 441abc3e3..6c0c7dcf3 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java @@ -23,6 +23,13 @@ public interface CardDao extends GenericDao<Card> { @Query("SELECT * FROM card WHERE accountId = :accountId and id = :remoteId") FullCard getFullCardByRemoteIdDirectly(final long accountId, final long remoteId); + @Query("SELECT * FROM card WHERE accountId = :accountId and localId = :localId") + Card getCardByLocalIdDirectly(final long accountId, final long localId); + + @Transaction + @Query("SELECT * FROM card WHERE accountId = :accountId and localId = :localId") + FullCard getFullCardByLocalIdDirectly(final long accountId, final long localId); + @Transaction @Query("SELECT * FROM card WHERE accountId = :accountId AND stackId = :localStackId order by `order`, createdAt asc") LiveData<List<FullCard>> getFullCardsForStack(final long accountId, final long localStackId); |