diff options
author | desperateCoder <echotodevnull@gmail.com> | 2019-02-08 19:10:50 +0300 |
---|---|---|
committer | desperateCoder <echotodevnull@gmail.com> | 2019-02-08 19:10:50 +0300 |
commit | 8cf1e3c3d2694300124439c714c0121b26a1bdd8 (patch) | |
tree | dcc6bf46f08373eb36174b46672d9227fd42e056 /app/src/main/java | |
parent | c39bd5a9b5288ef12d6a337994d34dcf459bb546 (diff) |
removed unnessesary m:n between cards and stack
Diffstat (limited to 'app/src/main/java')
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)); } } |