Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordesperateCoder <admin@life-style-art.de>2019-03-13 20:53:35 +0300
committerdesperateCoder <admin@life-style-art.de>2019-03-13 20:53:35 +0300
commite7def538075fa68c23e1e1426991bdb1b9dedcd3 (patch)
treef18c2e85c82d9dc809ce91db2f9d0374e314857d /app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync
parent31a5972fd4b342aa54e020cfe9dd8844a6bc3ac2 (diff)
propagate user-card-assignment to server
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java18
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/ServerAdapter.java6
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java24
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AccountDao.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/BoardDao.java9
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinCardWithUserDao.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/StackDao.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/UserDao.java8
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