From 6811f139f24385c81914b7b84e544205023606e2 Mon Sep 17 00:00:00 2001 From: Aditya-Srivastav <54016427+4D17Y4@users.noreply.github.com> Date: Wed, 18 Aug 2021 05:22:24 +0530 Subject: [PATCH] [GSoC] Image preview (#4559) * Image preview * refractor --- .../customselector/listeners/ImageSelectListener.kt | 7 +++++++ .../commons/customselector/ui/adapter/ImageAdapter.kt | 6 ++++++ .../ui/selector/CustomSelectorActivity.kt | 11 +++++++++++ 3 files changed, 24 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/customselector/listeners/ImageSelectListener.kt b/app/src/main/java/fr/free/nrw/commons/customselector/listeners/ImageSelectListener.kt index 688c93e64..1d7310b1d 100644 --- a/app/src/main/java/fr/free/nrw/commons/customselector/listeners/ImageSelectListener.kt +++ b/app/src/main/java/fr/free/nrw/commons/customselector/listeners/ImageSelectListener.kt @@ -1,5 +1,6 @@ package fr.free.nrw.commons.customselector.listeners +import android.net.Uri import fr.free.nrw.commons.customselector.model.Image /** @@ -12,4 +13,10 @@ interface ImageSelectListener { * @param selectedImages : new selected images. */ fun onSelectedImagesChanged(selectedImages: ArrayList) + + /** + * onLongPress + * @param imageUri : uri of image + */ + fun onLongPress(imageUri: Uri) } \ No newline at end of file diff --git a/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt b/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt index ea7505aeb..f3fce1cc0 100644 --- a/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt @@ -93,6 +93,12 @@ class ImageAdapter( holder.itemView.setOnClickListener { selectOrRemoveImage(holder, position) } + + // launch media preview on long click. + holder.itemView.setOnLongClickListener { + imageSelectListener.onLongPress(image.uri) + true + } } } diff --git a/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt b/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt index 02b0a8b1a..8dffe7306 100644 --- a/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/customselector/ui/selector/CustomSelectorActivity.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.app.Dialog import android.content.Intent import android.content.SharedPreferences +import android.net.Uri import android.os.Bundle import android.view.View import android.view.Window @@ -15,6 +16,7 @@ import fr.free.nrw.commons.R import fr.free.nrw.commons.customselector.listeners.FolderClickListener import fr.free.nrw.commons.customselector.listeners.ImageSelectListener import fr.free.nrw.commons.customselector.model.Image +import fr.free.nrw.commons.media.ZoomableActivity import fr.free.nrw.commons.theme.BaseActivity import java.io.File import javax.inject.Inject @@ -156,6 +158,15 @@ class CustomSelectorActivity: BaseActivity(), FolderClickListener, ImageSelectLi done.visibility = if (selectedImages.isEmpty()) View.INVISIBLE else View.VISIBLE } + /** + * onLongPress + * @param imageUri : uri of image + */ + override fun onLongPress(imageUri: Uri) { + val intent = Intent(this, ZoomableActivity::class.java).setData(imageUri); + startActivity(intent) + } + /** * OnDone clicked. * Get the selected images. Remove any non existent file, forward the data to finish selector.