From 2feca00797d2c5e7738b31decd56e4025f471226 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Thu, 30 Sep 2021 10:15:25 -0700 Subject: [PATCH] Toggle ScrollView.snapToAlignment behavior using ReactFeatureFlag.enableScrollViewSnapToAlignmentProp Summary: This diff enables/disables ScrollView.snapToAlignment behavior using ReactFeatureFlag.enableScrollViewSnapToAlignmentProp changelog: [internal] internal Reviewed By: motiz88 Differential Revision: D31308300 fbshipit-source-id: 26c01a342cac822f21d83e3474b529bea154aba6 --- .../react/views/scroll/ReactHorizontalScrollView.java | 7 +++++-- .../com/facebook/react/views/scroll/ReactScrollView.java | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java b/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java index 69c2a633a42..82099cb25b6 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java @@ -7,6 +7,7 @@ package com.facebook.react.views.scroll; +import static com.facebook.react.config.ReactFeatureFlags.enableScrollViewSnapToAlignmentProp; import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_CENTER; import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_DISABLED; import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_END; @@ -916,7 +917,9 @@ public class ReactHorizontalScrollView extends HorizontalScrollView } // pagingEnabled only allows snapping one interval at a time - if (mSnapInterval == 0 && mSnapOffsets == null && mSnapToAlignment == SNAP_ALIGNMENT_DISABLED) { + if (mSnapInterval == 0 + && mSnapOffsets == null + && (!enableScrollViewSnapToAlignmentProp || mSnapToAlignment == SNAP_ALIGNMENT_DISABLED)) { smoothScrollAndSnap(velocityX); return; } @@ -959,7 +962,7 @@ public class ReactHorizontalScrollView extends HorizontalScrollView } } } - } else if (mSnapToAlignment != SNAP_ALIGNMENT_DISABLED) { + } else if (enableScrollViewSnapToAlignmentProp && mSnapToAlignment != SNAP_ALIGNMENT_DISABLED) { if (mSnapInterval > 0) { double ratio = (double) targetOffset / mSnapInterval; smallerOffset = diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java b/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java index bb9dc676499..3b920a6f505 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java @@ -7,6 +7,7 @@ package com.facebook.react.views.scroll; +import static com.facebook.react.config.ReactFeatureFlags.enableScrollViewSnapToAlignmentProp; import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_CENTER; import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_DISABLED; import static com.facebook.react.views.scroll.ReactScrollViewHelper.SNAP_ALIGNMENT_END; @@ -704,7 +705,9 @@ public class ReactScrollView extends ScrollView } // pagingEnabled only allows snapping one interval at a time - if (mSnapInterval == 0 && mSnapOffsets == null && mSnapToAlignment == SNAP_ALIGNMENT_DISABLED) { + if (mSnapInterval == 0 + && mSnapOffsets == null + && (!enableScrollViewSnapToAlignmentProp || mSnapToAlignment == SNAP_ALIGNMENT_DISABLED)) { smoothScrollAndSnap(velocityY); return; } @@ -742,7 +745,7 @@ public class ReactScrollView extends ScrollView } } - } else if (mSnapToAlignment != SNAP_ALIGNMENT_DISABLED) { + } else if (enableScrollViewSnapToAlignmentProp && mSnapToAlignment != SNAP_ALIGNMENT_DISABLED) { if (mSnapInterval > 0) { double ratio = (double) targetOffset / mSnapInterval; smallerOffset =