diff --git a/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItems.kt b/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItems.kt index 44f0396d6..225ab0d85 100644 --- a/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItems.kt +++ b/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItems.kt @@ -3,6 +3,7 @@ package com.yandex.div.core.view2.items import android.util.DisplayMetrics import android.view.View import androidx.annotation.VisibleForTesting +import androidx.core.view.doOnNextLayout import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearSmoothScroller import androidx.recyclerview.widget.RecyclerView @@ -10,6 +11,7 @@ import com.yandex.div.core.view2.divs.availableHeight import com.yandex.div.core.view2.divs.availableWidth import com.yandex.div.core.view2.divs.dpToPx import com.yandex.div.core.view2.divs.gallery.DivGalleryAdapter +import com.yandex.div.core.view2.divs.gallery.PagerSnapStartHelper import com.yandex.div.core.view2.divs.pager.DivPagerAdapter import com.yandex.div.core.view2.divs.spToPx import com.yandex.div.core.view2.divs.widgets.DivPagerView @@ -73,9 +75,20 @@ internal sealed class DivViewWithItems { */ internal class PagingGallery(view: DivRecyclerView, direction: Direction) : Gallery(view, direction) { - override var currentItem: Int - get() = view.currentItem(direction) - set(value) = checkItem(value, itemCount) { view.smoothScrollToPosition(value) } + override fun createSmoothScroller(): RecyclerView.SmoothScroller { + return object : DivSmoothScroller(view) { + override fun calculateDtToFit( + viewStart: Int, viewEnd: Int, + boxStart: Int, boxEnd: Int, + snapPreference: Int + ): Int { + val itemSpacing = view.pagerSnapStartHelper?.itemSpacing ?: return 0 + val isHorizontal = (view.adapter as? DivGalleryAdapter)?.orientation == RecyclerView.HORIZONTAL + val size = if (isHorizontal) view.width else view.height + return (size - viewStart - viewEnd + itemSpacing) / 2 + } + } + } } /** @@ -91,19 +104,19 @@ internal sealed class DivViewWithItems { get() = view.currentItem(direction) set(value) { checkItem(value, itemCount) { - val smoothScroller = object : LinearSmoothScroller(view.context) { - private val MILLISECONDS_PER_INCH = 50f // default is 25f, bigger - slower - override fun getHorizontalSnapPreference() = SNAP_TO_START - override fun getVerticalSnapPreference() = SNAP_TO_START - override fun calculateSpeedPerPixel(displayMetrics: DisplayMetrics): Float { - return MILLISECONDS_PER_INCH / displayMetrics.densityDpi - } - } + val smoothScroller = createSmoothScroller() smoothScroller.targetPosition = value view.layoutManager?.startSmoothScroll(smoothScroller) } } + protected open fun createSmoothScroller(): RecyclerView.SmoothScroller { + return object : DivSmoothScroller(view) { + override fun getHorizontalSnapPreference() = SNAP_TO_START + override fun getVerticalSnapPreference() = SNAP_TO_START + } + } + override val itemCount: Int get() = view.itemCount @@ -117,10 +130,27 @@ internal sealed class DivViewWithItems { override fun setCurrentItemNoAnimation(index: Int) { checkItem(index, itemCount) { - view.scrollToPosition(index) + view.pagerSnapStartHelper?.snapToPosition(index, waitForLayout = true) + ?: view.scrollToPosition(index) } } + private fun PagerSnapStartHelper.snapToPosition(position: Int, waitForLayout: Boolean) { + val layoutManager = view.layoutManager ?: return + layoutManager.findViewByPosition(position)?.let { target -> + val offset = calculateDistanceToFinalSnap(layoutManager, target) + view.scrollBy(offset[0], offset[1]) + return + } + + if (!waitForLayout) return + + view.doOnNextLayout { + snapToPosition(position, waitForLayout = false) + } + view.scrollToPosition(position) + } + override fun getIndicesOfItemWithId(id: String): List { val adapter = view.adapter as? DivGalleryAdapter ?: return emptyList() return adapter.visibleItems.getIndicesWithId(id) { div } @@ -205,6 +235,16 @@ internal sealed class DivViewWithItems { } } } + + private open class DivSmoothScroller(view: RecyclerView): LinearSmoothScroller(view.context) { + + override fun calculateSpeedPerPixel(displayMetrics: DisplayMetrics) = + MILLISECONDS_PER_INCH / displayMetrics.densityDpi + + companion object { + private const val MILLISECONDS_PER_INCH = 50f // default is 25f, bigger - slower + } + } } /** diff --git a/client/android/div/src/test/java/com/yandex/div/core/view2/items/GalleryItemsViewTest.kt b/client/android/div/src/test/java/com/yandex/div/core/view2/items/GalleryItemsViewTest.kt index 5fbb49890..2202c0f68 100644 --- a/client/android/div/src/test/java/com/yandex/div/core/view2/items/GalleryItemsViewTest.kt +++ b/client/android/div/src/test/java/com/yandex/div/core/view2/items/GalleryItemsViewTest.kt @@ -160,11 +160,13 @@ class GalleryItemsViewTest { on { resources } doReturn mock() } whenever(view.layoutManager).thenReturn(layoutManager) + val scrollCaptor = argumentCaptor() val underTest = createUnderTest(drv = view) underTest.currentItem = 5 - verify(view).smoothScrollToPosition(5) + verify(layoutManager).startSmoothScroll(scrollCaptor.capture()) + Assert.assertEquals(5, scrollCaptor.firstValue.targetPosition) } @Test diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png index a2332a46d..3ebc21c8d 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png index 199d462bc..6dec7aff8 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png index 9b0068427..5280f5ba0 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png index 828e61a2b..b0d2d3856 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png index b2166bf08..4096a9695 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png index 38f00cac0..86163f302 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png index 9b0068427..c47518f94 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png index 828e61a2b..b0d2d3856 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png index b2166bf08..4096a9695 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png index 38f00cac0..86163f302 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png index 73746910c..43841cb5a 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png index e01063458..c161617d5 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png index 4f0aff5cb..a1133e389 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png index 1c8b32dcb..a36ca697d 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png index 73746910c..43841cb5a 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png index e01063458..c161617d5 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png index 4f0aff5cb..a1133e389 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/paging-paddings/step1.png differ diff --git a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png index 1c8b32dcb..a36ca697d 100644 Binary files a/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png and b/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/vertical-paging-paddings/step1.png differ diff --git a/test_data/interactive_snapshot_test_data/div-gallery/paging-paddings.json b/test_data/interactive_snapshot_test_data/div-gallery/paging-paddings.json index 257052dc2..b7a2475f5 100644 --- a/test_data/interactive_snapshot_test_data/div-gallery/paging-paddings.json +++ b/test_data/interactive_snapshot_test_data/div-gallery/paging-paddings.json @@ -84,7 +84,7 @@ { "div_actions": [ { - "url": "div-action://set_next_item?id=gallery", + "url": "div-action://set_next_item?id=gallery&animated=false", "log_id": "scroll_forward" } ], @@ -93,7 +93,7 @@ { "div_actions": [ { - "url": "div-action://scroll_to_end?id=gallery", + "url": "div-action://scroll_to_end?id=gallery&animated=false", "log_id": "scroll_to_end" } ], diff --git a/test_data/interactive_snapshot_test_data/div-gallery/vertical-paging-paddings.json b/test_data/interactive_snapshot_test_data/div-gallery/vertical-paging-paddings.json index 8255c3d49..bc9f95e4d 100644 --- a/test_data/interactive_snapshot_test_data/div-gallery/vertical-paging-paddings.json +++ b/test_data/interactive_snapshot_test_data/div-gallery/vertical-paging-paddings.json @@ -97,7 +97,7 @@ { "div_actions": [ { - "url": "div-action://set_next_item?id=gallery", + "url": "div-action://set_next_item?id=gallery&animated=false", "log_id": "scroll_forward" } ], @@ -106,7 +106,7 @@ { "div_actions": [ { - "url": "div-action://scroll_to_end?id=gallery", + "url": "div-action://scroll_to_end?id=gallery&animated=false", "log_id": "scroll_to_end" } ],