From 9a960b740eb04f45a5971ec4a530d82251e36429 Mon Sep 17 00:00:00 2001 From: arangelov Date: Tue, 16 Jun 2020 17:19:19 +0100 Subject: [PATCH] Disable side swiping on RTL languages The internal ViewPager seems to not handle RTL well. This CL disables side swiping in that case. Fixes: 159110029 Test: manually confirmed side swiping does not happen on RTL languages Test: manually side swiped on non-RTL languages Change-Id: I30272426d1d1ef4f17ec656630cee01505f66c59 --- core/java/com/android/internal/app/ResolverViewPager.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/java/com/android/internal/app/ResolverViewPager.java b/core/java/com/android/internal/app/ResolverViewPager.java index 9cdfc2f5c7631..478cc18f13ee2 100644 --- a/core/java/com/android/internal/app/ResolverViewPager.java +++ b/core/java/com/android/internal/app/ResolverViewPager.java @@ -74,12 +74,16 @@ public class ResolverViewPager extends ViewPager { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } + /** + * Sets whether swiping sideways should happen. + *

Note that swiping is always disabled for RTL layouts (b/159110029 for context). + */ void setSwipingEnabled(boolean swipingEnabled) { mSwipingEnabled = swipingEnabled; } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { - return mSwipingEnabled && super.onInterceptTouchEvent(ev); + return !isLayoutRtl() && mSwipingEnabled && super.onInterceptTouchEvent(ev); } }