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 | |
parent | 31a5972fd4b342aa54e020cfe9dd8844a6bc3ac2 (diff) |
propagate user-card-assignment to server
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud')
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); |