From 6c14163c668461926d400a9bd431072b4be8721e Mon Sep 17 00:00:00 2001 From: Shin0017 <147902694+Shin0017@users.noreply.github.com> Date: Mon, 23 Oct 2023 13:09:45 +1100 Subject: [PATCH] checks items length (#5360) * checks items length * Update UploadMediaPresenter.java * Update UploadMediaPresenter.java * Update UploadMediaPresenter.java --- .../fr/free/nrw/commons/upload/UploadActivity.java | 1 + .../mediaDetails/UploadMediaDetailFragment.java | 9 ++++++++- .../mediaDetails/UploadMediaDetailsContract.java | 2 +- .../upload/mediaDetails/UploadMediaPresenter.java | 12 ++++++++++-- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java index 06706df8a..8351ec7c4 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java @@ -42,6 +42,7 @@ import fr.free.nrw.commons.R; import fr.free.nrw.commons.auth.LoginActivity; import fr.free.nrw.commons.auth.SessionManager; import fr.free.nrw.commons.contributions.ContributionController; +import fr.free.nrw.commons.contributions.MainActivity; import fr.free.nrw.commons.filepicker.Constants.RequestCodes; import fr.free.nrw.commons.filepicker.UploadableFile; import fr.free.nrw.commons.kvstore.JsonKvStore; diff --git a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java index 2f54ae15c..9cbf78e8c 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailFragment.java @@ -1,6 +1,7 @@ package fr.free.nrw.commons.upload.mediaDetails; import static android.app.Activity.RESULT_OK; +import static fr.free.nrw.commons.utils.ActivityUtils.startActivityWithFlags; import static fr.free.nrw.commons.utils.ImageUtils.FILE_NAME_EXISTS; import static fr.free.nrw.commons.utils.ImageUtils.getErrorMessageForResult; @@ -31,6 +32,7 @@ import com.github.chrisbanes.photoview.PhotoView; import com.mapbox.mapboxsdk.camera.CameraPosition; import fr.free.nrw.commons.LocationPicker.LocationPicker; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.contributions.MainActivity; import fr.free.nrw.commons.filepicker.UploadableFile; import fr.free.nrw.commons.kvstore.JsonKvStore; import fr.free.nrw.commons.location.LatLng; @@ -244,7 +246,12 @@ public class UploadMediaDetailFragment extends UploadBaseFragment implements @OnClick(R.id.btn_next) public void onNextButtonClicked() { - presenter.verifyImageQuality(callback.getIndexInViewFlipper(this), inAppPictureLocation); + boolean isValidUploads = presenter.verifyImageQuality(callback.getIndexInViewFlipper(this), inAppPictureLocation); + if (!isValidUploads) { + startActivityWithFlags( + getActivity(), MainActivity.class, Intent.FLAG_ACTIVITY_CLEAR_TOP, + Intent.FLAG_ACTIVITY_SINGLE_TOP); + } } @OnClick(R.id.btn_previous) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailsContract.java b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailsContract.java index 99299e2a9..b87c4fc99 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailsContract.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaDetailsContract.java @@ -46,7 +46,7 @@ public interface UploadMediaDetailsContract { void receiveImage(UploadableFile uploadableFile, Place place, LatLng inAppPictureLocation); - void verifyImageQuality(int uploadItemIndex, LatLng inAppPictureLocation); + boolean verifyImageQuality(int uploadItemIndex, LatLng inAppPictureLocation); void copyTitleAndDescriptionToSubsequentMedia(int indexInViewFlipper); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaPresenter.java b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaPresenter.java index 04d69e825..866f87584 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaPresenter.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/mediaDetails/UploadMediaPresenter.java @@ -178,8 +178,15 @@ public class UploadMediaPresenter implements UserActionListener, SimilarImageInt * @param uploadItemIndex */ @Override - public void verifyImageQuality(int uploadItemIndex, LatLng inAppPictureLocation) { - final UploadItem uploadItem = repository.getUploads().get(uploadItemIndex); + public boolean verifyImageQuality(int uploadItemIndex, LatLng inAppPictureLocation) { + final List uploadItems = repository.getUploads(); + if (uploadItems.size()==0) { + view.showProgress(false); + // No internationalization required for this error message because it's an internal error. + view.showMessage("Internal error: Zero upload items received by the Upload Media Detail Fragment. Sorry, please upload again.",R.color.color_error); + return false; + } + UploadItem uploadItem = uploadItems.get(uploadItemIndex); if (uploadItem.getGpsCoords().getDecimalCoords() == null && inAppPictureLocation == null) { final Runnable onSkipClicked = () -> { @@ -227,6 +234,7 @@ public class UploadMediaPresenter implements UserActionListener, SimilarImageInt }) ); } + return true; }