diff --git a/app/build.gradle b/app/build.gradle index 1370f34a8..2ebc12dd0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -237,6 +237,8 @@ dependencies { implementation 'com.github.bumptech.glide:glide:4.12.0' kapt 'com.github.bumptech.glide:compiler:4.12.0' + implementation 'com.github.chrisbanes:PhotoView:2.3.0' + implementation platform('com.google.firebase:firebase-bom:26.4.0') if (crashlyticsEnabled()) { implementation 'com.google.firebase:firebase-crashlytics-ndk' diff --git a/app/src/main/java/org/linphone/activities/main/files/fragments/ImageViewerFragment.kt b/app/src/main/java/org/linphone/activities/main/files/fragments/ImageViewerFragment.kt index be57ba345..a6277eac3 100644 --- a/app/src/main/java/org/linphone/activities/main/files/fragments/ImageViewerFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/files/fragments/ImageViewerFragment.kt @@ -21,9 +21,6 @@ package org.linphone.activities.main.files.fragments import android.annotation.SuppressLint import android.os.Bundle -import android.view.GestureDetector -import android.view.MotionEvent -import android.view.ScaleGestureDetector import androidx.lifecycle.ViewModelProvider import org.linphone.R import org.linphone.activities.main.files.viewmodels.ImageFileViewModel @@ -36,10 +33,6 @@ class ImageViewerFragment : SecureFragment() { private lateinit var viewModel: ImageFileViewModel private lateinit var sharedViewModel: SharedMainViewModel - private lateinit var gestureDetector: GestureDetector - private lateinit var scaleGestureDetector: ScaleGestureDetector - private var scaleFactor = 1.0f - override fun getLayoutId(): Int = R.layout.image_viewer_fragment @SuppressLint("ClickableViewAccessibility") @@ -65,55 +58,5 @@ class ImageViewerFragment : SecureFragment() { binding.viewModel = viewModel isSecure = arguments?.getBoolean("Secure") ?: false - - gestureDetector = GestureDetector(requireContext(), object : - GestureDetector.SimpleOnGestureListener() { - override fun onDoubleTap(e: MotionEvent?): Boolean { - scaleFactor = if (scaleFactor == 1.0f) 2.0f else 1.0f - binding.imageView.scaleX = scaleFactor - binding.imageView.scaleY = scaleFactor - return true - } - - override fun onScroll( - e1: MotionEvent?, - e2: MotionEvent?, - distanceX: Float, - distanceY: Float - ): Boolean { - if (scaleFactor <= 1.0f) return false - - val scrollX = binding.imageView.scrollX + distanceX.toInt() - binding.imageView.scrollX = scrollX - - val scrollY = binding.imageView.scrollY + distanceY.toInt() - binding.imageView.scrollY = scrollY - return true - } - }) - - scaleGestureDetector = ScaleGestureDetector(requireContext(), object : - ScaleGestureDetector.SimpleOnScaleGestureListener() { - override fun onScale(detector: ScaleGestureDetector): Boolean { - scaleFactor *= detector.scaleFactor - scaleFactor = scaleFactor.coerceIn(0.1f, 5.0f) - binding.imageView.scaleX = scaleFactor - binding.imageView.scaleY = scaleFactor - return false - } - }) - - binding.imageView.setOnTouchListener { _, event -> - val previousScaleFactor = scaleFactor - scaleGestureDetector.onTouchEvent(event) - - if (previousScaleFactor != scaleFactor) { - // Prevent touch event from going further - return@setOnTouchListener true - } - - gestureDetector.onTouchEvent(event) - return@setOnTouchListener true - } } } diff --git a/app/src/main/res/layout/image_viewer_fragment.xml b/app/src/main/res/layout/image_viewer_fragment.xml index 6832a62e0..85d012d13 100644 --- a/app/src/main/res/layout/image_viewer_fragment.xml +++ b/app/src/main/res/layout/image_viewer_fragment.xml @@ -28,8 +28,7 @@ android:layout_below="@id/top_bar_fragment" android:orientation="vertical"> - -