From ea693b3ddc0ce964992e693c6069a5c149500213 Mon Sep 17 00:00:00 2001 From: Kanahia Date: Thu, 18 Jul 2024 20:07:22 +0530 Subject: [PATCH] Fixed constantly failing uploads --- .../commons/upload/FailedUploadsFragment.kt | 2 +- .../commons/upload/PendingUploadsFragment.kt | 5 +-- .../upload/PendingUploadsPresenter.java | 45 ++++++------------- 3 files changed, 15 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/FailedUploadsFragment.kt b/app/src/main/java/fr/free/nrw/commons/upload/FailedUploadsFragment.kt index d7225a4a3..bb99404e7 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/FailedUploadsFragment.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/FailedUploadsFragment.kt @@ -100,7 +100,7 @@ class FailedUploadsFragment : CommonsDaggerSupportFragment(), PendingUploadsCont fun initRecyclerView() { binding.failedUploadsRecyclerView.setLayoutManager(LinearLayoutManager(this.context)) binding.failedUploadsRecyclerView.adapter = adapter - pendingUploadsPresenter!!.getFailedContributions(userName) + pendingUploadsPresenter!!.getFailedContributions() pendingUploadsPresenter!!.failedContributionList.observe( viewLifecycleOwner ) { list: PagedList -> 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 ca25d3a57..db88ad930 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 @@ -108,10 +108,7 @@ class PendingUploadsFragment : CommonsDaggerSupportFragment(), PendingUploadsCon fun initRecyclerView() { binding.pendingUploadsRecyclerView.setLayoutManager(LinearLayoutManager(this.context)) binding.pendingUploadsRecyclerView.adapter = adapter - pendingUploadsPresenter!!.setup( - userName, - sessionManager!!.userName == userName - ) + pendingUploadsPresenter!!.setup() pendingUploadsPresenter!!.totalContributionList.observe( viewLifecycleOwner ) { list: PagedList -> 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 568e0a6d0..09c8910e6 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 @@ -60,58 +60,31 @@ public class PendingUploadsPresenter implements UserActionListener { * the live data object. This method can be tweaked to update the lazy loading behavior of the * contributions list */ - void setup(String userName, boolean isSelf) { + void setup() { final PagedList.Config pagedListConfig = (new PagedList.Config.Builder()) .setPrefetchDistance(50) .setPageSize(10).build(); Factory factory; - boolean shouldSetBoundaryCallback; - if (!isSelf) { - //We don't want to persist contributions for other user's, therefore - // creating a new DataSource for them - contributionsRemoteDataSource.setUserName(userName); - factory = new Factory() { - @NonNull - @Override - public DataSource create() { - return contributionsRemoteDataSource; - } - }; - shouldSetBoundaryCallback = false; - } else { - contributionBoundaryCallback.setUserName(userName); - shouldSetBoundaryCallback = true; - factory = repository.fetchContributionsWithStates( - Arrays.asList(Contribution.STATE_QUEUED, Contribution.STATE_IN_PROGRESS, - Contribution.STATE_PAUSED)); - } + factory = repository.fetchContributionsWithStates( + Arrays.asList(Contribution.STATE_QUEUED, Contribution.STATE_IN_PROGRESS, + Contribution.STATE_PAUSED)); LivePagedListBuilder livePagedListBuilder = new LivePagedListBuilder(factory, pagedListConfig); - if (shouldSetBoundaryCallback) { - livePagedListBuilder.setBoundaryCallback(contributionBoundaryCallback); - } - totalContributionList = livePagedListBuilder.build(); } - void getFailedContributions(String userName) { + void getFailedContributions() { final PagedList.Config pagedListConfig = (new PagedList.Config.Builder()) .setPrefetchDistance(50) .setPageSize(10).build(); Factory factory; - boolean shouldSetBoundaryCallback; - contributionBoundaryCallback.setUserName(userName); - shouldSetBoundaryCallback = true; factory = repository.fetchContributionsWithStates( Collections.singletonList(Contribution.STATE_FAILED)); LivePagedListBuilder livePagedListBuilder = new LivePagedListBuilder(factory, pagedListConfig); - if (shouldSetBoundaryCallback) { - livePagedListBuilder.setBoundaryCallback(contributionBoundaryCallback); - } failedContributionList = livePagedListBuilder.build(); } @@ -186,6 +159,10 @@ public class PendingUploadsPresenter implements UserActionListener { } Contribution it = contributionList.get(index); it.setState(Contribution.STATE_QUEUED); + if (it.getErrorInfo() == null){ + it.setChunkInfo(null); + it.setTransferred(0); + } compositeDisposable.add(repository .save(it) .subscribeOn(ioThreadScheduler) @@ -205,6 +182,10 @@ public class PendingUploadsPresenter implements UserActionListener { return; } Contribution it = contributionList.get(index); + if (it.getErrorInfo() == null){ + it.setChunkInfo(null); + it.setTransferred(0); + } it.setState(Contribution.STATE_QUEUED); compositeDisposable.add(repository .save(it)