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-02-08 19:10:50 +0300
committerdesperateCoder <echotodevnull@gmail.com>2019-02-08 19:10:50 +0300
commit8cf1e3c3d2694300124439c714c0121b26a1bdd8 (patch)
treedcc6bf46f08373eb36174b46672d9227fd42e056 /app/src/main/java
parentc39bd5a9b5288ef12d6a337994d34dcf459bb546 (diff)
removed unnessesary m:n between cards and stack
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java10
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/model/Card.java12
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/model/JoinStackWithCard.java40
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/model/full/FullCard.java29
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/model/full/FullStack.java10
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncManager.java1
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DataBaseAdapter.java50
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DeckDatabase.java5
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinStackWithCardDao.java16
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/LabelDao.java4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/UserDao.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/BoardDataProvider.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/CardDataProvider.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/StackCardRelationshipProvider.java29
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/StackDataProvider.java4
16 files changed, 87 insertions, 138 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java
index c08a0bfc7..09c2daaa5 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java
@@ -106,7 +106,7 @@ public class JsonToEntityParser {
JsonElement owner = e.get("owner");
if (owner != null) {
if (owner.isJsonPrimitive()) {//TODO: remove if, let only else!
- Log.d(DeckConsts.DEBUG_TAG, "owner is Primitive, skipping");
+ DeckLog.log("owner is Primitive, skipping");
} else
fullCard.setOwner(parseUser(owner.getAsJsonObject()));
}
@@ -134,13 +134,11 @@ public class JsonToEntityParser {
stack.setOrder(e.get("order").getAsInt());
if (e.has("cards")) {
JsonArray cardsJson = e.getAsJsonArray("cards");
- List<FullCard> cards = new ArrayList<>();
- List<Long> cardIds = new ArrayList<>();
+ List<Card> cards = new ArrayList<>();
for (JsonElement cardJson : cardsJson) {
-// cards.add(parseCard(cardJson.getAsJsonObject()));
- cardIds.add(cardJson.getAsJsonObject().get("id").getAsLong());
+ cards.add(parseCard(cardJson.getAsJsonObject()).getCard());
}
- fullStack.setCards(cardIds);
+ fullStack.setCards(cards);
}
fullStack.setStack(stack);
// stack.setDeletedAt(e.get("deletedAt")) // TODO: parse date!
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/Card.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/Card.java
index f15b41c1c..1fbdc34b1 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/model/Card.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/Card.java
@@ -16,28 +16,16 @@ public class Card extends AbstractRemoteEntity {
private String title;
private String description;
@NonNull
-// @Index
private long stackId;
- // @ToOne(joinProperty = "stackId")
-// protected Stack stack;
private String type;
private Date createdAt;
private Date deletedAt;
- // @ToMany
-// @JoinEntity(entity = JoinCardWithLabel.class, sourceProperty = "cardId", targetProperty = "labelId")
-// private List<Label> labels = new ArrayList<>();
-// @ToMany
-// @JoinEntity(entity = JoinCardWithUser.class, sourceProperty = "cardId", targetProperty = "userId")
private String attachments;
private int attachmentCount;
private Long userId;
- // @ToOne(joinProperty = "userId")
-// private User owner;
-// @Index
@NonNull
private int order;
- // @Index
private boolean archived;
private Date dueDate;
private boolean notified;
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinStackWithCard.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinStackWithCard.java
deleted file mode 100644
index e286883eb..000000000
--- a/app/src/main/java/it/niedermann/nextcloud/deck/model/JoinStackWithCard.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package it.niedermann.nextcloud.deck.model;
-
-import android.arch.persistence.room.Entity;
-import android.arch.persistence.room.ForeignKey;
-import android.arch.persistence.room.Index;
-import android.support.annotation.NonNull;
-
-@Entity(
- primaryKeys = {"stackId", "cardId"},
- indices = {@Index("cardId"), @Index("stackId")},
- foreignKeys = {
- @ForeignKey(entity = Stack.class,
- parentColumns = "localId",
- childColumns = "stackId"),
- @ForeignKey(entity = Card.class,
- parentColumns = "localId",
- childColumns = "cardId")
- })
-public class JoinStackWithCard {
- @NonNull
- private Long stackId;
- @NonNull
- private Long cardId;
-
- public Long getStackId() {
- return stackId;
- }
-
- public void setStackId(Long stackId) {
- this.stackId = stackId;
- }
-
- public Long getCardId() {
- return cardId;
- }
-
- public void setCardId(Long cardId) {
- this.cardId = cardId;
- }
-}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/full/FullCard.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/full/FullCard.java
index 57b1b7c85..4be2c2a16 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/model/full/FullCard.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/full/FullCard.java
@@ -8,6 +8,8 @@ import java.util.ArrayList;
import java.util.List;
import it.niedermann.nextcloud.deck.model.Card;
+import it.niedermann.nextcloud.deck.model.JoinCardWithLabel;
+import it.niedermann.nextcloud.deck.model.JoinCardWithUser;
import it.niedermann.nextcloud.deck.model.Label;
import it.niedermann.nextcloud.deck.model.User;
import it.niedermann.nextcloud.deck.model.interfaces.IRemoteEntity;
@@ -16,10 +18,17 @@ public class FullCard implements IRemoteEntity {
@Embedded
public Card card;
- @Relation(entity = Label.class, parentColumn = "localId", entityColumn = "localId")
+ @Relation(entity = JoinCardWithLabel.class, parentColumn = "localId", entityColumn = "cardId", projection = "labelId")
+ public List<Long> labelIDs;
+
+ @Ignore
public List<Label> labels;
- @Relation(entity = User.class, parentColumn = "localId", entityColumn = "localId")
+
+ @Relation(entity = JoinCardWithUser.class, parentColumn = "localId", entityColumn = "cardId", projection = "userId")
+ public List<Long> assignedUserIDs;
+
+ @Ignore
public List<User> assignedUsers;
@Relation(parentColumn = "userId", entityColumn = "localId")
@@ -53,6 +62,22 @@ public class FullCard implements IRemoteEntity {
return owner;
}
+ public List<Long> getAssignedUserIDs() {
+ return assignedUserIDs;
+ }
+
+ public void setAssignedUserIDs(List<Long> assignedUserIDs) {
+ this.assignedUserIDs = assignedUserIDs;
+ }
+
+ public List<Long> getLabelIDs() {
+ return labelIDs;
+ }
+
+ public void setLabelIDs(List<Long> labelIDs) {
+ this.labelIDs = labelIDs;
+ }
+
public void setOwner(User owner) {
List<User> user = new ArrayList<>();
user.add(owner);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/full/FullStack.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/full/FullStack.java
index 8b966d693..83b081936 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/model/full/FullStack.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/full/FullStack.java
@@ -6,7 +6,7 @@ import android.arch.persistence.room.Relation;
import java.util.List;
-import it.niedermann.nextcloud.deck.model.JoinStackWithCard;
+import it.niedermann.nextcloud.deck.model.Card;
import it.niedermann.nextcloud.deck.model.Stack;
import it.niedermann.nextcloud.deck.model.interfaces.IRemoteEntity;
@@ -14,8 +14,8 @@ public class FullStack implements IRemoteEntity {
@Embedded
public Stack stack;
- @Relation(entity = JoinStackWithCard.class, parentColumn = "localId", entityColumn = "stackId", projection = "cardId")
- public List<Long> cards;
+ @Relation(entity = Card.class, parentColumn = "localId", entityColumn = "stackId")
+ public List<Card> cards;
public Stack getStack() {
@@ -26,11 +26,11 @@ public class FullStack implements IRemoteEntity {
this.stack = stack;
}
- public List<Long> getCards() {
+ public List<Card> getCards() {
return cards;
}
- public void setCards(List<Long> cards) {
+ public void setCards(List<Card> cards) {
this.cards = cards;
}
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 96080105a..0a68eaa07 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
@@ -175,6 +175,7 @@ public class SyncManager {
}
public LiveData<List<FullCard>> getFullCardsForStack(long accountId, long localStackId) {
+
return dataBaseAdapter.getFullCardsForStack(accountId, localStackId);
}
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 96dcbed81..2ef8436e0 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
@@ -12,7 +12,6 @@ import it.niedermann.nextcloud.deck.model.Card;
import it.niedermann.nextcloud.deck.model.JoinBoardWithLabel;
import it.niedermann.nextcloud.deck.model.JoinCardWithLabel;
import it.niedermann.nextcloud.deck.model.JoinCardWithUser;
-import it.niedermann.nextcloud.deck.model.JoinStackWithCard;
import it.niedermann.nextcloud.deck.model.Label;
import it.niedermann.nextcloud.deck.model.Stack;
import it.niedermann.nextcloud.deck.model.User;
@@ -74,7 +73,28 @@ public class DataBaseAdapter {
}
public FullCard getFullCardByRemoteIdDirectly(long accountId, long remoteId) {
- return db.getCardDao().getFullCardByRemoteIdDirectly(accountId, remoteId);
+ FullCard card = db.getCardDao().getFullCardByRemoteIdDirectly(accountId, remoteId);
+ readRelationsForCard(card);
+ return card;
+ }
+
+ private void readRelationsForCard(FullCard card) {
+ if (card != null){
+ if (card.getLabelIDs() != null && !card.getLabelIDs().isEmpty()){
+ card.setLabels(db.getLabelDao().getLabelsById(card.getLabelIDs()));
+ }
+ if (card.getAssignedUserIDs() != null && !card.getAssignedUserIDs().isEmpty()){
+ card.setAssignedUsers(db.getUserDao().getUsersById(card.getAssignedUserIDs()));
+ }
+ }
+ }
+ private void readRelationsForCard(List<FullCard> card) {
+ if (card == null){
+ return;
+ }
+ for (FullCard c : card) {
+ readRelationsForCard(c);
+ }
}
@@ -88,7 +108,11 @@ public class DataBaseAdapter {
}
public LiveData<List<FullCard>> getFullCardsForStack(long accountId, long localStackId) {
- return db.getCardDao().getFullCardsForStack(accountId, localStackId);
+ return wrapInLiveData((MutableLiveData<List<FullCard>> liveData) -> {
+ List<FullCard> fullCardsForStack = db.getCardDao().getFullCardsForStackDirectly(accountId, localStackId);
+ readRelationsForCard(fullCardsForStack);
+ liveData.postValue(fullCardsForStack);
+ });
}
public User getUserByRemoteIdDirectly(long accountId, long remoteId) {
@@ -151,13 +175,6 @@ public class DataBaseAdapter {
}
- public void createJoinStackWithCard(long localCardId, long localStackId) {
- JoinStackWithCard join = new JoinStackWithCard();
- join.setCardId(localCardId);
- join.setStackId(localStackId);
- db.getJoinStackWithCardDao().insert(join);
- }
-
public void createJoinBoardWithLabel(long localBoardId, long localLabelId) {
JoinBoardWithLabel join = new JoinBoardWithLabel();
join.setBoardId(localBoardId);
@@ -170,14 +187,6 @@ public class DataBaseAdapter {
db.getJoinBoardWithLabelDao().deleteByBoardId(localBoardId);
}
- public void deleteJoinedCardsForStack(long localStackId) {
- db.getJoinStackWithCardDao().deleteByStackId(localStackId);
- }
- public void deleteJoinedCardForStackById(long localCardId) {
- db.getJoinStackWithCardDao().deleteByCardId(localCardId);
- }
-
-
public void updateLabel(Label label) {
db.getLabelDao().update(label);
}
@@ -233,6 +242,10 @@ public class DataBaseAdapter {
liveData.postValue(newBoard);
});
}
+ public void createBoardDirectly(long accountId, Board board) {
+ board.setAccountId(accountId);
+ db.getBoardDao().insert(board);
+ }
public void deleteBoard(Board board) {
@@ -294,7 +307,6 @@ public class DataBaseAdapter {
public void updateCard(Card card) {
db.getCardDao().update(card);
-
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DeckDatabase.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DeckDatabase.java
index 606420f00..aa60733d9 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DeckDatabase.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DeckDatabase.java
@@ -14,7 +14,6 @@ import it.niedermann.nextcloud.deck.model.JoinBoardWithPermission;
import it.niedermann.nextcloud.deck.model.JoinBoardWithUser;
import it.niedermann.nextcloud.deck.model.JoinCardWithLabel;
import it.niedermann.nextcloud.deck.model.JoinCardWithUser;
-import it.niedermann.nextcloud.deck.model.JoinStackWithCard;
import it.niedermann.nextcloud.deck.model.Label;
import it.niedermann.nextcloud.deck.model.Permission;
import it.niedermann.nextcloud.deck.model.Stack;
@@ -27,7 +26,6 @@ import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao.JoinBoardWi
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao.JoinBoardWithUserDao;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao.JoinCardWithLabelDao;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao.JoinCardWithUserDao;
-import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao.JoinStackWithCardDao;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao.LabelDao;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao.PermissionDao;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao.StackDao;
@@ -43,7 +41,6 @@ import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao.UserDao;
JoinBoardWithUser.class,
JoinCardWithLabel.class,
JoinCardWithUser.class,
- JoinStackWithCard.class,
Label.class,
Permission.class,
Stack.class,
@@ -90,8 +87,6 @@ public abstract class DeckDatabase extends RoomDatabase {
public abstract JoinCardWithUserDao getJoinCardWithUserDao();
- public abstract JoinStackWithCardDao getJoinStackWithCardDao();
-
public abstract LabelDao getLabelDao();
public abstract PermissionDao getPermissionDao();
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java
index aa6d43190..6ba8e3e76 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/CardDao.java
@@ -29,6 +29,10 @@ public interface CardDao extends GenericDao<Card> {
LiveData<List<FullCard>> getFullCardsForStack(final long accountId, final long localStackId);
@Transaction
+ @Query("SELECT * FROM card WHERE accountId = :accountId AND stackId = :localStackId order by `order`, createdAt asc")
+ List<FullCard> getFullCardsForStackDirectly(final long accountId, final long localStackId);
+
+ @Transaction
@Query("SELECT * FROM card WHERE accountId = :accountId and localId = :localCardId")
LiveData<FullCard> getFullCardByLocalId(final long accountId, final long localCardId);
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinStackWithCardDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinStackWithCardDao.java
deleted file mode 100644
index 7eba32174..000000000
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/JoinStackWithCardDao.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao;
-
-import android.arch.persistence.room.Dao;
-import android.arch.persistence.room.Query;
-
-import it.niedermann.nextcloud.deck.model.JoinStackWithCard;
-
-@Dao
-public interface JoinStackWithCardDao extends GenericDao<JoinStackWithCard> {
- @Query("DELETE FROM joinstackwithcard WHERE stackId = :localStackId")
- void deleteByStackId(long localStackId);
-
- @Query("DELETE FROM joinstackwithcard WHERE cardId = :localCardId")
- void deleteByCardId(long localCardId);
-}
-
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/LabelDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/LabelDao.java
index ec0b8e427..bc6fd56a9 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/LabelDao.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/LabelDao.java
@@ -4,6 +4,8 @@ import android.arch.lifecycle.LiveData;
import android.arch.persistence.room.Dao;
import android.arch.persistence.room.Query;
+import java.util.List;
+
import it.niedermann.nextcloud.deck.model.Label;
@Dao
@@ -18,4 +20,6 @@ public interface LabelDao extends GenericDao<Label> {
@Query("SELECT * FROM label WHERE accountId = :accountId and id = :remoteId")
Label getLabelByRemoteIdDirectly(final long accountId, final long remoteId);
+ @Query("SELECT * FROM label WHERE localId IN (:labelIDs)")
+ List<Label> getLabelsById(List<Long> labelIDs);
} \ No newline at end of file
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 c3ffa96ad..291124a5d 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
@@ -23,4 +23,6 @@ public interface UserDao extends GenericDao<User> {
@Query("SELECT * FROM user WHERE accountId = :accountId and uid = :uid")
User getUserByUidDirectly(final long accountId, final String uid);
+ @Query("SELECT * FROM user WHERE localId IN (:assignedUserIDs)")
+ List<User> getUsersById(List<Long> assignedUserIDs);
} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/BoardDataProvider.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/BoardDataProvider.java
index 7e0b7d26d..7862f6747 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/BoardDataProvider.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/BoardDataProvider.java
@@ -23,7 +23,7 @@ public class BoardDataProvider implements IDataProvider<FullBoard> {
@Override
public void createInDB(DataBaseAdapter dataBaseAdapter, long accountId, FullBoard entity) {
handleOwner(dataBaseAdapter, accountId, entity);
- dataBaseAdapter.createBoard(accountId, entity.getBoard());
+ dataBaseAdapter.createBoardDirectly(accountId, entity.getBoard());
}
private void handleOwner(DataBaseAdapter dataBaseAdapter, long accountId, FullBoard entity) {
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 1290951b5..7d7cd61e4 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
@@ -5,6 +5,7 @@ import java.util.List;
import it.niedermann.nextcloud.deck.api.IResponseCallback;
import it.niedermann.nextcloud.deck.model.Board;
+import it.niedermann.nextcloud.deck.model.Card;
import it.niedermann.nextcloud.deck.model.User;
import it.niedermann.nextcloud.deck.model.full.FullCard;
import it.niedermann.nextcloud.deck.model.full.FullStack;
@@ -24,12 +25,13 @@ public class CardDataProvider implements IDataProvider<FullCard> {
@Override
public void getAllFromServer(ServerAdapter serverAdapter, long accountId, IResponseCallback<List<FullCard>> responder) {
+
List<FullCard> result = new ArrayList<>();
if (stack.getCards() == null || stack.getCards().isEmpty()){
responder.onResponse(result);
}
- for (Long card : stack.getCards()) {
- serverAdapter.getCard(board.getId(), stack.getId(), card, new IResponseCallback<FullCard>(responder.getAccount()) {
+ for (Card card : stack.getCards()) {
+ serverAdapter.getCard(board.getId(), stack.getId(), card.getId(), new IResponseCallback<FullCard>(responder.getAccount()) {
@Override
public void onResponse(FullCard response) {
result.add(response);
@@ -85,7 +87,6 @@ public class CardDataProvider implements IDataProvider<FullCard> {
public void goDeeper(SyncHelper syncHelper, FullCard existingEntity, FullCard entityFromServer) {
existingEntity.setLabels(entityFromServer.getLabels());
existingEntity.setAssignedUsers(entityFromServer.getAssignedUsers());
- syncHelper.fixRelations(new StackCardRelationshipProvider(stack.getStack(), existingEntity.getCard()));
syncHelper.doSyncFor(new LabelDataProvider(entityFromServer.getLabels()));
syncHelper.fixRelations(new CardLabelRelationshipProvider(existingEntity.getCard(), existingEntity.getLabels()));
syncHelper.doSyncFor(new UserDataProvider(board, stack, existingEntity, existingEntity.getAssignedUsers()));
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/StackCardRelationshipProvider.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/StackCardRelationshipProvider.java
deleted file mode 100644
index 614758644..000000000
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/StackCardRelationshipProvider.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package it.niedermann.nextcloud.deck.persistence.sync.helpers.providers;
-
-import it.niedermann.nextcloud.deck.model.Card;
-import it.niedermann.nextcloud.deck.model.Stack;
-import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.DataBaseAdapter;
-
-public class StackCardRelationshipProvider implements IRelationshipProvider {
-
- Stack stack;
- Card card;
-
- public StackCardRelationshipProvider(Stack stack, Card card) {
- this.stack = stack;
- this.card = card;
- }
-
- @Override
- public void insertAllNecessary(DataBaseAdapter dataBaseAdapter, long accountId) {
- if (card == null){
- return;
- }
- dataBaseAdapter.createJoinStackWithCard(card.getLocalId(), this.stack.getLocalId());
- }
-
- @Override
- public void deleteAllExisting(DataBaseAdapter dataBaseAdapter, long accountId) {
- dataBaseAdapter.deleteJoinedCardForStackById(card.getLocalId());
- }
-}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/StackDataProvider.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/StackDataProvider.java
index 80f369dee..2dda25b3b 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/StackDataProvider.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/StackDataProvider.java
@@ -3,6 +3,7 @@ package it.niedermann.nextcloud.deck.persistence.sync.helpers.providers;
import java.util.List;
import it.niedermann.nextcloud.deck.api.IResponseCallback;
+import it.niedermann.nextcloud.deck.model.Card;
import it.niedermann.nextcloud.deck.model.full.FullBoard;
import it.niedermann.nextcloud.deck.model.full.FullStack;
import it.niedermann.nextcloud.deck.persistence.sync.adapters.ServerAdapter;
@@ -42,6 +43,9 @@ public class StackDataProvider implements IDataProvider<FullStack> {
public void goDeeper(SyncHelper syncHelper, FullStack existingEntity, FullStack entityFromServer) {
existingEntity.setCards(entityFromServer.getCards());
if (existingEntity.getCards() != null && !existingEntity.getCards().isEmpty()){
+ for (Card card : existingEntity.getCards()) {
+ card.setStackId(existingEntity.getLocalId());
+ }
syncHelper.doSyncFor(new CardDataProvider(board.getBoard(), existingEntity));
}
}