[GSoC] Image preview (#4559)

* Image preview

* refractor
This commit is contained in:
Aditya-Srivastav 2021-08-18 05:22:24 +05:30 committed by GitHub
parent 25156d0e94
commit 6811f139f2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 0 deletions

View file

@ -1,5 +1,6 @@
package fr.free.nrw.commons.customselector.listeners package fr.free.nrw.commons.customselector.listeners
import android.net.Uri
import fr.free.nrw.commons.customselector.model.Image import fr.free.nrw.commons.customselector.model.Image
/** /**
@ -12,4 +13,10 @@ interface ImageSelectListener {
* @param selectedImages : new selected images. * @param selectedImages : new selected images.
*/ */
fun onSelectedImagesChanged(selectedImages: ArrayList<Image>) fun onSelectedImagesChanged(selectedImages: ArrayList<Image>)
/**
* onLongPress
* @param imageUri : uri of image
*/
fun onLongPress(imageUri: Uri)
} }

View file

@ -93,6 +93,12 @@ class ImageAdapter(
holder.itemView.setOnClickListener { holder.itemView.setOnClickListener {
selectOrRemoveImage(holder, position) selectOrRemoveImage(holder, position)
} }
// launch media preview on long click.
holder.itemView.setOnLongClickListener {
imageSelectListener.onLongPress(image.uri)
true
}
} }
} }

View file

@ -4,6 +4,7 @@ import android.app.Activity
import android.app.Dialog import android.app.Dialog
import android.content.Intent import android.content.Intent
import android.content.SharedPreferences import android.content.SharedPreferences
import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.view.Window 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.FolderClickListener
import fr.free.nrw.commons.customselector.listeners.ImageSelectListener import fr.free.nrw.commons.customselector.listeners.ImageSelectListener
import fr.free.nrw.commons.customselector.model.Image import fr.free.nrw.commons.customselector.model.Image
import fr.free.nrw.commons.media.ZoomableActivity
import fr.free.nrw.commons.theme.BaseActivity import fr.free.nrw.commons.theme.BaseActivity
import java.io.File import java.io.File
import javax.inject.Inject import javax.inject.Inject
@ -156,6 +158,15 @@ class CustomSelectorActivity: BaseActivity(), FolderClickListener, ImageSelectLi
done.visibility = if (selectedImages.isEmpty()) View.INVISIBLE else View.VISIBLE 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. * OnDone clicked.
* Get the selected images. Remove any non existent file, forward the data to finish selector. * Get the selected images. Remove any non existent file, forward the data to finish selector.