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 <echotodevnull@gmail.com>2019-12-25 16:49:02 +0300
committerdesperateCoder <echotodevnull@gmail.com>2019-12-25 16:49:02 +0300
commit009d8e76e82a5490b826861795f79823ba908ac9 (patch)
treee138209ad7f334d874fff419b75bd4aa61031e73 /app/src/main
parent766eaba0dd2a83b2171de98d8f037a80b5a73d15 (diff)
should fix #239
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/CardDataProvider.java37
1 files changed, 23 insertions, 14 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/CardDataProvider.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/CardDataProvider.java
index a1adbe389..e9f876451 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/CardDataProvider.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/CardDataProvider.java
@@ -192,21 +192,30 @@ public class CardDataProvider extends AbstractSyncDataProvider<FullCard> {
JoinCardWithLabel deletedLabel = dataBaseAdapter.getRemoteIdsForJoin(deletedLabelLocal.getCardId(), deletedLabelLocal.getLabelId());
if (deletedLabel.getStatusEnum() == DBStatus.LOCAL_DELETED){
- serverAdapter.unassignLabelFromCard(board.getId(), stack.getId(), deletedLabel.getCardId(), deletedLabel.getLabelId(), new IResponseCallback<Void>(account) {
- @Override
- public void onResponse(Void response) {
- dataBaseAdapter.deleteJoinedLabelForCardPhysicallyByRemoteIDs(account.getId(), deletedLabel.getCardId(), deletedLabel.getLabelId());
- }
- });
+ if (deletedLabel.getLabelId() == null || deletedLabel.getCardId() == null) {
+ dataBaseAdapter.deleteJoinedLabelForCardPhysicallyByRemoteIDs(account.getId(), deletedLabel.getCardId(), deletedLabel.getLabelId());
+ } else {
+ serverAdapter.unassignLabelFromCard(board.getId(), stack.getId(), deletedLabel.getCardId(), deletedLabel.getLabelId(), new IResponseCallback<Void>(account) {
+ @Override
+ public void onResponse(Void response) {
+ dataBaseAdapter.deleteJoinedLabelForCardPhysicallyByRemoteIDs(account.getId(), deletedLabel.getCardId(), deletedLabel.getLabelId());
+ }
+ });
+ }
} else if (deletedLabel.getStatusEnum() == DBStatus.LOCAL_EDITED){
- //FIXME: card not created on server by sync yet, or maybe is, but the remote ID isn't available yet. what to do?
- serverAdapter.assignLabelToCard(board.getId(), stack.getId(), deletedLabel.getCardId(), deletedLabel.getLabelId(), new IResponseCallback<Void>(account) {
- @Override
- public void onResponse(Void response) {
- Label label = dataBaseAdapter.getLabelByRemoteIdDirectly(account.getId(), deletedLabel.getLabelId());
- dataBaseAdapter.setStatusForJoinCardWithLabel(card.getLocalId(), label.getLocalId(), DBStatus.UP_TO_DATE.getId());
- }
- });
+ if (deletedLabel.getLabelId() == null || deletedLabel.getCardId() == null) {
+ // Sync next time, the card should be available on server then.
+ continue;
+ } else {
+ serverAdapter.assignLabelToCard(board.getId(), stack.getId(), deletedLabel.getCardId(), deletedLabel.getLabelId(), new IResponseCallback<Void>(account) {
+ @Override
+ public void onResponse(Void response) {
+ Label label = dataBaseAdapter.getLabelByRemoteIdDirectly(account.getId(), deletedLabel.getLabelId());
+ dataBaseAdapter.setStatusForJoinCardWithLabel(card.getLocalId(), label.getLocalId(), DBStatus.UP_TO_DATE.getId());
+ }
+ });
+ }
+
}
}
List<JoinCardWithUser> deletedUsers = dataBaseAdapter.getAllDeletedUserJoinsWithRemoteIDs();