@@ -112,6 +112,9 @@ class FavouritesNewTabSectionView @JvmOverloads constructor(
112
112
@Inject
113
113
lateinit var swipingTabsFeature: SwipingTabsFeatureProvider
114
114
115
+ @Inject
116
+ lateinit var favoritesSwipeHandling: FavoritesSwipeHandling
117
+
115
118
private var isExpandable = true
116
119
private var showPlaceholders = false
117
120
private var placement: FavoritesPlacement = FavoritesPlacement .NEW_TAB_PAGE
@@ -196,35 +199,37 @@ class FavouritesNewTabSectionView @JvmOverloads constructor(
196
199
}
197
200
198
201
override fun dispatchTouchEvent (ev : MotionEvent ? ): Boolean {
199
- if (! swipingTabsFeature.isEnabled) return super .dispatchTouchEvent(ev)
200
-
201
- when (ev?.actionMasked) {
202
- MotionEvent .ACTION_DOWN -> {
203
- viewModel.onTouchDown(ev.x, ev.y)
204
- removeCallbacks(longPressRunnable)
205
- postDelayed(longPressRunnable, longPressTimeoutMs)
206
- parent?.requestDisallowInterceptTouchEvent(false )
207
- }
202
+ if (favoritesSwipeHandling.self().isEnabled()) {
203
+ when (ev?.actionMasked) {
204
+ MotionEvent .ACTION_DOWN -> {
205
+ viewModel.onTouchDown(ev.x, ev.y)
206
+ removeCallbacks(longPressRunnable)
207
+ postDelayed(longPressRunnable, longPressTimeoutMs)
208
+ parent?.requestDisallowInterceptTouchEvent(false )
209
+ }
208
210
209
- MotionEvent .ACTION_MOVE -> {
210
- if (viewModel.isLongPressActive()) {
211
- parent?.requestDisallowInterceptTouchEvent(true )
212
- } else {
213
- viewModel.onTouchMove(ev.x, ev.y, touchSlop)?.let { decision ->
214
- when (decision) {
215
- SwipeDecision .CANCEL_LONG_PRESS -> removeCallbacks(longPressRunnable)
216
- SwipeDecision .HORIZONTAL -> parent?.requestDisallowInterceptTouchEvent(false )
217
- SwipeDecision .VERTICAL -> parent?.requestDisallowInterceptTouchEvent(true )
211
+ MotionEvent .ACTION_MOVE -> {
212
+ if (viewModel.isLongPressActive()) {
213
+ parent?.requestDisallowInterceptTouchEvent(true )
214
+ } else {
215
+ viewModel.onTouchMove(ev.x, ev.y, touchSlop)?.let { decision ->
216
+ when (decision) {
217
+ SwipeDecision .CANCEL_LONG_PRESS -> removeCallbacks(longPressRunnable)
218
+ SwipeDecision .HORIZONTAL -> parent?.requestDisallowInterceptTouchEvent(false )
219
+ SwipeDecision .VERTICAL -> parent?.requestDisallowInterceptTouchEvent(true )
220
+ }
218
221
}
219
222
}
220
223
}
221
- }
222
224
223
- MotionEvent .ACTION_UP , MotionEvent .ACTION_CANCEL -> {
224
- removeCallbacks(longPressRunnable)
225
- viewModel.onTouchUp()
226
- parent?.requestDisallowInterceptTouchEvent(false )
225
+ MotionEvent .ACTION_UP , MotionEvent .ACTION_CANCEL -> {
226
+ removeCallbacks(longPressRunnable)
227
+ viewModel.onTouchUp()
228
+ parent?.requestDisallowInterceptTouchEvent(false )
229
+ }
227
230
}
231
+ } else if (swipingTabsFeature.isEnabled) {
232
+ parent?.requestDisallowInterceptTouchEvent(true )
228
233
}
229
234
return super .dispatchTouchEvent(ev)
230
235
}
0 commit comments