From aeb49cd7de9a5d9793d57a0dc30ff26774de090d Mon Sep 17 00:00:00 2001 From: Kanahia Date: Tue, 23 Jul 2024 20:33:50 +0530 Subject: [PATCH] Improved pausing --- .../main/java/fr/free/nrw/commons/CommonsApplication.java | 2 ++ .../fr/free/nrw/commons/upload/PendingUploadsFragment.kt | 3 ++- .../fr/free/nrw/commons/upload/PendingUploadsPresenter.java | 3 +++ app/src/main/java/fr/free/nrw/commons/upload/UploadClient.kt | 5 +++-- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java index 893011b58..c3dde9caa 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -142,6 +142,8 @@ public class CommonsApplication extends MultiDexApplication { @Inject ContributionDao contributionDao; + public static Boolean isPaused = false; + /** * Used to declare and initialize various components and dependencies */ diff --git a/app/src/main/java/fr/free/nrw/commons/upload/PendingUploadsFragment.kt b/app/src/main/java/fr/free/nrw/commons/upload/PendingUploadsFragment.kt index 5add3c844..7082ed563 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/PendingUploadsFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/PendingUploadsFragment.kt @@ -12,6 +12,7 @@ import androidx.paging.PagedList import androidx.paging.PositionalDataSource import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver +import fr.free.nrw.commons.CommonsApplication import fr.free.nrw.commons.R import fr.free.nrw.commons.auth.SessionManager import fr.free.nrw.commons.contributions.Contribution @@ -120,7 +121,7 @@ class PendingUploadsFragment : CommonsDaggerSupportFragment(), PendingUploadsCon binding.pendingUplaodsLl.visibility = View.VISIBLE adapter.submitList(list) binding.progressTextView.setText(contributionsSize.toString() + " uploads left") - if (pausedOrQueuedUploads == contributionsSize) { + if ((pausedOrQueuedUploads == contributionsSize) || CommonsApplication.isPaused) { uploadProgressActivity.setPausedIcon(true) } else { uploadProgressActivity.setPausedIcon(false) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/PendingUploadsPresenter.java b/app/src/main/java/fr/free/nrw/commons/upload/PendingUploadsPresenter.java index 45a106bfb..e27e9c68f 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/PendingUploadsPresenter.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/PendingUploadsPresenter.java @@ -110,6 +110,7 @@ public class PendingUploadsPresenter implements UserActionListener { } public void pauseUploads(List states, int newState) { + CommonsApplication.isPaused = true ; compositeDisposable.add(repository .updateContributionWithStates(states, newState) .subscribeOn(ioThreadScheduler) @@ -124,6 +125,7 @@ public class PendingUploadsPresenter implements UserActionListener { } public void restartUploads(List contributionList, int index, Context context) { + CommonsApplication.isPaused = false; if (index >= contributionList.size()) { return; } @@ -154,6 +156,7 @@ public class PendingUploadsPresenter implements UserActionListener { } public void restartUpload(List contributionList, int index, Context context) { + CommonsApplication.isPaused = false; if (index >= contributionList.size()) { return; } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadClient.kt b/app/src/main/java/fr/free/nrw/commons/upload/UploadClient.kt index f46f67706..6da8da2da 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadClient.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadClient.kt @@ -106,7 +106,8 @@ class UploadClient @Inject constructor( contributionDao.getContribution(contribution.pageId) == null -> { return Observable.just(StashUploadResult(StashUploadState.CANCELLED, null, "Upload cancelled")) } - contributionDao.getContribution(contribution.pageId).state == Contribution.STATE_PAUSED -> { + contributionDao.getContribution(contribution.pageId).state == Contribution.STATE_PAUSED + || CommonsApplication.isPaused -> { Timber.d("Upload stash paused %s", contribution.pageId) Observable.just(StashUploadResult(StashUploadState.PAUSED, null, null)) } @@ -273,7 +274,7 @@ private fun canProcess( // As long as the contribution hasn't been paused and there are no errors, // we can process the current chunk. return !(contributionDao.getContribution(contribution.pageId).state == Contribution.STATE_PAUSED - || failures.get()) + || failures.get() || CommonsApplication.isPaused) } private fun shouldSkip(