diff options
author | desperateCoder <echotodevnull@gmail.com> | 2019-10-26 20:45:55 +0300 |
---|---|---|
committer | desperateCoder <echotodevnull@gmail.com> | 2019-10-26 20:45:55 +0300 |
commit | 0496077c9b9d8fe882d7e424d23e4e3aa4b04ad5 (patch) | |
tree | d76d0fa5dcc28ce1cca794e29dc070c50fe8a875 /app/src/main/java | |
parent | 71bcdcf689126c090dce8518fbb347ad8c4520f1 (diff) |
closes #196 sync ACL after being offline
Diffstat (limited to 'app/src/main/java')
4 files changed, 13 insertions, 1 deletions
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 bbe2c4e1b..7778446a4 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 @@ -582,4 +582,7 @@ public class DataBaseAdapter { public List<AccessControl> getLocallyChangedAccessControl(long accountId, long boardId) { return db.getAccessControlDao().getLocallyChangedAccessControl(accountId, boardId); } + public List<Long> getBoardIDsOfLocallyChangedAccessControl(long accountId) { + return db.getAccessControlDao().getBoardIDsOfLocallyChangedAccessControl(accountId); + } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AccessControlDao.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AccessControlDao.java index 928b8177c..f4fbeb8c7 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AccessControlDao.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/dao/AccessControlDao.java @@ -22,4 +22,7 @@ public interface AccessControlDao extends GenericDao<AccessControl> { @Query("SELECT * FROM AccessControl WHERE accountId = :accountId and boardId = :boardId and (status<>1 or id is null or lastModified <> lastModifiedLocal)") List<AccessControl> getLocallyChangedAccessControl(long accountId, long boardId); + + @Query("SELECT distinct boardId FROM AccessControl WHERE accountId = :accountId and (status<>1 or id is null or lastModified <> lastModifiedLocal)") + List<Long> getBoardIDsOfLocallyChangedAccessControl(long accountId); }
\ No newline at end of file diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/AccessControlDataProvider.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/AccessControlDataProvider.java index a9ee5c0db..98d91dcba 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/AccessControlDataProvider.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/AccessControlDataProvider.java @@ -84,6 +84,6 @@ public class AccessControlDataProvider extends AbstractSyncDataProvider<AccessCo @Override public List<AccessControl> getAllChangedFromDB(DataBaseAdapter dataBaseAdapter, long accountId, Date lastSync) { - return dataBaseAdapter.getLocallyChangedAccessControl(accountId, board.getId()); + return dataBaseAdapter.getLocallyChangedAccessControl(accountId, board.getLocalId()); } } 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 d19c950ec..dabcbcbe7 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 @@ -1,5 +1,6 @@ package it.niedermann.nextcloud.deck.persistence.sync.helpers.providers; +import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.HashSet; @@ -105,6 +106,11 @@ public class BoardDataProvider extends AbstractSyncDataProvider<FullBoard> { syncHelper.doUpSyncFor(new LabelDataProvider(this, board, Collections.singletonList(label))); } + List<Long> localBoardIDsWithChangedACL = dataBaseAdapter.getBoardIDsOfLocallyChangedAccessControl(accountId); + for (Long boardId : localBoardIDsWithChangedACL) { + syncHelper.doUpSyncFor(new AccessControlDataProvider(this, dataBaseAdapter.getFullBoardByLocalIdDirectly(accountId, boardId) ,new ArrayList<>())); + } + Set<Long> syncedBoards = new HashSet<>(); List<FullStack> locallyChangedStacks = dataBaseAdapter.getLocallyChangedStacks(accountId); if (locallyChangedStacks.size() < 1) { |