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
parent31a5972fd4b342aa54e020cfe9dd8844a6bc3ac2 (diff)
propagate user-card-assignment to server
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java9
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithLabel.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithPermission.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithUser.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/model/JoinCardWithLabel.java3
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/model/JoinCardWithUser.java29
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/model/interfaces/AbstractJoinEntity.java31
-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
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java21
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardDetailsFragment.java2
17 files changed, 128 insertions, 63 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java
index d8f7d9803..f7a6debdf 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/DeckAPI.java
@@ -14,6 +14,8 @@ import it.niedermann.nextcloud.deck.model.full.FullCard;
import it.niedermann.nextcloud.deck.model.full.FullStack;
import retrofit2.http.Body;
import retrofit2.http.DELETE;
+import retrofit2.http.Field;
+import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;
@@ -77,17 +79,18 @@ public interface DeckAPI {
@PUT("boards/{boardId}/stacks/{stackId}/cards/{cardId}/removeLabel")
Observable unassignLabelFromCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Body Integer labelId);
+ @FormUrlEncoded
@PUT("boards/{boardId}/stacks/{stackId}/cards/{cardId}/assignUser")
- Observable assignUserToCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Body Integer userId);
+ Observable<FullCard> assignUserToCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Field("userId") String userId);
@PUT("boards/{boardId}/stacks/{stackId}/cards/{cardId}/unassignUser")
- Observable unassignUserFromCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Body Integer userId);
+ Observable unassignUserFromCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Body String userId);
@PUT("boards/{boardId}/stacks/{stackId}/cards/{cardId}/reorder")
Observable moveCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Body Integer order, @Body Integer newStackId);
@DELETE("boards/{boardId}/stacks/{stackId}/cards/{cardId}")
- Observable<Card> deleteCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId);
+ Observable<FullCard> deleteCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId);
@GET("boards/{boardId}/stacks/{stackId}/cards/{cardId}")
Observable<FullCard> getCard(@Path("boardId") long boardId, @Path("stackId") long stackId, @Path("cardId") long cardId, @Header(MODIFIED_SINCE_HEADER) String lastSync);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithLabel.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithLabel.java
index 3bab18160..e40e3e607 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithLabel.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithLabel.java
@@ -1,9 +1,10 @@
package it.niedermann.nextcloud.deck.model;
+import androidx.annotation.NonNull;
import androidx.room.Entity;
import androidx.room.ForeignKey;
import androidx.room.Index;
-import androidx.annotation.NonNull;
+import it.niedermann.nextcloud.deck.model.interfaces.AbstractJoinEntity;
@Entity(
primaryKeys = {"labelId", "boardId"},
@@ -16,7 +17,7 @@ import androidx.annotation.NonNull;
parentColumns = "localId",
childColumns = "labelId")
})
-public class JoinBoardWithLabel {
+public class JoinBoardWithLabel extends AbstractJoinEntity {
@NonNull
private Long boardId;
@NonNull
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithPermission.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithPermission.java
index d3d4f9b72..e0eef773d 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithPermission.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithPermission.java
@@ -1,9 +1,10 @@
package it.niedermann.nextcloud.deck.model;
+import androidx.annotation.NonNull;
import androidx.room.Entity;
import androidx.room.ForeignKey;
import androidx.room.Index;
-import androidx.annotation.NonNull;
+import it.niedermann.nextcloud.deck.model.interfaces.AbstractJoinEntity;
@Entity(
primaryKeys = {"permissionId", "boardId"},
@@ -16,7 +17,7 @@ import androidx.annotation.NonNull;
parentColumns = "id",
childColumns = "permissionId")
})
-public class JoinBoardWithPermission {
+public class JoinBoardWithPermission extends AbstractJoinEntity {
@NonNull
private Long permissionId;
@NonNull
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithUser.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithUser.java
index 09167a2d2..773db3aa5 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithUser.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinBoardWithUser.java
@@ -1,9 +1,10 @@
package it.niedermann.nextcloud.deck.model;
+import androidx.annotation.NonNull;
import androidx.room.Entity;
import androidx.room.ForeignKey;
import androidx.room.Index;
-import androidx.annotation.NonNull;
+import it.niedermann.nextcloud.deck.model.interfaces.AbstractJoinEntity;
@Entity(
primaryKeys = {"userId", "boardId"},
@@ -16,7 +17,7 @@ import androidx.annotation.NonNull;
parentColumns = "localId",
childColumns = "userId")
})
-public class JoinBoardWithUser {
+public class JoinBoardWithUser extends AbstractJoinEntity {
@NonNull
private Long userId;
@NonNull
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinCardWithLabel.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinCardWithLabel.java
index e827fa320..869b4d19a 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinCardWithLabel.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinCardWithLabel.java
@@ -4,6 +4,7 @@ import androidx.room.Entity;
import androidx.room.ForeignKey;
import androidx.room.Index;
import androidx.annotation.NonNull;
+import it.niedermann.nextcloud.deck.model.interfaces.AbstractJoinEntity;
@Entity(
primaryKeys = {"labelId", "cardId"},
@@ -16,7 +17,7 @@ import androidx.annotation.NonNull;
parentColumns = "localId",
childColumns = "cardId")
})
-public class JoinCardWithLabel {
+public class JoinCardWithLabel extends AbstractJoinEntity {
@NonNull
private Long labelId;
@NonNull
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinCardWithUser.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinCardWithUser.java
index e7bafaf32..e26512679 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinCardWithUser.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinCardWithUser.java
@@ -1,12 +1,10 @@
package it.niedermann.nextcloud.deck.model;
-import java.util.Objects;
-
+import androidx.annotation.NonNull;
import androidx.room.Entity;
import androidx.room.ForeignKey;
import androidx.room.Index;
-import androidx.annotation.NonNull;
-import it.niedermann.nextcloud.deck.model.enums.DBStatus;
+import it.niedermann.nextcloud.deck.model.interfaces.AbstractJoinEntity;
@Entity(
primaryKeys = {"userId", "cardId"},
@@ -19,13 +17,11 @@ import it.niedermann.nextcloud.deck.model.enums.DBStatus;
parentColumns = "localId",
childColumns = "cardId")
})
-public class JoinCardWithUser {
+public class JoinCardWithUser extends AbstractJoinEntity {
@NonNull
private Long userId;
@NonNull
private Long cardId;
- @NonNull
- private int status = DBStatus.UP_TO_DATE.getId();
public Long getUserId() {
return userId;
@@ -43,26 +39,21 @@ public class JoinCardWithUser {
this.cardId = cardId;
}
- public int getStatus() {
- return status;
- }
-
- public void setStatus(int status) {
- this.status = status;
- }
-
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
+
JoinCardWithUser that = (JoinCardWithUser) o;
- return status == that.status &&
- Objects.equals(userId, that.userId) &&
- Objects.equals(cardId, that.cardId);
+
+ if (!userId.equals(that.userId)) return false;
+ return cardId.equals(that.cardId);
}
@Override
public int hashCode() {
- return Objects.hash(userId, cardId, status);
+ int result = userId.hashCode();
+ result = 31 * result + cardId.hashCode();
+ return result;
}
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/interfaces/AbstractJoinEntity.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/interfaces/AbstractJoinEntity.java
new file mode 100644
index 000000000..50057dfe4
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/interfaces/AbstractJoinEntity.java
@@ -0,0 +1,31 @@
+package it.niedermann.nextcloud.deck.model.interfaces;
+
+import androidx.annotation.NonNull;
+import androidx.room.Entity;
+import androidx.room.Ignore;
+import it.niedermann.nextcloud.deck.model.enums.DBStatus;
+
+@Entity()
+public abstract class AbstractJoinEntity {
+
+ @NonNull
+ protected int status = DBStatus.UP_TO_DATE.getId();
+
+ public int getStatus() {
+ return status;
+ }
+
+ public void setStatus(@NonNull int status) {
+ this.status = status;
+ }
+
+ @Ignore
+ public DBStatus getStatusEnum() {
+ return DBStatus.findById(status);
+ }
+
+ @Ignore
+ public void setStatusEnum(DBStatus status) {
+ this.status = status.getId();
+ }
+}
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
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
index 606ce8fa7..0eecd12eb 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
@@ -160,22 +160,15 @@ public class MainActivity extends AppCompatActivity
MainActivity.this.syncManager.synchronize(new IResponseCallback<Boolean>(this.account) {
@Override
public void onResponse(Boolean response) {
-
- runOnUiThread(() -> {
- boardsLiveData = syncManager.getBoards(this.account.getId());
- boardsLiveDataObserver = (List<Board> boards) -> {
- boardsList = boards;
- buildSidenavMenu();
- };
- boardsLiveData.observe(MainActivity.this, boardsLiveDataObserver);
- });
- }
-
- @Override
- public void onError(Throwable throwable) {
- throwable.printStackTrace();
+ //nothing
}
});
+ boardsLiveData = syncManager.getBoards(this.account.getId());
+ boardsLiveDataObserver = (List<Board> boards) -> {
+ boardsList = boards;
+ buildSidenavMenu();
+ };
+ boardsLiveData.observe(MainActivity.this, boardsLiveDataObserver);
}
});
} else {
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardDetailsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardDetailsFragment.java
index bee7f3d1a..70e62f5dd 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardDetailsFragment.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardDetailsFragment.java
@@ -266,7 +266,7 @@ public class CardDetailsFragment extends Fragment implements DatePickerDialog.On
people.setOnItemClickListener((adapterView, view, position, id) -> {
User user = (User) adapterView.getItemAtPosition(position);
- syncManager.assignUserToCard(user.getLocalId(), card.getLocalId());
+ syncManager.assignUserToCard(user.getLocalId(), card.getCard());
if (baseUrl != null) {
addAvatar(baseUrl, user);