From e030f85d108f93d55bfc77c8004e5a893ae91042 Mon Sep 17 00:00:00 2001 From: RaJansuMan Date: Fri, 28 Feb 2025 15:50:17 +0530 Subject: [PATCH] Initial Image Zoom and acceptable difference --- .../kotlin/org/fossify/gallery/fragments/PhotoFragment.kt | 8 +++++++- .../main/kotlin/org/fossify/gallery/helpers/Constants.kt | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/org/fossify/gallery/fragments/PhotoFragment.kt b/app/src/main/kotlin/org/fossify/gallery/fragments/PhotoFragment.kt index c97d56290..5323f351d 100644 --- a/app/src/main/kotlin/org/fossify/gallery/fragments/PhotoFragment.kt +++ b/app/src/main/kotlin/org/fossify/gallery/fragments/PhotoFragment.kt @@ -89,6 +89,8 @@ class PhotoFragment : ViewPagerFragment() { private var mScreenWidth = 0 private var mScreenHeight = 0 private var mCurrentGestureViewZoom = 1f + private var mIsTouched = false + private var mInitialZoom = 1f private var mStoredShowExtendedDetails = false private var mStoredHideExtendedDetails = false @@ -145,12 +147,16 @@ class PhotoFragment : ViewPagerFragment() { gesturesView.controller.addOnStateChangeListener(object : GestureController.OnStateChangeListener { override fun onStateChanged(state: State) { + if(!mIsTouched){ + mInitialZoom = state.zoom + } mCurrentGestureViewZoom = state.zoom } }) gesturesView.setOnTouchListener { v, event -> - if (mCurrentGestureViewZoom == 1f) { + mIsTouched = true + if (Math.abs(mCurrentGestureViewZoom -mInitialZoom)< MAX_ZOOM_DIFFERENCE) { handleEvent(event) } false diff --git a/app/src/main/kotlin/org/fossify/gallery/helpers/Constants.kt b/app/src/main/kotlin/org/fossify/gallery/helpers/Constants.kt index 70c03b259..2d117917f 100644 --- a/app/src/main/kotlin/org/fossify/gallery/helpers/Constants.kt +++ b/app/src/main/kotlin/org/fossify/gallery/helpers/Constants.kt @@ -134,6 +134,7 @@ const val SHOW_TEMP_HIDDEN_DURATION = 300000L const val CLICK_MAX_DURATION = 150 const val CLICK_MAX_DISTANCE = 100 const val MAX_CLOSE_DOWN_GESTURE_DURATION = 300 +const val MAX_ZOOM_DIFFERENCE = 0.01 const val DRAG_THRESHOLD = 8 const val MONTH_MILLISECONDS = MONTH_SECONDS * 1000L const val MIN_SKIP_LENGTH = 2000