diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ThumbnailsAdapter.java b/app/src/main/java/fr/free/nrw/commons/upload/ThumbnailsAdapter.java index fb9ed5514..5975cbb1d 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ThumbnailsAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ThumbnailsAdapter.java @@ -28,6 +28,8 @@ class ThumbnailsAdapter extends RecyclerView.Adapter uploadableFiles; private Callback callback; + private OnThumbnailDeletedListener listener; + private ItemUploadThumbnailBinding binding; public ThumbnailsAdapter(Callback callback) { @@ -45,6 +47,10 @@ class ThumbnailsAdapter extends RecyclerView.Adapter { + if(listener != null) { + listener.onThumbnailDeleted(position); + } + }); } } @@ -114,4 +129,13 @@ class ThumbnailsAdapter extends RecyclerView.Adapter currentSelectedPosition); + thumbnailsAdapter.setOnThumbnailDeletedListener(this); binding.rvThumbnails.setAdapter(thumbnailsAdapter); } @@ -454,7 +455,7 @@ public class UploadActivity extends BaseActivity implements UploadContract.View, .getQuantityString(R.plurals.upload_count_title, uploadableFiles.size(), uploadableFiles.size())); - if(fragments==null){ + if(fragments == null){ fragments = new ArrayList<>(); } @@ -799,9 +800,15 @@ public class UploadActivity extends BaseActivity implements UploadContract.View, fragments.get(index - 1).onBecameVisible(); ((LinearLayoutManager) binding.rvThumbnails.getLayoutManager()) .scrollToPositionWithOffset((index > 3) ? index-2 : 0, 0); + binding.llContainerTopCard.setVisibility(View.VISIBLE); } } + @Override + public void onThumbnailDeleted(int position) { + presenter.deletePictureAtIndex(position); + } + /** * The adapter used to show image upload intermediate fragments */ diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java index bffff389f..021eefae6 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadPresenter.java @@ -138,9 +138,6 @@ public class UploadPresenter implements UploadContract.UserActionListener { @Override public void deletePictureAtIndex(int index) { List uploadableFiles = view.getUploadableFiles(); - if (index == uploadableFiles.size() - 1) {//If the next fragment to be shown is not one of the MediaDetailsFragment, lets hide the top card - view.showHideTopCard(false); - } view.setImageCancelled(true); repository.deletePicture(uploadableFiles.get(index).getFilePath()); if (uploadableFiles.size() == 1) { @@ -156,7 +153,6 @@ public class UploadPresenter implements UploadContract.UserActionListener { //In case lets update the number of uploadable media view.updateTopCardTitle(); - view.highlightNextImageOnCancelledImage(index, uploadableFiles.size()); } diff --git a/app/src/main/res/layout/item_upload_thumbnail.xml b/app/src/main/res/layout/item_upload_thumbnail.xml index 365375697..4e8ee3127 100644 --- a/app/src/main/res/layout/item_upload_thumbnail.xml +++ b/app/src/main/res/layout/item_upload_thumbnail.xml @@ -26,4 +26,14 @@ android:visibility="gone" app:srcCompat="@drawable/ic_error_red_24dp" tools:visibility="visible"/> + + diff --git a/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadPresenterTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadPresenterTest.kt index 19fd67e26..1dc07c8dc 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadPresenterTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/upload/UploadPresenterTest.kt @@ -157,7 +157,6 @@ class UploadPresenterTest { deletePictureBaseTest() uploadableFiles.add(uploadableFile) uploadPresenter.deletePictureAtIndex(0) - verify(view).showHideTopCard(false) verify(repository).deletePicture(ArgumentMatchers.anyString()) } @@ -169,7 +168,6 @@ class UploadPresenterTest { deletePictureBaseTest() uploadableFiles.add(uploadableFile) uploadPresenter.deletePictureAtIndex(0) - verify(view).showHideTopCard(false) verify(repository).deletePicture(ArgumentMatchers.anyString()) verify(view).showMessage(ArgumentMatchers.anyInt())//As there is only one while which we are asking for deletion, upload should be cancelled and this flow should be triggered verify(view).finish()