Skip to content

Commit f1a3a85

Browse files
committed
ComparisonFragment: do not trigger onTouch when swiping vertical screen edges in order for status bars to reappear
1 parent 5954061 commit f1a3a85

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

app/src/main/kotlin/com/w2sv/autocrop/ui/screen/comparison/ComparisonFragment.kt

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@ package com.w2sv.autocrop.ui.screen.comparison
33
import android.annotation.SuppressLint
44
import android.content.Context
55
import android.os.Bundle
6+
import android.view.MotionEvent.ACTION_CANCEL
67
import android.view.MotionEvent.ACTION_DOWN
78
import android.view.MotionEvent.ACTION_UP
89
import android.view.View
910
import android.view.animation.DecelerateInterpolator
1011
import androidx.appcompat.widget.AppCompatImageView
12+
import androidx.core.view.ViewCompat
13+
import androidx.core.view.WindowInsetsCompat
1114
import androidx.core.view.doOnNextLayout
1215
import androidx.lifecycle.lifecycleScope
1316
import androidx.navigation.fragment.navArgs
@@ -18,13 +21,13 @@ import com.w2sv.androidutils.view.crossVisualize
1821
import com.w2sv.autocrop.R
1922
import com.w2sv.autocrop.databinding.ComparisonBinding
2023
import com.w2sv.autocrop.ui.ViewBoundAppFragment
21-
import com.w2sv.autocrop.ui.views.FadeOutTextView
2224
import com.w2sv.autocrop.ui.screen.cropSessionInjectedViewModel
2325
import com.w2sv.autocrop.ui.screen.cropadjustment.extensions.getScaleY
2426
import com.w2sv.autocrop.ui.util.hideSystemBars
2527
import com.w2sv.autocrop.ui.util.postponeEnterTransition
2628
import com.w2sv.autocrop.ui.util.registerOnBackPressedHandler
2729
import com.w2sv.autocrop.ui.util.showSystemBars
30+
import com.w2sv.autocrop.ui.views.FadeOutTextView
2831
import com.w2sv.kotlinutils.coroutines.flow.collectLatestOn
2932
import com.w2sv.kotlinutils.coroutines.launchDelayed
3033
import dagger.hilt.android.AndroidEntryPoint
@@ -114,14 +117,27 @@ class ComparisonFragment : ViewBoundAppFragment<ComparisonBinding>(ComparisonBin
114117
@SuppressLint("ClickableViewAccessibility")
115118
private fun ComparisonBinding.setOnTouchEventListeners() {
116119
root.setOnTouchListener { v, event ->
117-
when (event.action) {
120+
val insets = ViewCompat.getRootWindowInsets(root)
121+
val statusBarHeight = insets?.getInsetsIgnoringVisibility(WindowInsetsCompat.Type.statusBars())?.top
122+
?: 0
123+
val navBarHeight = insets?.getInsetsIgnoringVisibility(WindowInsetsCompat.Type.navigationBars())?.bottom
124+
?: 0
125+
126+
// Ignore touches in system bar areas
127+
val y = event.y.toInt()
128+
if (y < statusBarHeight || y > root.height - navBarHeight) {
129+
return@setOnTouchListener false
130+
}
131+
132+
when (event.actionMasked) {
118133
ACTION_DOWN -> {
119134
viewModel.setImageType(ImageType.Original)
135+
// Lets accessibility services know the view was clicked, which enables those services to react to it
120136
v.performClick()
121137
true
122138
}
123139

124-
ACTION_UP -> {
140+
ACTION_UP, ACTION_CANCEL -> {
125141
viewModel.setImageType(ImageType.Crop)
126142
true
127143
}

0 commit comments

Comments
 (0)