add scroll actions and change item actions in gallery
commit_hash:87014adfd73ebb2d79314c9119fc534c54902f75
@@ -1032,6 +1032,7 @@
|
||||
"client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedHandlerCombiner.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedHandlerCombiner.kt",
|
||||
"client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedHandlerProxy.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedHandlerProxy.kt",
|
||||
"client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedHideTooltipHandler.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedHideTooltipHandler.kt",
|
||||
"client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedScrollHandler.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedScrollHandler.kt",
|
||||
"client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedSetStateHandler.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedSetStateHandler.kt",
|
||||
"client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedSetStoredValueHandler.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedSetStoredValueHandler.kt",
|
||||
"client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedSetVariableHandler.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/actions/DivActionTypedSetVariableHandler.kt",
|
||||
@@ -1297,6 +1298,7 @@
|
||||
"client/android/div/src/main/java/com/yandex/div/core/view2/errors/ErrorVisualMonitor.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/view2/errors/ErrorVisualMonitor.kt",
|
||||
"client/android/div/src/main/java/com/yandex/div/core/view2/items/DivItemChangeActionHandler.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivItemChangeActionHandler.kt",
|
||||
"client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItems.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItems.kt",
|
||||
"client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItemsController.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/view2/items/DivViewWithItemsController.kt",
|
||||
"client/android/div/src/main/java/com/yandex/div/core/view2/items/OverflowItemStrategy.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/view2/items/OverflowItemStrategy.kt",
|
||||
"client/android/div/src/main/java/com/yandex/div/core/view2/logging/EventMessageBuilder.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/view2/logging/EventMessageBuilder.kt",
|
||||
"client/android/div/src/main/java/com/yandex/div/core/view2/logging/bind/BindingEventReporter.kt":"divkit/public/client/android/div/src/main/java/com/yandex/div/core/view2/logging/bind/BindingEventReporter.kt",
|
||||
@@ -1958,6 +1960,12 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API24_HDPI_540x1200/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png",
|
||||
@@ -2862,6 +2870,12 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png",
|
||||
@@ -3766,6 +3780,12 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API26_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png",
|
||||
@@ -4670,6 +4690,12 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png",
|
||||
@@ -5574,6 +5600,12 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API28_XHDPI_720x1600/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png",
|
||||
@@ -6478,6 +6510,12 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png",
|
||||
@@ -7382,6 +7420,12 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API30_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png",
|
||||
@@ -8286,6 +8330,12 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewPixelCopy/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png",
|
||||
@@ -9190,6 +9240,12 @@
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/specific-properties/step3.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step2.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step4.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step7.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/typed-actions/step9.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step0.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step1.png",
|
||||
"client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png":"divkit/public/client/android/divkit-demo-app/src/screenshotTest/screenshots/API32_XXHDPI_1080x2400/viewRender/com.yandex.div.Div2InteractiveScreenshotTest/div-gallery/visibility/step2.png",
|
||||
@@ -16825,6 +16881,10 @@
|
||||
"schema/div-action-download.json":"divkit/public/schema/div-action-download.json",
|
||||
"schema/div-action-focus-element.json":"divkit/public/schema/div-action-focus-element.json",
|
||||
"schema/div-action-hide-tooltip.json":"divkit/public/schema/div-action-hide-tooltip.json",
|
||||
"schema/div-action-scroll-base.json":"divkit/public/schema/div-action-scroll-base.json",
|
||||
"schema/div-action-scroll-by.json":"divkit/public/schema/div-action-scroll-by.json",
|
||||
"schema/div-action-scroll-destination.json":"divkit/public/schema/div-action-scroll-destination.json",
|
||||
"schema/div-action-scroll-to.json":"divkit/public/schema/div-action-scroll-to.json",
|
||||
"schema/div-action-set-state.json":"divkit/public/schema/div-action-set-state.json",
|
||||
"schema/div-action-set-stored-value.json":"divkit/public/schema/div-action-set-stored-value.json",
|
||||
"schema/div-action-set-variable.json":"divkit/public/schema/div-action-set-variable.json",
|
||||
@@ -17164,6 +17224,7 @@
|
||||
"test_data/interactive_snapshot_test_data/div-gallery/scroll-actions.json":"divkit/public/test_data/interactive_snapshot_test_data/div-gallery/scroll-actions.json",
|
||||
"test_data/interactive_snapshot_test_data/div-gallery/select-elements.json":"divkit/public/test_data/interactive_snapshot_test_data/div-gallery/select-elements.json",
|
||||
"test_data/interactive_snapshot_test_data/div-gallery/specific-properties.json":"divkit/public/test_data/interactive_snapshot_test_data/div-gallery/specific-properties.json",
|
||||
"test_data/interactive_snapshot_test_data/div-gallery/typed-actions.json":"divkit/public/test_data/interactive_snapshot_test_data/div-gallery/typed-actions.json",
|
||||
"test_data/interactive_snapshot_test_data/div-gallery/visibility.json":"divkit/public/test_data/interactive_snapshot_test_data/div-gallery/visibility.json",
|
||||
"test_data/interactive_snapshot_test_data/div-image/blur.json":"divkit/public/test_data/interactive_snapshot_test_data/div-image/blur.json",
|
||||
"test_data/interactive_snapshot_test_data/div-indicator/shapes.json":"divkit/public/test_data/interactive_snapshot_test_data/div-indicator/shapes.json",
|
||||
@@ -17324,6 +17385,7 @@
|
||||
"test_data/regression_test_data/gallery/gallery-bottom-multiline.json":"divkit/public/test_data/regression_test_data/gallery/gallery-bottom-multiline.json",
|
||||
"test_data/regression_test_data/gallery/gallery-bottom-singleline.json":"divkit/public/test_data/regression_test_data/gallery/gallery-bottom-singleline.json",
|
||||
"test_data/regression_test_data/gallery/gallery-columns.json":"divkit/public/test_data/regression_test_data/gallery/gallery-columns.json",
|
||||
"test_data/regression_test_data/gallery/gallery-item-actions-typed.json":"divkit/public/test_data/regression_test_data/gallery/gallery-item-actions-typed.json",
|
||||
"test_data/regression_test_data/gallery/gallery-item-actions.json":"divkit/public/test_data/regression_test_data/gallery/gallery-item-actions.json",
|
||||
"test_data/regression_test_data/gallery/gallery-items-posing.json":"divkit/public/test_data/regression_test_data/gallery/gallery-items-posing.json",
|
||||
"test_data/regression_test_data/gallery/gallery-top-multiline.json":"divkit/public/test_data/regression_test_data/gallery/gallery-top-multiline.json",
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
package com.yandex.div.core.actions
|
||||
|
||||
import com.yandex.div.core.view2.Div2View
|
||||
import com.yandex.div.core.view2.items.DivViewWithItemsController
|
||||
import com.yandex.div.json.expressions.ExpressionResolver
|
||||
import com.yandex.div2.DivActionScrollBy
|
||||
import com.yandex.div2.DivActionScrollDestination
|
||||
import com.yandex.div2.DivActionScrollTo
|
||||
import com.yandex.div2.DivActionTyped
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Singleton
|
||||
internal class DivActionTypedScrollHandler @Inject constructor() : DivActionTypedHandler {
|
||||
|
||||
override fun handleAction(
|
||||
scopeId: String?,
|
||||
action: DivActionTyped,
|
||||
view: Div2View,
|
||||
resolver: ExpressionResolver
|
||||
): Boolean = when(action) {
|
||||
is DivActionTyped.ScrollBy -> {
|
||||
handleAction(action.value, view, resolver)
|
||||
true
|
||||
}
|
||||
is DivActionTyped.ScrollTo -> {
|
||||
handleAction(action.value, view, resolver)
|
||||
true
|
||||
}
|
||||
else -> false
|
||||
}
|
||||
|
||||
private fun handleAction(
|
||||
action: DivActionScrollBy,
|
||||
view: Div2View,
|
||||
resolver: ExpressionResolver
|
||||
) {
|
||||
val id = action.id.evaluate(resolver)
|
||||
val offset = action.offset.evaluate(resolver).toInt()
|
||||
val step = action.itemCount.evaluate(resolver).toInt()
|
||||
val overflow = DivActionScrollBy.Overflow.toString(action.overflow.evaluate(resolver))
|
||||
val animated = action.animated.evaluate(resolver)
|
||||
|
||||
val viewController = DivViewWithItemsController.create(id, view, resolver) ?: return
|
||||
viewController.changeCurrentItemByStep(overflow, step, animated)
|
||||
viewController.scrollByOffset(overflow, offset, animated)
|
||||
}
|
||||
|
||||
private fun handleAction(
|
||||
action: DivActionScrollTo,
|
||||
view: Div2View,
|
||||
resolver: ExpressionResolver
|
||||
) {
|
||||
val id = action.id.evaluate(resolver)
|
||||
val animated = action.animated.evaluate(resolver)
|
||||
val viewController = DivViewWithItemsController.create(id, view, resolver) ?: return
|
||||
|
||||
when(val destination = action.destination) {
|
||||
is DivActionScrollDestination.Offset -> {
|
||||
val offset = destination.value.value.evaluate(resolver).toInt()
|
||||
viewController.scrollTo(offset, animated)
|
||||
}
|
||||
is DivActionScrollDestination.Index -> {
|
||||
val index = destination.value.value.evaluate(resolver).toInt()
|
||||
viewController.setCurrentItem(index, animated)
|
||||
}
|
||||
is DivActionScrollDestination.End -> {
|
||||
viewController.scrollToEnd(animated)
|
||||
}
|
||||
is DivActionScrollDestination.Start -> {
|
||||
viewController.scrollToStart(animated)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import com.yandex.div.core.actions.DivActionTypedDictSetValueHandler
|
||||
import com.yandex.div.core.actions.DivActionTypedFocusElementHandler
|
||||
import com.yandex.div.core.actions.DivActionTypedHandler
|
||||
import com.yandex.div.core.actions.DivActionTypedHideTooltipHandler
|
||||
import com.yandex.div.core.actions.DivActionTypedScrollHandler
|
||||
import com.yandex.div.core.actions.DivActionTypedSetStateHandler
|
||||
import com.yandex.div.core.actions.DivActionTypedSetStoredValueHandler
|
||||
import com.yandex.div.core.actions.DivActionTypedSetVariableHandler
|
||||
@@ -39,6 +40,7 @@ internal interface DivActionTypedModule {
|
||||
impl: DivActionTypedClearFocusHandler
|
||||
): DivActionTypedHandler
|
||||
|
||||
|
||||
@Binds
|
||||
@IntoSet
|
||||
fun provideCopyToClipboardActionHandler(
|
||||
@@ -63,6 +65,12 @@ internal interface DivActionTypedModule {
|
||||
impl: DivActionTypedHideTooltipHandler
|
||||
): DivActionTypedHandler
|
||||
|
||||
@Binds
|
||||
@IntoSet
|
||||
fun provideScrollActionHandler(
|
||||
impl: DivActionTypedScrollHandler
|
||||
): DivActionTypedHandler
|
||||
|
||||
@Binds
|
||||
@IntoSet
|
||||
fun provideSetStateActionHandler(
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
package com.yandex.div.core.view2.items
|
||||
|
||||
import android.net.Uri
|
||||
import android.util.DisplayMetrics
|
||||
import android.view.View
|
||||
import com.yandex.div.core.DivViewFacade
|
||||
import com.yandex.div.internal.KAssert
|
||||
import com.yandex.div.json.expressions.ExpressionResolver
|
||||
import com.yandex.div2.DivSizeUnit
|
||||
|
||||
private const val AUTHORITY_SET_CURRENT_ITEM = "set_current_item"
|
||||
private const val AUTHORITY_NEXT_ITEM = "set_next_item"
|
||||
@@ -49,103 +46,86 @@ internal object DivItemChangeActionHandler {
|
||||
KAssert.fail { "$PARAM_ID param is required to set item" }
|
||||
return false
|
||||
}
|
||||
val targetView = view.view.findViewWithTag<View>(id) ?: return false
|
||||
val authority = uri.authority
|
||||
val viewWithItems = DivViewWithItems.create(targetView, resolver) { direction(authority) } ?: return false
|
||||
val viewController = DivViewWithItemsController.create(id, view, resolver, direction(authority)) ?: return false
|
||||
return when (authority) {
|
||||
AUTHORITY_SET_CURRENT_ITEM ->
|
||||
handleSetCurrentItem(uri, viewWithItems)
|
||||
handleSetCurrentItem(uri, viewController)
|
||||
|
||||
AUTHORITY_NEXT_ITEM ->
|
||||
handleNextItem(uri, viewWithItems)
|
||||
handleNextItem(uri, viewController)
|
||||
|
||||
AUTHORITY_PREVIOUS_ITEM ->
|
||||
handlePreviousItem(uri, viewWithItems)
|
||||
handlePreviousItem(uri, viewController)
|
||||
|
||||
AUTHORITY_SCROLL_BACKWARD ->
|
||||
handleScrollBackward(uri, viewWithItems)
|
||||
handleScrollBackward(uri, viewController)
|
||||
|
||||
AUTHORITY_SCROLL_FORWARD ->
|
||||
handleScrollForward(uri, viewWithItems)
|
||||
handleScrollForward(uri, viewController)
|
||||
|
||||
AUTHORITY_SCROLL_TO_POSITION ->
|
||||
handleScrollTo(uri, viewWithItems)
|
||||
handleScrollTo(uri, viewController)
|
||||
|
||||
AUTHORITY_SCROLL_TO_END ->
|
||||
handleScrollToTheEnd(viewWithItems)
|
||||
handleScrollToTheEnd(viewController)
|
||||
|
||||
AUTHORITY_SCROLL_TO_START ->
|
||||
handleScrollToTheStart(viewWithItems)
|
||||
handleScrollToTheStart(viewController)
|
||||
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleSetCurrentItem(uri: Uri, view: DivViewWithItems): Boolean {
|
||||
val item = uri.getQueryParameter(PARAM_ITEM)
|
||||
if (item == null) {
|
||||
private fun handleSetCurrentItem(uri: Uri, viewController: DivViewWithItemsController): Boolean {
|
||||
val rawItem = uri.getQueryParameter(PARAM_ITEM)
|
||||
if (rawItem == null) {
|
||||
KAssert.fail { "$PARAM_ITEM is required to set current item" }
|
||||
return false
|
||||
}
|
||||
return try {
|
||||
view.currentItem = item.toInt()
|
||||
true
|
||||
val item = try {
|
||||
rawItem.toInt()
|
||||
} catch (e: NumberFormatException) {
|
||||
KAssert.fail { "$item is not a number" }
|
||||
false
|
||||
KAssert.fail { "$rawItem is not a number" }
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleNextItem(uri: Uri, view: DivViewWithItems): Boolean {
|
||||
return handleItemNavigation(uri, view) { strategy, step ->
|
||||
view.currentItem = strategy.nextItem(step)
|
||||
}
|
||||
}
|
||||
|
||||
private fun handlePreviousItem(uri: Uri, view: DivViewWithItems): Boolean {
|
||||
return handleItemNavigation(uri, view) { strategy, step ->
|
||||
view.currentItem = strategy.previousItem(step)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun handleScrollForward(uri: Uri, view: DivViewWithItems): Boolean {
|
||||
return handleItemNavigation(uri, view) { strategy, step ->
|
||||
view.scrollTo(strategy.positionAfterScrollBy(step))
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleScrollBackward(uri: Uri, view: DivViewWithItems): Boolean {
|
||||
return handleItemNavigation(uri, view) { strategy, step ->
|
||||
view.scrollTo(strategy.positionAfterScrollBy(-step))
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleScrollTo(uri: Uri, view: DivViewWithItems): Boolean {
|
||||
return handleItemNavigation(uri, view) { _, step ->
|
||||
view.scrollTo(step, DivSizeUnit.DP)
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleScrollToTheEnd(view: DivViewWithItems): Boolean {
|
||||
view.scrollToTheEnd()
|
||||
viewController.setCurrentItem(item)
|
||||
return true
|
||||
}
|
||||
|
||||
private fun handleScrollToTheStart(view: DivViewWithItems): Boolean {
|
||||
view.currentItem = 0
|
||||
return true
|
||||
private fun handleNextItem(uri: Uri, viewController: DivViewWithItemsController): Boolean {
|
||||
return withOverflowAndStep(uri, viewController::changeCurrentItemByStep)
|
||||
}
|
||||
|
||||
private inline fun handleItemNavigation(
|
||||
uri: Uri,
|
||||
view: DivViewWithItems,
|
||||
navigate: (strategy: OverflowItemStrategy, step: Int) -> Unit
|
||||
): Boolean {
|
||||
val strategy = overflowStrategy(uri, view.currentItem, view.itemCount, view.scrollRange,
|
||||
view.scrollOffset, view.metrics)
|
||||
private fun handlePreviousItem(uri: Uri, viewController: DivViewWithItemsController): Boolean {
|
||||
return withOverflowAndStep(uri) { overflow, step ->
|
||||
viewController.changeCurrentItemByStep(overflow, -step)
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleScrollForward(uri: Uri, viewController: DivViewWithItemsController): Boolean {
|
||||
return withOverflowAndStep(uri, viewController::scrollByOffset)
|
||||
}
|
||||
|
||||
private fun handleScrollBackward(uri: Uri, viewController: DivViewWithItemsController): Boolean {
|
||||
return withOverflowAndStep(uri) { overflow, step ->
|
||||
viewController.scrollByOffset(overflow, -step)
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleScrollTo(uri: Uri, viewController: DivViewWithItemsController): Boolean {
|
||||
val step = uri.getStepParam()
|
||||
navigate(strategy, step)
|
||||
viewController.scrollTo(step)
|
||||
return true
|
||||
}
|
||||
|
||||
private fun handleScrollToTheEnd(viewController: DivViewWithItemsController): Boolean {
|
||||
viewController.scrollToEnd()
|
||||
return true
|
||||
}
|
||||
|
||||
private fun handleScrollToTheStart(viewController: DivViewWithItemsController): Boolean {
|
||||
viewController.scrollToStart()
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -158,18 +138,22 @@ internal object DivItemChangeActionHandler {
|
||||
default
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun overflowStrategy(uri: Uri, currentItem: Int, itemCount: Int, scrollRange: Int,
|
||||
scrollOffset: Int, metrics: DisplayMetrics): OverflowItemStrategy {
|
||||
val overflow = uri.getQueryParameter(PARAM_OVERFLOW)
|
||||
return OverflowItemStrategy.create(overflow, currentItem, itemCount, scrollRange, scrollOffset, metrics)
|
||||
}
|
||||
private inline fun withOverflowAndStep(
|
||||
uri: Uri,
|
||||
actionOnViewController: (String?, Int) -> Unit
|
||||
): Boolean {
|
||||
val step = uri.getStepParam()
|
||||
val overflow = uri.getQueryParameter(PARAM_OVERFLOW)
|
||||
actionOnViewController(overflow, step)
|
||||
return true
|
||||
}
|
||||
|
||||
private fun direction(authority: String?): Direction {
|
||||
return when (authority) {
|
||||
AUTHORITY_PREVIOUS_ITEM -> Direction.PREVIOUS
|
||||
AUTHORITY_NEXT_ITEM -> Direction.NEXT
|
||||
else -> Direction.NEXT
|
||||
private fun direction(authority: String?): Direction {
|
||||
return when (authority) {
|
||||
AUTHORITY_PREVIOUS_ITEM -> Direction.PREVIOUS
|
||||
AUTHORITY_NEXT_ITEM -> Direction.NEXT
|
||||
else -> Direction.NEXT
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,12 +49,17 @@ internal sealed class DivViewWithItems {
|
||||
/**
|
||||
* Scroll to @param dp value.
|
||||
*/
|
||||
open fun scrollTo(value: Int, sizeUnit: DivSizeUnit = DivSizeUnit.PX) = Unit
|
||||
open fun scrollTo(value: Int, sizeUnit: DivSizeUnit = DivSizeUnit.PX, animated: Boolean = true) = Unit
|
||||
|
||||
/**
|
||||
* Scroll to the end of recycler view.
|
||||
*/
|
||||
open fun scrollToTheEnd() = Unit
|
||||
open fun scrollToTheEnd(animated: Boolean = true) = Unit
|
||||
|
||||
/**
|
||||
* sets Current item without scroll animation
|
||||
*/
|
||||
open fun setCurrentItemNoAnimation(index: Int) = Unit
|
||||
|
||||
/**
|
||||
* Implementation of [DivViewWithItems] specific for div gallery with `scroll_mode` "paging"
|
||||
@@ -75,9 +80,17 @@ internal sealed class DivViewWithItems {
|
||||
override val scrollRange get() = view.scrollRange()
|
||||
override val scrollOffset get() = view.scrollOffset()
|
||||
|
||||
override fun scrollTo(value: Int, sizeUnit: DivSizeUnit) =
|
||||
view.scrollTo(value, sizeUnit, metrics)
|
||||
override fun scrollToTheEnd() = view.scrollToTheEnd(metrics)
|
||||
override fun scrollTo(value: Int, sizeUnit: DivSizeUnit, animated: Boolean) =
|
||||
view.scrollTo(value, sizeUnit, metrics, animated)
|
||||
override fun scrollToTheEnd(animated: Boolean) {
|
||||
view.scrollToTheEnd(metrics, animated)
|
||||
}
|
||||
|
||||
override fun setCurrentItemNoAnimation(index: Int) {
|
||||
checkItem(index, itemCount) {
|
||||
view.scrollToPosition(index)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -109,9 +122,15 @@ internal sealed class DivViewWithItems {
|
||||
override val scrollRange get() = view.scrollRange()
|
||||
override val scrollOffset get() = view.scrollOffset()
|
||||
|
||||
override fun scrollTo(value: Int, sizeUnit: DivSizeUnit) =
|
||||
view.scrollTo(value, sizeUnit, metrics)
|
||||
override fun scrollToTheEnd() = view.scrollToTheEnd(metrics)
|
||||
override fun scrollTo(value: Int, sizeUnit: DivSizeUnit, animated: Boolean) =
|
||||
view.scrollTo(value, sizeUnit, metrics, animated)
|
||||
override fun scrollToTheEnd(animated: Boolean) = view.scrollToTheEnd(metrics, animated)
|
||||
|
||||
override fun setCurrentItemNoAnimation(index: Int) {
|
||||
checkItem(index, itemCount) {
|
||||
view.scrollToPosition(index)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -127,8 +146,14 @@ internal sealed class DivViewWithItems {
|
||||
override val itemCount: Int
|
||||
get() = view.viewPager.adapter?.itemCount ?: 0
|
||||
|
||||
override fun scrollToTheEnd() {
|
||||
view.viewPager.setCurrentItem(itemCount - 1, true)
|
||||
override fun scrollToTheEnd(animated: Boolean) {
|
||||
view.viewPager.setCurrentItem(itemCount - 1, animated)
|
||||
}
|
||||
|
||||
override fun setCurrentItemNoAnimation(index: Int) {
|
||||
checkItem(index, itemCount) {
|
||||
view.viewPager.setCurrentItem(index, false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -145,8 +170,14 @@ internal sealed class DivViewWithItems {
|
||||
override val itemCount: Int
|
||||
get() = view.viewPager.adapter?.count ?: 0
|
||||
|
||||
override fun scrollToTheEnd() {
|
||||
view.viewPager.setCurrentItem(itemCount - 1, true)
|
||||
override fun scrollToTheEnd(animated: Boolean) {
|
||||
view.viewPager.setCurrentItem(itemCount - 1, animated)
|
||||
}
|
||||
|
||||
override fun setCurrentItemNoAnimation(index: Int) {
|
||||
checkItem(index, itemCount) {
|
||||
view.viewPager.setCurrentItem(index, false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -206,16 +237,17 @@ private fun <T : RecyclerView> T.canScroll(): Boolean {
|
||||
}
|
||||
}
|
||||
|
||||
private fun <T : RecyclerView> T.scrollTo(value: Int, sizeUnit: DivSizeUnit, metrics: DisplayMetrics) {
|
||||
private fun <T : RecyclerView> T.scrollTo(value: Int, sizeUnit: DivSizeUnit, metrics: DisplayMetrics, animated: Boolean = true) {
|
||||
val valuePx = when (sizeUnit) {
|
||||
DivSizeUnit.PX -> value
|
||||
DivSizeUnit.SP -> value.spToPx(metrics)
|
||||
DivSizeUnit.DP -> value.dpToPx(metrics)
|
||||
}
|
||||
val lm = linearLayoutManager ?: return
|
||||
val scroll: (dx: Int, dy: Int) -> Unit = if (animated) this::smoothScrollBy else this::scrollBy
|
||||
when (lm.orientation) {
|
||||
RecyclerView.HORIZONTAL -> smoothScrollBy(valuePx - computeHorizontalScrollOffset(), 0)
|
||||
RecyclerView.VERTICAL -> smoothScrollBy(0, valuePx - computeVerticalScrollOffset())
|
||||
RecyclerView.HORIZONTAL -> scroll(valuePx - computeHorizontalScrollOffset(), 0)
|
||||
RecyclerView.VERTICAL -> scroll(0, valuePx - computeVerticalScrollOffset())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -229,8 +261,8 @@ private fun <T : RecyclerView> T.scrollOffset() = when (linearLayoutManager?.ori
|
||||
else -> computeVerticalScrollOffset()
|
||||
}
|
||||
|
||||
private fun <T : RecyclerView> T.scrollToTheEnd(metrics: DisplayMetrics) =
|
||||
scrollTo(scrollRange(), DivSizeUnit.PX, metrics)
|
||||
private fun <T : RecyclerView> T.scrollToTheEnd(metrics: DisplayMetrics, animated: Boolean = true) =
|
||||
scrollTo(scrollRange(), DivSizeUnit.PX, metrics, animated)
|
||||
|
||||
private fun LinearLayoutManager.visibleItemPosition(direction: Direction): Int {
|
||||
return when (direction) {
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.yandex.div.core.view2.items
|
||||
|
||||
import android.view.View
|
||||
import com.yandex.div.core.DivViewFacade
|
||||
import com.yandex.div.json.expressions.ExpressionResolver
|
||||
import com.yandex.div2.DivSizeUnit
|
||||
|
||||
internal class DivViewWithItemsController private constructor(private val view: DivViewWithItems) {
|
||||
fun setCurrentItem(index: Int, animated: Boolean = true) {
|
||||
if (animated) {
|
||||
view.currentItem = index
|
||||
} else {
|
||||
view.setCurrentItemNoAnimation(index)
|
||||
}
|
||||
}
|
||||
|
||||
fun changeCurrentItemByStep(overflow: String?, step: Int = 1, animated: Boolean = true) {
|
||||
val strategy = createStrategy(overflow)
|
||||
val index = when {
|
||||
step > 0 -> strategy.nextItem(step)
|
||||
step < 0 -> strategy.previousItem(-step)
|
||||
else -> return
|
||||
}
|
||||
setCurrentItem(index, animated)
|
||||
}
|
||||
|
||||
fun scrollByOffset(overflow: String? = null, offset: Int, animated: Boolean = true) {
|
||||
if (offset == 0) return
|
||||
val strategy = createStrategy(overflow)
|
||||
view.scrollTo(strategy.positionAfterScrollBy(offset), animated = animated)
|
||||
}
|
||||
|
||||
fun scrollTo(offset: Int, animated: Boolean = true) {
|
||||
view.scrollTo(offset, DivSizeUnit.DP, animated)
|
||||
}
|
||||
|
||||
fun scrollToEnd(animated: Boolean = false) {
|
||||
view.scrollToTheEnd(animated)
|
||||
}
|
||||
|
||||
fun scrollToStart(animated: Boolean = false) {
|
||||
setCurrentItem(0, animated)
|
||||
}
|
||||
|
||||
private fun createStrategy(overflow: String? = null): OverflowItemStrategy {
|
||||
return OverflowItemStrategy.create(
|
||||
overflow,
|
||||
view.currentItem,
|
||||
view.itemCount,
|
||||
view.scrollRange,
|
||||
view.scrollOffset,
|
||||
view.metrics
|
||||
)
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
fun create(
|
||||
id: String,
|
||||
view: DivViewFacade,
|
||||
resolver: ExpressionResolver,
|
||||
direction: Direction = Direction.NEXT
|
||||
): DivViewWithItemsController? {
|
||||
val targetView = view.view.findViewWithTag<View>(id) ?: return null
|
||||
val viewWithItems = DivViewWithItems.create(targetView, resolver) { direction } ?: return null
|
||||
return DivViewWithItemsController(viewWithItems)
|
||||
}
|
||||
|
||||
const val TAG = "DivViewWithItems"
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"properties": {
|
||||
"id": {
|
||||
"$description": "translations.json#/div_action_scroll_id",
|
||||
"type": "string"
|
||||
},
|
||||
"animated": {
|
||||
"$description": "translations.json#/div_action_scroll_animated",
|
||||
"type": "boolean",
|
||||
"default_value": "true"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "div-action-scroll-base.json"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"$description": "translations.json#/div_action_scroll_by",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"scroll_by"
|
||||
]
|
||||
},
|
||||
"overflow": {
|
||||
"$description": "translations.json#/div_action_scroll_overflow",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"clamp",
|
||||
"ring"
|
||||
],
|
||||
"default_value": "clamp"
|
||||
},
|
||||
"offset": {
|
||||
"$description": "translations.json#/div_action_scroll_by_offset",
|
||||
"type": "integer",
|
||||
"default_value": "0"
|
||||
},
|
||||
"item_count": {
|
||||
"$description": "translations.json#/div_action_scroll_by_item_count",
|
||||
"type": "integer",
|
||||
"default_value": "0"
|
||||
}
|
||||
},
|
||||
"platforms": [
|
||||
"android"
|
||||
],
|
||||
"required": [
|
||||
"type",
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"$description": "translations.json#/div_action_scroll_destination",
|
||||
"definitions": {
|
||||
"offset_destination": {
|
||||
"$description": "translations.json#/div_action_scroll_destination_offset",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"offset"
|
||||
]
|
||||
},
|
||||
"value": {
|
||||
"$description": "translations.json#/div_action_scroll_destination_offset_value",
|
||||
"$ref": "common.json#/non_negative_integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"type",
|
||||
"value"
|
||||
]
|
||||
},
|
||||
"index_destination": {
|
||||
"$description": "translations.json#/div_action_scroll_destination_index",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"index"
|
||||
]
|
||||
},
|
||||
"value": {
|
||||
"$description": "translations.json#/div_action_scroll_destination_index_value",
|
||||
"$ref": "common.json#/non_negative_integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"type",
|
||||
"value"
|
||||
]
|
||||
},
|
||||
"start_destination": {
|
||||
"$description": "translations.json#/div_action_scroll_destination_start",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"start"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"type"
|
||||
]
|
||||
},
|
||||
"end_destination": {
|
||||
"$description": "translations.json#/div_action_scroll_destination_end",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"end"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"type"
|
||||
]
|
||||
}
|
||||
},
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/offset_destination"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/index_destination"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/start_destination"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/end_destination"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "div-action-scroll-base.json"
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"$description": "translations.json#/div_action_scroll_to",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"scroll_to"
|
||||
]
|
||||
},
|
||||
"destination": {
|
||||
"$description": "translations.json#/div_action_scroll_to_destination",
|
||||
"$ref": "div-action-scroll-destination.json"
|
||||
}
|
||||
},
|
||||
"platforms": [
|
||||
"android"
|
||||
],
|
||||
"required": [
|
||||
"type",
|
||||
"id",
|
||||
"destination"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -33,6 +33,12 @@
|
||||
{
|
||||
"$ref": "div-action-hide-tooltip.json"
|
||||
},
|
||||
{
|
||||
"$ref": "div-action-scroll-by.json"
|
||||
},
|
||||
{
|
||||
"$ref": "div-action-scroll-to.json"
|
||||
},
|
||||
{
|
||||
"$ref": "div-action-set-state.json"
|
||||
},
|
||||
|
||||
@@ -147,6 +147,66 @@
|
||||
"en": "Context menu.",
|
||||
"ru": "Контекстное меню."
|
||||
},
|
||||
"div_action_scroll_animated": {
|
||||
"en": "If `true` (default value) scroll will be animated, else not.",
|
||||
"ru": "Если `true` (значение по умолчанию) то пролистывание будет анимировано, иначе без анимации."
|
||||
},
|
||||
"div_action_scroll_by": {
|
||||
"en": "Scrolls scrollable container from current position by `item_count` or by `offset`, if both provided scroll action will be combined, negative numbers associated with backward scroll.",
|
||||
"ru": "Пролистывает контейнер со скроллом от текущей позиции на `item_count` или `offset`, если оба значения указаны, действие будет скомбинированным, отрицательные значения пролистывают назад."
|
||||
},
|
||||
"div_action_scroll_by_offset": {
|
||||
"en": "Distance to scroll measured in `dp` from current position, negative value is associated with backward scroll. Applicable only in `gallery`.",
|
||||
"ru": "Расстояние для скроллинга измеряемое в `dp` от текущей позиции, отрицательные значения пролистывают назад. Применим только в `gallery`"
|
||||
},
|
||||
"div_action_scroll_by_item_count": {
|
||||
"en": "Count of container items to scroll, negative value is associated with backward scroll.",
|
||||
"ru": "Количество элементов контейнера, которые надо пролистать, отрицательные значения пролистывают назад."
|
||||
},
|
||||
"div_action_scroll_destination": {
|
||||
"en": "Specifies the destination of scroll in a container.",
|
||||
"ru": "Указывает кончную точку пролистывания в контейнере."
|
||||
},
|
||||
"div_action_scroll_destination_end": {
|
||||
"en": "Specifies container's end as scroll destination.",
|
||||
"ru": "Указывает конец контейнера как кончную точку пролистывания."
|
||||
},
|
||||
"div_action_scroll_destination_index": {
|
||||
"en": "Specifies element with provided index as scroll destination.",
|
||||
"ru": "Указывает элемент с заданным индексом как кончную точку пролистывания."
|
||||
},
|
||||
"div_action_scroll_destination_index_value": {
|
||||
"en": "Index of contaner's item.",
|
||||
"ru": "Индекс элемента контейнера."
|
||||
},
|
||||
"div_action_scroll_destination_offset": {
|
||||
"en": "Specifies position measured in `dp` from container's start as scroll destination. Applicable only in `gallery`.",
|
||||
"ru": "Указывает позицию измеренную в `dp` от начала контейнера как кончную точку пролистывания. Применм только в `gallery`"
|
||||
},
|
||||
"div_action_scroll_destination_offset_value": {
|
||||
"en": "Position in `dp`.",
|
||||
"ru": "Позиция в `dp`."
|
||||
},
|
||||
"div_action_scroll_destination_start": {
|
||||
"en": "Specifies container's start as scroll destination.",
|
||||
"ru": "Указывает начало контейнера как кончную точку пролистывания."
|
||||
},
|
||||
"div_action_scroll_id": {
|
||||
"en": "Identifier of the view that is going to be manipulated.",
|
||||
"ru": "Идентификатор вью в котором нужно выполнить операцию."
|
||||
},
|
||||
"div_action_scroll_overflow": {
|
||||
"en": "Specifies how navigation will occur when the boundary elements are reached:<li>`clamp` — Transition will stop at the boundary element (default value);</li><li>`ring` — Transition will be to the beginning or the end depending on the current element.</li>",
|
||||
"ru": "Указывает, как будет происходить навигация при достижении граничных элементов:<li>`clamp` — переход остановится на граничном элементе (значение по умолчанию);</li><li>`ring` — произойдет переход в начало или конец в зависимости от текущего элемента.</li>"
|
||||
},
|
||||
"div_action_scroll_to": {
|
||||
"en": "Scrolls or switches container to given destination provided by `destination`.",
|
||||
"ru": "Выполняет скролл к позиции или переключает элемент в контейнере на указанный папаметром`destiantion`."
|
||||
},
|
||||
"div_action_scroll_to_destination": {
|
||||
"en": "Specifies destination of scroll:<li>`index` - scroll or switch to item with index provided by `value`;</li><li>`offset` - scroll to position measured in `dp` from container's start and provided by `value`. Applicable only in `gallery`;</li><li>`start` - scrolls to start of container;</li><li>`end` - scrolls to end of container.</li>.",
|
||||
"ru": "Указывает конечную точку пролистывания:<li>`index` - пролистывание до элемента с индексом, указанным в `value`;</li><li>`offset` - пролистывание до позиции измеренной в `dp` от начала контейнера, указанной в `value`. Применим только в `gallery`;</li><li>`start` - пролистывание в начало контейнера;</li><li>`end` - пролистывание в конец контейнера.</li>."
|
||||
},
|
||||
"div_action_set_state": {
|
||||
"en": "Switches the appearance of content in `div-state`.",
|
||||
"ru": "Устанавливает новый внешний вид контента в `div-state`."
|
||||
|
||||
@@ -0,0 +1,217 @@
|
||||
{
|
||||
"description": "Use typed actions for scroll and navigation in gallery",
|
||||
"platforms": [
|
||||
"android"
|
||||
],
|
||||
"div_data": {
|
||||
"templates": {
|
||||
"text_block": {
|
||||
"type": "text",
|
||||
"width": {
|
||||
"type": "match_parent"
|
||||
},
|
||||
"height": {
|
||||
"type": "fixed",
|
||||
"value": 80
|
||||
},
|
||||
"background": [
|
||||
{
|
||||
"type": "solid",
|
||||
"color": "#eeeeee"
|
||||
}
|
||||
],
|
||||
"font_size": 20,
|
||||
"text_alignment_vertical": "center",
|
||||
"text_alignment_horizontal": "center",
|
||||
"text_color": "#000000",
|
||||
"margins": {
|
||||
"left": 10,
|
||||
"right": 10
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"log_id": "card",
|
||||
"states": [
|
||||
{
|
||||
"state_id": 0,
|
||||
"div": {
|
||||
"type": "container",
|
||||
"orientation": "vertical",
|
||||
"items": [
|
||||
{
|
||||
"type": "gallery",
|
||||
"id": "gallery1",
|
||||
"scroll_mode": "default",
|
||||
"items": [
|
||||
{
|
||||
"text": "Item 0",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 1",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 2",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 3",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 4",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 5",
|
||||
"type": "text_block"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"steps": [
|
||||
{
|
||||
"expected_screenshot": "step0.png"
|
||||
},
|
||||
{
|
||||
"div_actions": [
|
||||
{
|
||||
"log_id": "gallery1/current",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery1",
|
||||
"destination": {
|
||||
"type": "index",
|
||||
"value": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"expected_screenshot": "step1.png"
|
||||
},
|
||||
{
|
||||
"div_actions": [
|
||||
{
|
||||
"log_id": "gallery1/next",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery1",
|
||||
"item_count": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expected_screenshot": "step2.png"
|
||||
},
|
||||
{
|
||||
"div_actions": [
|
||||
{
|
||||
"log_id": "gallery1/prev",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery1",
|
||||
"item_count": -1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expected_screenshot": "step1.png"
|
||||
},
|
||||
{
|
||||
"div_actions": [
|
||||
{
|
||||
"log_id": "gallery1/end",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"destination": {
|
||||
"type": "end"
|
||||
},
|
||||
"id": "gallery1"
|
||||
}
|
||||
}
|
||||
],
|
||||
"delay": 500,
|
||||
"expected_screenshot": "step4.png"
|
||||
},
|
||||
{
|
||||
"div_actions": [
|
||||
{
|
||||
"log_id": "gallery1/start",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"destination": {
|
||||
"type": "start"
|
||||
},
|
||||
"id": "gallery1"
|
||||
}
|
||||
}
|
||||
],
|
||||
"delay": 500,
|
||||
"expected_screenshot": "step0.png"
|
||||
},
|
||||
{
|
||||
"div_actions": [
|
||||
{
|
||||
"log_id": "gallery1/current 2",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery1",
|
||||
"destination": {
|
||||
"type": "index",
|
||||
"value": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"expected_screenshot": "step1.png"
|
||||
},
|
||||
{
|
||||
"div_actions": [
|
||||
{
|
||||
"log_id": "gallery1/forward",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery1",
|
||||
"offset": 50
|
||||
}
|
||||
}
|
||||
],
|
||||
"expected_screenshot": "step7.png"
|
||||
},
|
||||
{
|
||||
"div_actions": [
|
||||
{
|
||||
"log_id": "gallery1/backward",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery1",
|
||||
"offset": -50
|
||||
}
|
||||
}
|
||||
],
|
||||
"expected_screenshot": "step1.png"
|
||||
},
|
||||
{
|
||||
"div_actions": [
|
||||
{
|
||||
"log_id": "gallery1/to_position",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery1",
|
||||
"destination": {
|
||||
"type": "offset",
|
||||
"value": 200
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"expected_screenshot": "step9.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,718 @@
|
||||
{
|
||||
"templates": {
|
||||
"header": {
|
||||
"type": "text",
|
||||
"font_size": 18,
|
||||
"paddings": {
|
||||
"left": 10,
|
||||
"right": 10,
|
||||
"top": 10,
|
||||
"bottom": 5
|
||||
}
|
||||
},
|
||||
"button": {
|
||||
"type": "text",
|
||||
"height": {
|
||||
"type": "fixed",
|
||||
"value": 30
|
||||
},
|
||||
"width": {
|
||||
"type": "fixed",
|
||||
"value": 60
|
||||
},
|
||||
"text_alignment_horizontal": "center",
|
||||
"text_alignment_vertical": "center",
|
||||
"font_size": 18,
|
||||
"font_weight": "bold",
|
||||
"text_color": "#ffffff",
|
||||
"background": [
|
||||
{
|
||||
"color": "#D098D3",
|
||||
"type": "solid"
|
||||
}
|
||||
],
|
||||
"margins": {
|
||||
"left": 5,
|
||||
"right": 5
|
||||
},
|
||||
"border": {
|
||||
"corner_radius": 6
|
||||
}
|
||||
},
|
||||
"text_block": {
|
||||
"type": "text",
|
||||
"$text": "header",
|
||||
"width": {
|
||||
"type": "match_parent"
|
||||
},
|
||||
"height": {
|
||||
"type": "fixed",
|
||||
"value": 80
|
||||
},
|
||||
"border": {
|
||||
"corner_radius": 6
|
||||
},
|
||||
"background": [
|
||||
{
|
||||
"color": "#0e000000",
|
||||
"type": "solid"
|
||||
}
|
||||
],
|
||||
"font_size": 20,
|
||||
"text_alignment_vertical": "center",
|
||||
"text_alignment_horizontal": "center",
|
||||
"text_color": "#000000",
|
||||
"margins": {
|
||||
"left": 10,
|
||||
"right": 10
|
||||
}
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"log_id": "card",
|
||||
"states": [
|
||||
{
|
||||
"state_id": 0,
|
||||
"div": {
|
||||
"type": "container",
|
||||
"orientation": "vertical",
|
||||
"items": [
|
||||
{
|
||||
"type": "header",
|
||||
"text": "scroll_mode = default"
|
||||
},
|
||||
{
|
||||
"type": "gallery",
|
||||
"id": "gallery1",
|
||||
"scroll_mode": "default",
|
||||
"default_item": 1,
|
||||
"items": [
|
||||
{
|
||||
"text": "Item 0",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 1",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 2",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 3",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 4",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 5",
|
||||
"type": "text_block"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "header",
|
||||
"text": "scroll_mode = default. overflow=ring"
|
||||
},
|
||||
{
|
||||
"type": "gallery",
|
||||
"id": "gallery4",
|
||||
"scroll_mode": "default",
|
||||
"default_item": 1,
|
||||
"items": [
|
||||
{
|
||||
"text": "Item 0",
|
||||
"type": "text_block",
|
||||
"width": {
|
||||
"type": "fixed",
|
||||
"value": 600
|
||||
}
|
||||
},
|
||||
{
|
||||
"text": "Item 1",
|
||||
"type": "text_block",
|
||||
"width": {
|
||||
"type": "fixed",
|
||||
"value": 600
|
||||
}
|
||||
},
|
||||
{
|
||||
"text": "Item 2",
|
||||
"type": "text_block",
|
||||
"width": {
|
||||
"type": "fixed",
|
||||
"value": 600
|
||||
}
|
||||
},
|
||||
{
|
||||
"text": "Item 3",
|
||||
"type": "text_block",
|
||||
"width": {
|
||||
"type": "fixed",
|
||||
"value": 600
|
||||
}
|
||||
},
|
||||
{
|
||||
"text": "Item 4",
|
||||
"type": "text_block",
|
||||
"width": {
|
||||
"type": "fixed",
|
||||
"value": 600
|
||||
}
|
||||
},
|
||||
{
|
||||
"text": "Item 5",
|
||||
"type": "text_block",
|
||||
"width": {
|
||||
"type": "fixed",
|
||||
"value": 600
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "header",
|
||||
"text": "scroll_mode = paging"
|
||||
},
|
||||
{
|
||||
"type": "gallery",
|
||||
"id": "gallery2",
|
||||
"scroll_mode": "paging",
|
||||
"default_item": 1,
|
||||
"items": [
|
||||
{
|
||||
"text": "Item 0",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 1",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 2",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 3",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 4",
|
||||
"type": "text_block"
|
||||
},
|
||||
{
|
||||
"text": "Item 5",
|
||||
"type": "text_block"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "header",
|
||||
"text": "scroll_mode = paging. overflow=ring"
|
||||
},
|
||||
{
|
||||
"type": "gallery",
|
||||
"id": "gallery3",
|
||||
"scroll_mode": "paging",
|
||||
"default_item": 1,
|
||||
"items": [
|
||||
{
|
||||
"text": "Item 0",
|
||||
"type": "text_block",
|
||||
"width": {
|
||||
"type": "fixed",
|
||||
"value": 600
|
||||
}
|
||||
},
|
||||
{
|
||||
"text": "Item 1",
|
||||
"type": "text_block",
|
||||
"width": {
|
||||
"type": "fixed",
|
||||
"value": 600
|
||||
}
|
||||
},
|
||||
{
|
||||
"text": "Item 2",
|
||||
"type": "text_block",
|
||||
"width": {
|
||||
"type": "fixed",
|
||||
"value": 600
|
||||
}
|
||||
},
|
||||
{
|
||||
"text": "Item 3",
|
||||
"type": "text_block",
|
||||
"width": {
|
||||
"type": "fixed",
|
||||
"value": 600
|
||||
}
|
||||
},
|
||||
{
|
||||
"text": "Item 4",
|
||||
"type": "text_block",
|
||||
"width": {
|
||||
"type": "fixed",
|
||||
"value": 600
|
||||
}
|
||||
},
|
||||
{
|
||||
"text": "Item 5",
|
||||
"type": "text_block",
|
||||
"width": {
|
||||
"type": "fixed",
|
||||
"value": 600
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "container",
|
||||
"orientation": "horizontal",
|
||||
"content_alignment_horizontal": "center",
|
||||
"items": [
|
||||
{
|
||||
"type": "button",
|
||||
"text": "<<",
|
||||
"actions": [
|
||||
{
|
||||
"log_id": "gallery1/first",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery1",
|
||||
"animated": false,
|
||||
"destination": {
|
||||
"type": "index",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery2/first",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery2",
|
||||
"destination": {
|
||||
"type": "index",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery3/first",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery3",
|
||||
"animated": false,
|
||||
"destination": {
|
||||
"type": "index",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery4/first",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery4",
|
||||
"destination": {
|
||||
"type": "index",
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "button",
|
||||
"text": "<",
|
||||
"actions": [
|
||||
{
|
||||
"log_id": "gallery1/prev",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery1",
|
||||
"item_count": -1,
|
||||
"animated": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery2/prev",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery2",
|
||||
"item_count": -1
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery3/prev",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery3",
|
||||
"overflow": "ring",
|
||||
"item_count": -1,
|
||||
"animated": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery4/prev",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery4",
|
||||
"overflow": "ring",
|
||||
"item_count": -1
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "button",
|
||||
"text": ">",
|
||||
"actions": [
|
||||
{
|
||||
"log_id": "gallery1/next",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery1",
|
||||
"item_count": 1,
|
||||
"animated": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery2/next",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery2",
|
||||
"item_count": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery3/next",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery3",
|
||||
"overflow": "ring",
|
||||
"item_count": 1,
|
||||
"animated": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery4/next",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery4",
|
||||
"overflow": "ring",
|
||||
"item_count": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "button",
|
||||
"text": ">>",
|
||||
"actions": [
|
||||
{
|
||||
"log_id": "gallery1/last",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery1",
|
||||
"animated": false,
|
||||
"destination": {
|
||||
"type": "index",
|
||||
"value": 5
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery2/last",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery2",
|
||||
"destination": {
|
||||
"type": "index",
|
||||
"value": 5
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery3/last",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery3",
|
||||
"animated": false,
|
||||
"destination": {
|
||||
"type": "index",
|
||||
"value": 5
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery4/last",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery4",
|
||||
"destination": {
|
||||
"type": "index",
|
||||
"value": 5
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"paddings": {
|
||||
"top": 10
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "container",
|
||||
"orientation": "horizontal",
|
||||
"content_alignment_horizontal": "center",
|
||||
"items": [
|
||||
{
|
||||
"type": "button",
|
||||
"text": "<<",
|
||||
"actions": [
|
||||
{
|
||||
"log_id": "gallery1/scroll_to_start",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"destination": {
|
||||
"type": "start"
|
||||
},
|
||||
"id": "gallery1",
|
||||
"animated": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery2/scroll_to_start",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"destination": {
|
||||
"type": "start"
|
||||
},
|
||||
"id": "gallery2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery3/scroll_to_start",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"destination": {
|
||||
"type": "start"
|
||||
},
|
||||
"id": "gallery3",
|
||||
"animated": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery4/scroll_to_start",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"destination": {
|
||||
"type": "start"
|
||||
},
|
||||
"id": "gallery4"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "button",
|
||||
"text": "<",
|
||||
"actions": [
|
||||
{
|
||||
"log_id": "gallery1/scroll_backward by 50dp",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery1",
|
||||
"offset": -50,
|
||||
"animated": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery2/scroll_backward by 50dp",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery2",
|
||||
"offset": -50
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery3/scroll_backward by 50dp",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery3",
|
||||
"offset": -50,
|
||||
"overflow": "ring",
|
||||
"animated": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery4/scroll_backward by 50dp",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery4",
|
||||
"offset": -50,
|
||||
"overflow": "ring"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "button",
|
||||
"text": "*",
|
||||
"actions": [
|
||||
{
|
||||
"log_id": "gallery1/scroll to position 300dp",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery1",
|
||||
"animated": false,
|
||||
"destination": {
|
||||
"type": "offset",
|
||||
"value": 300
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery2/scroll to position 300dp",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery2",
|
||||
"destination": {
|
||||
"type": "offset",
|
||||
"value": 300
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery3/scroll to position 300dp",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery3",
|
||||
"animated": false,
|
||||
"destination": {
|
||||
"type": "offset",
|
||||
"value": 300
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery4/scroll to position 300dp",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"id": "gallery4",
|
||||
"destination": {
|
||||
"type": "offset",
|
||||
"value": 300
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "button",
|
||||
"text": ">",
|
||||
"actions": [
|
||||
{
|
||||
"log_id": "gallery1/scroll_forward by 50dp",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery1",
|
||||
"offset": 50,
|
||||
"animated": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery2/scroll_forward by 50dp",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery2",
|
||||
"offset": 50
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery3/scroll_forward by 50dp",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery3",
|
||||
"offset": 50,
|
||||
"overflow": "ring",
|
||||
"animated": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery4/scroll_forward by 50dp",
|
||||
"typed": {
|
||||
"type": "scroll_by",
|
||||
"id": "gallery4",
|
||||
"offset": 50,
|
||||
"overflow": "ring"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "button",
|
||||
"text": ">>",
|
||||
"actions": [
|
||||
{
|
||||
"log_id": "gallery1/scroll_to_end",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"destination": {
|
||||
"type": "end"
|
||||
},
|
||||
"id": "gallery1",
|
||||
"animated": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery2/scroll_to_end",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"destination": {
|
||||
"type": "end"
|
||||
},
|
||||
"id": "gallery2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery3/scroll_to_end",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"destination": {
|
||||
"type": "end"
|
||||
},
|
||||
"id": "gallery3",
|
||||
"animated": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"log_id": "gallery4/scroll_to_end",
|
||||
"typed": {
|
||||
"type": "scroll_to",
|
||||
"destination": {
|
||||
"type": "end"
|
||||
},
|
||||
"id": "gallery4"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"paddings": {
|
||||
"top": 10
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -224,6 +224,24 @@
|
||||
],
|
||||
"file": "gallery/gallery-item-actions.json"
|
||||
},
|
||||
{
|
||||
"title": "Gallery item actions typed",
|
||||
"tags": [
|
||||
"DivGallery",
|
||||
"TypedActions"
|
||||
],
|
||||
"steps": [
|
||||
"Horizontal swipe to left",
|
||||
"Horizontal swipe to right",
|
||||
"Click on buttons"
|
||||
],
|
||||
"expected_results": [
|
||||
"Content is changes depending on scroll direction or clicked buttons",
|
||||
"Gallery scroll is logged",
|
||||
"first and last galleries are scrolled without animation"
|
||||
],
|
||||
"file": "gallery/gallery-item-actions-typed.json"
|
||||
},
|
||||
{
|
||||
"title": "Gallery default item states",
|
||||
"automated": [
|
||||
|
||||