diff options
author | desperateCoder <admin@life-style-art.de> | 2019-03-13 20:53:35 +0300 |
---|---|---|
committer | desperateCoder <admin@life-style-art.de> | 2019-03-13 20:53:35 +0300 |
commit | e7def538075fa68c23e1e1426991bdb1b9dedcd3 (patch) | |
tree | f18c2e85c82d9dc809ce91db2f9d0374e314857d /app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync | |
parent | 31a5972fd4b342aa54e020cfe9dd8844a6bc3ac2 (diff) |
propagate user-card-assignment to server
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync')
8 files changed, 62 insertions, 19 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 d5f911db9..f6445cbe8 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 @@ -272,10 +272,24 @@ public class SyncManager { dataBaseAdapter.createJoinBoardWithLabel(localBoardId, localLabelId); } - public void assignUserToCard(long localUserId, long localCardId) { + public void assignUserToCard(long localUserId, Card card) { //TODO: Tell the server + DeckLog.log("boop"); doAsync(() -> { - dataBaseAdapter.createJoinCardWithUser(localUserId, localCardId, DBStatus.LOCAL_EDITED); + dataBaseAdapter.createJoinCardWithUser(localUserId, card.getLocalId(), DBStatus.LOCAL_EDITED); + //TODO: reactivate, as soon as SSO supports Retrofit @Field annotations +// Stack stack = dataBaseAdapter.getStackByLocalIdDirectly(card.getStackId()); +// Board board = dataBaseAdapter.getBoardByLocalIdDirectly(stack.getBoardId()); +// Account account = dataBaseAdapter.getAccountByIdDirectly(card.getAccountId()); +// User user = dataBaseAdapter.getUserByLocalIdDirectly(localUserId); +// DeckLog.log("serverAdapter: " +serverAdapter); +// serverAdapter.assignUserToCard(board.getId(), stack.getId(), card.getId(), user.getUid(), new IResponseCallback<FullCard>(account){ +// +// @Override +// public void onResponse(FullCard response) { +// dataBaseAdapter.setStatusForJoinCardWithUser(card.getLocalId(), user.getLocalId(), DBStatus.UP_TO_DATE.getId()); +// } +// }); }); } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java index 15fd33356..2c8853958 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java @@ -146,4 +146,10 @@ public class ServerAdapter { ensureInternetConnection(); } + public void assignUserToCard(long boardId, long stackId, long cardId, String userUID, IResponseCallback<FullCard> responseCallback){ + ensureInternetConnection(); + RequestHelper.request(sourceActivity, provider, () -> provider.getAPI().assignUserToCard(boardId, stackId, cardId, userUID), responseCallback); + } + + } 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 bdd42b6ea..be1e1009a 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 @@ -63,6 +63,11 @@ public class DataBaseAdapter { return LiveDataHelper.onlyIfChanged(db.getStackDao().getStackByRemoteId(accountId, localBoardId, remoteId)); } + public Stack getStackByLocalIdDirectly(final long localStackId) { + return db.getStackDao().getStackByLocalIdDirectly(localStackId); + } + + public FullStack getFullStackByRemoteIdDirectly(long accountId, long localBoardId, long remoteId) { return db.getStackDao().getFullStackByRemoteIdDirectly(accountId, localBoardId, remoteId); } @@ -204,7 +209,7 @@ public class DataBaseAdapter { } public Account readAccountDirectly(long id) { - return db.getAccountDao().selectByIdDirectly(id); + return db.getAccountDao().getAccountByIdDirectly(id); } public LiveData<List<Account>> readAccounts() { @@ -219,7 +224,7 @@ public class DataBaseAdapter { return LiveDataHelper.wrapInLiveData(() -> { board.setAccountId(accountId); long id = db.getBoardDao().insert(board); - return db.getBoardDao().getBoardByIdDirectly(accountId, id); + return db.getBoardDao().getBoardByIdDirectly(id); }); } @@ -298,6 +303,9 @@ public class DataBaseAdapter { public LiveData<FullBoard> getFullBoardById(Long accountId, Long localId) { return db.getBoardDao().getFullBoardById(accountId, localId); } + public Board getBoardByLocalIdDirectly(long localId) { + return db.getBoardDao().getBoardByIdDirectly(localId); + } public LiveData<User> getUserByLocalId(long accountId, long localId){ return db.getUserDao().getUserByLocalId(accountId, localId); @@ -341,4 +349,16 @@ public class DataBaseAdapter { throw new IllegalArgumentException("please provide a proper search term! \""+searchTerm+"\" doesn't seem right..."); } } + + public Account getAccountByIdDirectly(long accountId) { + return db.getAccountDao().getAccountByIdDirectly(accountId); + } + + public User getUserByLocalIdDirectly(long localUserId) { + return db.getUserDao().getUserByLocalIdDirectly(localUserId); + } + + public void setStatusForJoinCardWithUser(long localCardId, long localUserId, int status) { + db.getJoinCardWithUserDao().setDbStatus(localCardId, localUserId, status); + } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AccountDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AccountDao.java index e81373c8a..3c0286ef4 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AccountDao.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AccountDao.java @@ -1,11 +1,10 @@ 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 java.util.List; - import it.niedermann.nextcloud.deck.model.Account; @Dao @@ -24,7 +23,7 @@ public interface AccountDao extends GenericDao<Account> { void deleteById(long id); @Query("SELECT * from account where id = :id") - Account selectByIdDirectly(long id); + Account getAccountByIdDirectly(long id); @Query("SELECT * from account where id = :id") LiveData<Account> selectById(long id); 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 82e3d01d8..6d2a40693 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,12 +1,11 @@ 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; @@ -22,8 +21,8 @@ public interface BoardDao extends GenericDao<Board> { @Query("SELECT * FROM board WHERE accountId = :accountId and id = :remoteId") Board getBoardByRemoteIdDirectly(long accountId, long remoteId); - @Query("SELECT * FROM board WHERE accountId = :accountId and localId = :localId") - Board getBoardByIdDirectly(long accountId, long localId); + @Query("SELECT * FROM board WHERE localId = :localId") + Board getBoardByIdDirectly(long localId); @Transaction @Query("SELECT * FROM board WHERE accountId = :accountId and id = :remoteId") diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithUserDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithUserDao.java index 1f9eee132..d28f1b10f 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithUserDao.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithUserDao.java @@ -9,4 +9,6 @@ public interface JoinCardWithUserDao extends GenericDao<JoinCardWithUser> { @Query("DELETE FROM joincardwithuser WHERE cardId = :localId and status=1") // 1 = up_to_date void deleteByCardId(long localId); + @Query("Update joincardwithuser set status = :status WHERE cardId = :localCardId and userId = :localUserId") + void setDbStatus(long localCardId, long localUserId, int status); }
\ No newline at end of file diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/StackDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/StackDao.java index f26e12264..56482d870 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/StackDao.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/StackDao.java @@ -1,12 +1,11 @@ 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.Stack; import it.niedermann.nextcloud.deck.model.full.FullStack; @@ -19,6 +18,8 @@ public interface StackDao extends GenericDao<Stack> { @Query("SELECT * FROM stack WHERE accountId = :accountId and boardId = :localBoardId and id = :remoteId") LiveData<Stack> getStackByRemoteId(final long accountId, final long localBoardId, final long remoteId); + @Query("SELECT * FROM stack WHERE localId = :localStackId") + Stack getStackByLocalIdDirectly(final long localStackId); @Transaction @Query("SELECT * FROM stack WHERE accountId = :accountId and boardId = :localBoardId and id = :remoteId") diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/UserDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/UserDao.java index 18ae2b45e..bd84d3a75 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/UserDao.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/UserDao.java @@ -1,11 +1,10 @@ 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 java.util.List; - import it.niedermann.nextcloud.deck.model.User; @Dao @@ -28,4 +27,7 @@ public interface UserDao extends GenericDao<User> { @Query("SELECT * FROM user WHERE localId IN (:assignedUserIDs)") List<User> getUsersByIdDirectly(List<Long> assignedUserIDs); + + @Query("SELECT * FROM user WHERE localId = :localUserId") + User getUserByLocalIdDirectly(long localUserId); }
\ No newline at end of file |