diff options
author | desperateCoder <echotodevnull@gmail.com> | 2019-12-25 16:49:02 +0300 |
---|---|---|
committer | desperateCoder <echotodevnull@gmail.com> | 2019-12-25 16:49:02 +0300 |
commit | 009d8e76e82a5490b826861795f79823ba908ac9 (patch) | |
tree | e138209ad7f334d874fff419b75bd4aa61031e73 /app | |
parent | 766eaba0dd2a83b2171de98d8f037a80b5a73d15 (diff) |
should fix #239
Diffstat (limited to 'app')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/CardDataProvider.java | 37 |
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(); |