From 7d56b31d6eb1759a69c7d562896d3ae6da7923d6 Mon Sep 17 00:00:00 2001 From: Kanahia Date: Tue, 23 Jul 2024 13:22:10 +0530 Subject: [PATCH] Fixed upload icon --- .../contributions/ContributionsFragment.java | 15 ++++++++++++++- .../contributions/ContributionsListFragment.java | 6 ++++++ .../ContributionsListPresenter.java | 16 ++++++++++++++++ app/src/main/res/layout/pending_uploads_icon.xml | 1 + 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java index 99007cab5..594b322ec 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsFragment.java @@ -136,6 +136,8 @@ public class ContributionsFragment public TextView uploadsErrorTextView; + public ImageView pendingUploadsImageView; + private Campaign wlmCampaign; String userName; @@ -266,7 +268,7 @@ public class ContributionsFragment final View uploadMenuItemActionView = uploadMenuItem.getActionView(); pendingUploadsCountTextView = uploadMenuItemActionView.findViewById(R.id.pending_uploads_count_badge); uploadsErrorTextView = uploadMenuItemActionView.findViewById(R.id.uploads_error_count_badge); - final ImageView pendingUploadsImageView = uploadMenuItemActionView.findViewById(R.id.pending_uploads_image_view); + pendingUploadsImageView = uploadMenuItemActionView.findViewById(R.id.pending_uploads_image_view); if (pendingUploadsImageView != null){ pendingUploadsImageView.setOnClickListener(view -> { startActivity(new Intent(getContext(), UploadProgressActivity.class)); @@ -710,6 +712,17 @@ public class ContributionsFragment } } + @Override + public void updateUploadIcon(int count) { + if (pendingUploadsImageView != null){ + if (count != 0){ + pendingUploadsImageView.setVisibility(View.VISIBLE); + }else { + pendingUploadsImageView.setVisibility(View.GONE); + } + } + } + /** * Replace whatever is in the current contributionsFragmentContainer view with * mediaDetailPagerFragment, and preserve previous state in back stack. Called when user selects diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java index 6c697148f..ccc0e250c 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java @@ -224,6 +224,10 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment impl uploadErrorCount = list.size(); callback.updateErrorIcon(uploadErrorCount); }); + contributionsListPresenter.getFailedAndPendingContributions(); + contributionsListPresenter.failedAndPendingContributionList.observe(getViewLifecycleOwner(), list -> { + callback.updateUploadIcon(list.size()); + }); contributionsListPresenter.contributionList.observe(getViewLifecycleOwner(), list -> { contributionsSize = list.size(); adapter.submitList(list); @@ -508,5 +512,7 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment impl void updatePendingIcon(int pendingCount); void updateErrorIcon(int errorCount); + + void updateUploadIcon(int count); } } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListPresenter.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListPresenter.java index cc1d8e5bb..16e7779d0 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListPresenter.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListPresenter.java @@ -30,6 +30,7 @@ public class ContributionsListPresenter implements UserActionListener { LiveData> contributionList; LiveData> pendingContributionList; LiveData> failedContributionList; + LiveData> failedAndPendingContributionList; @Inject ContributionsListPresenter( @@ -124,4 +125,19 @@ public class ContributionsListPresenter implements UserActionListener { failedContributionList = livePagedListBuilder.build(); } + void getFailedAndPendingContributions() { + final PagedList.Config pagedListConfig = + (new PagedList.Config.Builder()) + .setPrefetchDistance(50) + .setPageSize(10).build(); + Factory factory; + factory = repository.fetchContributionsWithStates( + Arrays.asList(Contribution.STATE_IN_PROGRESS, Contribution.STATE_QUEUED, + Contribution.STATE_PAUSED, Contribution.STATE_FAILED)); + + LivePagedListBuilder livePagedListBuilder = new LivePagedListBuilder(factory, + pagedListConfig); + failedAndPendingContributionList = livePagedListBuilder.build(); + } + } diff --git a/app/src/main/res/layout/pending_uploads_icon.xml b/app/src/main/res/layout/pending_uploads_icon.xml index fdca858b5..717bbd3bf 100644 --- a/app/src/main/res/layout/pending_uploads_icon.xml +++ b/app/src/main/res/layout/pending_uploads_icon.xml @@ -14,6 +14,7 @@ android:id="@+id/pending_uploads_image_view" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:visibility="gone" android:layout_marginEnd="@dimen/activity_margin_horizontal" android:layout_marginRight="@dimen/activity_margin_horizontal" android:gravity="center"