@quicktvui/ai 1.0.7 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/package.json +1 -1
  2. package/rules/.clinerules +27 -4
  3. package/rules/.cursorrules +27 -4
  4. package/rules/.github/copilot-instructions.md +27 -4
  5. package/rules/.source/hippy/extend_views/CoverFlowHorizontalView.java +203 -0
  6. package/rules/.source/hippy/extend_views/CoverFlowVerticalView.java +203 -0
  7. package/rules/.source/hippy/extend_views/CoverFlowViewController.java +195 -0
  8. package/rules/.source/hippy/extend_views/EngineRootView.java +125 -0
  9. package/rules/.source/hippy/extend_views/ExtendTag.java +83 -0
  10. package/rules/.source/hippy/extend_views/FocusSearchHelper.java +124 -0
  11. package/rules/.source/hippy/extend_views/IRecyclerItemView.java +12 -0
  12. package/rules/.source/hippy/extend_views/JSEventHandleView.java +5 -0
  13. package/rules/.source/hippy/extend_views/MarqueeRelayManager.java +133 -0
  14. package/rules/.source/hippy/extend_views/MarqueeRelayTextView.java +211 -0
  15. package/rules/.source/hippy/extend_views/ProgressBarView.java +83 -0
  16. package/rules/.source/hippy/extend_views/ProgressBarViewController.java +145 -0
  17. package/rules/.source/hippy/extend_views/SeekBarView.java +104 -0
  18. package/rules/.source/hippy/extend_views/SeekBarViewController.java +218 -0
  19. package/rules/.source/hippy/extend_views/StateImageView.java +149 -0
  20. package/rules/.source/hippy/extend_views/StateImageViewController.java +34 -0
  21. package/rules/.source/hippy/extend_views/TVButtonView.java +314 -0
  22. package/rules/.source/hippy/extend_views/TVButtonViewController.java +89 -0
  23. package/rules/.source/hippy/extend_views/TVTextView.java +684 -0
  24. package/rules/.source/hippy/extend_views/TVViewActor.java +811 -0
  25. package/rules/.source/hippy/extend_views/TVViewActorHost.java +6 -0
  26. package/rules/.source/hippy/extend_views/TVViewActor/346/216/245/345/205/245.md +66 -0
  27. package/rules/.source/hippy/extend_views/TemplateUtil.java +336 -0
  28. package/rules/.source/hippy/extend_views/TextButtonNode.java +47 -0
  29. package/rules/.source/hippy/extend_views/TextViewController.java +377 -0
  30. package/rules/.source/hippy/extend_views/fastlist/CenterFlyInAnimator.java +96 -0
  31. package/rules/.source/hippy/extend_views/fastlist/ChildOnScreenScroller.java +548 -0
  32. package/rules/.source/hippy/extend_views/fastlist/ClonedViewTag.java +17 -0
  33. package/rules/.source/hippy/extend_views/fastlist/EventDeliverer.java +55 -0
  34. package/rules/.source/hippy/extend_views/fastlist/FastAdapter.java +4683 -0
  35. package/rules/.source/hippy/extend_views/fastlist/FastAdapterUtil.java +982 -0
  36. package/rules/.source/hippy/extend_views/fastlist/FastFlexNode.java +48 -0
  37. package/rules/.source/hippy/extend_views/fastlist/FastFlexView.java +873 -0
  38. package/rules/.source/hippy/extend_views/fastlist/FastFlexViewController.java +130 -0
  39. package/rules/.source/hippy/extend_views/fastlist/FastItemNode.java +67 -0
  40. package/rules/.source/hippy/extend_views/fastlist/FastItemView.java +306 -0
  41. package/rules/.source/hippy/extend_views/fastlist/FastItemViewController.java +106 -0
  42. package/rules/.source/hippy/extend_views/fastlist/FastListModule.java +95 -0
  43. package/rules/.source/hippy/extend_views/fastlist/FastListNode.java +90 -0
  44. package/rules/.source/hippy/extend_views/fastlist/FastListView.java +2466 -0
  45. package/rules/.source/hippy/extend_views/fastlist/FastListViewController.java +1038 -0
  46. package/rules/.source/hippy/extend_views/fastlist/FastListView/346/270/262/346/237/223/346/265/201/347/250/213/345/233/276.graffle +0 -0
  47. package/rules/.source/hippy/extend_views/fastlist/FastPendingView.java +47 -0
  48. package/rules/.source/hippy/extend_views/fastlist/ItemDecorations.java +71 -0
  49. package/rules/.source/hippy/extend_views/fastlist/ItemStoreNode.java +64 -0
  50. package/rules/.source/hippy/extend_views/fastlist/ItemStoreView.java +13 -0
  51. package/rules/.source/hippy/extend_views/fastlist/ItemStoreViewController.java +45 -0
  52. package/rules/.source/hippy/extend_views/fastlist/ListItemHolder.java +7 -0
  53. package/rules/.source/hippy/extend_views/fastlist/ListViewControlProp.java +41 -0
  54. package/rules/.source/hippy/extend_views/fastlist/MouseRecycleView.java +509 -0
  55. package/rules/.source/hippy/extend_views/fastlist/OnFastItemClickListener.java +12 -0
  56. package/rules/.source/hippy/extend_views/fastlist/OnFastItemFocusChangeListener.java +9 -0
  57. package/rules/.source/hippy/extend_views/fastlist/OnFastScrollStateChangedListener.java +7 -0
  58. package/rules/.source/hippy/extend_views/fastlist/PendingListNode.java +18 -0
  59. package/rules/.source/hippy/extend_views/fastlist/PendingViewController.java +13 -0
  60. package/rules/.source/hippy/extend_views/fastlist/PostHandlerView.java +6 -0
  61. package/rules/.source/hippy/extend_views/fastlist/PostTaskHolder.java +20 -0
  62. package/rules/.source/hippy/extend_views/fastlist/ReplaceChildController.java +105 -0
  63. package/rules/.source/hippy/extend_views/fastlist/ReplaceChildView.java +312 -0
  64. package/rules/.source/hippy/extend_views/fastlist/TVListView.java +3692 -0
  65. package/rules/.source/hippy/extend_views/fastlist/TemplateCodeParser.java +247 -0
  66. package/rules/.source/hippy/extend_views/fastlist/Utils.java +572 -0
  67. package/rules/.source/hippy/extend_views/fastlist/ViewTag.java +317 -0
  68. package/rules/.source/hippy/extend_views/fastlist/VirtualListView.java +8 -0
  69. package/rules/.source/hippy/extend_views/fastlist/diff/FastListDataBindingHelper.java +320 -0
  70. package/rules/.source/hippy/extend_views/fastlist/diff/KeyDiffHelper.java +289 -0
  71. package/rules/.source/hippy/extend_views/fastlist/diff/NoKeyDiffHelper.java +278 -0
  72. package/rules/.source/hippy/extend_views/tag/FontTag.java +53 -0
  73. package/rules/.source/hippy/extend_views/tag/HtmlTag.java +191 -0
  74. package/rules/.source/hippy/extend_views/tag/HtmlTagHandler.java +185 -0
  75. package/rules/.source/hippy/extend_views/tag/SpanTag.java +160 -0
  76. package/rules/.source/hippy/extend_views/tag/TextFontSpan.java +102 -0
  77. package/rules/.source/hippy/extend_views/waterfall/Chunk.java +10 -0
  78. package/rules/.source/hippy/extend_views/waterfall/ChunkGroup.java +5 -0
  79. package/rules/.source/hippy/extend_views/waterfall/Section.java +4 -0
  80. package/rules/.source/hippy/extend_views/waterfall/Tabs.java +5 -0
  81. package/rules/.source/hippy/extend_views/waterfall/WaterfallUtils.java +26 -0
  82. package/rules/.source/hippy/hippy_uimanager/ControllerHolder.java +30 -0
  83. package/rules/.source/hippy/hippy_uimanager/ControllerManager.java +651 -0
  84. package/rules/.source/hippy/hippy_uimanager/ControllerRegistry.java +102 -0
  85. package/rules/.source/hippy/hippy_uimanager/ControllerUpdateManger.java +252 -0
  86. package/rules/.source/hippy/hippy_uimanager/CustomControllerHelper.java +425 -0
  87. package/rules/.source/hippy/hippy_uimanager/DiffUtils.java +526 -0
  88. package/rules/.source/hippy/hippy_uimanager/ExtendViewGroup.java +36 -0
  89. package/rules/.source/hippy/hippy_uimanager/HippyCustomViewCreator.java +29 -0
  90. package/rules/.source/hippy/hippy_uimanager/HippyGroupController.java +83 -0
  91. package/rules/.source/hippy/hippy_uimanager/HippyViewBase.java +27 -0
  92. package/rules/.source/hippy/hippy_uimanager/HippyViewController.java +2189 -0
  93. package/rules/.source/hippy/hippy_uimanager/HippyViewEvent.java +52 -0
  94. package/rules/.source/hippy/hippy_uimanager/IHippyZIndexViewGroup.java +24 -0
  95. package/rules/.source/hippy/hippy_uimanager/InternalExtendViewUtil.java +395 -0
  96. package/rules/.source/hippy/hippy_uimanager/ListItemRenderNode.java +143 -0
  97. package/rules/.source/hippy/hippy_uimanager/ListViewRenderNode.java +44 -0
  98. package/rules/.source/hippy/hippy_uimanager/MatrixUtil.java +470 -0
  99. package/rules/.source/hippy/hippy_uimanager/NativeGestureDispatcher.java +349 -0
  100. package/rules/.source/hippy/hippy_uimanager/NativeGestureProcessor.java +188 -0
  101. package/rules/.source/hippy/hippy_uimanager/PullFooterRenderNode.java +43 -0
  102. package/rules/.source/hippy/hippy_uimanager/PullHeaderRenderNode.java +43 -0
  103. package/rules/.source/hippy/hippy_uimanager/RenderManager.java +304 -0
  104. package/rules/.source/hippy/hippy_uimanager/RenderNode.java +533 -0
  105. package/rules/.source/hippy/hippy_uimanager/StateView.java +17 -0
  106. package/rules/.source/hippy/hippy_uimanager/TransformUtil.java +125 -0
  107. package/rules/.source/hippy/hippy_uimanager/ViewGroupDrawingOrderHelper.java +108 -0
  108. package/rules/.source/hippy/hippy_uimanager/ViewStateProvider.java +10 -0
  109. package/rules/.source/hippy/hippy_views/audioview/AudioPlayManager.java +457 -0
  110. package/rules/.source/hippy/hippy_views/audioview/AudioView.java +225 -0
  111. package/rules/.source/hippy/hippy_views/audioview/AudioViewController.java +135 -0
  112. package/rules/.source/hippy/hippy_views/common/CommonBackgroundDrawable.java +58 -0
  113. package/rules/.source/hippy/hippy_views/common/CommonBorder.java +37 -0
  114. package/rules/.source/hippy/hippy_views/custom/HippyCustomPropsController.java +61 -0
  115. package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerListAdapter.java +399 -0
  116. package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerView.java +378 -0
  117. package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerViewController.java +187 -0
  118. package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerViewHolder.java +39 -0
  119. package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerViewWrapper.java +134 -0
  120. package/rules/.source/hippy/hippy_views/hippylist/NodePositionHelper.java +55 -0
  121. package/rules/.source/hippy/hippy_views/hippylist/PreloadHelper.java +54 -0
  122. package/rules/.source/hippy/hippy_views/hippylist/PullFooterEventHelper.java +61 -0
  123. package/rules/.source/hippy/hippy_views/hippylist/PullHeaderEventHelper.java +127 -0
  124. package/rules/.source/hippy/hippy_views/hippylist/RecyclerViewEventHelper.java +394 -0
  125. package/rules/.source/hippy/hippy_views/image/HippyContentDrawable.java +113 -0
  126. package/rules/.source/hippy/hippy_views/image/HippyImageView.java +1608 -0
  127. package/rules/.source/hippy/hippy_views/image/HippyImageViewController.java +382 -0
  128. package/rules/.source/hippy/hippy_views/image/IImageStateListener.java +7 -0
  129. package/rules/.source/hippy/hippy_views/list/ChildOnScreenScroller.java +255 -0
  130. package/rules/.source/hippy/hippy_views/list/HippyListAdapter.java +647 -0
  131. package/rules/.source/hippy/hippy_views/list/HippyListItemView.java +162 -0
  132. package/rules/.source/hippy/hippy_views/list/HippyListItemViewController.java +45 -0
  133. package/rules/.source/hippy/hippy_views/list/HippyListView.java +915 -0
  134. package/rules/.source/hippy/hippy_views/list/HippyListViewController.java +622 -0
  135. package/rules/.source/hippy/hippy_views/list/HippyRecycler.java +31 -0
  136. package/rules/.source/hippy/hippy_views/list/IRecycleItemTypeChange.java +23 -0
  137. package/rules/.source/hippy/hippy_views/list/ItemDecorations.java +70 -0
  138. package/rules/.source/hippy/hippy_views/list/NegativeLongKeyFlinger.java +156 -0
  139. package/rules/.source/hippy/hippy_views/list/NodeHolder.java +34 -0
  140. package/rules/.source/hippy/hippy_views/list/RecycleViewFlinger.java +126 -0
  141. package/rules/.source/hippy/hippy_views/list/TVRecyclerView.java +2070 -0
  142. package/rules/.source/hippy/hippy_views/list/TVSingleLineListView.java +15 -0
  143. package/rules/.source/hippy/hippy_views/modal/HippyModalHostManager.java +102 -0
  144. package/rules/.source/hippy/hippy_views/modal/HippyModalHostView.java +597 -0
  145. package/rules/.source/hippy/hippy_views/modal/ModalHostHelper.java +46 -0
  146. package/rules/.source/hippy/hippy_views/modal/ModalStyleNode.java +34 -0
  147. package/rules/.source/hippy/hippy_views/modal/RequestCloseEvent.java +32 -0
  148. package/rules/.source/hippy/hippy_views/modal/ShowEvent.java +31 -0
  149. package/rules/.source/hippy/hippy_views/navigator/Navigator.java +126 -0
  150. package/rules/.source/hippy/hippy_views/navigator/NavigatorController.java +120 -0
  151. package/rules/.source/hippy/hippy_views/refresh/HippyPullFooterView.java +47 -0
  152. package/rules/.source/hippy/hippy_views/refresh/HippyPullFooterViewController.java +65 -0
  153. package/rules/.source/hippy/hippy_views/refresh/HippyPullHeaderView.java +39 -0
  154. package/rules/.source/hippy/hippy_views/refresh/HippyPullHeaderViewController.java +104 -0
  155. package/rules/.source/hippy/hippy_views/refresh/RefreshWrapper.java +237 -0
  156. package/rules/.source/hippy/hippy_views/refresh/RefreshWrapperController.java +62 -0
  157. package/rules/.source/hippy/hippy_views/refresh/RefreshWrapperItemController.java +39 -0
  158. package/rules/.source/hippy/hippy_views/refresh/RefreshWrapperItemView.java +26 -0
  159. package/rules/.source/hippy/hippy_views/scroll/HippyHorizontalScrollView.java +500 -0
  160. package/rules/.source/hippy/hippy_views/scroll/HippyOnScrollHelper.java +39 -0
  161. package/rules/.source/hippy/hippy_views/scroll/HippyScrollView.java +46 -0
  162. package/rules/.source/hippy/hippy_views/scroll/HippyScrollViewController.java +178 -0
  163. package/rules/.source/hippy/hippy_views/scroll/HippyScrollViewEventHelper.java +92 -0
  164. package/rules/.source/hippy/hippy_views/scroll/HippyVerticalScrollView.java +522 -0
  165. package/rules/.source/hippy/hippy_views/text/HippyTextView.java +512 -0
  166. package/rules/.source/hippy/hippy_views/text/HippyTextViewController.java +77 -0
  167. package/rules/.source/hippy/hippy_views/textinput/HippyTextInput.java +668 -0
  168. package/rules/.source/hippy/hippy_views/textinput/HippyTextInputController.java +528 -0
  169. package/rules/.source/hippy/hippy_views/textinput/TextInputNode.java +115 -0
  170. package/rules/.source/hippy/hippy_views/videoview/APEZProvider.java +287 -0
  171. package/rules/.source/hippy/hippy_views/videoview/APKExpansionSupport.java +82 -0
  172. package/rules/.source/hippy/hippy_views/videoview/PivotPoint.java +13 -0
  173. package/rules/.source/hippy/hippy_views/videoview/ScalableType.java +34 -0
  174. package/rules/.source/hippy/hippy_views/videoview/ScalableVideoView.java +265 -0
  175. package/rules/.source/hippy/hippy_views/videoview/ScaleManager.java +191 -0
  176. package/rules/.source/hippy/hippy_views/videoview/Size.java +19 -0
  177. package/rules/.source/hippy/hippy_views/videoview/VideoHippyView.java +917 -0
  178. package/rules/.source/hippy/hippy_views/videoview/VideoHippyViewController.java +236 -0
  179. package/rules/.source/hippy/hippy_views/videoview/ZipResourceFile.java +427 -0
  180. package/rules/.source/hippy/hippy_views/view/CardRootView.java +28 -0
  181. package/rules/.source/hippy/hippy_views/view/CustomLayoutView.java +10 -0
  182. package/rules/.source/hippy/hippy_views/view/CustomNodeView.java +5 -0
  183. package/rules/.source/hippy/hippy_views/view/DialogViewGroup.java +113 -0
  184. package/rules/.source/hippy/hippy_views/view/HippyViewGroup.java +2042 -0
  185. package/rules/.source/hippy/hippy_views/view/HippyViewGroupController.java +583 -0
  186. package/rules/.source/hippy/hippy_views/view/WindowRoot.java +5 -0
  187. package/rules/.source/hippy/hippy_views/viewpager/HippyViewPager.java +308 -0
  188. package/rules/.source/hippy/hippy_views/viewpager/HippyViewPagerAdapter.java +148 -0
  189. package/rules/.source/hippy/hippy_views/viewpager/HippyViewPagerController.java +246 -0
  190. package/rules/.source/hippy/hippy_views/viewpager/HippyViewPagerItem.java +27 -0
  191. package/rules/.source/hippy/hippy_views/viewpager/HippyViewPagerItemController.java +42 -0
  192. package/rules/.source/hippy/hippy_views/viewpager/ViewPagerPageChangeListener.java +114 -0
  193. package/rules/.source/hippy/hippy_views/viewpager/event/HippyPageItemExposureEvent.java +40 -0
  194. package/rules/.source/hippy/hippy_views/viewpager/event/HippyPageScrollEvent.java +43 -0
  195. package/rules/.source/hippy/hippy_views/viewpager/event/HippyPageScrollStateChangedEvent.java +42 -0
  196. package/rules/.source/hippy/hippy_views/viewpager/event/HippyPageSelectedEvent.java +42 -0
  197. package/rules/.source/hippy/hippy_views/webview/HippyWebView.java +160 -0
  198. package/rules/.source/hippy/hippy_views/webview/HippyWebViewBridge.java +20 -0
  199. package/rules/.source/hippy/hippy_views/webview/HippyWebViewController.java +103 -0
  200. package/rules/.source/hippy/hippy_views/webview/HippyWebViewInner.java +77 -0
  201. package/rules/.windsurfrules +27 -4
  202. package/rules/AGENTS.md +27 -4
  203. package/rules/CLAUDE.md +27 -3
  204. package/rules/GEMINI.md +25 -3
