From 2d568bbb9c5405edb40b489ebd114b4f8888c3de Mon Sep 17 00:00:00 2001 From: S-6203-ATLED Date: Mon, 20 Jun 2022 11:58:41 +0900 Subject: [PATCH 1/7] =?UTF-8?q?#91=20=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=83=93=E3=83=A5=E3=83=BC=E3=83=AF=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E6=99=82=E3=80=81=E3=83=94=E3=83=B3=E3=83=81=E3=81=A7?= =?UTF-8?q?=E6=8B=A1=E5=A4=A7=E7=B8=AE=E5=B0=8F=E5=87=A6=E7=90=86=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/documentweb/DocumentWebFragment.kt | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt index b6515602..cbe12bd7 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt @@ -12,6 +12,7 @@ import android.webkit.CookieManager import android.webkit.WebView import android.widget.Button import android.widget.RelativeLayout +import androidx.constraintlayout.widget.ConstraintSet import androidx.core.view.GestureDetectorCompat import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels @@ -26,6 +27,7 @@ import kotlinx.android.synthetic.main.fragment_webview_detail.* import kotlinx.coroutines.flow.collect import kotlinx.coroutines.launch import java.lang.Exception +import kotlin.math.abs import kotlin.math.absoluteValue class DocumentWebFragment : Fragment(), DocumentWebPresenter { @@ -164,6 +166,8 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { webview?.let { val listener = SwipeGestureListener(it) swipeGestureListener = listener + val pinchListener = PinchGestureListener(it) + // GestureListener による onScroll では実際にページのスクロールがされたか分からないので WebView 側のイベントを拾う。 it.setOnScrollChangeListener { _, scrollX, _, oldScrollX, _ -> listener.recordScroll(scrollX, oldScrollX) @@ -177,6 +181,18 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { MotionEvent.ACTION_UP -> { swipeControl.updateSwipeRefreshState(it.scrollY == 0) } + // ピンチ開始時に2本の指の座標を取得して距離計算 + MotionEvent.ACTION_POINTER_1_DOWN,MotionEvent.ACTION_POINTER_2_DOWN, MotionEvent.ACTION_POINTER_3_DOWN -> { + // 距離リセット + pinchListener.resetPich() + // 距離算出 + pinchListener.downFingerDistance(event.getX(0), event.getY(0), event.getX(1), event.getY(1)) + } + // ピンチ終了時に2本の指の座標を取得する + MotionEvent.ACTION_POINTER_1_UP, MotionEvent.ACTION_POINTER_2_UP, MotionEvent.ACTION_POINTER_3_UP -> { + // 距離算出、DOM呼び出し + pinchListener.upFingerDistance(event.getX(0), event.getY(0), event.getX(1), event.getY(1)) + } } gestureDetector.onTouchEvent(event) } @@ -227,6 +243,47 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { } } + private class PinchGestureListener(private val webView: WebView) { + var bpl = 0.0F + var apl = 0.0F + val pinchThreshold = 200.0F + var pld = 0.0F + + fun resetPich() { + bpl = 0.0F + apl = 0.0F + pld = 0.0F + } + + fun downFingerDistance(pointBX1: Float, pointBY1: Float, pointBX2: Float, pointBY2: Float) { + // 絶対値をとって距離算出 + bpl = abs(pointBX2 - pointBX1) + abs(pointBY2 - pointBY1) + } + + fun upFingerDistance(pointAX1: Float, pointAY1: Float, pointAX2: Float, pointAY2: Float){ + // 絶対値をとって距離算出 + apl = abs(pointAX2 - pointAX1) + abs(pointAY2 - pointAY1) + // ピンチ前と後の差 + pld = abs(bpl - apl) + // ピンチ開始時の指の距離が終了時よりも小さければピンチアウト + if (bpl < apl && pld >= pinchThreshold) { + webView?.evaluateJavascript("javascript:(function(){document.getElementById('mobile-zoom-in').click();})()") { result -> + if (result == "null") { + return@evaluateJavascript + } + } + } + // ピンチ開始時の指の距離が終了時よりも大きればピンチアウト + else if (bpl > apl && pld >= pinchThreshold) { + webView?.evaluateJavascript("javascript:(function(){document.getElementById('mobile-zoom-out').click();})()") { result -> + if (result == "null") { + return@evaluateJavascript + } + } + } + } + } + private fun getSessionAndSetupWebView(view: View, url: String, lasturl: String?, urlLoading: Boolean) { CookieManager.getInstance().apply { setAcceptCookie(true) -- GitLab From 89982fcbca59a2a16065151cc6ee02af9fdd5f40 Mon Sep 17 00:00:00 2001 From: S-6203-ATLED Date: Mon, 20 Jun 2022 12:02:19 +0900 Subject: [PATCH 2/7] =?UTF-8?q?#91=20=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=83=93=E3=83=A5=E3=83=BC=E3=83=AF=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E6=99=82=E3=80=81=E3=83=94=E3=83=B3=E3=83=81=E3=81=A7?= =?UTF-8?q?=E6=8B=A1=E5=A4=A7=E7=B8=AE=E5=B0=8F=E5=87=A6=E7=90=86=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agileworks/view/ui/documentweb/DocumentWebFragment.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt index cbe12bd7..f8565453 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt @@ -12,7 +12,6 @@ import android.webkit.CookieManager import android.webkit.WebView import android.widget.Button import android.widget.RelativeLayout -import androidx.constraintlayout.widget.ConstraintSet import androidx.core.view.GestureDetectorCompat import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels @@ -181,7 +180,7 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { MotionEvent.ACTION_UP -> { swipeControl.updateSwipeRefreshState(it.scrollY == 0) } - // ピンチ開始時に2本の指の座標を取得して距離計算 + // ピンチ開始時に2本の指の座標を取得する MotionEvent.ACTION_POINTER_1_DOWN,MotionEvent.ACTION_POINTER_2_DOWN, MotionEvent.ACTION_POINTER_3_DOWN -> { // 距離リセット pinchListener.resetPich() -- GitLab From 30c36404bd5c52fa8d892f206daf5cbcd60a0c6a Mon Sep 17 00:00:00 2001 From: S-6203-ATLED Date: Mon, 20 Jun 2022 16:28:20 +0900 Subject: [PATCH 3/7] =?UTF-8?q?#91=20=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=83=93=E3=83=A5=E3=83=BC=E3=83=AF=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E6=99=82=E3=80=81=E3=83=94=E3=83=B3=E3=83=81=E3=81=A7?= =?UTF-8?q?=E6=8B=A1=E5=A4=A7=E7=B8=AE=E5=B0=8F=E5=87=A6=E7=90=86=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/documentweb/DocumentWebFragment.kt | 55 +++++++++++-------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt index f8565453..7e157b9e 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt @@ -242,42 +242,49 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { } } + // ピンチの際の2本の指の座標から距離を求める private class PinchGestureListener(private val webView: WebView) { - var bpl = 0.0F - var apl = 0.0F + var beforePinchLength = 0.0F + var afterPinchLength = 0.0F val pinchThreshold = 200.0F - var pld = 0.0F - + // ピンチ時の距離の差 + var pinchLengthSub = 0.0F + // ピンチアウト時のjavascript + val pinchOutDomCode = "javascript:(function(){document.getElementById('mobile-zoom-in').click();})()" + // ピンチイン時のjavsscript + val pinchInDomCode = "javascript:(function(){document.getElementById('mobile-zoom-out').click();})()" + + // ピンチ開始時、終了時、差の初期化 fun resetPich() { - bpl = 0.0F - apl = 0.0F - pld = 0.0F + beforePinchLength = 0.0F + afterPinchLength = 0.0F + pinchLengthSub = 0.0F } - + // ピンチ開始時の指の座標からおおまかな距離取得 fun downFingerDistance(pointBX1: Float, pointBY1: Float, pointBX2: Float, pointBY2: Float) { // 絶対値をとって距離算出 - bpl = abs(pointBX2 - pointBX1) + abs(pointBY2 - pointBY1) + beforePinchLength = abs(pointBX2 - pointBX1) + abs(pointBY2 - pointBY1) } - + // ピンチ終了時の指の座標からおおまかな距離取得 fun upFingerDistance(pointAX1: Float, pointAY1: Float, pointAX2: Float, pointAY2: Float){ // 絶対値をとって距離算出 - apl = abs(pointAX2 - pointAX1) + abs(pointAY2 - pointAY1) + afterPinchLength = abs(pointAX2 - pointAX1) + abs(pointAY2 - pointAY1) // ピンチ前と後の差 - pld = abs(bpl - apl) + pinchLengthSub = abs(beforePinchLength - afterPinchLength) // ピンチ開始時の指の距離が終了時よりも小さければピンチアウト - if (bpl < apl && pld >= pinchThreshold) { - webView?.evaluateJavascript("javascript:(function(){document.getElementById('mobile-zoom-in').click();})()") { result -> - if (result == "null") { - return@evaluateJavascript - } - } + if (beforePinchLength < afterPinchLength && pinchLengthSub >= pinchThreshold) { + executePinchJavascript(pinchOutDomCode) } - // ピンチ開始時の指の距離が終了時よりも大きればピンチアウト - else if (bpl > apl && pld >= pinchThreshold) { - webView?.evaluateJavascript("javascript:(function(){document.getElementById('mobile-zoom-out').click();})()") { result -> - if (result == "null") { - return@evaluateJavascript - } + // ピンチ開始時の指の距離が終了時よりも大きればピンチイン + else if (beforePinchLength > afterPinchLength && pinchLengthSub >= pinchThreshold) { + executePinchJavascript(pinchInDomCode) + } + } + // ピンチ時のjavascript実行 + private fun executePinchJavascript(domCode: String){ + webView?.evaluateJavascript(domCode) { result -> + if (result == "null") { + return@evaluateJavascript } } } -- GitLab From 2d06eae1b4186ea8324f5f0d6bd1348a18fe6404 Mon Sep 17 00:00:00 2001 From: S-6203-ATLED Date: Mon, 27 Jun 2022 16:50:21 +0900 Subject: [PATCH 4/7] =?UTF-8?q?#91=20=E3=83=94=E3=83=B3=E3=83=81=E3=81=A7?= =?UTF-8?q?=E6=8B=A1=E5=A4=A7=E7=B8=AE=E5=B0=8F=E7=8E=87=E3=82=92=E3=83=AA?= =?UTF-8?q?=E3=82=A2=E3=83=AB=E3=82=BF=E3=82=A4=E3=83=A0=E3=81=AB=E5=8F=96?= =?UTF-8?q?=E5=BE=97=E3=81=97=E3=80=81DOM=E3=82=92=E5=91=BC=E3=81=B3?= =?UTF-8?q?=E5=87=BA=E3=81=99=E3=82=88=E3=81=86=E3=81=AB=E5=87=A6=E7=90=86?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/documentweb/DocumentWebFragment.kt | 87 +++++++++---------- 1 file changed, 41 insertions(+), 46 deletions(-) diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt index 7e157b9e..d42fe69b 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt @@ -45,6 +45,8 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { // スワイプのジェスチャー。折に触れて状態設定をする必要があるのでメンバーとして持つ。 // 必要とされるタイミング次第で null のままのことがある恐れがあるので lateinit にはしていない。 private var swipeGestureListener: SwipeGestureListener? = null + // ピンチのジェスチャー。 + private var pinchGestureListener: PinchGestureListener? = null private val baseViewModel by activityViewModels() @@ -163,15 +165,19 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { // スワイプによるページ遷移設定 webview?.let { - val listener = SwipeGestureListener(it) + val listener = SwipeGestureListener() swipeGestureListener = listener val pinchListener = PinchGestureListener(it) + pinchGestureListener = pinchListener // GestureListener による onScroll では実際にページのスクロールがされたか分からないので WebView 側のイベントを拾う。 it.setOnScrollChangeListener { _, scrollX, _, oldScrollX, _ -> listener.recordScroll(scrollX, oldScrollX) } val gestureDetector = GestureDetectorCompat(requireContext(), listener) + // ピンチの検知 + val pinchDetector = ScaleGestureDetector(requireContext(), pinchListener) + it.setOnTouchListener { _, event -> when (event.action) { MotionEvent.ACTION_DOWN -> { @@ -180,20 +186,14 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { MotionEvent.ACTION_UP -> { swipeControl.updateSwipeRefreshState(it.scrollY == 0) } - // ピンチ開始時に2本の指の座標を取得する - MotionEvent.ACTION_POINTER_1_DOWN,MotionEvent.ACTION_POINTER_2_DOWN, MotionEvent.ACTION_POINTER_3_DOWN -> { - // 距離リセット - pinchListener.resetPich() - // 距離算出 - pinchListener.downFingerDistance(event.getX(0), event.getY(0), event.getX(1), event.getY(1)) - } - // ピンチ終了時に2本の指の座標を取得する - MotionEvent.ACTION_POINTER_1_UP, MotionEvent.ACTION_POINTER_2_UP, MotionEvent.ACTION_POINTER_3_UP -> { - // 距離算出、DOM呼び出し - pinchListener.upFingerDistance(event.getX(0), event.getY(0), event.getX(1), event.getY(1)) - } } - gestureDetector.onTouchEvent(event) + // タップしている指が1本ならGestureDetectorを呼ぶ + if (event.getPointerCount() == 1){ + gestureDetector.onTouchEvent(event) + } else { + // それ以外ならピンチ + pinchDetector.onTouchEvent(event) + } } it.isFocusableInTouchMode = true @@ -201,7 +201,7 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { } } - private class SwipeGestureListener(private val webView: WebView) : GestureDetector.SimpleOnGestureListener() { + private class SwipeGestureListener() : GestureDetector.SimpleOnGestureListener() { // 速度が SWIPE_VX, y 方向との比が SWIPE_RACIO 以上の時に横スワイプとみなす val SWIPE_VX = 200.0 val SWIPE_RATIO = 2.0 @@ -241,46 +241,41 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { return false } } - - // ピンチの際の2本の指の座標から距離を求める - private class PinchGestureListener(private val webView: WebView) { - var beforePinchLength = 0.0F - var afterPinchLength = 0.0F - val pinchThreshold = 200.0F - // ピンチ時の距離の差 - var pinchLengthSub = 0.0F + // ピンチを検知した際の処理 + private class PinchGestureListener(private val webView: WebView): ScaleGestureDetector.SimpleOnScaleGestureListener(){ // ピンチアウト時のjavascript val pinchOutDomCode = "javascript:(function(){document.getElementById('mobile-zoom-in').click();})()" // ピンチイン時のjavsscript val pinchInDomCode = "javascript:(function(){document.getElementById('mobile-zoom-out').click();})()" - - // ピンチ開始時、終了時、差の初期化 - fun resetPich() { - beforePinchLength = 0.0F - afterPinchLength = 0.0F - pinchLengthSub = 0.0F - } - // ピンチ開始時の指の座標からおおまかな距離取得 - fun downFingerDistance(pointBX1: Float, pointBY1: Float, pointBX2: Float, pointBY2: Float) { - // 絶対値をとって距離算出 - beforePinchLength = abs(pointBX2 - pointBX1) + abs(pointBY2 - pointBY1) - } - // ピンチ終了時の指の座標からおおまかな距離取得 - fun upFingerDistance(pointAX1: Float, pointAY1: Float, pointAX2: Float, pointAY2: Float){ - // 絶対値をとって距離算出 - afterPinchLength = abs(pointAX2 - pointAX1) + abs(pointAY2 - pointAY1) - // ピンチ前と後の差 - pinchLengthSub = abs(beforePinchLength - afterPinchLength) - // ピンチ開始時の指の距離が終了時よりも小さければピンチアウト - if (beforePinchLength < afterPinchLength && pinchLengthSub >= pinchThreshold) { + // ピンチするかしないかの閾値 + var pinchThreshold = 0.0F + // ピンチ判定の基準値 + val pinchStandard = 1.0F + + override fun onScale(detector: ScaleGestureDetector): Boolean { + // 基準値とピンチの拡大縮小率の差を計算 + pinchThreshold += detector.getScaleFactor() - pinchStandard + // 拡大縮小率を取得、0.25よりも大きければピンチアウト + if (pinchThreshold > 0.25) { + // 閾値初期化 + pinchThreshold = 0.0F executePinchJavascript(pinchOutDomCode) + return true } - // ピンチ開始時の指の距離が終了時よりも大きればピンチイン - else if (beforePinchLength > afterPinchLength && pinchLengthSub >= pinchThreshold) { + // -0.25よりも小さければピンチイン + else if (pinchThreshold < -0.25) { + // 閾値初期化 + pinchThreshold = 0.0F executePinchJavascript(pinchInDomCode) + return true } + return false + } + // ピンチが終わった際に閾値初期化 + override fun onScaleEnd(detector: ScaleGestureDetector?) { + pinchThreshold = 0.0F } - // ピンチ時のjavascript実行 + private fun executePinchJavascript(domCode: String){ webView?.evaluateJavascript(domCode) { result -> if (result == "null") { -- GitLab From 2a73f91a6ee921f28ea054c7be8b9e9b72cd157e Mon Sep 17 00:00:00 2001 From: S-6203-ATLED Date: Mon, 27 Jun 2022 16:51:45 +0900 Subject: [PATCH 5/7] =?UTF-8?q?#91=20=E3=83=94=E3=83=B3=E3=83=81=E3=81=A7?= =?UTF-8?q?=E6=8B=A1=E5=A4=A7=E7=B8=AE=E5=B0=8F=E7=8E=87=E3=82=92=E3=83=AA?= =?UTF-8?q?=E3=82=A2=E3=83=AB=E3=82=BF=E3=82=A4=E3=83=A0=E3=81=AB=E5=8F=96?= =?UTF-8?q?=E5=BE=97=E3=81=97=E3=80=81DOM=E3=82=92=E5=91=BC=E3=81=B3?= =?UTF-8?q?=E5=87=BA=E3=81=99=E3=82=88=E3=81=86=E3=81=AB=E5=87=A6=E7=90=86?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt index d42fe69b..03804220 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt @@ -26,7 +26,6 @@ import kotlinx.android.synthetic.main.fragment_webview_detail.* import kotlinx.coroutines.flow.collect import kotlinx.coroutines.launch import java.lang.Exception -import kotlin.math.abs import kotlin.math.absoluteValue class DocumentWebFragment : Fragment(), DocumentWebPresenter { -- GitLab From 4b470fd0b52bff6cb4eda237ef44bab89afb0fd2 Mon Sep 17 00:00:00 2001 From: S-6203-ATLED Date: Tue, 28 Jun 2022 10:10:26 +0900 Subject: [PATCH 6/7] =?UTF-8?q?#91=20=E3=83=94=E3=83=B3=E3=83=81=E6=A9=9F?= =?UTF-8?q?=E8=83=BD=E3=81=AB=E3=81=A4=E3=81=84=E3=81=A6=E3=80=81=E3=82=B3?= =?UTF-8?q?=E3=83=A1=E3=83=B3=E3=83=88=E3=82=A2=E3=82=A6=E3=83=88=E3=81=AE?= =?UTF-8?q?=E8=BF=BD=E8=A8=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/ui/documentweb/DocumentWebFragment.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt index 03804220..f604e6c3 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt @@ -253,17 +253,20 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { override fun onScale(detector: ScaleGestureDetector): Boolean { // 基準値とピンチの拡大縮小率の差を計算 + // detector.getScaleFactorで取得する値はonScaleが処理した直前の拡大縮小率を1としていて、、 + // 1との差分の総和が全体の拡大縮小率となるので、計算して保持する pinchThreshold += detector.getScaleFactor() - pinchStandard - // 拡大縮小率を取得、0.25よりも大きければピンチアウト + // 拡大縮小率の総和が、0.25よりも大きければピンチアウト + // 0.25、-0.25は実機にて動作を確認して決定 if (pinchThreshold > 0.25) { - // 閾値初期化 + // 総和の初期化 pinchThreshold = 0.0F executePinchJavascript(pinchOutDomCode) return true } - // -0.25よりも小さければピンチイン + // 拡大縮小率の総和が、-0.25よりも小さければピンチイン else if (pinchThreshold < -0.25) { - // 閾値初期化 + // 総和の初期化 pinchThreshold = 0.0F executePinchJavascript(pinchInDomCode) return true -- GitLab From a01d8c1cebc2d0e2630b5ece16302b04b813dbae Mon Sep 17 00:00:00 2001 From: S-6203-ATLED Date: Tue, 28 Jun 2022 10:12:37 +0900 Subject: [PATCH 7/7] =?UTF-8?q?#91=20=E3=83=94=E3=83=B3=E3=83=81=E6=A9=9F?= =?UTF-8?q?=E8=83=BD=E3=81=AB=E3=81=A4=E3=81=84=E3=81=A6=E3=80=81=E3=82=B3?= =?UTF-8?q?=E3=83=A1=E3=83=B3=E3=83=88=E3=82=A2=E3=82=A6=E3=83=88=E3=81=AE?= =?UTF-8?q?=E8=BF=BD=E8=A8=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt index f604e6c3..81ac21ab 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt @@ -253,7 +253,7 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { override fun onScale(detector: ScaleGestureDetector): Boolean { // 基準値とピンチの拡大縮小率の差を計算 - // detector.getScaleFactorで取得する値はonScaleが処理した直前の拡大縮小率を1としていて、、 + // detector.getScaleFactorで取得する値はonScaleが処理した直前の拡大縮小率を1としていて、 // 1との差分の総和が全体の拡大縮小率となるので、計算して保持する pinchThreshold += detector.getScaleFactor() - pinchStandard // 拡大縮小率の総和が、0.25よりも大きければピンチアウト -- GitLab