diff options
author | desperateCoder <echotodevnull@gmail.com> | 2021-09-10 19:06:19 +0300 |
---|---|---|
committer | Niedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com> | 2021-09-10 19:44:25 +0300 |
commit | e045edffdcccef298b03e1fa09211afe4bf223ac (patch) | |
tree | 1306463f42b62b117591a5e7d68b766ad95b0467 /app/src/main/java | |
parent | 36f68c1960a8e09fc16f729ee370adba5976feaf (diff) |
#545 dont count like a retard
Diffstat (limited to 'app/src/main/java')
2 files changed, 15 insertions, 8 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/AbstractSyncDataProvider.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/AbstractSyncDataProvider.java index 4c538c56e..dc2e4392a 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/AbstractSyncDataProvider.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/helpers/providers/AbstractSyncDataProvider.java @@ -108,7 +108,7 @@ public abstract class AbstractSyncDataProvider<T extends IRemoteEntity> { public abstract void deleteOnServer(ServerAdapter serverAdapter, long accountId, ResponseCallback<Void> callback, T entity, DataBaseAdapter dataBaseAdapter); public void childDone(AbstractSyncDataProvider<?> child, ResponseCallback<Boolean> responseCallback, boolean syncChangedSomething) { - children.remove(child); + removeChild(child); if (!stillGoingDeeper && children.isEmpty()) { if (parent != null) { parent.childDone(this, responseCallback, syncChangedSomething); @@ -118,6 +118,10 @@ public abstract class AbstractSyncDataProvider<T extends IRemoteEntity> { } } + protected boolean removeChild(AbstractSyncDataProvider<?> child) { + return children.remove(child); + } + public void doneGoingDeeper(ResponseCallback<Boolean> responseCallback, boolean syncChangedSomething) { stillGoingDeeper = false; childDone(this, responseCallback, syncChangedSomething); 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 63627ddb4..679321cb8 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 @@ -30,6 +30,7 @@ import it.niedermann.nextcloud.deck.persistence.sync.helpers.util.AsyncUtil; public class BoardDataProvider extends AbstractSyncDataProvider<FullBoard> { private int progressTotal = 0; + private int progressDone = 0; private MutableLiveData<Pair<Integer, Integer>> progress = null; public BoardDataProvider() { @@ -66,17 +67,19 @@ public class BoardDataProvider extends AbstractSyncDataProvider<FullBoard> { private void updateProgress() { if (progress != null) { - DeckLog.log("New progress post", progressTotal - children.size(), progressTotal); - progress.postValue(Pair.create(progressTotal - children.size(), progressTotal)); - } else { - DeckLog.log("progress is null"); + DeckLog.log("New progress post", progressDone, progressTotal); + progress.postValue(Pair.create(progressDone, progressTotal)); } } @Override - public void childDone(AbstractSyncDataProvider<?> child, ResponseCallback<Boolean> responseCallback, boolean syncChangedSomething) { - super.childDone(child, responseCallback, syncChangedSomething); - updateProgress(); + protected boolean removeChild(AbstractSyncDataProvider<?> child) { + boolean isRemoved = super.removeChild(child); + if (isRemoved) { + progressDone ++; + updateProgress(); + } + return isRemoved; } @Override |