@@ -0,0 +1,178 @@
1
+ package com.tencent.mtt.hippy.views.scroll;
2
+
3
+ import android.content.Context;
4
+ import android.text.TextUtils;
5
+ import android.view.View;
6
+ import android.view.ViewGroup;
7
+ import com.tencent.mtt.hippy.annotation.HippyController;
8
+ import com.tencent.mtt.hippy.annotation.HippyControllerProps;
9
+ import com.tencent.mtt.hippy.common.HippyArray;
10
+ import com.tencent.mtt.hippy.common.HippyMap;
11
+ import com.tencent.mtt.hippy.uimanager.HippyGroupController;
12
+ import com.tencent.mtt.hippy.utils.PixelUtil;
13
+
14
+ @SuppressWarnings({"deprecation", "unused", "rawtypes"})
15
+ @HippyController(name = HippyScrollViewController.CLASS_NAME)
16
+ public class HippyScrollViewController<T extends ViewGroup & HippyScrollView> extends
17
+ HippyGroupController {
18
+
19
+ protected static final String SCROLL_TO = "scrollTo";
20
+ private static final String SCROLL_TO_WITHOPTIONS = "scrollToWithOptions";
21
+
22
+ public static final String CLASS_NAME = "ScrollView";
23
+
24
+
25
+ @Override
26
+ protected View createViewImpl(Context context, HippyMap iniProps) {
27
+
28
+ if (iniProps != null && iniProps.containsKey("horizontal") && iniProps
29
+ .getBoolean("horizontal")) {
30
+ return new HippyHorizontalScrollView(context);
31
+ } else {
32
+ return new HippyVerticalScrollView(context);
33
+ }
34
+
35
+ // return super.createViewImpl(context, iniProps);
36
+ }
37
+
38
+ @Override
39
+ protected View createViewImpl(Context context) {
40
+ return null;
41
+ // return new HippyScrollView(context);
42
+ }
43
+
44
+ @HippyControllerProps(name = "scrollEnabled", defaultType = HippyControllerProps.BOOLEAN, defaultBoolean = true)
45
+ public void setScrollEnabled(HippyScrollView view, boolean flag) {
46
+ view.setScrollEnabled(flag);
47
+ }
48
+
49
+ @HippyControllerProps(name = "showScrollIndicator", defaultType = HippyControllerProps.BOOLEAN)
50
+ public void setShowScrollIndicator(HippyScrollView view, boolean flag) {
51
+ view.showScrollIndicator(flag);
52
+ }
53
+
54
+ @HippyControllerProps(name = "onScrollEnable", defaultType = HippyControllerProps.BOOLEAN)
55
+ public void setScrollEventEnable(HippyScrollView view, boolean flag) {
56
+ view.setScrollEventEnable(flag);
57
+ }
58
+
59
+ @HippyControllerProps(name = "onScrollBeginDrag", defaultType = HippyControllerProps.BOOLEAN)
60
+ public void setScrollBeginDragEventEnable(HippyScrollView view, boolean flag) {
61
+ view.setScrollBeginDragEventEnable(flag);
62
+ }
63
+
64
+ @HippyControllerProps(name = "onScrollEndDrag", defaultType = HippyControllerProps.BOOLEAN)
65
+ public void setScrollEndDragEventEnable(HippyScrollView view, boolean flag) {
66
+ view.setScrollEndDragEventEnable(flag);
67
+ }
68
+
69
+ @HippyControllerProps(name = "onMomentumScrollBegin", defaultType = HippyControllerProps.BOOLEAN)
70
+ public void setMomentumScrollBeginEventEnable(HippyScrollView view, boolean flag) {
71
+ view.setMomentumScrollBeginEventEnable(flag);
72
+ }
73
+
74
+ @HippyControllerProps(name = "onMomentumScrollEnd", defaultType = HippyControllerProps.BOOLEAN)
75
+ public void setMomentumScrollEndEventEnable(HippyScrollView view, boolean flag) {
76
+ view.setMomentumScrollEndEventEnable(flag);
77
+ }
78
+
79
+ @HippyControllerProps(name = "flingEnabled", defaultType = HippyControllerProps.BOOLEAN, defaultBoolean = true)
80
+ public void setFlingEnabled(HippyScrollView view, boolean flag) {
81
+ view.setFlingEnabled(flag);
82
+ }
83
+
84
+ @HippyControllerProps(name = "contentOffset4Reuse")
85
+ public void setContentOffset4Reuse(HippyScrollView view, HippyMap offsetMap) {
86
+ view.setContentOffset4Reuse(offsetMap);
87
+ }
88
+
89
+ @HippyControllerProps(name = "pagingEnabled", defaultType = HippyControllerProps.BOOLEAN)
90
+ public void setPagingEnabled(HippyScrollView view, boolean pagingEnabled) {
91
+ view.setPagingEnabled(pagingEnabled);
92
+ }
93
+
94
+ @HippyControllerProps(name = "scrollEventThrottle", defaultType = HippyControllerProps.NUMBER, defaultNumber = 30.0D)
95
+ public void setScrollEventThrottle(HippyScrollView view, int scrollEventThrottle) {
96
+ view.setScrollEventThrottle(scrollEventThrottle);
97
+ }
98
+
99
+ @HippyControllerProps(name = "scrollMinOffset", defaultType = HippyControllerProps.NUMBER, defaultNumber = 5)
100
+ public void setScrollMinOffset(HippyScrollView view, int scrollMinOffset) {
101
+ view.setScrollMinOffset(scrollMinOffset);
102
+ }
103
+
104
+ @HippyControllerProps(name = "initialContentOffset", defaultType = HippyControllerProps.NUMBER, defaultNumber = 0)
105
+ public void setInitialContentOffset(HippyScrollView view, int offset) {
106
+ view.setInitialContentOffset((int)PixelUtil.dp2px(offset));
107
+ }
108
+
109
+ @Override
110
+ public void onBatchComplete(View view) {
111
+ super.onBatchComplete(view);
112
+
113
+ if (view instanceof HippyScrollView) {
114
+ ((HippyScrollView)view).scrollToInitContentOffset();
115
+ }
116
+ }
117
+
118
+ @Override
119
+ public void dispatchFunction(View view, String functionName, HippyArray args) {
120
+ //noinspection unchecked
121
+ super.dispatchFunction((ViewGroup) view, functionName, args);
122
+ if (view instanceof HippyScrollView) {
123
+ if (TextUtils.equals(SCROLL_TO, functionName)) {
124
+ int destX = Math.round(PixelUtil.dp2px(args.getDouble(0)));
125
+ int destY = Math.round(PixelUtil.dp2px(args.getDouble(1)));
126
+ boolean animated = args.getBoolean(2);
127
+
128
+ if (animated) {
129
+ ((HippyScrollView) view).callSmoothScrollTo(destX, destY, 0);//用默认的动画事件
130
+ } else {
131
+ view.scrollTo(destX, destY);
132
+ }
133
+ }
134
+ if (TextUtils.equals(SCROLL_TO_WITHOPTIONS, functionName) && args != null
135
+ && args.size() > 0) {
136
+ HippyMap hippyMap = args.getMap(0); //取第一个元素
137
+ int destX = Math.round(PixelUtil.dp2px(hippyMap.getInt("x")));
138
+ int destY = Math.round(PixelUtil.dp2px(hippyMap.getInt("y")));
139
+ int duration = hippyMap.getInt("duration");
140
+ if (duration > 0) {
141
+ ((HippyScrollView) view).callSmoothScrollTo(destX, destY, duration);//用默认的动画事件
142
+ } else {
143
+ view.scrollTo(destX, destY);
144
+ }
145
+ }
146
+ }
147
+ }
148
+
149
+ //zhaopeng add
150
+ @HippyControllerProps(name = "makeChildVisibleType", defaultType = HippyControllerProps.STRING)
151
+ public void setMakeChildVisibleType(HippyScrollView view, String type){
152
+ if(view != null) {
153
+ if("none".equals(type)){
154
+ ((HippyScrollView) view).setRequestChildOnScreenType(HippyScrollView.SCROLL_TYPE_NONE);
155
+ }else if("center".equals(type)){
156
+ ((HippyScrollView) view).setRequestChildOnScreenType(HippyScrollView.SCROLL_TYPE_CENTER);
157
+ }else{
158
+ ((HippyScrollView) view).setRequestChildOnScreenType(HippyScrollView.SCROLL_TYPE_DEFAULT);
159
+ }
160
+ }
161
+ }
162
+
163
+ @HippyControllerProps(name = "useAdvancedFocusSearch", defaultType = HippyControllerProps.BOOLEAN, defaultBoolean = true)
164
+ public void setAdvancedFocusSearch(HippyScrollView view, boolean b)
165
+ {
166
+ view.setAdvancedFocusSearch(b);
167
+ }
168
+
169
+ @HippyControllerProps(name = "childOnScreenScrollType", defaultType = HippyControllerProps.NUMBER, defaultNumber = 5)
170
+ public void setScrollType(HippyScrollView view, int type)
171
+ {
172
+ if(view instanceof HippyVerticalScrollView) {
173
+ ((HippyVerticalScrollView) view).setScrollType(type);
174
+ }
175
+ }
176
+
177
+
178
+ }
@@ -0,0 +1,92 @@
1
+ /* Tencent is pleased to support the open source community by making Hippy available.
2
+ * Copyright (C) 2018 THL A29 Limited, a Tencent company. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ package com.tencent.mtt.hippy.views.scroll;
17
+
18
+ import android.view.ViewGroup;
19
+
20
+ import com.tencent.mtt.hippy.HippyEngineContext;
21
+ import com.tencent.mtt.hippy.HippyInstanceContext;
22
+ import com.tencent.mtt.hippy.common.HippyMap;
23
+ import com.tencent.mtt.hippy.modules.javascriptmodules.EventDispatcher;
24
+ import com.tencent.mtt.hippy.utils.PixelUtil;
25
+
26
+ @SuppressWarnings({"deprecation", "unused"})
27
+ public class HippyScrollViewEventHelper {
28
+ public static final long MOMENTUM_DELAY = 20;
29
+ public static final String EVENT_TYPE_BEGIN_DRAG = "onScrollBeginDrag";
30
+ public static final String EVENT_TYPE_END_DRAG = "onScrollEndDrag";
31
+ public static final String EVENT_TYPE_SCROLL = "onScroll";
32
+ public static final String EVENT_TYPE_MOMENTUM_BEGIN = "onMomentumScrollBegin";
33
+ public static final String EVENT_TYPE_MOMENTUM_END = "onMomentumScrollEnd";
34
+ public static final String EVENT_TYPE_ANIMATION_END = "onScrollAnimationEnd";
35
+
36
+ public static void emitScrollEvent(ViewGroup view) {
37
+ emitScrollEvent(view, EVENT_TYPE_SCROLL);
38
+ }
39
+
40
+ public static void emitScrollBeginDragEvent(ViewGroup view) {
41
+ emitScrollEvent(view, EVENT_TYPE_BEGIN_DRAG);
42
+ }
43
+
44
+ public static void emitScrollEndDragEvent(ViewGroup view) {
45
+ emitScrollEvent(view, EVENT_TYPE_END_DRAG);
46
+ }
47
+
48
+ public static void emitScrollMomentumBeginEvent(ViewGroup view) {
49
+ emitScrollEvent(view, EVENT_TYPE_MOMENTUM_BEGIN);
50
+ }
51
+
52
+ public static void emitScrollMomentumEndEvent(ViewGroup view) {
53
+ emitScrollEvent(view, EVENT_TYPE_MOMENTUM_END);
54
+ }
55
+
56
+ protected static void emitScrollEvent(ViewGroup view, String scrollEventType) {
57
+ if (view == null) {
58
+ return;
59
+ }
60
+ HippyMap contentInset = new HippyMap();
61
+ contentInset.pushDouble("top", 0);
62
+ contentInset.pushDouble("bottom", 0);
63
+ contentInset.pushDouble("left", 0);
64
+ contentInset.pushDouble("right", 0);
65
+
66
+ HippyMap contentOffset = new HippyMap();
67
+ contentOffset.pushDouble("x", PixelUtil.px2dp(view.getScrollX()));
68
+ contentOffset.pushDouble("y", PixelUtil.px2dp(view.getScrollY()));
69
+
70
+ HippyMap contentSize = new HippyMap();
71
+ contentSize.pushDouble("width", PixelUtil
72
+ .px2dp(view.getChildCount() > 0 ? view.getChildAt(0).getWidth() : view.getWidth()));
73
+ contentSize.pushDouble("height", PixelUtil
74
+ .px2dp(view.getChildCount() > 0 ? view.getChildAt(0).getHeight() : view.getHeight()));
75
+
76
+ HippyMap layoutMeasurement = new HippyMap();
77
+ layoutMeasurement.pushDouble("width", PixelUtil.px2dp(view.getWidth()));
78
+ layoutMeasurement.pushDouble("height", PixelUtil.px2dp(view.getHeight()));
79
+
80
+ HippyMap event = new HippyMap();
81
+ event.pushMap("contentInset", contentInset);
82
+ event.pushMap("contentOffset", contentOffset);
83
+ event.pushMap("contentSize", contentSize);
84
+ event.pushMap("layoutMeasurement", layoutMeasurement);
85
+
86
+ if (view.getContext() instanceof HippyInstanceContext) {
87
+ HippyEngineContext context = ((HippyInstanceContext) view.getContext()).getEngineContext();
88
+ context.getModuleManager().getJavaScriptModule(EventDispatcher.class)
89
+ .receiveUIComponentEvent(view.getId(), scrollEventType, event);
90
+ }
91
+ }
92
+ }