diff options
author | desperateCoder <echotodevnull@gmail.com> | 2019-10-26 23:07:06 +0300 |
---|---|---|
committer | desperateCoder <echotodevnull@gmail.com> | 2019-10-26 23:07:06 +0300 |
commit | 564f5cada5c1990043bc1bb1966776cdc1c7904d (patch) | |
tree | e3b1635ee3b1a8821b2a69851d778fc63109ccfb /app/src/main/java | |
parent | 0496077c9b9d8fe882d7e424d23e4e3aa4b04ad5 (diff) |
upgrade room to version 2.2.1
Diffstat (limited to 'app/src/main/java')
8 files changed, 46 insertions, 63 deletions
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 d7a27372c..8340622bc 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 @@ -31,7 +31,7 @@ public class Card extends AbstractRemoteEntity { private String title; private String description; @NonNull - private long stackId; + private Long stackId; private String type; private Date createdAt; private Date deletedAt; @@ -114,11 +114,11 @@ public class Card extends AbstractRemoteEntity { this.description = description; } - public long getStackId() { + public Long getStackId() { return stackId; } - public void setStackId(long stackId) { + public void setStackId(Long stackId) { this.stackId = stackId; } @@ -202,7 +202,7 @@ public class Card extends AbstractRemoteEntity { return this.userId; } - public void setUserId(long userId) { + public void setUserId(Long userId) { this.userId = userId; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/full/FullBoard.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/full/FullBoard.java index 3cc823432..31ad21f16 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/model/full/FullBoard.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/full/FullBoard.java @@ -1,11 +1,11 @@ package it.niedermann.nextcloud.deck.model.full; -import java.util.ArrayList; -import java.util.List; - import androidx.room.Embedded; import androidx.room.Ignore; import androidx.room.Relation; + +import java.util.List; + import it.niedermann.nextcloud.deck.model.AccessControl; import it.niedermann.nextcloud.deck.model.Board; import it.niedermann.nextcloud.deck.model.Label; @@ -21,7 +21,7 @@ public class FullBoard implements IRemoteEntity { public List<Label> labels; @Relation(parentColumn = "ownerId", entityColumn = "localId") - public List<User> owner; + public User owner; @Relation(entity = AccessControl.class, parentColumn = "localId", entityColumn = "boardId") public List<AccessControl> participants; @@ -30,14 +30,12 @@ public class FullBoard implements IRemoteEntity { public List<Stack> stacks; - public List<User> getOwner() { + public User getOwner() { return owner; } public void setOwner(User owner) { - List<User> user = new ArrayList<>(); - user.add(owner); - this.owner = user; + this.owner = owner; } public Board getBoard() { @@ -62,10 +60,6 @@ public class FullBoard implements IRemoteEntity { return board; } - public void setOwner(List<User> owner) { - this.owner = owner; - } - public List<AccessControl> getParticipants() { return participants; } 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 91f3ad6d3..f8d28597f 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 @@ -2,6 +2,7 @@ package it.niedermann.nextcloud.deck.model.full; import androidx.room.Embedded; import androidx.room.Ignore; +import androidx.room.Junction; import androidx.room.Relation; import java.util.ArrayList; @@ -19,17 +20,22 @@ public class FullCard implements IRemoteEntity { @Embedded public Card card; - @Relation(entity = JoinCardWithLabel.class, parentColumn = "localId", entityColumn = "cardId", projection = "labelId") - public List<Long> labelIDs; +// @Relation(entity = JoinCardWithLabel.class, parentColumn = "localId", entityColumn = "cardId", projection = "labelId") +// public List<Long> labelIDs; + +// @Ignore + @Relation(entity = Label.class, parentColumn = "localId", entityColumn = "localId", + associateBy = @Junction(value = JoinCardWithLabel.class, parentColumn = "cardId", entityColumn = "labelId")) - @Ignore public List<Label> labels = new ArrayList<>(); - @Relation(entity = JoinCardWithUser.class, parentColumn = "localId", entityColumn = "cardId", projection = "userId") - public List<Long> assignedUserIDs; +// @Relation(entity = JoinCardWithUser.class, parentColumn = "localId", entityColumn = "cardId", projection = "userId") +// public List<Long> assignedUserIDs; - @Ignore +// @Ignore + @Relation(entity = User.class, parentColumn = "localId", entityColumn = "localId", + associateBy = @Junction(value = JoinCardWithUser.class, parentColumn = "cardId", entityColumn = "userId")) public List<User> assignedUsers = new ArrayList<>(); @Relation(parentColumn = "userId", entityColumn = "localId") @@ -45,9 +51,7 @@ public class FullCard implements IRemoteEntity { public FullCard(FullCard fullCard) { this.card = new Card(fullCard.getCard()); - this.labelIDs = copyList(fullCard.getLabelIDs()); this.labels = copyList(fullCard.getLabels()); - this.assignedUserIDs = copyList(fullCard.getAssignedUserIDs()); this.assignedUsers = copyList(fullCard.getAssignedUsers()); this.owner = copyList(fullCard.getOwner()); this.attachments = copyList(fullCard.getAttachments()); @@ -81,22 +85,6 @@ 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); @@ -125,9 +113,7 @@ public class FullCard implements IRemoteEntity { public String toString() { return "FullCard{" + "card=" + card + - ", labelIDs=" + labelIDs + ", labels=" + labels + - ", assignedUserIDs=" + assignedUserIDs + ", assignedUsers=" + assignedUsers + ", owner=" + owner + ", attachments=" + attachments + @@ -142,12 +128,8 @@ public class FullCard implements IRemoteEntity { FullCard fullCard = (FullCard) o; if (card != null ? !card.equals(fullCard.card) : fullCard.card != null) return false; - if (labelIDs != null ? !labelIDs.equals(fullCard.labelIDs) : fullCard.labelIDs != null) - return false; if (labels != null ? !labels.equals(fullCard.labels) : fullCard.labels != null) return false; - if (assignedUserIDs != null ? !assignedUserIDs.equals(fullCard.assignedUserIDs) : fullCard.assignedUserIDs != null) - return false; if (assignedUsers != null ? !assignedUsers.equals(fullCard.assignedUsers) : fullCard.assignedUsers != null) return false; if (owner != null ? !owner.equals(fullCard.owner) : fullCard.owner != null) return false; @@ -157,9 +139,7 @@ public class FullCard implements IRemoteEntity { @Override public int hashCode() { int result = card != null ? card.hashCode() : 0; - result = 31 * result + (labelIDs != null ? labelIDs.hashCode() : 0); result = 31 * result + (labels != null ? labels.hashCode() : 0); - result = 31 * result + (assignedUserIDs != null ? assignedUserIDs.hashCode() : 0); result = 31 * result + (assignedUsers != null ? assignedUsers.hashCode() : 0); result = 31 * result + (owner != null ? owner.hashCode() : 0); result = 31 * result + (attachments != null ? attachments.hashCode() : 0); 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 f46c28c2f..7f9fc324e 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 @@ -482,7 +482,7 @@ public class SyncManager { throw new IllegalArgumentException("card to update does not exist."); } - dataBaseAdapter.readRelationsForCard(fullCardFromDB); + dataBaseAdapter.filterRelationsForCard(fullCardFromDB); List<User> deletedUsers = AbstractSyncDataProvider.findDelta(card.getAssignedUsers(), fullCardFromDB.getAssignedUsers()); List<User> addedUsers = AbstractSyncDataProvider.findDelta(fullCardFromDB.getAssignedUsers(), card.getAssignedUsers()); for (User addedUser : addedUsers) { 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 7778446a4..79fb70c11 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 @@ -4,6 +4,7 @@ import android.content.Context; import androidx.lifecycle.LiveData; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -88,26 +89,34 @@ public class DataBaseAdapter { public FullCard getFullCardByRemoteIdDirectly(long accountId, long remoteId) { FullCard card = db.getCardDao().getFullCardByRemoteIdDirectly(accountId, remoteId); - readRelationsForCard(card); + filterRelationsForCard(card); return card; } public FullCard getFullCardByLocalIdDirectly(long accountId, long localId) { return db.getCardDao().getFullCardByLocalIdDirectly(accountId, localId); } - public void readRelationsForCard(FullCard card) { + public void filterRelationsForCard(FullCard card) { if (card != null){ - if (card.getLabelIDs() != null && !card.getLabelIDs().isEmpty()){ - List<Long> filteredIDs = db.getJoinCardWithLabelDao().filterDeleted(card.getLocalId(), card.getLabelIDs()); + if (card.getLabels() != null && !card.getLabels().isEmpty()){ + List<Long> filteredIDs = db.getJoinCardWithLabelDao().filterDeleted(card.getLocalId(), getLocalIDs(card.getLabels())); card.setLabels(db.getLabelDao().getLabelsByIdsDirectly(filteredIDs)); } - if (card.getAssignedUserIDs() != null && !card.getAssignedUserIDs().isEmpty()){ - List<Long> filteredIDs = db.getJoinCardWithUserDao().filterDeleted(card.getLocalId(), card.getAssignedUserIDs()); + if (card.getAssignedUsers() != null && !card.getAssignedUsers().isEmpty()){ + List<Long> filteredIDs = db.getJoinCardWithUserDao().filterDeleted(card.getLocalId(), getLocalIDs(card.getAssignedUsers())); card.setAssignedUsers(db.getUserDao().getUsersByIdsDirectly(filteredIDs)); } } } + private <T> List<Long> getLocalIDs(List<? extends AbstractRemoteEntity> remoteEntityList){ + ArrayList<Long> ids = new ArrayList<>(remoteEntityList.size()); + for (AbstractRemoteEntity entity : remoteEntityList) { + ids.add(entity.getLocalId()); + } + return ids; + } + public void readRelationsForACL(List<AccessControl> acl) { if (acl != null){ for (AccessControl accessControl : acl) { @@ -123,12 +132,12 @@ public class DataBaseAdapter { } } - private void readRelationsForCard(List<FullCard> card) { + private void filterRelationsForCard(List<FullCard> card) { if (card == null){ return; } for (FullCard c : card) { - readRelationsForCard(c); + filterRelationsForCard(c); } } @@ -137,7 +146,7 @@ public class DataBaseAdapter { } public LiveData<List<FullCard>> getFullCardsForStack(long accountId, long localStackId) { - return LiveDataHelper.interceptLiveData(db.getCardDao().getFullCardsForStack(accountId, localStackId), this::readRelationsForCard); + return LiveDataHelper.interceptLiveData(db.getCardDao().getFullCardsForStack(accountId, localStackId), this::filterRelationsForCard); } public List<FullCard> getFullCardsForStackDirectly(long accountId, long localStackId) { @@ -358,7 +367,7 @@ public class DataBaseAdapter { } public LiveData<FullCard> getCardByLocalId(long accountId, long localCardId) { - return LiveDataHelper.interceptLiveData(db.getCardDao().getFullCardByLocalId(accountId, localCardId), this::readRelationsForCard); + return LiveDataHelper.interceptLiveData(db.getCardDao().getFullCardByLocalId(accountId, localCardId), this::filterRelationsForCard); } public List<FullCard> getLocallyChangedCardsDirectly(long accountId) { return db.getCardDao().getLocallyChangedCardsDirectly(accountId); 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 37f1ad3e8..97b2dcf10 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 @@ -61,7 +61,7 @@ import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao.UserDao; Activity.class, }, exportSchema = false, - version = 6 + version = 7 ) @TypeConverters({DateTypeConverter.class}) public abstract class DeckDatabase extends RoomDatabase { 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 dabcbcbe7..5e5b071f1 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 @@ -41,8 +41,8 @@ public class BoardDataProvider extends AbstractSyncDataProvider<FullBoard> { } private void handleOwner(DataBaseAdapter dataBaseAdapter, long accountId, FullBoard entity) { - if (entity.getOwner()!=null && entity.getOwner().size() == 1) { - User remoteOwner = entity.getOwner().get(0); + if (entity.getOwner()!=null) { + User remoteOwner = entity.getOwner(); User owner = dataBaseAdapter.getUserByUidDirectly(accountId, remoteOwner.getUid()); if (owner == null){ dataBaseAdapter.createUser(accountId, remoteOwner); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlDialogFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlDialogFragment.java index 8398cdeac..fd302c323 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlDialogFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/board/AccessControlDialogFragment.java @@ -68,7 +68,7 @@ public class AccessControlDialogFragment extends DialogFragment implements syncManager.getFullBoardById(accountId, boardId).observe(this, (FullBoard fullBoard) -> { syncManager.getAccessControlByLocalBoardId(accountId, boardId).observe(this, (List<AccessControl> accessControlList) -> { AccessControl ownerControl = new AccessControl(); - ownerControl.setUser(fullBoard.getOwner().get(0)); + ownerControl.setUser(fullBoard.getOwner()); accessControlList.add(0, ownerControl); RecyclerView.Adapter adapter = new AccessControlAdapter(accessControlList, this, getContext()); peopleList.setAdapter(adapter); |