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>2021-09-10 20:32:03 +0300
committerdesperateCoder <echotodevnull@gmail.com>2021-09-10 20:32:03 +0300
commit24394d4d9446eea21709cdbe79ed7cfff635240a (patch)
tree7f423fb7f4cefb2dd3b7a996fc0a724a4013fe74 /app/src/main
parent2c4578fd3a5a136886089815662616d12e396590 (diff)
#1100 fix order of comments at upload
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CommentDao.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/DeckCommentsDataProvider.java29
2 files changed, 31 insertions, 3 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CommentDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CommentDao.java
index 31b195c3f..463cf4617 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CommentDao.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CommentDao.java
@@ -19,7 +19,8 @@ public interface CommentDao extends GenericDao<DeckComment> {
@Query("SELECT * FROM DeckComment where accountId = :accountId and localId = :id")
DeckComment getCommentByLocalIdDirectly(long accountId, Long id);
- @Query("SELECT * FROM DeckComment WHERE accountId = :accountId and objectId = :localCardId and (status<>1 or id is null or lastModified <> lastModifiedLocal)")
+ @Query("SELECT * FROM DeckComment WHERE accountId = :accountId and objectId = :localCardId " +
+ "and (status<>1 or id is null or lastModified <> lastModifiedLocal) order by localId asc")
List<DeckComment> getLocallyChangedCommentsByLocalCardIdDirectly(long accountId, long localCardId);
@Query("SELECT * FROM DeckComment WHERE accountId = :accountId and (status<>1 or id is null or lastModified <> lastModifiedLocal)")
@@ -35,7 +36,7 @@ public interface CommentDao extends GenericDao<DeckComment> {
LiveData<List<DeckComment>> getCommentByLocalCardId(Long localCardId);
@Transaction
- @Query("SELECT * FROM DeckComment where objectId = :localCardId order by creationDateTime desc")
+ @Query("SELECT * FROM DeckComment where objectId = :localCardId order by creationDateTime desc, localId desc")
LiveData<List<FullDeckComment>> getFullCommentByLocalCardId(Long localCardId);
@Query("SELECT id FROM DeckComment where localId = :localId")
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/DeckCommentsDataProvider.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/DeckCommentsDataProvider.java
index 9d7ee4c70..97eca7e67 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/DeckCommentsDataProvider.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/DeckCommentsDataProvider.java
@@ -1,12 +1,16 @@
package it.niedermann.nextcloud.deck.persistence.sync.helpers.providers;
+import android.annotation.SuppressLint;
+
import java.time.Instant;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
+import java.util.concurrent.CountDownLatch;
import it.niedermann.nextcloud.deck.DeckLog;
+import it.niedermann.nextcloud.deck.api.IResponseCallback;
import it.niedermann.nextcloud.deck.api.ResponseCallback;
import it.niedermann.nextcloud.deck.model.Card;
import it.niedermann.nextcloud.deck.model.ocs.comment.DeckComment;
@@ -114,7 +118,30 @@ public class DeckCommentsDataProvider extends AbstractSyncDataProvider<OcsCommen
if (comment.getParentId() != null) {
comment.setParentId(dataBaseAdapter.getRemoteCommentIdForLocalIdDirectly(comment.getParentId()));
}
- serverAdapter.createCommentForCard(comment, responder);
+ DeckLog.info("creating entity: "+entity.getComments().get(0).getMessage() + " with id " +entity.getComments().get(0).getLocalId());
+ CountDownLatch latch = new CountDownLatch(1);
+ serverAdapter.createCommentForCard(comment, new ResponseCallback<>(responder.getAccount()) {
+ @Override
+ public void onResponse(OcsComment response) {
+ latch.countDown();
+ responder.onResponse(response);
+ DeckLog.info("CREATED entity: "+entity.getComments().get(0).getMessage() + " with id " +entity.getComments().get(0).getLocalId());
+ }
+
+ @SuppressLint("MissingSuperCall")
+ @Override
+ public void onError(Throwable throwable) {
+ latch.countDown();
+ responder.onError(throwable);
+ }
+ });
+
+ try {
+ latch.await();
+ DeckLog.info("released latch for entity: "+entity.getComments().get(0).getMessage() + " with id " +entity.getComments().get(0).getLocalId());
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
}
@Override