@quicktvui/ai 1.0.6 → 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 (1288) hide show
  1. package/package.json +1 -1
  2. package/rules/.clinerules +28 -4
  3. package/rules/.cursorrules +28 -4
  4. package/rules/.github/copilot-instructions.md +28 -4
  5. package/rules/.source/ESADPlayer/package.json +24 -0
  6. package/rules/.source/ESADPlayer/rollup.config.js +33 -0
  7. package/rules/.source/ESADPlayer/src/component/ESADPlayerViewComponent.ts +466 -0
  8. package/rules/.source/ESADPlayer/src/core/ESADType.ts +6 -0
  9. package/rules/.source/ESADPlayer/src/index.ts +18 -0
  10. package/rules/.source/ESADPlayer/src/index.vue +963 -0
  11. package/rules/.source/ESADPlayer/src/typings/shims-vue.d.ts +6 -0
  12. package/rules/.source/ESADPlayer/tsconfig.json +34 -0
  13. package/rules/.source/ESAudioPlayer/package.json +23 -0
  14. package/rules/.source/ESAudioPlayer/rollup.config.js +33 -0
  15. package/rules/.source/ESAudioPlayer/src/index.ts +10 -0
  16. package/rules/.source/ESAudioPlayer/src/index.vue +1441 -0
  17. package/rules/.source/ESAudioPlayer/src/module/ESAudioPlayer.ts +169 -0
  18. package/rules/.source/ESAudioPlayer/src/module/ESAudioPlayerModule.android.ts +134 -0
  19. package/rules/.source/ESAudioPlayer/src/module/ESAudioPlayerModule.harmony.ts +139 -0
  20. package/rules/.source/ESAudioPlayer/src/module/ESAudioPlayerModule.ts +44 -0
  21. package/rules/.source/ESAudioPlayer/src/typings/shims-vue.d.ts +6 -0
  22. package/rules/.source/ESAudioPlayer/src/utils/ESAudioPlayerDefinitionUtils.ts +36 -0
  23. package/rules/.source/ESAudioPlayer/tsconfig.json +34 -0
  24. package/rules/.source/ESAudioServicePlayer/package.json +23 -0
  25. package/rules/.source/ESAudioServicePlayer/rollup.config.js +33 -0
  26. package/rules/.source/ESAudioServicePlayer/src/index.ts +10 -0
  27. package/rules/.source/ESAudioServicePlayer/src/index.vue +1400 -0
  28. package/rules/.source/ESAudioServicePlayer/src/module/ESAudioServicePlayer.ts +189 -0
  29. package/rules/.source/ESAudioServicePlayer/src/module/ESAudioServicePlayerModule.android.ts +155 -0
  30. package/rules/.source/ESAudioServicePlayer/src/module/ESAudioServicePlayerModule.harmony.ts +163 -0
  31. package/rules/.source/ESAudioServicePlayer/src/module/ESAudioServicePlayerModule.ts +50 -0
  32. package/rules/.source/ESAudioServicePlayer/src/typings/shims-vue.d.ts +6 -0
  33. package/rules/.source/ESAudioServicePlayer/src/utils/ESAudioServicePlayerDefinitionUtils.ts +36 -0
  34. package/rules/.source/ESAudioServicePlayer/tsconfig.json +34 -0
  35. package/rules/.source/ESAxios/CHANGELOG.md +1072 -0
  36. package/rules/.source/ESAxios/LICENSE +7 -0
  37. package/rules/.source/ESAxios/MIGRATION_GUIDE.md +3 -0
  38. package/rules/.source/ESAxios/README.md +1673 -0
  39. package/rules/.source/ESAxios/index.d.cts +549 -0
  40. package/rules/.source/ESAxios/index.d.ts +766 -0
  41. package/rules/.source/ESAxios/index.js +43 -0
  42. package/rules/.source/ESAxios/lib/adapters/README.md +37 -0
  43. package/rules/.source/ESAxios/lib/adapters/adapters.js +80 -0
  44. package/rules/.source/ESAxios/lib/adapters/fetch.js +295 -0
  45. package/rules/.source/ESAxios/lib/axios.js +90 -0
  46. package/rules/.source/ESAxios/lib/cancel/CancelToken.js +135 -0
  47. package/rules/.source/ESAxios/lib/cancel/CanceledError.js +31 -0
  48. package/rules/.source/ESAxios/lib/cancel/isCancel.js +5 -0
  49. package/rules/.source/ESAxios/lib/core/Axios.js +292 -0
  50. package/rules/.source/ESAxios/lib/core/AxiosError.js +108 -0
  51. package/rules/.source/ESAxios/lib/core/AxiosHeaders.js +340 -0
  52. package/rules/.source/ESAxios/lib/core/InterceptorManager.js +71 -0
  53. package/rules/.source/ESAxios/lib/core/README.md +8 -0
  54. package/rules/.source/ESAxios/lib/core/buildFullPath.js +26 -0
  55. package/rules/.source/ESAxios/lib/core/dispatchRequest.js +81 -0
  56. package/rules/.source/ESAxios/lib/core/mergeConfig.js +112 -0
  57. package/rules/.source/ESAxios/lib/core/settle.js +31 -0
  58. package/rules/.source/ESAxios/lib/core/transformData.js +33 -0
  59. package/rules/.source/ESAxios/lib/defaults/index.js +182 -0
  60. package/rules/.source/ESAxios/lib/defaults/transitional.js +7 -0
  61. package/rules/.source/ESAxios/lib/env/README.md +3 -0
  62. package/rules/.source/ESAxios/lib/env/classes/FormData.js +2 -0
  63. package/rules/.source/ESAxios/lib/env/data.js +1 -0
  64. package/rules/.source/ESAxios/lib/helpers/AxiosTransformStream.js +160 -0
  65. package/rules/.source/ESAxios/lib/helpers/AxiosURLSearchParams.js +65 -0
  66. package/rules/.source/ESAxios/lib/helpers/HttpStatusCode.js +71 -0
  67. package/rules/.source/ESAxios/lib/helpers/README.md +7 -0
  68. package/rules/.source/ESAxios/lib/helpers/ZlibHeaderTransformStream.js +29 -0
  69. package/rules/.source/ESAxios/lib/helpers/bind.js +7 -0
  70. package/rules/.source/ESAxios/lib/helpers/buildURL.js +69 -0
  71. package/rules/.source/ESAxios/lib/helpers/callbackify.js +18 -0
  72. package/rules/.source/ESAxios/lib/helpers/combineURLs.js +15 -0
  73. package/rules/.source/ESAxios/lib/helpers/composeSignals.js +61 -0
  74. package/rules/.source/ESAxios/lib/helpers/cookies.js +40 -0
  75. package/rules/.source/ESAxios/lib/helpers/deprecatedMethod.js +31 -0
  76. package/rules/.source/ESAxios/lib/helpers/formDataToJSON.js +95 -0
  77. package/rules/.source/ESAxios/lib/helpers/formDataToStream.js +122 -0
  78. package/rules/.source/ESAxios/lib/helpers/fromDataURI.js +62 -0
  79. package/rules/.source/ESAxios/lib/helpers/isAbsoluteURL.js +15 -0
  80. package/rules/.source/ESAxios/lib/helpers/isAxiosError.js +14 -0
  81. package/rules/.source/ESAxios/lib/helpers/isURLSameOrigin.js +17 -0
  82. package/rules/.source/ESAxios/lib/helpers/null.js +2 -0
  83. package/rules/.source/ESAxios/lib/helpers/parseHeaders.js +69 -0
  84. package/rules/.source/ESAxios/lib/helpers/parseProtocol.js +6 -0
  85. package/rules/.source/ESAxios/lib/helpers/progressEventReducer.js +51 -0
  86. package/rules/.source/ESAxios/lib/helpers/readBlob.js +15 -0
  87. package/rules/.source/ESAxios/lib/helpers/resolveConfig.js +83 -0
  88. package/rules/.source/ESAxios/lib/helpers/speedometer.js +55 -0
  89. package/rules/.source/ESAxios/lib/helpers/spread.js +28 -0
  90. package/rules/.source/ESAxios/lib/helpers/throttle.js +44 -0
  91. package/rules/.source/ESAxios/lib/helpers/toFormData.js +241 -0
  92. package/rules/.source/ESAxios/lib/helpers/toURLEncodedForm.js +25 -0
  93. package/rules/.source/ESAxios/lib/helpers/trackStream.js +89 -0
  94. package/rules/.source/ESAxios/lib/helpers/validator.js +120 -0
  95. package/rules/.source/ESAxios/lib/platform/browser/classes/Blob.js +3 -0
  96. package/rules/.source/ESAxios/lib/platform/browser/classes/FormData.js +3 -0
  97. package/rules/.source/ESAxios/lib/platform/browser/classes/URLSearchParams.js +6 -0
  98. package/rules/.source/ESAxios/lib/platform/browser/index.js +13 -0
  99. package/rules/.source/ESAxios/lib/platform/common/classes/FormData.js +142 -0
  100. package/rules/.source/ESAxios/lib/platform/common/index.js +7 -0
  101. package/rules/.source/ESAxios/lib/platform/common/utils.js +54 -0
  102. package/rules/.source/ESAxios/lib/platform/index.js +7 -0
  103. package/rules/.source/ESAxios/lib/platform/node/classes/FormData.js +3 -0
  104. package/rules/.source/ESAxios/lib/platform/node/classes/URLSearchParams.js +4 -0
  105. package/rules/.source/ESAxios/lib/platform/node/index.js +12 -0
  106. package/rules/.source/ESAxios/lib/utils.js +820 -0
  107. package/rules/.source/ESCore/CHANGELOG.md +7 -0
  108. package/rules/.source/ESCore/package.json +24 -0
  109. package/rules/.source/ESCore/rollup.config.js +28 -0
  110. package/rules/.source/ESCore/src/actionbar/ESActionBar.ts +48 -0
  111. package/rules/.source/ESCore/src/actionbar/ESActionBarModule.android.ts +29 -0
  112. package/rules/.source/ESCore/src/actionbar/ESActionBarModule.harmony.ts +31 -0
  113. package/rules/.source/ESCore/src/actionbar/ESActionBarModule.ts +9 -0
  114. package/rules/.source/ESCore/src/actionbar/index.ts +2 -0
  115. package/rules/.source/ESCore/src/app/ESAppInfo.ts +12 -0
  116. package/rules/.source/ESCore/src/app/ESAppInfoList.ts +9 -0
  117. package/rules/.source/ESCore/src/app/ESAppList.ts +64 -0
  118. package/rules/.source/ESCore/src/app/ESAppListModule.android.ts +55 -0
  119. package/rules/.source/ESCore/src/app/ESAppListModule.harmony.ts +57 -0
  120. package/rules/.source/ESCore/src/app/ESAppListModule.ts +15 -0
  121. package/rules/.source/ESCore/src/app/index.ts +4 -0
  122. package/rules/.source/ESCore/src/application/ESAppContext.ts +99 -0
  123. package/rules/.source/ESCore/src/application/ESAppKeyManager.android.ts +86 -0
  124. package/rules/.source/ESCore/src/application/ESAppKeyManager.harmony.ts +91 -0
  125. package/rules/.source/ESCore/src/application/ESAppKeyManager.ts +23 -0
  126. package/rules/.source/ESCore/src/application/ESAppLifecycleManager.android.ts +199 -0
  127. package/rules/.source/ESCore/src/application/ESAppLifecycleManager.harmony.ts +197 -0
  128. package/rules/.source/ESCore/src/application/ESAppLifecycleManager.ts +36 -0
  129. package/rules/.source/ESCore/src/application/ESAppModuleManager.ts +294 -0
  130. package/rules/.source/ESCore/src/application/ESAppParams.ts +14 -0
  131. package/rules/.source/ESCore/src/application/ESApplication.ts +169 -0
  132. package/rules/.source/ESCore/src/application/index.ts +38 -0
  133. package/rules/.source/ESCore/src/audio/ESAudio.ts +190 -0
  134. package/rules/.source/ESCore/src/audio/ESAudioContentType.ts +7 -0
  135. package/rules/.source/ESCore/src/audio/ESAudioDirection.ts +5 -0
  136. package/rules/.source/ESCore/src/audio/ESAudioDurationHint.ts +7 -0
  137. package/rules/.source/ESCore/src/audio/ESAudioManagerFlag.ts +14 -0
  138. package/rules/.source/ESCore/src/audio/ESAudioModule.android.ts +173 -0
  139. package/rules/.source/ESCore/src/audio/ESAudioModule.harmony.ts +152 -0
  140. package/rules/.source/ESCore/src/audio/ESAudioModule.ts +63 -0
  141. package/rules/.source/ESCore/src/audio/ESAudioStreamType.ts +15 -0
  142. package/rules/.source/ESCore/src/audio/ESAudioUsage.ts +20 -0
  143. package/rules/.source/ESCore/src/audio/index.ts +9 -0
  144. package/rules/.source/ESCore/src/brightness/ESBrightness.ts +69 -0
  145. package/rules/.source/ESCore/src/brightness/ESBrightnessModule.android.ts +73 -0
  146. package/rules/.source/ESCore/src/brightness/ESBrightnessModule.harmony.ts +59 -0
  147. package/rules/.source/ESCore/src/brightness/ESBrightnessModule.ts +15 -0
  148. package/rules/.source/ESCore/src/brightness/index.ts +2 -0
  149. package/rules/.source/ESCore/src/broadcast/ESBroadcast.ts +107 -0
  150. package/rules/.source/ESCore/src/broadcast/ESBroadcastModule.android.ts +42 -0
  151. package/rules/.source/ESCore/src/broadcast/ESBroadcastModule.harmony.ts +45 -0
  152. package/rules/.source/ESCore/src/broadcast/ESBroadcastModule.ts +10 -0
  153. package/rules/.source/ESCore/src/broadcast/ESBroadcastReceiver.ts +5 -0
  154. package/rules/.source/ESCore/src/broadcast/ESIntent.ts +6 -0
  155. package/rules/.source/ESCore/src/broadcast/ESIntentDataAuthority.ts +4 -0
  156. package/rules/.source/ESCore/src/broadcast/ESIntentDataPath.ts +4 -0
  157. package/rules/.source/ESCore/src/broadcast/ESIntentDataSchemeSpecificPart.ts +4 -0
  158. package/rules/.source/ESCore/src/broadcast/ESIntentFilter.ts +13 -0
  159. package/rules/.source/ESCore/src/broadcast/index.ts +8 -0
  160. package/rules/.source/ESCore/src/core/IESComponent.ts +1 -0
  161. package/rules/.source/ESCore/src/core/IESManager.ts +7 -0
  162. package/rules/.source/ESCore/src/core/IESModule.ts +13 -0
  163. package/rules/.source/ESCore/src/core/NeedToTyped.ts +1 -0
  164. package/rules/.source/ESCore/src/core/index.ts +4 -0
  165. package/rules/.source/ESCore/src/database/ESDatabase.ts +63 -0
  166. package/rules/.source/ESCore/src/database/ESDatabaseModule.android.ts +49 -0
  167. package/rules/.source/ESCore/src/database/ESDatabaseModule.harmony.ts +46 -0
  168. package/rules/.source/ESCore/src/database/ESDatabaseModule.ts +23 -0
  169. package/rules/.source/ESCore/src/database/index.ts +2 -0
  170. package/rules/.source/ESCore/src/develop/ESDevelop.ts +75 -0
  171. package/rules/.source/ESCore/src/develop/ESDevelopInfo.ts +9 -0
  172. package/rules/.source/ESCore/src/develop/ESDevelopModule.android.ts +50 -0
  173. package/rules/.source/ESCore/src/develop/ESDevelopModule.harmony.ts +52 -0
  174. package/rules/.source/ESCore/src/develop/ESDevelopModule.ts +14 -0
  175. package/rules/.source/ESCore/src/develop/index.ts +3 -0
  176. package/rules/.source/ESCore/src/device/ESDevice.ts +289 -0
  177. package/rules/.source/ESCore/src/device/ESDeviceInfo.ts +51 -0
  178. package/rules/.source/ESCore/src/device/ESDeviceModule.android.ts +143 -0
  179. package/rules/.source/ESCore/src/device/ESDeviceModule.harmony.ts +116 -0
  180. package/rules/.source/ESCore/src/device/ESDeviceModule.ts +42 -0
  181. package/rules/.source/ESCore/src/device/index.ts +3 -0
  182. package/rules/.source/ESCore/src/display/ESDisplay.ts +61 -0
  183. package/rules/.source/ESCore/src/display/index.ts +2 -0
  184. package/rules/.source/ESCore/src/download/ESDownload.ts +181 -0
  185. package/rules/.source/ESCore/src/download/ESDownloadInfo.ts +14 -0
  186. package/rules/.source/ESCore/src/download/ESDownloadListener.ts +21 -0
  187. package/rules/.source/ESCore/src/download/ESDownloadModule.android.ts +57 -0
  188. package/rules/.source/ESCore/src/download/ESDownloadModule.harmony.ts +66 -0
  189. package/rules/.source/ESCore/src/download/ESDownloadModule.ts +21 -0
  190. package/rules/.source/ESCore/src/download/ESDownloadParams.ts +4 -0
  191. package/rules/.source/ESCore/src/download/ESDownloadState.ts +9 -0
  192. package/rules/.source/ESCore/src/download/ESDownloadStatus.ts +11 -0
  193. package/rules/.source/ESCore/src/download/index.ts +7 -0
  194. package/rules/.source/ESCore/src/error/ESError.ts +88 -0
  195. package/rules/.source/ESCore/src/error/ESErrorListener.ts +9 -0
  196. package/rules/.source/ESCore/src/error/ErrorOptions.ts +16 -0
  197. package/rules/.source/ESCore/src/error/index.ts +2 -0
  198. package/rules/.source/ESCore/src/es/ES.ts +140 -0
  199. package/rules/.source/ESCore/src/es/ESModule.android.ts +166 -0
  200. package/rules/.source/ESCore/src/es/ESModule.harmony.ts +167 -0
  201. package/rules/.source/ESCore/src/es/ESModule.ts +41 -0
  202. package/rules/.source/ESCore/src/es/ESSDKInfo.ts +17 -0
  203. package/rules/.source/ESCore/src/es/ESVersion.ts +14 -0
  204. package/rules/.source/ESCore/src/es/index.ts +4 -0
  205. package/rules/.source/ESCore/src/eventbus/ESEventBus.ts +135 -0
  206. package/rules/.source/ESCore/src/eventbus/ESEventBusArg.ts +2 -0
  207. package/rules/.source/ESCore/src/eventbus/ESEventBusCallback.ts +4 -0
  208. package/rules/.source/ESCore/src/eventbus/ESEventBusContext.ts +2 -0
  209. package/rules/.source/ESCore/src/eventbus/ESEventBusEvent.ts +7 -0
  210. package/rules/.source/ESCore/src/eventbus/index.ts +6 -0
  211. package/rules/.source/ESCore/src/file/ESFile.ts +381 -0
  212. package/rules/.source/ESCore/src/file/ESFileModule.android.ts +334 -0
  213. package/rules/.source/ESCore/src/file/ESFileModule.harmony.ts +343 -0
  214. package/rules/.source/ESCore/src/file/ESFileModule.ts +101 -0
  215. package/rules/.source/ESCore/src/file/ESFileStat.ts +19 -0
  216. package/rules/.source/ESCore/src/file/index.ts +1 -0
  217. package/rules/.source/ESCore/src/focus/ESFocus.ts +56 -0
  218. package/rules/.source/ESCore/src/focus/ESFocusModule.android.ts +35 -0
  219. package/rules/.source/ESCore/src/focus/ESFocusModule.harmony.ts +35 -0
  220. package/rules/.source/ESCore/src/focus/ESFocusModule.ts +12 -0
  221. package/rules/.source/ESCore/src/focus/ESFocusable.ts +1 -0
  222. package/rules/.source/ESCore/src/focus/index.ts +3 -0
  223. package/rules/.source/ESCore/src/global.d.ts +37 -0
  224. package/rules/.source/ESCore/src/hlog/ESHLog.ts +276 -0
  225. package/rules/.source/ESCore/src/hlog/ESHLogModule.ts +130 -0
  226. package/rules/.source/ESCore/src/hlog/ESLogListener.ts +959 -0
  227. package/rules/.source/ESCore/src/hlog/LogPluginHelper.ts +44 -0
  228. package/rules/.source/ESCore/src/hlog/index.ts +6 -0
  229. package/rules/.source/ESCore/src/hlog/listener/OnInitListenerBase.ts +24 -0
  230. package/rules/.source/ESCore/src/hlog/listener/OnUploadListenerBase.ts +39 -0
  231. package/rules/.source/ESCore/src/hlog/listener/RemoveInitListenerBase.ts +17 -0
  232. package/rules/.source/ESCore/src/hlog/listener/RemoveOldUploadListenerBase.ts +21 -0
  233. package/rules/.source/ESCore/src/hlog/listener/RemoveUploadListenerBase.ts +29 -0
  234. package/rules/.source/ESCore/src/hlog/listener/SetInitListenerBase.ts +25 -0
  235. package/rules/.source/ESCore/src/hlog/listener/SetOldUploadListenerBase.ts +33 -0
  236. package/rules/.source/ESCore/src/hlog/listener/SetUploadListenerBase.ts +47 -0
  237. package/rules/.source/ESCore/src/iac/ESIAC.ts +150 -0
  238. package/rules/.source/ESCore/src/iac/ESIACMessage.ts +5 -0
  239. package/rules/.source/ESCore/src/iac/ESIACMessageFilter.ts +3 -0
  240. package/rules/.source/ESCore/src/iac/ESIACModule.android.ts +40 -0
  241. package/rules/.source/ESCore/src/iac/ESIACModule.harmony.ts +63 -0
  242. package/rules/.source/ESCore/src/iac/ESIACModule.ts +15 -0
  243. package/rules/.source/ESCore/src/iac/ESIACReceiver.ts +5 -0
  244. package/rules/.source/ESCore/src/iac/index.ts +5 -0
  245. package/rules/.source/ESCore/src/index.ts +92 -0
  246. package/rules/.source/ESCore/src/key/ESKeyAction.ts +5 -0
  247. package/rules/.source/ESCore/src/key/ESKeyCode.ts +15 -0
  248. package/rules/.source/ESCore/src/key/ESKeyEvent.ts +8 -0
  249. package/rules/.source/ESCore/src/key/index.ts +3 -0
  250. package/rules/.source/ESCore/src/kv/ESKV.ts +104 -0
  251. package/rules/.source/ESCore/src/kv/ESKVModule.android.ts +60 -0
  252. package/rules/.source/ESCore/src/kv/ESKVModule.harmony.ts +80 -0
  253. package/rules/.source/ESCore/src/kv/ESKVModule.ts +28 -0
  254. package/rules/.source/ESCore/src/kv/index.ts +2 -0
  255. package/rules/.source/ESCore/src/local/ESLocalStorage.ts +114 -0
  256. package/rules/.source/ESCore/src/local/ESLocalStorageModule.android.ts +150 -0
  257. package/rules/.source/ESCore/src/local/ESLocalStorageModule.harmony.ts +119 -0
  258. package/rules/.source/ESCore/src/local/ESLocalStorageModule.ts +23 -0
  259. package/rules/.source/ESCore/src/local/index.ts +2 -0
  260. package/rules/.source/ESCore/src/location/ESLocation.ts +89 -0
  261. package/rules/.source/ESCore/src/location/ESLocationInfo.ts +9 -0
  262. package/rules/.source/ESCore/src/location/ESLocationListener.ts +5 -0
  263. package/rules/.source/ESCore/src/location/ESLocationModule.android.ts +53 -0
  264. package/rules/.source/ESCore/src/location/ESLocationModule.harmony.ts +23 -0
  265. package/rules/.source/ESCore/src/location/ESLocationModule.ts +8 -0
  266. package/rules/.source/ESCore/src/location/index.ts +4 -0
  267. package/rules/.source/ESCore/src/log/ESLog.ts +163 -0
  268. package/rules/.source/ESCore/src/log/ESLogModule.android.ts +51 -0
  269. package/rules/.source/ESCore/src/log/ESLogModule.harmony.ts +52 -0
  270. package/rules/.source/ESCore/src/log/ESLogModule.ts +18 -0
  271. package/rules/.source/ESCore/src/log/index.ts +3 -0
  272. package/rules/.source/ESCore/src/network/ESNetwork.ts +102 -0
  273. package/rules/.source/ESCore/src/network/ESNetworkInfo.ts +20 -0
  274. package/rules/.source/ESCore/src/network/ESNetworkInfoState.ts +8 -0
  275. package/rules/.source/ESCore/src/network/ESNetworkInfoType.ts +6 -0
  276. package/rules/.source/ESCore/src/network/ESNetworkListener.ts +5 -0
  277. package/rules/.source/ESCore/src/network/ESNetworkModule.android.ts +38 -0
  278. package/rules/.source/ESCore/src/network/ESNetworkModule.harmony.ts +122 -0
  279. package/rules/.source/ESCore/src/network/ESNetworkModule.ts +13 -0
  280. package/rules/.source/ESCore/src/network/ESWifiInfo.ts +6 -0
  281. package/rules/.source/ESCore/src/network/index.ts +9 -0
  282. package/rules/.source/ESCore/src/page/ESPageParams.ts +14 -0
  283. package/rules/.source/ESCore/src/page/index.ts +1 -0
  284. package/rules/.source/ESCore/src/permission/ESPermission.ts +46 -0
  285. package/rules/.source/ESCore/src/permission/ESPermissionModule.android.ts +33 -0
  286. package/rules/.source/ESCore/src/permission/ESPermissionModule.harmony.ts +33 -0
  287. package/rules/.source/ESCore/src/permission/ESPermissionModule.ts +12 -0
  288. package/rules/.source/ESCore/src/permission/ESRequestPermissionsResult.ts +6 -0
  289. package/rules/.source/ESCore/src/permission/index.ts +3 -0
  290. package/rules/.source/ESCore/src/platform/ESPlatform.ts +63 -0
  291. package/rules/.source/ESCore/src/platform/index.ts +1 -0
  292. package/rules/.source/ESCore/src/plugin/ESPlugin.ts +152 -0
  293. package/rules/.source/ESCore/src/plugin/ESPluginModule.android.ts +20 -0
  294. package/rules/.source/ESCore/src/plugin/ESPluginModule.harmony.ts +24 -0
  295. package/rules/.source/ESCore/src/plugin/ESPluginModule.ts +9 -0
  296. package/rules/.source/ESCore/src/plugin/index.ts +3 -0
  297. package/rules/.source/ESCore/src/power/ESPower.ts +41 -0
  298. package/rules/.source/ESCore/src/power/ESPowerModule.android.ts +31 -0
  299. package/rules/.source/ESCore/src/power/ESPowerModule.harmony.ts +33 -0
  300. package/rules/.source/ESCore/src/power/ESPowerModule.ts +7 -0
  301. package/rules/.source/ESCore/src/power/index.ts +2 -0
  302. package/rules/.source/ESCore/src/provider/ESContentProvider.ts +82 -0
  303. package/rules/.source/ESCore/src/provider/ESContentProviderInfo.ts +8 -0
  304. package/rules/.source/ESCore/src/provider/ESContentProviderModule.android.ts +62 -0
  305. package/rules/.source/ESCore/src/provider/ESContentProviderModule.harmony.ts +62 -0
  306. package/rules/.source/ESCore/src/provider/ESContentProviderModule.ts +29 -0
  307. package/rules/.source/ESCore/src/provider/ESContentProviderResult.ts +4 -0
  308. package/rules/.source/ESCore/src/provider/ESContentValues.ts +3 -0
  309. package/rules/.source/ESCore/src/provider/index.ts +5 -0
  310. package/rules/.source/ESCore/src/router/ESData.ts +3 -0
  311. package/rules/.source/ESCore/src/router/ESParams.ts +3 -0
  312. package/rules/.source/ESCore/src/router/ESRouter.ts +364 -0
  313. package/rules/.source/ESCore/src/router/ESRouterKeyManager.android.ts +107 -0
  314. package/rules/.source/ESCore/src/router/ESRouterKeyManager.harmony.ts +205 -0
  315. package/rules/.source/ESCore/src/router/ESRouterKeyManager.ts +11 -0
  316. package/rules/.source/ESCore/src/router/ESRouterLifecycleManager.ts +301 -0
  317. package/rules/.source/ESCore/src/router/ESRouterManager.ts +221 -0
  318. package/rules/.source/ESCore/src/router/index.ts +9 -0
  319. package/rules/.source/ESCore/src/runtime/ESRuntime.ts +164 -0
  320. package/rules/.source/ESCore/src/runtime/ESRuntimeDeviceModule.android.ts +76 -0
  321. package/rules/.source/ESCore/src/runtime/ESRuntimeDeviceModule.harmony.ts +39 -0
  322. package/rules/.source/ESCore/src/runtime/ESRuntimeDeviceModule.ts +14 -0
  323. package/rules/.source/ESCore/src/runtime/ESRuntimeDeviceType.ts +53 -0
  324. package/rules/.source/ESCore/src/runtime/index.ts +4 -0
  325. package/rules/.source/ESCore/src/service/ESService.ts +34 -0
  326. package/rules/.source/ESCore/src/service/ESServiceModule.android.ts +20 -0
  327. package/rules/.source/ESCore/src/service/ESServiceModule.harmony.ts +19 -0
  328. package/rules/.source/ESCore/src/service/ESServiceModule.ts +5 -0
  329. package/rules/.source/ESCore/src/service/index.ts +2 -0
  330. package/rules/.source/ESCore/src/share/ESShareData.ts +177 -0
  331. package/rules/.source/ESCore/src/share/ESShareDataModule.android.ts +370 -0
  332. package/rules/.source/ESCore/src/share/ESShareDataModule.harmony.ts +201 -0
  333. package/rules/.source/ESCore/src/share/ESShareDataModule.ts +83 -0
  334. package/rules/.source/ESCore/src/share/ESSharedData.ts +9 -0
  335. package/rules/.source/ESCore/src/share/ESSharedDataMode.ts +5 -0
  336. package/rules/.source/ESCore/src/share/ESSharedDataParams.ts +4 -0
  337. package/rules/.source/ESCore/src/share/ESSharedDataType.ts +9 -0
  338. package/rules/.source/ESCore/src/share/index.ts +7 -0
  339. package/rules/.source/ESCore/src/slot/ESSlot.ts +75 -0
  340. package/rules/.source/ESCore/src/slot/ESSlotEvent.ts +4 -0
  341. package/rules/.source/ESCore/src/slot/ESSlotEventName.ts +3 -0
  342. package/rules/.source/ESCore/src/slot/ESSlotParams.ts +14 -0
  343. package/rules/.source/ESCore/src/slot/index.ts +3 -0
  344. package/rules/.source/ESCore/src/theme/ESTheme.ts +88 -0
  345. package/rules/.source/ESCore/src/theme/ESThemeListener.ts +3 -0
  346. package/rules/.source/ESCore/src/theme/index.ts +3 -0
  347. package/rules/.source/ESCore/src/toast/ESToast.ts +47 -0
  348. package/rules/.source/ESCore/src/toast/ESToastModule.android.ts +30 -0
  349. package/rules/.source/ESCore/src/toast/ESToastModule.harmony.ts +30 -0
  350. package/rules/.source/ESCore/src/toast/ESToastModule.ts +9 -0
  351. package/rules/.source/ESCore/src/toast/index.ts +2 -0
  352. package/rules/.source/ESCore/src/upload/ESUpload.ts +226 -0
  353. package/rules/.source/ESCore/src/upload/ESUploadInfo.ts +13 -0
  354. package/rules/.source/ESCore/src/upload/ESUploadListener.ts +21 -0
  355. package/rules/.source/ESCore/src/upload/ESUploadModule.android.ts +60 -0
  356. package/rules/.source/ESCore/src/upload/ESUploadModule.harmony.ts +51 -0
  357. package/rules/.source/ESCore/src/upload/ESUploadModule.ts +19 -0
  358. package/rules/.source/ESCore/src/upload/ESUploadState.ts +9 -0
  359. package/rules/.source/ESCore/src/upload/ESUploadStatus.ts +11 -0
  360. package/rules/.source/ESCore/src/upload/index.ts +6 -0
  361. package/rules/.source/ESCore/src/usb/ESUsbDevice.ts +112 -0
  362. package/rules/.source/ESCore/src/usb/ESUsbDeviceInfo.ts +11 -0
  363. package/rules/.source/ESCore/src/usb/ESUsbDeviceListener.ts +7 -0
  364. package/rules/.source/ESCore/src/usb/ESUsbDeviceModule.android.ts +62 -0
  365. package/rules/.source/ESCore/src/usb/ESUsbDeviceModule.harmony.ts +58 -0
  366. package/rules/.source/ESCore/src/usb/ESUsbDeviceModule.ts +23 -0
  367. package/rules/.source/ESCore/src/usb/index.ts +4 -0
  368. package/rules/.source/ESCore/src/useApi.ts +257 -0
  369. package/rules/.source/ESCore/src/xlog/ESLogUpload.ts +92 -0
  370. package/rules/.source/ESCore/src/xlog/ESLogUploadInfo.ts +12 -0
  371. package/rules/.source/ESCore/src/xlog/ESLogUploadListener.ts +7 -0
  372. package/rules/.source/ESCore/src/xlog/ESXLog.ts +130 -0
  373. package/rules/.source/ESCore/src/xlog/ESXLogModule.android.ts +74 -0
  374. package/rules/.source/ESCore/src/xlog/ESXLogModule.harmony.ts +47 -0
  375. package/rules/.source/ESCore/src/xlog/ESXLogModule.ts +24 -0
  376. package/rules/.source/ESCore/src/xlog/index.ts +6 -0
  377. package/rules/.source/ESCore/tsconfig.json +34 -0
  378. package/rules/.source/ESPlayer/package.json +24 -0
  379. package/rules/.source/ESPlayer/rollup.config.js +28 -0
  380. package/rules/.source/ESPlayer/src/cache/ESPlayerCache.ts +14 -0
  381. package/rules/.source/ESPlayer/src/cache/ESPlayerCacheManager.ts +39 -0
  382. package/rules/.source/ESPlayer/src/core/ESIPlayer.ts +179 -0
  383. package/rules/.source/ESPlayer/src/core/ESIPlayerManager.ts +7 -0
  384. package/rules/.source/ESPlayer/src/core/ESMediaMetadata.ts +8 -0
  385. package/rules/.source/ESPlayer/src/core/ESMediaSource.ts +13 -0
  386. package/rules/.source/ESPlayer/src/core/ESMediaSourceList.ts +15 -0
  387. package/rules/.source/ESPlayer/src/core/ESPlayer.ts +100 -0
  388. package/rules/.source/ESPlayer/src/core/ESPlayerBufferPercentCallback.ts +3 -0
  389. package/rules/.source/ESPlayer/src/core/ESPlayerCDNInfo.ts +5 -0
  390. package/rules/.source/ESPlayer/src/core/ESPlayerCommand.ts +1 -0
  391. package/rules/.source/ESPlayer/src/core/ESPlayerComponentInfo.ts +7 -0
  392. package/rules/.source/ESPlayer/src/core/ESPlayerConfiguration.ts +13 -0
  393. package/rules/.source/ESPlayer/src/core/ESPlayerControlOptions.ts +8 -0
  394. package/rules/.source/ESPlayer/src/core/ESPlayerDurationCallback.ts +3 -0
  395. package/rules/.source/ESPlayer/src/core/ESPlayerMediaMeta.ts +48 -0
  396. package/rules/.source/ESPlayer/src/core/ESPlayerPosition.ts +5 -0
  397. package/rules/.source/ESPlayer/src/core/ESPlayerProgressCallback.ts +3 -0
  398. package/rules/.source/ESPlayer/src/core/ESPlayerState.ts +44 -0
  399. package/rules/.source/ESPlayer/src/core/ESPlayerStatus.ts +10 -0
  400. package/rules/.source/ESPlayer/src/core/ESPlayerTrackInfo.ts +36 -0
  401. package/rules/.source/ESPlayer/src/core/ESPlayerTrackType.ts +5 -0
  402. package/rules/.source/ESPlayer/src/core/M3U8DefinitionInfo.ts +38 -0
  403. package/rules/.source/ESPlayer/src/decode/ESPlayerDecode.ts +12 -0
  404. package/rules/.source/ESPlayer/src/decode/ESPlayerDecodeManager.ts +81 -0
  405. package/rules/.source/ESPlayer/src/definition/ESPlayerDefinition.ts +21 -0
  406. package/rules/.source/ESPlayer/src/definition/ESPlayerDefinitionManager.ts +93 -0
  407. package/rules/.source/ESPlayer/src/definition/ESPlayerDefinitionStrategy.ts +12 -0
  408. package/rules/.source/ESPlayer/src/device/ESPlayerDevice.ts +4 -0
  409. package/rules/.source/ESPlayer/src/device/ESPlayerDeviceManager.ts +41 -0
  410. package/rules/.source/ESPlayer/src/device/ESPlayerDeviceType.ts +53 -0
  411. package/rules/.source/ESPlayer/src/display/ESPlayerDisplay.ts +4 -0
  412. package/rules/.source/ESPlayer/src/display/ESPlayerDisplayManager.ts +63 -0
  413. package/rules/.source/ESPlayer/src/error/ESPlayerError.ts +5 -0
  414. package/rules/.source/ESPlayer/src/error/ESPlayerErrors.ts +8 -0
  415. package/rules/.source/ESPlayer/src/event/ESPlayerEventDefaultListener.ts +127 -0
  416. package/rules/.source/ESPlayer/src/event/ESPlayerEventListener.ts +120 -0
  417. package/rules/.source/ESPlayer/src/event/ESPlayerEventManager.ts +451 -0
  418. package/rules/.source/ESPlayer/src/index.ts +166 -0
  419. package/rules/.source/ESPlayer/src/info/ESPlayerInfo.ts +16 -0
  420. package/rules/.source/ESPlayer/src/injectionSymbols.ts +84 -0
  421. package/rules/.source/ESPlayer/src/interceptor/ESIPlayerInterceptor.ts +11 -0
  422. package/rules/.source/ESPlayer/src/interceptor/ESPlayerInterceptError.ts +8 -0
  423. package/rules/.source/ESPlayer/src/interceptor/ESPlayerInterceptResult.ts +8 -0
  424. package/rules/.source/ESPlayer/src/interceptor/ESPlayerInterceptorManager.ts +95 -0
  425. package/rules/.source/ESPlayer/src/interceptor/ESPlayerInterceptorType.ts +17 -0
  426. package/rules/.source/ESPlayer/src/log/ESPlayerLog.ts +143 -0
  427. package/rules/.source/ESPlayer/src/log/ESPlayerLogModule.ts +43 -0
  428. package/rules/.source/ESPlayer/src/mode/ESPlayerPlayMode.ts +8 -0
  429. package/rules/.source/ESPlayer/src/mode/ESPlayerPlayModeManager.ts +39 -0
  430. package/rules/.source/ESPlayer/src/option/ESPlayerOption.ts +11 -0
  431. package/rules/.source/ESPlayer/src/option/ESPlayerOptionType.ts +14 -0
  432. package/rules/.source/ESPlayer/src/rate/ESPlayerRate.ts +11 -0
  433. package/rules/.source/ESPlayer/src/rate/ESPlayerRateManager.ts +39 -0
  434. package/rules/.source/ESPlayer/src/ratio/ESPlayerAspectRatio.ts +9 -0
  435. package/rules/.source/ESPlayer/src/ratio/ESPlayerAspectRatioManager.ts +39 -0
  436. package/rules/.source/ESPlayer/src/render/ESPlayerRender.ts +5 -0
  437. package/rules/.source/ESPlayer/src/render/ESPlayerRenderManager.ts +36 -0
  438. package/rules/.source/ESPlayer/src/storage/ESPlayerLocalStorageManager.ts +97 -0
  439. package/rules/.source/ESPlayer/src/storage/ESPlayerLocalStorageModule.android.ts +111 -0
  440. package/rules/.source/ESPlayer/src/storage/ESPlayerLocalStorageModule.harmony.ts +111 -0
  441. package/rules/.source/ESPlayer/src/storage/ESPlayerLocalStorageModule.ts +21 -0
  442. package/rules/.source/ESPlayer/src/type/ESPlayerType.ts +18 -0
  443. package/rules/.source/ESPlayer/src/type/ESPlayerTypeManager.ts +81 -0
  444. package/rules/.source/ESPlayer/src/useApi.ts +108 -0
  445. package/rules/.source/ESPlayer/src/view/ESIPlayerView.ts +120 -0
  446. package/rules/.source/ESPlayer/src/view/ESPlayerDefaultView.ts +127 -0
  447. package/rules/.source/ESPlayer/src/view/ESPlayerViewManager.ts +453 -0
  448. package/rules/.source/ESPlayer/src/volume/ESPlayerVolume.ts +4 -0
  449. package/rules/.source/ESPlayer/src/volume/ESPlayerVolumeManager.ts +51 -0
  450. package/rules/.source/ESPlayer/src/window/ESPlayerWindowType.ts +5 -0
  451. package/rules/.source/ESPlayer/tsconfig.json +34 -0
  452. package/rules/.source/ESPlayer/yarn.lock +4 -0
  453. package/rules/.source/ESPlayerManager/package.json +24 -0
  454. package/rules/.source/ESPlayerManager/rollup.config.js +33 -0
  455. package/rules/.source/ESPlayerManager/src/core/ESBuiltinADPlayerType.ts +9 -0
  456. package/rules/.source/ESPlayerManager/src/core/ESBuiltinPlayerType.ts +8 -0
  457. package/rules/.source/ESPlayerManager/src/core/ESIPlayerManager.ts +71 -0
  458. package/rules/.source/ESPlayerManager/src/core/ESMediaItem.ts +47 -0
  459. package/rules/.source/ESPlayerManager/src/core/ESMediaItemList.ts +11 -0
  460. package/rules/.source/ESPlayerManager/src/core/ESPlayerManager.ts +41 -0
  461. package/rules/.source/ESPlayerManager/src/core/ESPlayerManagerConfiguration.ts +6 -0
  462. package/rules/.source/ESPlayerManager/src/core/ESPlayerManagerErrors.ts +6 -0
  463. package/rules/.source/ESPlayerManager/src/event/ESPlayerManagerEventDefaultListener.ts +154 -0
  464. package/rules/.source/ESPlayerManager/src/event/ESPlayerManagerEventListener.ts +37 -0
  465. package/rules/.source/ESPlayerManager/src/event/ESPlayerManagerEventManager.ts +521 -0
  466. package/rules/.source/ESPlayerManager/src/index.ts +37 -0
  467. package/rules/.source/ESPlayerManager/src/index.vue +2676 -0
  468. package/rules/.source/ESPlayerManager/src/injectionSymbols.ts +16 -0
  469. package/rules/.source/ESPlayerManager/src/mode/ESPlayerManagerPlayModeManager.ts +27 -0
  470. package/rules/.source/ESPlayerManager/src/typings/shims-vue.d.ts +6 -0
  471. package/rules/.source/ESPlayerManager/src/useApi.ts +22 -0
  472. package/rules/.source/ESPlayerManager/src/utils/SparseArray.ts +103 -0
  473. package/rules/.source/ESPlayerManager/src/view/ESIPlayerManagerDefaultView.ts +167 -0
  474. package/rules/.source/ESPlayerManager/src/view/ESIPlayerManagerView.ts +44 -0
  475. package/rules/.source/ESPlayerManager/src/view/ESPlayerManagerViewManager.ts +517 -0
  476. package/rules/.source/ESPlayerManager/tsconfig.json +34 -0
  477. package/rules/.source/ESRouter/CHANGELOGG.md +899 -0
  478. package/rules/.source/ESRouter/SECURITY.md +20 -0
  479. package/rules/.source/ESRouter/api-extractor.json +49 -0
  480. package/rules/.source/ESRouter/index.js +7 -0
  481. package/rules/.source/ESRouter/nightwatch.conf.js +240 -0
  482. package/rules/.source/ESRouter/package.json +19 -0
  483. package/rules/.source/ESRouter/rollup.config.mjs +195 -0
  484. package/rules/.source/ESRouter/src/RouterLink.ts +358 -0
  485. package/rules/.source/ESRouter/src/RouterView.ts +794 -0
  486. package/rules/.source/ESRouter/src/SlotView.ts +477 -0
  487. package/rules/.source/ESRouter/src/config.ts +6 -0
  488. package/rules/.source/ESRouter/src/devtools.ts +576 -0
  489. package/rules/.source/ESRouter/src/encoding.ts +147 -0
  490. package/rules/.source/ESRouter/src/errors.ts +200 -0
  491. package/rules/.source/ESRouter/src/es/ESNativeRouter.android.ts +100 -0
  492. package/rules/.source/ESRouter/src/es/ESNativeRouter.harmony.ts +155 -0
  493. package/rules/.source/ESRouter/src/es/ESNativeRouter.ts +24 -0
  494. package/rules/.source/ESRouter/src/es/ESNativeRouterLaunchMode.ts +7 -0
  495. package/rules/.source/ESRouter/src/es/ESNativeRouterSplash.ts +6 -0
  496. package/rules/.source/ESRouter/src/global.d.ts +15 -0
  497. package/rules/.source/ESRouter/src/globalExtensions.ts +83 -0
  498. package/rules/.source/ESRouter/src/history/common.ts +237 -0
  499. package/rules/.source/ESRouter/src/history/es.ts +278 -0
  500. package/rules/.source/ESRouter/src/history/hash.ts +46 -0
  501. package/rules/.source/ESRouter/src/history/html5.ts +354 -0
  502. package/rules/.source/ESRouter/src/history/index.ts +40 -0
  503. package/rules/.source/ESRouter/src/history/memory.ts +127 -0
  504. package/rules/.source/ESRouter/src/index.ts +131 -0
  505. package/rules/.source/ESRouter/src/injectionSymbols.ts +91 -0
  506. package/rules/.source/ESRouter/src/location.ts +251 -0
  507. package/rules/.source/ESRouter/src/log/RouterLog.ts +90 -0
  508. package/rules/.source/ESRouter/src/log/info.ts +9 -0
  509. package/rules/.source/ESRouter/src/matcher/index.ts +533 -0
  510. package/rules/.source/ESRouter/src/matcher/pathMatcher.ts +55 -0
  511. package/rules/.source/ESRouter/src/matcher/pathParserRanker.ts +369 -0
  512. package/rules/.source/ESRouter/src/matcher/pathTokenizer.ts +200 -0
  513. package/rules/.source/ESRouter/src/matcher/types.ts +131 -0
  514. package/rules/.source/ESRouter/src/navigationGuards.ts +409 -0
  515. package/rules/.source/ESRouter/src/page/PageRouteView.ts +11 -0
  516. package/rules/.source/ESRouter/src/page/PageView.ts +12 -0
  517. package/rules/.source/ESRouter/src/query.ts +149 -0
  518. package/rules/.source/ESRouter/src/result/RouteResult.ts +11 -0
  519. package/rules/.source/ESRouter/src/result/RouteResultCallback.ts +5 -0
  520. package/rules/.source/ESRouter/src/router.ts +1930 -0
  521. package/rules/.source/ESRouter/src/scrollBehavior.ts +194 -0
  522. package/rules/.source/ESRouter/src/slot/SlotRootView.ts +11 -0
  523. package/rules/.source/ESRouter/src/slot/SlotView.ts +11 -0
  524. package/rules/.source/ESRouter/src/types/index.ts +605 -0
  525. package/rules/.source/ESRouter/src/types/typeGuards.ts +9 -0
  526. package/rules/.source/ESRouter/src/types/utils.ts +77 -0
  527. package/rules/.source/ESRouter/src/useApi.ts +29 -0
  528. package/rules/.source/ESRouter/src/utils/callbacks.ts +24 -0
  529. package/rules/.source/ESRouter/src/utils/env.ts +1 -0
  530. package/rules/.source/ESRouter/src/utils/index.ts +60 -0
  531. package/rules/.source/ESRouter/src/warning.ts +9 -0
  532. package/rules/.source/ESRouter/tsconfig.json +37 -0
  533. package/rules/.source/ESSoundPoolPlayer/package.json +23 -0
  534. package/rules/.source/ESSoundPoolPlayer/rollup.config.js +33 -0
  535. package/rules/.source/ESSoundPoolPlayer/src/core/ESSoundPoolContentType.ts +7 -0
  536. package/rules/.source/ESSoundPoolPlayer/src/core/ESSoundPoolStreamType.ts +15 -0
  537. package/rules/.source/ESSoundPoolPlayer/src/core/ESSoundPoolUsage.ts +19 -0
  538. package/rules/.source/ESSoundPoolPlayer/src/index.ts +19 -0
  539. package/rules/.source/ESSoundPoolPlayer/src/index.vue +1564 -0
  540. package/rules/.source/ESSoundPoolPlayer/src/module/ESSoundPoolPlayerModul.android.ts +133 -0
  541. package/rules/.source/ESSoundPoolPlayer/src/module/ESSoundPoolPlayerModul.harmony.ts +119 -0
  542. package/rules/.source/ESSoundPoolPlayer/src/module/ESSoundPoolPlayerModule.ts +48 -0
  543. package/rules/.source/ESSoundPoolPlayer/src/typings/shims-vue.d.ts +6 -0
  544. package/rules/.source/ESSoundPoolPlayer/tsconfig.json +34 -0
  545. package/rules/.source/ESVideoPlayer/package.json +26 -0
  546. package/rules/.source/ESVideoPlayer/rollup.config.js +33 -0
  547. package/rules/.source/ESVideoPlayer/src/component/ESVideoPlayerViewComponent.android.ts +948 -0
  548. package/rules/.source/ESVideoPlayer/src/component/ESVideoPlayerViewComponent.harmony.ts +763 -0
  549. package/rules/.source/ESVideoPlayer/src/index.ts +18 -0
  550. package/rules/.source/ESVideoPlayer/src/index.vue +2003 -0
  551. package/rules/.source/ESVideoPlayer/src/typings/shims-vue.d.ts +6 -0
  552. package/rules/.source/ESVideoPlayer/src/utils/ESVideoPlayerDefinitionUtils.ts +36 -0
  553. package/rules/.source/ESVideoPlayer/tsconfig.json +34 -0
  554. package/rules/.source/ESVideoPlayer/tsconfig.json.vite +0 -0
  555. package/rules/.source/ESVideoPlayer/tsconfig.node.json +0 -0
  556. package/rules/.source/ESVideoPlayer/vite.config.ts +29 -0
  557. package/rules/.source/ESVue/CHANGELOG.MD +201 -0
  558. package/rules/.source/ESVue/api-extractor.json +41 -0
  559. package/rules/.source/ESVue/package.json +42 -0
  560. package/rules/.source/ESVue/rollup.config.js +40 -0
  561. package/rules/.source/ESVue/src/built-in-component.ts +650 -0
  562. package/rules/.source/ESVue/src/config/index.ts +109 -0
  563. package/rules/.source/ESVue/src/global.d.ts +636 -0
  564. package/rules/.source/ESVue/src/hooks/lifecycle.ts +248 -0
  565. package/rules/.source/ESVue/src/index.ts +365 -0
  566. package/rules/.source/ESVue/src/modules/attrs.ts +24 -0
  567. package/rules/.source/ESVue/src/modules/class.ts +31 -0
  568. package/rules/.source/ESVue/src/modules/events.ts +119 -0
  569. package/rules/.source/ESVue/src/modules/patch-log.ts +39 -0
  570. package/rules/.source/ESVue/src/modules/style.ts +68 -0
  571. package/rules/.source/ESVue/src/node-ops.ts +153 -0
  572. package/rules/.source/ESVue/src/patch-prop.ts +93 -0
  573. package/rules/.source/ESVue/src/runtime/component/index.ts +83 -0
  574. package/rules/.source/ESVue/src/runtime/document/hippy-document.ts +56 -0
  575. package/rules/.source/ESVue/src/runtime/element/hippy-comment-element.ts +21 -0
  576. package/rules/.source/ESVue/src/runtime/element/hippy-element.ts +1623 -0
  577. package/rules/.source/ESVue/src/runtime/element/hippy-input-element.ts +75 -0
  578. package/rules/.source/ESVue/src/runtime/element/hippy-list-element.ts +306 -0
  579. package/rules/.source/ESVue/src/runtime/event/event-bus.ts +148 -0
  580. package/rules/.source/ESVue/src/runtime/event/hippy-event-dispatcher.ts +391 -0
  581. package/rules/.source/ESVue/src/runtime/event/hippy-event-target.ts +191 -0
  582. package/rules/.source/ESVue/src/runtime/event/hippy-event.ts +317 -0
  583. package/rules/.source/ESVue/src/runtime/native/index.ts +924 -0
  584. package/rules/.source/ESVue/src/runtime/node/hippy-node.ts +722 -0
  585. package/rules/.source/ESVue/src/runtime/node/node-log.ts +39 -0
  586. package/rules/.source/ESVue/src/runtime/render/index.ts +550 -0
  587. package/rules/.source/ESVue/src/runtime/style/css-map.ts +100 -0
  588. package/rules/.source/ESVue/src/runtime/style/css-resolve-auto-style.ts +119 -0
  589. package/rules/.source/ESVue/src/runtime/style/css-resolve-percent-style.ts +111 -0
  590. package/rules/.source/ESVue/src/runtime/style/css-resolve-rem-style.ts +45 -0
  591. package/rules/.source/ESVue/src/runtime/style/css-resolve-scale-style.ts +103 -0
  592. package/rules/.source/ESVue/src/runtime/style/css-resolve-style.ts +24 -0
  593. package/rules/.source/ESVue/src/runtime/style/css-resolve-variables.ts +209 -0
  594. package/rules/.source/ESVue/src/runtime/style/css-resolve-vwvh-style.ts +65 -0
  595. package/rules/.source/ESVue/src/runtime/style/css-resolve-width-height-style.ts +18 -0
  596. package/rules/.source/ESVue/src/runtime/style/css-selectors-match.ts +295 -0
  597. package/rules/.source/ESVue/src/runtime/style/css-selectors.ts +1173 -0
  598. package/rules/.source/ESVue/src/runtime/style/index.ts +154 -0
  599. package/rules/.source/ESVue/src/runtime/style/log.ts +39 -0
  600. package/rules/.source/ESVue/src/runtime/style/parser.ts +291 -0
  601. package/rules/.source/ESVue/src/runtime/text/hippy-text.ts +41 -0
  602. package/rules/.source/ESVue/src/runtime/websocket/websocket.ts +282 -0
  603. package/rules/.source/ESVue/src/types/index.ts +25 -0
  604. package/rules/.source/ESVue/src/types/native-modules/clip-board-module.ts +24 -0
  605. package/rules/.source/ESVue/src/types/native-modules/device-event-module.ts +24 -0
  606. package/rules/.source/ESVue/src/types/native-modules/http.ts +57 -0
  607. package/rules/.source/ESVue/src/types/native-modules/image-loader-module.ts +27 -0
  608. package/rules/.source/ESVue/src/types/native-modules/net-info.ts +29 -0
  609. package/rules/.source/ESVue/src/types/native-modules/network.ts +24 -0
  610. package/rules/.source/ESVue/src/types/native-modules/test-module.ts +23 -0
  611. package/rules/.source/ESVue/src/types/native-modules/ui-manager-module.ts +44 -0
  612. package/rules/.source/ESVue/src/types/native-modules/websocket.ts +49 -0
  613. package/rules/.source/ESVue/src/types/native-modules.ts +41 -0
  614. package/rules/.source/ESVue/src/types/native-node.ts +48 -0
  615. package/rules/.source/ESVue/src/util/event.ts +74 -0
  616. package/rules/.source/ESVue/src/util/i18n.ts +32 -0
  617. package/rules/.source/ESVue/src/util/index.ts +418 -0
  618. package/rules/.source/ESVue/src/util/instance.ts +77 -0
  619. package/rules/.source/ESVue/src/util/log.ts +39 -0
  620. package/rules/.source/ESVue/src/util/node.ts +152 -0
  621. package/rules/.source/ESVue/src/util/rem.ts +54 -0
  622. package/rules/.source/ESVue/src/util/screen.ts +42 -0
  623. package/rules/.source/ESVue/tsconfig.json +34 -0
  624. package/rules/.source/ESVue/tsdoc.json +6 -0
  625. package/rules/.source/ESVue/yarn.lock +4 -0
  626. package/rules/.source/ESVueCssLoader/package.json +27 -0
  627. package/rules/.source/ESVueCssLoader/rollup.config.js +20 -0
  628. package/rules/.source/ESVueCssLoader/src/index.ts +2 -0
  629. package/rules/.source/ESVueCssLoader/src/log/log.ts +38 -0
  630. package/rules/.source/ESVueCssLoader/src/style-parser/color-parser.ts +357 -0
  631. package/rules/.source/ESVueCssLoader/src/style-parser/css-loader.ts +93 -0
  632. package/rules/.source/ESVueCssLoader/src/style-parser/css-parser.ts +1123 -0
  633. package/rules/.source/ESVueCssLoader/src/types.ts +5 -0
  634. package/rules/.source/ESVueCssLoader/src/utils/utils.ts +59 -0
  635. package/rules/.source/ESVueCssLoader/tsconfig.json +34 -0
  636. package/rules/.source/ESVueStyleParser/api-extractor.json +38 -0
  637. package/rules/.source/ESVueStyleParser/package.json +24 -0
  638. package/rules/.source/ESVueStyleParser/rollup.config.js +28 -0
  639. package/rules/.source/ESVueStyleParser/src/index.ts +24 -0
  640. package/rules/.source/ESVueStyleParser/src/style-parser/android-color-parser.ts +143 -0
  641. package/rules/.source/ESVueStyleParser/src/style-parser/color-parser.ts +256 -0
  642. package/rules/.source/ESVueStyleParser/src/style-parser/css-parser.ts +1371 -0
  643. package/rules/.source/ESVueStyleParser/src/style-parser/named-colors.ts +154 -0
  644. package/rules/.source/ESVueStyleParser/src/style-parser/utils.ts +55 -0
  645. package/rules/.source/ESVueStyleParser/src/types.ts +5 -0
  646. package/rules/.source/ESVueStyleParser/tsconfig.json +34 -0
  647. package/rules/.source/component/package.json +24 -0
  648. package/rules/.source/component/rollup.config.js +28 -0
  649. package/rules/.source/component/src/ESAnimationView/ESAnimationViewComponent.ts +51 -0
  650. package/rules/.source/component/src/ESAppIconView/ESAppIconViewComponent.ts +46 -0
  651. package/rules/.source/component/src/ESAppIconView/ESIAppIcon.ts +5 -0
  652. package/rules/.source/component/src/ESCardView/ESCardContainerViewComponent.ts +127 -0
  653. package/rules/.source/component/src/ESCardView/ESCardEvent.ts +3 -0
  654. package/rules/.source/component/src/ESCardView/ESCardViewComponent.ts +54 -0
  655. package/rules/.source/component/src/ESCardView/ESICard.ts +9 -0
  656. package/rules/.source/component/src/ESCardView/ESICardContainer.ts +25 -0
  657. package/rules/.source/component/src/ESChartView/ESBarChartViewComponent.ts +35 -0
  658. package/rules/.source/component/src/ESChartView/ESIChart.ts +3 -0
  659. package/rules/.source/component/src/ESChartView/ESLineChartViewComponent.ts +35 -0
  660. package/rules/.source/component/src/ESDialog/ESDialogComponent.ts +15 -0
  661. package/rules/.source/component/src/ESFastSwiperSlideView/ESFastSwiperSlideViewComponent.ts +46 -0
  662. package/rules/.source/component/src/ESFlexView/ESFlexViewComponent.ts +22 -0
  663. package/rules/.source/component/src/ESGradient/ESGradient.ts +14 -0
  664. package/rules/.source/component/src/ESGradient/ESGradientOrientation.ts +10 -0
  665. package/rules/.source/component/src/ESGradient/ESGradientShape.ts +6 -0
  666. package/rules/.source/component/src/ESGradient/ESGradientType.ts +5 -0
  667. package/rules/.source/component/src/ESItem/ESItemComponent.ts +40 -0
  668. package/rules/.source/component/src/ESItemStoreView/ESItemStoreViewComponent.ts +23 -0
  669. package/rules/.source/component/src/ESLargeListView/ESLargeListViewComponent.ts +136 -0
  670. package/rules/.source/component/src/ESLoading/ESLoadingViewComponent.ts +16 -0
  671. package/rules/.source/component/src/ESLoading/ESLoadingViewElement.android.ts +11 -0
  672. package/rules/.source/component/src/ESLoading/ESLoadingViewElement.harmony.ts +11 -0
  673. package/rules/.source/component/src/ESLottieView/ESLottieViewComponent.android.ts +29 -0
  674. package/rules/.source/component/src/ESLottieView/ESLottieViewComponent.harmony.ts +29 -0
  675. package/rules/.source/component/src/ESMediaSeries/ESIMediaSeries.ts +24 -0
  676. package/rules/.source/component/src/ESMediaSeries/ESMediaSeries.ts +6 -0
  677. package/rules/.source/component/src/ESMediaSeries/ESMediaSeriesComponent.ts +142 -0
  678. package/rules/.source/component/src/ESOrientationSeekBar/ESHorizontalSeekBarViewComponent.ts +1305 -0
  679. package/rules/.source/component/src/ESOrientationSeekBar/ESIHorizontalSeekBar.ts +255 -0
  680. package/rules/.source/component/src/ESOrientationSeekBar/ESIVerticalSeekBar.ts +13 -0
  681. package/rules/.source/component/src/ESOrientationSeekBar/ESVerticalSeekBarViewComponent.ts +1356 -0
  682. package/rules/.source/component/src/ESPlayMarkView/ESPlayMarkViewComponent.ts +21 -0
  683. package/rules/.source/component/src/ESPluginView/ESPluginViewComponent.ts +34 -0
  684. package/rules/.source/component/src/ESProgressBarView/ESProgressBarViewComponent.ts +38 -0
  685. package/rules/.source/component/src/ESQRCodeView/ESQRCodeViewComponent.ts +11 -0
  686. package/rules/.source/component/src/ESReplaceChildView/ESReplaceChildViewComponent.ts +151 -0
  687. package/rules/.source/component/src/ESRippleView/ESRippleViewComponent.ts +45 -0
  688. package/rules/.source/component/src/ESScrollView/ESIScrollView.ts +7 -0
  689. package/rules/.source/component/src/ESScrollView/ESScrollViewComponent.ts +49 -0
  690. package/rules/.source/component/src/ESSeekBarView/ESSeekBarViewElement.android.ts +38 -0
  691. package/rules/.source/component/src/ESSeekBarView/ESSeekBarViewElement.harmony.ts +38 -0
  692. package/rules/.source/component/src/ESSurfaceView/ESSurfaceViewComponent.ts +21 -0
  693. package/rules/.source/component/src/ESSwiftListView/ESSwiftListViewComponent.ts +117 -0
  694. package/rules/.source/component/src/ESSwiperSlideView/ESSwiperSlideViewComponent.ts +31 -0
  695. package/rules/.source/component/src/ESSwiperView/ESSwiperViewComponent.ts +82 -0
  696. package/rules/.source/component/src/ESTVItemView/ESTVItemViewComponent.ts +185 -0
  697. package/rules/.source/component/src/ESTVListView/ESIListView.ts +184 -0
  698. package/rules/.source/component/src/ESTVListView/ESListInitPosition.ts +15 -0
  699. package/rules/.source/component/src/ESTVListView/ESListViewItem.ts +10 -0
  700. package/rules/.source/component/src/ESTVListView/ESListViewItemDecoration.ts +7 -0
  701. package/rules/.source/component/src/ESTVListView/ESListViewItemFunctionParams.ts +7 -0
  702. package/rules/.source/component/src/ESTVListView/ESTVListViewComponent.ts +697 -0
  703. package/rules/.source/component/src/ESTabsView/ESITab.ts +90 -0
  704. package/rules/.source/component/src/ESTabsView/ESTab.ts +7 -0
  705. package/rules/.source/component/src/ESTabsView/ESTabItem.ts +8 -0
  706. package/rules/.source/component/src/ESTabsView/ESTabsViewComponent.ts +383 -0
  707. package/rules/.source/component/src/ESTestView/ESITestAView.ts +1 -0
  708. package/rules/.source/component/src/ESTestView/ESITestGroup.ts +3 -0
  709. package/rules/.source/component/src/ESTestView/ESITestView.ts +3 -0
  710. package/rules/.source/component/src/ESTestView/ESTestAViewComponent.ts +34 -0
  711. package/rules/.source/component/src/ESTestView/ESTestGroupComponent.ts +39 -0
  712. package/rules/.source/component/src/ESTestView/ESTestViewComponent.ts +51 -0
  713. package/rules/.source/component/src/ESTextView/ESTextViewComponent.ts +22 -0
  714. package/rules/.source/component/src/ESTransitionImageView/ESITransitionImage.ts +7 -0
  715. package/rules/.source/component/src/ESTransitionImageView/ESTransitionImageViewComponent.ts +58 -0
  716. package/rules/.source/component/src/ESView/ESDirections.ts +7 -0
  717. package/rules/.source/component/src/ESView/ESIView.ts +6 -0
  718. package/rules/.source/component/src/ESView/ESViewComponent.ts +24 -0
  719. package/rules/.source/component/src/ESView/ESViewCoordinate.ts +4 -0
  720. package/rules/.source/component/src/ESView/ESViewScrollState.ts +5 -0
  721. package/rules/.source/component/src/ESView/ESViewState.ts +16 -0
  722. package/rules/.source/component/src/ESView/ESViewStateCallback.ts +5 -0
  723. package/rules/.source/component/src/ESViewPager/ESIViewPager.ts +8 -0
  724. package/rules/.source/component/src/ESViewPager/ESPageData.ts +7 -0
  725. package/rules/.source/component/src/ESViewPager/ESViewPagerComponent.ts +58 -0
  726. package/rules/.source/component/src/ESWebView/ESWebViewComponent.ts +48 -0
  727. package/rules/.source/component/src/ESX5WebView/ESX5WebViewElement.android.ts +70 -0
  728. package/rules/.source/component/src/ESX5WebView/ESX5WebViewElement.harmony.ts +70 -0
  729. package/rules/.source/component/src/index.ts +180 -0
  730. package/rules/.source/component/src/tv-div/TVDivComponent.ts +131 -0
  731. package/rules/.source/component/src/tv-image/TVImageComponent.ts +126 -0
  732. package/rules/.source/component/src/tv-li/TVLiComponent.ts +10 -0
  733. package/rules/.source/component/src/tv-swiper/TVSwiperComponent.ts +110 -0
  734. package/rules/.source/component/src/tv-ul/TVULComponent.ts +82 -0
  735. package/rules/.source/component/src/typings/index.ts +7 -0
  736. package/rules/.source/component/src/typings/shims-vue.d.ts +6 -0
  737. package/rules/.source/component/tsconfig.json +34 -0
  738. package/rules/.source/hippy/extend_views/CoverFlowHorizontalView.java +203 -0
  739. package/rules/.source/hippy/extend_views/CoverFlowVerticalView.java +203 -0
  740. package/rules/.source/hippy/extend_views/CoverFlowViewController.java +195 -0
  741. package/rules/.source/hippy/extend_views/EngineRootView.java +125 -0
  742. package/rules/.source/hippy/extend_views/ExtendTag.java +83 -0
  743. package/rules/.source/hippy/extend_views/FocusSearchHelper.java +124 -0
  744. package/rules/.source/hippy/extend_views/IRecyclerItemView.java +12 -0
  745. package/rules/.source/hippy/extend_views/JSEventHandleView.java +5 -0
  746. package/rules/.source/hippy/extend_views/MarqueeRelayManager.java +133 -0
  747. package/rules/.source/hippy/extend_views/MarqueeRelayTextView.java +211 -0
  748. package/rules/.source/hippy/extend_views/ProgressBarView.java +83 -0
  749. package/rules/.source/hippy/extend_views/ProgressBarViewController.java +145 -0
  750. package/rules/.source/hippy/extend_views/SeekBarView.java +104 -0
  751. package/rules/.source/hippy/extend_views/SeekBarViewController.java +218 -0
  752. package/rules/.source/hippy/extend_views/StateImageView.java +149 -0
  753. package/rules/.source/hippy/extend_views/StateImageViewController.java +34 -0
  754. package/rules/.source/hippy/extend_views/TVButtonView.java +314 -0
  755. package/rules/.source/hippy/extend_views/TVButtonViewController.java +89 -0
  756. package/rules/.source/hippy/extend_views/TVTextView.java +684 -0
  757. package/rules/.source/hippy/extend_views/TVViewActor.java +811 -0
  758. package/rules/.source/hippy/extend_views/TVViewActorHost.java +6 -0
  759. package/rules/.source/hippy/extend_views/TVViewActor/346/216/245/345/205/245.md +66 -0
  760. package/rules/.source/hippy/extend_views/TemplateUtil.java +336 -0
  761. package/rules/.source/hippy/extend_views/TextButtonNode.java +47 -0
  762. package/rules/.source/hippy/extend_views/TextViewController.java +377 -0
  763. package/rules/.source/hippy/extend_views/fastlist/CenterFlyInAnimator.java +96 -0
  764. package/rules/.source/hippy/extend_views/fastlist/ChildOnScreenScroller.java +548 -0
  765. package/rules/.source/hippy/extend_views/fastlist/ClonedViewTag.java +17 -0
  766. package/rules/.source/hippy/extend_views/fastlist/EventDeliverer.java +55 -0
  767. package/rules/.source/hippy/extend_views/fastlist/FastAdapter.java +4683 -0
  768. package/rules/.source/hippy/extend_views/fastlist/FastAdapterUtil.java +982 -0
  769. package/rules/.source/hippy/extend_views/fastlist/FastFlexNode.java +48 -0
  770. package/rules/.source/hippy/extend_views/fastlist/FastFlexView.java +873 -0
  771. package/rules/.source/hippy/extend_views/fastlist/FastFlexViewController.java +130 -0
  772. package/rules/.source/hippy/extend_views/fastlist/FastItemNode.java +67 -0
  773. package/rules/.source/hippy/extend_views/fastlist/FastItemView.java +306 -0
  774. package/rules/.source/hippy/extend_views/fastlist/FastItemViewController.java +106 -0
  775. package/rules/.source/hippy/extend_views/fastlist/FastListModule.java +95 -0
  776. package/rules/.source/hippy/extend_views/fastlist/FastListNode.java +90 -0
  777. package/rules/.source/hippy/extend_views/fastlist/FastListView.java +2466 -0
  778. package/rules/.source/hippy/extend_views/fastlist/FastListViewController.java +1038 -0
  779. 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
  780. package/rules/.source/hippy/extend_views/fastlist/FastPendingView.java +47 -0
  781. package/rules/.source/hippy/extend_views/fastlist/ItemDecorations.java +71 -0
  782. package/rules/.source/hippy/extend_views/fastlist/ItemStoreNode.java +64 -0
  783. package/rules/.source/hippy/extend_views/fastlist/ItemStoreView.java +13 -0
  784. package/rules/.source/hippy/extend_views/fastlist/ItemStoreViewController.java +45 -0
  785. package/rules/.source/hippy/extend_views/fastlist/ListItemHolder.java +7 -0
  786. package/rules/.source/hippy/extend_views/fastlist/ListViewControlProp.java +41 -0
  787. package/rules/.source/hippy/extend_views/fastlist/MouseRecycleView.java +509 -0
  788. package/rules/.source/hippy/extend_views/fastlist/OnFastItemClickListener.java +12 -0
  789. package/rules/.source/hippy/extend_views/fastlist/OnFastItemFocusChangeListener.java +9 -0
  790. package/rules/.source/hippy/extend_views/fastlist/OnFastScrollStateChangedListener.java +7 -0
  791. package/rules/.source/hippy/extend_views/fastlist/PendingListNode.java +18 -0
  792. package/rules/.source/hippy/extend_views/fastlist/PendingViewController.java +13 -0
  793. package/rules/.source/hippy/extend_views/fastlist/PostHandlerView.java +6 -0
  794. package/rules/.source/hippy/extend_views/fastlist/PostTaskHolder.java +20 -0
  795. package/rules/.source/hippy/extend_views/fastlist/ReplaceChildController.java +105 -0
  796. package/rules/.source/hippy/extend_views/fastlist/ReplaceChildView.java +312 -0
  797. package/rules/.source/hippy/extend_views/fastlist/TVListView.java +3692 -0
  798. package/rules/.source/hippy/extend_views/fastlist/TemplateCodeParser.java +247 -0
  799. package/rules/.source/hippy/extend_views/fastlist/Utils.java +572 -0
  800. package/rules/.source/hippy/extend_views/fastlist/ViewTag.java +317 -0
  801. package/rules/.source/hippy/extend_views/fastlist/VirtualListView.java +8 -0
  802. package/rules/.source/hippy/extend_views/fastlist/diff/FastListDataBindingHelper.java +320 -0
  803. package/rules/.source/hippy/extend_views/fastlist/diff/KeyDiffHelper.java +289 -0
  804. package/rules/.source/hippy/extend_views/fastlist/diff/NoKeyDiffHelper.java +278 -0
  805. package/rules/.source/hippy/extend_views/tag/FontTag.java +53 -0
  806. package/rules/.source/hippy/extend_views/tag/HtmlTag.java +191 -0
  807. package/rules/.source/hippy/extend_views/tag/HtmlTagHandler.java +185 -0
  808. package/rules/.source/hippy/extend_views/tag/SpanTag.java +160 -0
  809. package/rules/.source/hippy/extend_views/tag/TextFontSpan.java +102 -0
  810. package/rules/.source/hippy/extend_views/waterfall/Chunk.java +10 -0
  811. package/rules/.source/hippy/extend_views/waterfall/ChunkGroup.java +5 -0
  812. package/rules/.source/hippy/extend_views/waterfall/Section.java +4 -0
  813. package/rules/.source/hippy/extend_views/waterfall/Tabs.java +5 -0
  814. package/rules/.source/hippy/extend_views/waterfall/WaterfallUtils.java +26 -0
  815. package/rules/.source/hippy/hippy_uimanager/ControllerHolder.java +30 -0
  816. package/rules/.source/hippy/hippy_uimanager/ControllerManager.java +651 -0
  817. package/rules/.source/hippy/hippy_uimanager/ControllerRegistry.java +102 -0
  818. package/rules/.source/hippy/hippy_uimanager/ControllerUpdateManger.java +252 -0
  819. package/rules/.source/hippy/hippy_uimanager/CustomControllerHelper.java +425 -0
  820. package/rules/.source/hippy/hippy_uimanager/DiffUtils.java +526 -0
  821. package/rules/.source/hippy/hippy_uimanager/ExtendViewGroup.java +36 -0
  822. package/rules/.source/hippy/hippy_uimanager/HippyCustomViewCreator.java +29 -0
  823. package/rules/.source/hippy/hippy_uimanager/HippyGroupController.java +83 -0
  824. package/rules/.source/hippy/hippy_uimanager/HippyViewBase.java +27 -0
  825. package/rules/.source/hippy/hippy_uimanager/HippyViewController.java +2189 -0
  826. package/rules/.source/hippy/hippy_uimanager/HippyViewEvent.java +52 -0
  827. package/rules/.source/hippy/hippy_uimanager/IHippyZIndexViewGroup.java +24 -0
  828. package/rules/.source/hippy/hippy_uimanager/InternalExtendViewUtil.java +395 -0
  829. package/rules/.source/hippy/hippy_uimanager/ListItemRenderNode.java +143 -0
  830. package/rules/.source/hippy/hippy_uimanager/ListViewRenderNode.java +44 -0
  831. package/rules/.source/hippy/hippy_uimanager/MatrixUtil.java +470 -0
  832. package/rules/.source/hippy/hippy_uimanager/NativeGestureDispatcher.java +349 -0
  833. package/rules/.source/hippy/hippy_uimanager/NativeGestureProcessor.java +188 -0
  834. package/rules/.source/hippy/hippy_uimanager/PullFooterRenderNode.java +43 -0
  835. package/rules/.source/hippy/hippy_uimanager/PullHeaderRenderNode.java +43 -0
  836. package/rules/.source/hippy/hippy_uimanager/RenderManager.java +304 -0
  837. package/rules/.source/hippy/hippy_uimanager/RenderNode.java +533 -0
  838. package/rules/.source/hippy/hippy_uimanager/StateView.java +17 -0
  839. package/rules/.source/hippy/hippy_uimanager/TransformUtil.java +125 -0
  840. package/rules/.source/hippy/hippy_uimanager/ViewGroupDrawingOrderHelper.java +108 -0
  841. package/rules/.source/hippy/hippy_uimanager/ViewStateProvider.java +10 -0
  842. package/rules/.source/hippy/hippy_views/audioview/AudioPlayManager.java +457 -0
  843. package/rules/.source/hippy/hippy_views/audioview/AudioView.java +225 -0
  844. package/rules/.source/hippy/hippy_views/audioview/AudioViewController.java +135 -0
  845. package/rules/.source/hippy/hippy_views/common/CommonBackgroundDrawable.java +58 -0
  846. package/rules/.source/hippy/hippy_views/common/CommonBorder.java +37 -0
  847. package/rules/.source/hippy/hippy_views/custom/HippyCustomPropsController.java +61 -0
  848. package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerListAdapter.java +399 -0
  849. package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerView.java +378 -0
  850. package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerViewController.java +187 -0
  851. package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerViewHolder.java +39 -0
  852. package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerViewWrapper.java +134 -0
  853. package/rules/.source/hippy/hippy_views/hippylist/NodePositionHelper.java +55 -0
  854. package/rules/.source/hippy/hippy_views/hippylist/PreloadHelper.java +54 -0
  855. package/rules/.source/hippy/hippy_views/hippylist/PullFooterEventHelper.java +61 -0
  856. package/rules/.source/hippy/hippy_views/hippylist/PullHeaderEventHelper.java +127 -0
  857. package/rules/.source/hippy/hippy_views/hippylist/RecyclerViewEventHelper.java +394 -0
  858. package/rules/.source/hippy/hippy_views/image/HippyContentDrawable.java +113 -0
  859. package/rules/.source/hippy/hippy_views/image/HippyImageView.java +1608 -0
  860. package/rules/.source/hippy/hippy_views/image/HippyImageViewController.java +382 -0
  861. package/rules/.source/hippy/hippy_views/image/IImageStateListener.java +7 -0
  862. package/rules/.source/hippy/hippy_views/list/ChildOnScreenScroller.java +255 -0
  863. package/rules/.source/hippy/hippy_views/list/HippyListAdapter.java +647 -0
  864. package/rules/.source/hippy/hippy_views/list/HippyListItemView.java +162 -0
  865. package/rules/.source/hippy/hippy_views/list/HippyListItemViewController.java +45 -0
  866. package/rules/.source/hippy/hippy_views/list/HippyListView.java +915 -0
  867. package/rules/.source/hippy/hippy_views/list/HippyListViewController.java +622 -0
  868. package/rules/.source/hippy/hippy_views/list/HippyRecycler.java +31 -0
  869. package/rules/.source/hippy/hippy_views/list/IRecycleItemTypeChange.java +23 -0
  870. package/rules/.source/hippy/hippy_views/list/ItemDecorations.java +70 -0
  871. package/rules/.source/hippy/hippy_views/list/NegativeLongKeyFlinger.java +156 -0
  872. package/rules/.source/hippy/hippy_views/list/NodeHolder.java +34 -0
  873. package/rules/.source/hippy/hippy_views/list/RecycleViewFlinger.java +126 -0
  874. package/rules/.source/hippy/hippy_views/list/TVRecyclerView.java +2070 -0
  875. package/rules/.source/hippy/hippy_views/list/TVSingleLineListView.java +15 -0
  876. package/rules/.source/hippy/hippy_views/modal/HippyModalHostManager.java +102 -0
  877. package/rules/.source/hippy/hippy_views/modal/HippyModalHostView.java +597 -0
  878. package/rules/.source/hippy/hippy_views/modal/ModalHostHelper.java +46 -0
  879. package/rules/.source/hippy/hippy_views/modal/ModalStyleNode.java +34 -0
  880. package/rules/.source/hippy/hippy_views/modal/RequestCloseEvent.java +32 -0
  881. package/rules/.source/hippy/hippy_views/modal/ShowEvent.java +31 -0
  882. package/rules/.source/hippy/hippy_views/navigator/Navigator.java +126 -0
  883. package/rules/.source/hippy/hippy_views/navigator/NavigatorController.java +120 -0
  884. package/rules/.source/hippy/hippy_views/refresh/HippyPullFooterView.java +47 -0
  885. package/rules/.source/hippy/hippy_views/refresh/HippyPullFooterViewController.java +65 -0
  886. package/rules/.source/hippy/hippy_views/refresh/HippyPullHeaderView.java +39 -0
  887. package/rules/.source/hippy/hippy_views/refresh/HippyPullHeaderViewController.java +104 -0
  888. package/rules/.source/hippy/hippy_views/refresh/RefreshWrapper.java +237 -0
  889. package/rules/.source/hippy/hippy_views/refresh/RefreshWrapperController.java +62 -0
  890. package/rules/.source/hippy/hippy_views/refresh/RefreshWrapperItemController.java +39 -0
  891. package/rules/.source/hippy/hippy_views/refresh/RefreshWrapperItemView.java +26 -0
  892. package/rules/.source/hippy/hippy_views/scroll/HippyHorizontalScrollView.java +500 -0
  893. package/rules/.source/hippy/hippy_views/scroll/HippyOnScrollHelper.java +39 -0
  894. package/rules/.source/hippy/hippy_views/scroll/HippyScrollView.java +46 -0
  895. package/rules/.source/hippy/hippy_views/scroll/HippyScrollViewController.java +178 -0
  896. package/rules/.source/hippy/hippy_views/scroll/HippyScrollViewEventHelper.java +92 -0
  897. package/rules/.source/hippy/hippy_views/scroll/HippyVerticalScrollView.java +522 -0
  898. package/rules/.source/hippy/hippy_views/text/HippyTextView.java +512 -0
  899. package/rules/.source/hippy/hippy_views/text/HippyTextViewController.java +77 -0
  900. package/rules/.source/hippy/hippy_views/textinput/HippyTextInput.java +668 -0
  901. package/rules/.source/hippy/hippy_views/textinput/HippyTextInputController.java +528 -0
  902. package/rules/.source/hippy/hippy_views/textinput/TextInputNode.java +115 -0
  903. package/rules/.source/hippy/hippy_views/videoview/APEZProvider.java +287 -0
  904. package/rules/.source/hippy/hippy_views/videoview/APKExpansionSupport.java +82 -0
  905. package/rules/.source/hippy/hippy_views/videoview/PivotPoint.java +13 -0
  906. package/rules/.source/hippy/hippy_views/videoview/ScalableType.java +34 -0
  907. package/rules/.source/hippy/hippy_views/videoview/ScalableVideoView.java +265 -0
  908. package/rules/.source/hippy/hippy_views/videoview/ScaleManager.java +191 -0
  909. package/rules/.source/hippy/hippy_views/videoview/Size.java +19 -0
  910. package/rules/.source/hippy/hippy_views/videoview/VideoHippyView.java +917 -0
  911. package/rules/.source/hippy/hippy_views/videoview/VideoHippyViewController.java +236 -0
  912. package/rules/.source/hippy/hippy_views/videoview/ZipResourceFile.java +427 -0
  913. package/rules/.source/hippy/hippy_views/view/CardRootView.java +28 -0
  914. package/rules/.source/hippy/hippy_views/view/CustomLayoutView.java +10 -0
  915. package/rules/.source/hippy/hippy_views/view/CustomNodeView.java +5 -0
  916. package/rules/.source/hippy/hippy_views/view/DialogViewGroup.java +113 -0
  917. package/rules/.source/hippy/hippy_views/view/HippyViewGroup.java +2042 -0
  918. package/rules/.source/hippy/hippy_views/view/HippyViewGroupController.java +583 -0
  919. package/rules/.source/hippy/hippy_views/view/WindowRoot.java +5 -0
  920. package/rules/.source/hippy/hippy_views/viewpager/HippyViewPager.java +308 -0
  921. package/rules/.source/hippy/hippy_views/viewpager/HippyViewPagerAdapter.java +148 -0
  922. package/rules/.source/hippy/hippy_views/viewpager/HippyViewPagerController.java +246 -0
  923. package/rules/.source/hippy/hippy_views/viewpager/HippyViewPagerItem.java +27 -0
  924. package/rules/.source/hippy/hippy_views/viewpager/HippyViewPagerItemController.java +42 -0
  925. package/rules/.source/hippy/hippy_views/viewpager/ViewPagerPageChangeListener.java +114 -0
  926. package/rules/.source/hippy/hippy_views/viewpager/event/HippyPageItemExposureEvent.java +40 -0
  927. package/rules/.source/hippy/hippy_views/viewpager/event/HippyPageScrollEvent.java +43 -0
  928. package/rules/.source/hippy/hippy_views/viewpager/event/HippyPageScrollStateChangedEvent.java +42 -0
  929. package/rules/.source/hippy/hippy_views/viewpager/event/HippyPageSelectedEvent.java +42 -0
  930. package/rules/.source/hippy/hippy_views/webview/HippyWebView.java +160 -0
  931. package/rules/.source/hippy/hippy_views/webview/HippyWebViewBridge.java +20 -0
  932. package/rules/.source/hippy/hippy_views/webview/HippyWebViewController.java +103 -0
  933. package/rules/.source/hippy/hippy_views/webview/HippyWebViewInner.java +77 -0
  934. package/rules/.source/quicktvui/assets/ic_media_sereis_vip.png +0 -0
  935. package/rules/.source/quicktvui/package.json +38 -0
  936. package/rules/.source/quicktvui/rollup.config.js +33 -0
  937. package/rules/.source/quicktvui/src/animation/QTAnimation.android.ts +1139 -0
  938. package/rules/.source/quicktvui/src/animation/QTAnimation.harmony.ts +1088 -0
  939. package/rules/.source/quicktvui/src/animation/QTIAnimation.ts +336 -0
  940. package/rules/.source/quicktvui/src/animation/QtAnimationAPI.ts +467 -0
  941. package/rules/.source/quicktvui/src/animation/types.ts +97 -0
  942. package/rules/.source/quicktvui/src/app/QTAppIcon.ts +41 -0
  943. package/rules/.source/quicktvui/src/app/QTIAppIcon.ts +5 -0
  944. package/rules/.source/quicktvui/src/app/QtAppIconAPI.ts +56 -0
  945. package/rules/.source/quicktvui/src/assets/vip.png +0 -0
  946. package/rules/.source/quicktvui/src/base/QTIBaseView.ts +95 -0
  947. package/rules/.source/quicktvui/src/base/QtBaseNativeViewAPI.ts +604 -0
  948. package/rules/.source/quicktvui/src/base/QtBaseViewAPI.ts +750 -0
  949. package/rules/.source/quicktvui/src/base/useBaseView.ts +374 -0
  950. package/rules/.source/quicktvui/src/button/QTIButton.ts +3 -0
  951. package/rules/.source/quicktvui/src/button/QtButtonAPI.ts +9 -0
  952. package/rules/.source/quicktvui/src/button/index.vue +223 -0
  953. package/rules/.source/quicktvui/src/canvas/CanvasGradient.ts +84 -0
  954. package/rules/.source/quicktvui/src/canvas/QTCanvasView.ts +468 -0
  955. package/rules/.source/quicktvui/src/canvas/QTICanvasView.ts +141 -0
  956. package/rules/.source/quicktvui/src/canvas/QtCanvasViewAPI.ts +1140 -0
  957. package/rules/.source/quicktvui/src/classified-list-view/QtClassifiedListViewAPI.ts +115 -0
  958. package/rules/.source/quicktvui/src/classified-list-view/core/QTClassifiedListViewItem.ts +11 -0
  959. package/rules/.source/quicktvui/src/classified-list-view/core/QTClassifiedListViewItemDecoration.ts +7 -0
  960. package/rules/.source/quicktvui/src/classified-list-view/core/QTIClassifiedListView.ts +18 -0
  961. package/rules/.source/quicktvui/src/classified-list-view/index.vue +520 -0
  962. package/rules/.source/quicktvui/src/collapse/QtCollapseAPI.ts +60 -0
  963. package/rules/.source/quicktvui/src/collapse/core/QTCollapse.ts +13 -0
  964. package/rules/.source/quicktvui/src/collapse/core/QTCollapseItem.ts +7 -0
  965. package/rules/.source/quicktvui/src/collapse/core/QTICollapse.ts +15 -0
  966. package/rules/.source/quicktvui/src/collapse/core/QTICollapseItem.ts +5 -0
  967. package/rules/.source/quicktvui/src/collapse/index.vue +337 -0
  968. package/rules/.source/quicktvui/src/column/QTIColumn.ts +3 -0
  969. package/rules/.source/quicktvui/src/column/QtColumnAPI.ts +9 -0
  970. package/rules/.source/quicktvui/src/column/index.vue +29 -0
  971. package/rules/.source/quicktvui/src/core/QTEventData.ts +4 -0
  972. package/rules/.source/quicktvui/src/core/QTFlexStyleBackground.ts +4 -0
  973. package/rules/.source/quicktvui/src/core/QTFlexStyleCoordinate.ts +5 -0
  974. package/rules/.source/quicktvui/src/core/QTFlexStyleDecoration.ts +7 -0
  975. package/rules/.source/quicktvui/src/core/QTFlexStyleGradientBackground.ts +6 -0
  976. package/rules/.source/quicktvui/src/core/QTFlexStyleMargin.ts +8 -0
  977. package/rules/.source/quicktvui/src/core/QTFlexStylePadding.ts +8 -0
  978. package/rules/.source/quicktvui/src/core/QTFlexStylePosition.ts +7 -0
  979. package/rules/.source/quicktvui/src/core/QTFlexStyleSize.ts +6 -0
  980. package/rules/.source/quicktvui/src/core/QTFlexStyleSpacing.ts +4 -0
  981. package/rules/.source/quicktvui/src/core/QTFlexStyleText.ts +5 -0
  982. package/rules/.source/quicktvui/src/core/QTFocusable.ts +5 -0
  983. package/rules/.source/quicktvui/src/core/QTLocation.ts +4 -0
  984. package/rules/.source/quicktvui/src/core/QTNativeParams.ts +22 -0
  985. package/rules/.source/quicktvui/src/core/QTPosition.ts +4 -0
  986. package/rules/.source/quicktvui/src/core/QTVisibility.ts +5 -0
  987. package/rules/.source/quicktvui/src/dialog/QTDialog.ts +28 -0
  988. package/rules/.source/quicktvui/src/dialog/QTIDialog.ts +3 -0
  989. package/rules/.source/quicktvui/src/file-browse/QTFileBrowse.ts +76 -0
  990. package/rules/.source/quicktvui/src/file-browse/QTIFileBrowse.ts +13 -0
  991. package/rules/.source/quicktvui/src/focus/QTDescendantFocusability.ts +5 -0
  992. package/rules/.source/quicktvui/src/focus/QTFocusDescendant.ts +5 -0
  993. package/rules/.source/quicktvui/src/focus/QTFocusDirection.ts +8 -0
  994. package/rules/.source/quicktvui/src/focus/QTFocusDirectionName.ts +7 -0
  995. package/rules/.source/quicktvui/src/gradient/QTGradient.ts +14 -0
  996. package/rules/.source/quicktvui/src/gradient/QTGradientOrientation.ts +10 -0
  997. package/rules/.source/quicktvui/src/gradient/QTGradientShape.ts +6 -0
  998. package/rules/.source/quicktvui/src/gradient/QTGradientType.ts +5 -0
  999. package/rules/.source/quicktvui/src/grid-view/QtGridViewAPI.ts +121 -0
  1000. package/rules/.source/quicktvui/src/grid-view/README.md +93 -0
  1001. package/rules/.source/quicktvui/src/grid-view/core/QTGridViewItem.ts +4 -0
  1002. package/rules/.source/quicktvui/src/grid-view/core/QTGridViewItemDecoration.ts +7 -0
  1003. package/rules/.source/quicktvui/src/grid-view/core/QTGridViewItemFunctionParams.ts +7 -0
  1004. package/rules/.source/quicktvui/src/grid-view/core/QTIGridView.ts +23 -0
  1005. package/rules/.source/quicktvui/src/grid-view/index.vue +390 -0
  1006. package/rules/.source/quicktvui/src/image/QTIImage.ts +8 -0
  1007. package/rules/.source/quicktvui/src/image/QTImageResizeMode.ts +7 -0
  1008. package/rules/.source/quicktvui/src/image/QtImageAPI.ts +54 -0
  1009. package/rules/.source/quicktvui/src/image/index.vue +33 -0
  1010. package/rules/.source/quicktvui/src/index.ts +404 -0
  1011. package/rules/.source/quicktvui/src/list/QTIBaseListView.ts +144 -0
  1012. package/rules/.source/quicktvui/src/list/QTListInitPosition.ts +15 -0
  1013. package/rules/.source/quicktvui/src/list/QtBaseListViewAPI.ts +930 -0
  1014. package/rules/.source/quicktvui/src/list/useBaseListView.ts +454 -0
  1015. package/rules/.source/quicktvui/src/list/useListView.ts +294 -0
  1016. package/rules/.source/quicktvui/src/list-indicator/QTIndicatorListViewComponent.ts +553 -0
  1017. package/rules/.source/quicktvui/src/list-indicator/QtIndicatorViewAPI.ts +114 -0
  1018. package/rules/.source/quicktvui/src/list-indicator/core/QTIIndicatorView.ts +21 -0
  1019. package/rules/.source/quicktvui/src/list-item/ESListItemComponent.ts +86 -0
  1020. package/rules/.source/quicktvui/src/list-item/QTIListItem.ts +14 -0
  1021. package/rules/.source/quicktvui/src/list-item/QtListItemAPI.ts +107 -0
  1022. package/rules/.source/quicktvui/src/list-view/QTListViewComponent.ts +389 -0
  1023. package/rules/.source/quicktvui/src/list-view/QtListViewAPI.ts +101 -0
  1024. package/rules/.source/quicktvui/src/list-view/core/QTIListView.ts +19 -0
  1025. package/rules/.source/quicktvui/src/list-view/core/QTListViewItem.ts +12 -0
  1026. package/rules/.source/quicktvui/src/list-view/core/QTListViewItemDecoration.ts +7 -0
  1027. package/rules/.source/quicktvui/src/list-view/core/QTListViewItemFunctionParams.ts +7 -0
  1028. package/rules/.source/quicktvui/src/list-view/core/QTListViewItemState.ts +8 -0
  1029. package/rules/.source/quicktvui/src/loading/QTILoadingView.ts +3 -0
  1030. package/rules/.source/quicktvui/src/loading/QTLoadingView.ts +25 -0
  1031. package/rules/.source/quicktvui/src/loading/QtLoadingAPI.ts +9 -0
  1032. package/rules/.source/quicktvui/src/long-image/QTILongImage.ts +68 -0
  1033. package/rules/.source/quicktvui/src/long-image/QTLongImage.ts +442 -0
  1034. package/rules/.source/quicktvui/src/long-image/QTLongImageEventBean.ts +62 -0
  1035. package/rules/.source/quicktvui/src/long-image/QTLongImageOrientation.ts +19 -0
  1036. package/rules/.source/quicktvui/src/long-image/QTLongImagePositionType.ts +5 -0
  1037. package/rules/.source/quicktvui/src/long-image/QTLongImageScaleType.ts +9 -0
  1038. package/rules/.source/quicktvui/src/long-image/QtLongImageAPI.ts +9 -0
  1039. package/rules/.source/quicktvui/src/long-image/index.vue +397 -0
  1040. package/rules/.source/quicktvui/src/lottie/QTILottieView.ts +62 -0
  1041. package/rules/.source/quicktvui/src/lottie/QTLottieAsyncUpdates.ts +5 -0
  1042. package/rules/.source/quicktvui/src/lottie/QTLottieEvent.ts +5 -0
  1043. package/rules/.source/quicktvui/src/lottie/QTLottieRenderMode.ts +5 -0
  1044. package/rules/.source/quicktvui/src/lottie/QTLottieRepeatMode.ts +5 -0
  1045. package/rules/.source/quicktvui/src/lottie/QTLottieView.android.ts +207 -0
  1046. package/rules/.source/quicktvui/src/lottie/QTLottieView.harmony.ts +207 -0
  1047. package/rules/.source/quicktvui/src/lottie/QtLottieViewAPI.ts +586 -0
  1048. package/rules/.source/quicktvui/src/nav-bar/QTINavBar.ts +11 -0
  1049. package/rules/.source/quicktvui/src/nav-bar/QTNavBar.ts +9 -0
  1050. package/rules/.source/quicktvui/src/nav-bar/QTNavBarItem.ts +9 -0
  1051. package/rules/.source/quicktvui/src/nav-bar/QTNavBarItemType.ts +3 -0
  1052. package/rules/.source/quicktvui/src/nav-bar/QtNavBarAPI.ts +36 -0
  1053. package/rules/.source/quicktvui/src/nav-bar/index.vue +220 -0
  1054. package/rules/.source/quicktvui/src/plugin/QTIPluginView.ts +11 -0
  1055. package/rules/.source/quicktvui/src/plugin/QTPluginView.ts +49 -0
  1056. package/rules/.source/quicktvui/src/plugin/QtPluginViewAPI.ts +44 -0
  1057. package/rules/.source/quicktvui/src/poster/QtPosterAPI.ts +9 -0
  1058. package/rules/.source/quicktvui/src/poster/core/QTIPoster.ts +3 -0
  1059. package/rules/.source/quicktvui/src/poster/core/QTPoster.ts +32 -0
  1060. package/rules/.source/quicktvui/src/poster/core/QTPosterCorner.ts +9 -0
  1061. package/rules/.source/quicktvui/src/poster/core/QTPosterElement.ts +8 -0
  1062. package/rules/.source/quicktvui/src/poster/core/QTPosterImage.ts +7 -0
  1063. package/rules/.source/quicktvui/src/poster/core/QTPosterPlaceholderImg.ts +4 -0
  1064. package/rules/.source/quicktvui/src/poster/core/QTPosterRipple.ts +10 -0
  1065. package/rules/.source/quicktvui/src/poster/core/QTPosterScore.ts +14 -0
  1066. package/rules/.source/quicktvui/src/poster/core/QTPosterShadow.ts +4 -0
  1067. package/rules/.source/quicktvui/src/poster/core/QTPosterShimmer.ts +4 -0
  1068. package/rules/.source/quicktvui/src/poster/core/QTPosterTitle.ts +17 -0
  1069. package/rules/.source/quicktvui/src/poster/index.vue +279 -0
  1070. package/rules/.source/quicktvui/src/poster/qt-poster-corner-title.vue +69 -0
  1071. package/rules/.source/quicktvui/src/poster/qt-poster-focus-title.vue +113 -0
  1072. package/rules/.source/quicktvui/src/progressbar/QTIProgressBar.ts +264 -0
  1073. package/rules/.source/quicktvui/src/progressbar/QTProgressBar.ts +1284 -0
  1074. package/rules/.source/quicktvui/src/progressbar/QtProgressBarAPI.ts +2637 -0
  1075. package/rules/.source/quicktvui/src/qrcode/QTIQRCode.ts +3 -0
  1076. package/rules/.source/quicktvui/src/qrcode/QTQRCodeView.ts +24 -0
  1077. package/rules/.source/quicktvui/src/qrcode/QtQRCodeAPI.ts +9 -0
  1078. package/rules/.source/quicktvui/src/qt/QtAPI.ts +337 -0
  1079. package/rules/.source/quicktvui/src/qt/QtAPIModule.ts +3 -0
  1080. package/rules/.source/quicktvui/src/qt/warning.ts +9 -0
  1081. package/rules/.source/quicktvui/src/qtListen/README.md +76 -0
  1082. package/rules/.source/quicktvui/src/qtListen/effect.ts +141 -0
  1083. package/rules/.source/quicktvui/src/qtListen/index.ts +11 -0
  1084. package/rules/.source/quicktvui/src/qtListen/qtArray.ts +156 -0
  1085. package/rules/.source/quicktvui/src/qtListen/qtDiff.ts +143 -0
  1086. package/rules/.source/quicktvui/src/qtListen/reactive.ts +205 -0
  1087. package/rules/.source/quicktvui/src/qtListen/ref.ts +98 -0
  1088. package/rules/.source/quicktvui/src/qtListen/types.ts +311 -0
  1089. package/rules/.source/quicktvui/src/qtListen/watch.ts +233 -0
  1090. package/rules/.source/quicktvui/src/replace-child/QTIReplaceChildView.ts +5 -0
  1091. package/rules/.source/quicktvui/src/replace-child/QTReplaceChildView.ts +30 -0
  1092. package/rules/.source/quicktvui/src/replace-child/QtReplaceChildViewAPI.ts +37 -0
  1093. package/rules/.source/quicktvui/src/row/QTIRow.ts +3 -0
  1094. package/rules/.source/quicktvui/src/row/QtRowAPI.ts +9 -0
  1095. package/rules/.source/quicktvui/src/row/index.vue +29 -0
  1096. package/rules/.source/quicktvui/src/scroll-view/QTIScrollView.ts +7 -0
  1097. package/rules/.source/quicktvui/src/scroll-view/QTScrollView.ts +45 -0
  1098. package/rules/.source/quicktvui/src/scroll-view/QtScrollViewAPI.ts +62 -0
  1099. package/rules/.source/quicktvui/src/section/index.vue +40 -0
  1100. package/rules/.source/quicktvui/src/seekbar/QTISeekBar.ts +277 -0
  1101. package/rules/.source/quicktvui/src/seekbar/QTSeekBar.ts +1380 -0
  1102. package/rules/.source/quicktvui/src/seekbar/QTSeekBarGravity.ts +5 -0
  1103. package/rules/.source/quicktvui/src/seekbar/QTSeekBarIndicatorMode.ts +6 -0
  1104. package/rules/.source/quicktvui/src/seekbar/QTSeekBarMode.ts +4 -0
  1105. package/rules/.source/quicktvui/src/seekbar/QTSeekBarTickMarkGravity.ts +5 -0
  1106. package/rules/.source/quicktvui/src/seekbar/QTSeekBarTickMarkLayoutGravity.ts +4 -0
  1107. package/rules/.source/quicktvui/src/seekbar/QTSeekBarTickMarkMode.ts +4 -0
  1108. package/rules/.source/quicktvui/src/seekbar/QtSeekBarAPI.ts +2645 -0
  1109. package/rules/.source/quicktvui/src/series/DataAdapter.ts +329 -0
  1110. package/rules/.source/quicktvui/src/series/QTIMediaSeries.ts +33 -0
  1111. package/rules/.source/quicktvui/src/series/QTMediaSeries.ts +9 -0
  1112. package/rules/.source/quicktvui/src/series/QTMediaSeriesData.ts +9 -0
  1113. package/rules/.source/quicktvui/src/series/QTMediaSeriesDataStyle.ts +4 -0
  1114. package/rules/.source/quicktvui/src/series/QTMediaSeriesEvent.ts +7 -0
  1115. package/rules/.source/quicktvui/src/series/QTMediaSeriesGroup.ts +8 -0
  1116. package/rules/.source/quicktvui/src/series/QTMediaSeriesGroupStyle.ts +58 -0
  1117. package/rules/.source/quicktvui/src/series/QTMediaSeriesStyleType.ts +5 -0
  1118. package/rules/.source/quicktvui/src/series/QTMediaSeriesType.ts +8 -0
  1119. package/rules/.source/quicktvui/src/series/QTMediaSeriesVip.ts +4 -0
  1120. package/rules/.source/quicktvui/src/series/QtMediaSeriesAPI.ts +140 -0
  1121. package/rules/.source/quicktvui/src/series/component/media-series.vue +160 -0
  1122. package/rules/.source/quicktvui/src/series/index.vue +316 -0
  1123. package/rules/.source/quicktvui/src/series/item/media-series-number-item.vue +212 -0
  1124. package/rules/.source/quicktvui/src/series/item/media-series-text-item.vue +239 -0
  1125. package/rules/.source/quicktvui/src/tab/QTITab.ts +163 -0
  1126. package/rules/.source/quicktvui/src/tab/QTTab.ts +8 -0
  1127. package/rules/.source/quicktvui/src/tab/QTTabDataManager.ts +620 -0
  1128. package/rules/.source/quicktvui/src/tab/QTTabEvent.ts +11 -0
  1129. package/rules/.source/quicktvui/src/tab/QTTabEventParams.ts +12 -0
  1130. package/rules/.source/quicktvui/src/tab/QTTabIndex.ts +8 -0
  1131. package/rules/.source/quicktvui/src/tab/QTTabItem.ts +5 -0
  1132. package/rules/.source/quicktvui/src/tab/QTTabItemType.ts +3 -0
  1133. package/rules/.source/quicktvui/src/tab/QTTabPage.ts +5 -0
  1134. package/rules/.source/quicktvui/src/tab/QTTabPageData.ts +11 -0
  1135. package/rules/.source/quicktvui/src/tab/QTTabPageDataState.ts +8 -0
  1136. package/rules/.source/quicktvui/src/tab/QTTabPageState.ts +8 -0
  1137. package/rules/.source/quicktvui/src/tab/QtTabAPI.ts +578 -0
  1138. package/rules/.source/quicktvui/src/tab/index.vue +1561 -0
  1139. package/rules/.source/quicktvui/src/tab/useQtTabWatch.ts +203 -0
  1140. package/rules/.source/quicktvui/src/text/QTIText.ts +12 -0
  1141. package/rules/.source/quicktvui/src/text/QTTextSpan.ts +6 -0
  1142. package/rules/.source/quicktvui/src/text/QTTextSpanAttribute.ts +6 -0
  1143. package/rules/.source/quicktvui/src/text/QTTextSpanAttributeType.ts +4 -0
  1144. package/rules/.source/quicktvui/src/text/QtTextAPI.ts +90 -0
  1145. package/rules/.source/quicktvui/src/text/index.vue +44 -0
  1146. package/rules/.source/quicktvui/src/theme/button.css +195 -0
  1147. package/rules/.source/quicktvui/src/typings/shims-vue.d.ts +6 -0
  1148. package/rules/.source/quicktvui/src/ul/QTIUL.ts +34 -0
  1149. package/rules/.source/quicktvui/src/ul/QTULInitPosition.ts +3 -0
  1150. package/rules/.source/quicktvui/src/ul/QtULAPI.ts +232 -0
  1151. package/rules/.source/quicktvui/src/utils/QtVirtualViewAPI.ts +32 -0
  1152. package/rules/.source/quicktvui/src/utils/VirtualView.ts +124 -0
  1153. package/rules/.source/quicktvui/src/utils/functions.ts +1 -0
  1154. package/rules/.source/quicktvui/src/utils/index.ts +3 -0
  1155. package/rules/.source/quicktvui/src/utils/make-installer.ts +16 -0
  1156. package/rules/.source/quicktvui/src/utils/objects.ts +4 -0
  1157. package/rules/.source/quicktvui/src/utils/type.ts +1 -0
  1158. package/rules/.source/quicktvui/src/utils/types.ts +42 -0
  1159. package/rules/.source/quicktvui/src/utils/utils.ts +62 -0
  1160. package/rules/.source/quicktvui/src/utils/vue/index.ts +3 -0
  1161. package/rules/.source/quicktvui/src/utils/vue/install.ts +48 -0
  1162. package/rules/.source/quicktvui/src/utils/vue/props/index.ts +3 -0
  1163. package/rules/.source/quicktvui/src/utils/vue/props/runtime.ts +129 -0
  1164. package/rules/.source/quicktvui/src/utils/vue/props/types.ts +165 -0
  1165. package/rules/.source/quicktvui/src/utils/vue/props/util.ts +10 -0
  1166. package/rules/.source/quicktvui/src/utils/vue/typescript.ts +9 -0
  1167. package/rules/.source/quicktvui/src/view/QTIView.ts +3 -0
  1168. package/rules/.source/quicktvui/src/view/QTIViewVisibility.ts +5 -0
  1169. package/rules/.source/quicktvui/src/view/QTViewEvent.ts +3 -0
  1170. package/rules/.source/quicktvui/src/view/QTViewState.ts +12 -0
  1171. package/rules/.source/quicktvui/src/view/QtViewAPI.ts +9 -0
  1172. package/rules/.source/quicktvui/src/view/index.vue +24 -0
  1173. package/rules/.source/quicktvui/src/waterfall/QtWaterfallAPI.ts +219 -0
  1174. package/rules/.source/quicktvui/src/waterfall/README.md +143 -0
  1175. package/rules/.source/quicktvui/src/waterfall/core/QTIWaterfall.ts +49 -0
  1176. package/rules/.source/quicktvui/src/waterfall/core/QTScrollState.ts +5 -0
  1177. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfall.ts +13 -0
  1178. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallCardItem.ts +11 -0
  1179. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallCardPlaceHolder.ts +10 -0
  1180. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallCardSection.ts +12 -0
  1181. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallDataAdapter.ts +195 -0
  1182. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallDataManager.ts +305 -0
  1183. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallEvent.ts +11 -0
  1184. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallFlexStyle.ts +19 -0
  1185. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallIndex.ts +7 -0
  1186. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallItem.ts +9 -0
  1187. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallItemType.ts +7 -0
  1188. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallPlaceholder.ts +5 -0
  1189. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallPluginItem.ts +9 -0
  1190. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallPluginSection.ts +8 -0
  1191. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallSection.ts +17 -0
  1192. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallSectionType.ts +14 -0
  1193. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallTabItem.ts +10 -0
  1194. package/rules/.source/quicktvui/src/waterfall/core/QTWaterfallVisibleType.ts +7 -0
  1195. package/rules/.source/quicktvui/src/waterfall/index.vue +704 -0
  1196. package/rules/.source/quicktvui/src/waterfall/item/card-item.vue +49 -0
  1197. package/rules/.source/quicktvui/src/waterfall/item/plugin-item.vue +52 -0
  1198. package/rules/.source/quicktvui/src/waterfall/section/blank-section.vue +27 -0
  1199. package/rules/.source/quicktvui/src/waterfall/section/card-section.vue +81 -0
  1200. package/rules/.source/quicktvui/src/waterfall/section/end-section.vue +50 -0
  1201. package/rules/.source/quicktvui/src/waterfall/section/flex-section.vue +167 -0
  1202. package/rules/.source/quicktvui/src/waterfall/section/list-section.vue +247 -0
  1203. package/rules/.source/quicktvui/src/waterfall/section/loading-section.vue +34 -0
  1204. package/rules/.source/quicktvui/src/waterfall/section/plugin-section.vue +87 -0
  1205. package/rules/.source/quicktvui/src/waterfall/section/section-title.vue +63 -0
  1206. package/rules/.source/quicktvui/src/waterfall/section/vue-section.vue +44 -0
  1207. package/rules/.source/quicktvui/src/webview/QTIWebView.ts +199 -0
  1208. package/rules/.source/quicktvui/src/webview/QTWebView.ts +957 -0
  1209. package/rules/.source/quicktvui/src/webview/QTWebViewInterceptRule.ts +4 -0
  1210. package/rules/.source/quicktvui/src/webview/QTWebViewLayerType.ts +6 -0
  1211. package/rules/.source/quicktvui/src/webview/QTWebViewSniffingRule.ts +18 -0
  1212. package/rules/.source/quicktvui/src/webview/QtWebViewAPI.ts +1963 -0
  1213. package/rules/.source/quicktvui/src/x5webview/QTIX5WebView.ts +211 -0
  1214. package/rules/.source/quicktvui/src/x5webview/QTX5WebView.ts +1014 -0
  1215. package/rules/.source/quicktvui/src/x5webview/QTX5WebViewInterceptRule.ts +4 -0
  1216. package/rules/.source/quicktvui/src/x5webview/QTX5WebViewLayerType.ts +6 -0
  1217. package/rules/.source/quicktvui/src/x5webview/QTX5WebViewSniffingRule.ts +18 -0
  1218. package/rules/.source/quicktvui/src/x5webview/QtX5WebViewAPI.ts +2015 -0
  1219. package/rules/.source/quicktvui/tsconfig.json +34 -0
  1220. package/rules/.source/quicktvui/web-types.json +1 -0
  1221. package/rules/.source/quicktvui/yarn.lock +72 -0
  1222. package/rules/.source/web/audio/index.ts +9 -0
  1223. package/rules/.source/web/audio/src/audio.ts +34 -0
  1224. package/rules/.source/web/audio/src/audio.vue +146 -0
  1225. package/rules/.source/web/audio/src/instance.ts +3 -0
  1226. package/rules/.source/web/audio-service/index.ts +10 -0
  1227. package/rules/.source/web/audio-service/src/audio-service.ts +34 -0
  1228. package/rules/.source/web/audio-service/src/audio-service.vue +115 -0
  1229. package/rules/.source/web/audio-service/src/instance.ts +3 -0
  1230. package/rules/.source/web/base/index.ts +1 -0
  1231. package/rules/.source/web/base/src/base-types.ts +1 -0
  1232. package/rules/.source/web/component.ts +25 -0
  1233. package/rules/.source/web/docs/h.txt +6 -0
  1234. package/rules/.source/web/docs/video.txt +88 -0
  1235. package/rules/.source/web/h1/index.ts +9 -0
  1236. package/rules/.source/web/h1/src/h1.ts +9 -0
  1237. package/rules/.source/web/h1/src/h1.vue +30 -0
  1238. package/rules/.source/web/h1/src/instance.ts +3 -0
  1239. package/rules/.source/web/h2/index.ts +9 -0
  1240. package/rules/.source/web/h2/src/h2.ts +9 -0
  1241. package/rules/.source/web/h2/src/h2.vue +30 -0
  1242. package/rules/.source/web/h2/src/instance.ts +3 -0
  1243. package/rules/.source/web/h3/index.ts +9 -0
  1244. package/rules/.source/web/h3/src/h3.ts +9 -0
  1245. package/rules/.source/web/h3/src/h3.vue +30 -0
  1246. package/rules/.source/web/h3/src/instance.ts +3 -0
  1247. package/rules/.source/web/h4/index.ts +9 -0
  1248. package/rules/.source/web/h4/src/h4.ts +9 -0
  1249. package/rules/.source/web/h4/src/h4.vue +30 -0
  1250. package/rules/.source/web/h4/src/instance.ts +3 -0
  1251. package/rules/.source/web/h5/index.ts +9 -0
  1252. package/rules/.source/web/h5/src/h5.ts +9 -0
  1253. package/rules/.source/web/h5/src/h5.vue +30 -0
  1254. package/rules/.source/web/h5/src/instance.ts +3 -0
  1255. package/rules/.source/web/h6/index.ts +9 -0
  1256. package/rules/.source/web/h6/src/h6.ts +9 -0
  1257. package/rules/.source/web/h6/src/h6.vue +30 -0
  1258. package/rules/.source/web/h6/src/instance.ts +3 -0
  1259. package/rules/.source/web/index.ts +84 -0
  1260. package/rules/.source/web/package.json +24 -0
  1261. package/rules/.source/web/plugin.ts +3 -0
  1262. package/rules/.source/web/rollup.config.js +37 -0
  1263. package/rules/.source/web/shims-vue.d.ts +6 -0
  1264. package/rules/.source/web/source/index.ts +9 -0
  1265. package/rules/.source/web/source/src/instance.ts +3 -0
  1266. package/rules/.source/web/source/src/source.ts +17 -0
  1267. package/rules/.source/web/source/src/source.vue +19 -0
  1268. package/rules/.source/web/tsconfig.json +34 -0
  1269. package/rules/.source/web/utils/functions.ts +1 -0
  1270. package/rules/.source/web/utils/index.ts +3 -0
  1271. package/rules/.source/web/utils/make-installer.ts +16 -0
  1272. package/rules/.source/web/utils/objects.ts +4 -0
  1273. package/rules/.source/web/utils/types.ts +42 -0
  1274. package/rules/.source/web/utils/vue/index.ts +3 -0
  1275. package/rules/.source/web/utils/vue/install.ts +48 -0
  1276. package/rules/.source/web/utils/vue/props/index.ts +3 -0
  1277. package/rules/.source/web/utils/vue/props/runtime.ts +129 -0
  1278. package/rules/.source/web/utils/vue/props/types.ts +165 -0
  1279. package/rules/.source/web/utils/vue/props/util.ts +10 -0
  1280. package/rules/.source/web/utils/vue/typescript.ts +9 -0
  1281. package/rules/.source/web/video/index.ts +9 -0
  1282. package/rules/.source/web/video/src/instance.ts +3 -0
  1283. package/rules/.source/web/video/src/video.ts +34 -0
  1284. package/rules/.source/web/video/src/video.vue +171 -0
  1285. package/rules/.windsurfrules +28 -4
  1286. package/rules/AGENTS.md +28 -4
  1287. package/rules/CLAUDE.md +28 -3
  1288. package/rules/GEMINI.md +26 -3
@@ -0,0 +1,2466 @@
1
+ package com.tencent.extend.views.fastlist;
2
+
3
+ import android.content.Context;
4
+ import android.graphics.Canvas;
5
+ import android.graphics.Rect;
6
+
7
+ import android.support.v7.widget.DefaultItemAnimator;
8
+ import android.util.Log;
9
+ import android.view.View;
10
+
11
+ import android.support.annotation.NonNull;
12
+ import android.support.annotation.Nullable;
13
+ import android.support.v7.widget.RecyclerView;
14
+ import android.support.v7.widget.SimpleItemAnimator;
15
+
16
+ import com.tencent.extend.AutoFocusManager;
17
+ import com.tencent.extend.TriggerTaskManagerModule;
18
+ import com.tencent.extend.views.fastlist.diff.FastListDataBindingHelper;
19
+ import com.tencent.mtt.hippy.FocusDispatchView;
20
+ import com.tencent.mtt.hippy.HippyEngineContext;
21
+ import com.tencent.mtt.hippy.HippyInstanceContext;
22
+ import com.tencent.mtt.hippy.common.HippyArray;
23
+ import com.tencent.mtt.hippy.common.HippyMap;
24
+ import com.tencent.mtt.hippy.modules.Promise;
25
+ import com.tencent.mtt.hippy.uimanager.ExtendViewGroup;
26
+ import com.tencent.mtt.hippy.uimanager.HippyViewBase;
27
+ import com.tencent.mtt.hippy.uimanager.InternalExtendViewUtil;
28
+ import com.tencent.mtt.hippy.uimanager.NativeGestureDispatcher;
29
+ import com.tencent.mtt.hippy.uimanager.RenderNode;
30
+ import com.tencent.mtt.hippy.uimanager.StateView;
31
+ import com.tencent.mtt.hippy.uimanager.ViewStateProvider;
32
+ import com.tencent.mtt.hippy.utils.ExtendUtil;
33
+ import com.tencent.mtt.hippy.utils.LogUtils;
34
+ import com.tencent.mtt.hippy.utils.PixelUtil;
35
+ import com.tencent.mtt.hippy.views.list.HippyRecycler;
36
+ import com.tencent.mtt.hippy.views.list.TVRecyclerView;
37
+ import com.tencent.mtt.hippy.views.view.HippyViewGroup;
38
+
39
+ import java.util.Arrays;
40
+ import java.util.Objects;
41
+
42
+ public class FastListView extends TVListView implements HippyViewBase, FastPendingView, FastAdapter.ScrollTaskHandler, ViewStateProvider {
43
+
44
+ // private FastRecyclerView mRealList;
45
+ protected InitParams mInitParams;
46
+ public static final String TAG = TVListView.TAG;
47
+ private FastAdapter mAdapter;
48
+ private ItemDecoration mItemDecoration;
49
+ private NativeGestureDispatcher mGestureDispatcher;
50
+ private boolean hasSet = false;
51
+ private boolean isDisplayed = true;
52
+ private boolean isDraw = true;
53
+ private boolean pendingChangeVisible = false;
54
+ private Runnable changeVisibilityRunnable = null;
55
+ private Runnable pendingDiffScroll = null;
56
+ private RenderNode templateNode;//根node节点
57
+ //重新设置数据时,重新判断autofocus
58
+ protected boolean autofocusDirtyOnDataChange = false;
59
+ private View agentView;//处理滑动事件的代理view
60
+ private boolean pauseTaskOnHide = false;//处理滑动事件的代理view
61
+ private OnFastScrollStateChangedListener onScrollStateChangedListener;//外部处理滑动事件变化
62
+ int lastScrollX = 0;
63
+ int lastScrollY = 0;
64
+
65
+ private boolean isInfinityLoop = false;
66
+ private boolean suspendUpdateTaskOnPause = false;
67
+
68
+ int customFadeLength = -1;
69
+ /**
70
+ * 当列表pause时,是否将执行的updateItemXX等任务添加到队列中
71
+ *
72
+ * @param suspendUpdateTaskOnPause
73
+ */
74
+ public void setSuspendUpdateTaskOnPause(boolean suspendUpdateTaskOnPause) {
75
+ this.suspendUpdateTaskOnPause = suspendUpdateTaskOnPause;
76
+ }
77
+
78
+ public boolean isSuspendUpdateTask() {
79
+ return suspendUpdateTaskOnPause && isPostTaskPaused();
80
+ }
81
+
82
+ public void setPauseTaskOnHide(boolean pauseOnHide) {
83
+ this.pauseTaskOnHide = pauseOnHide;
84
+ }
85
+
86
+ private HippyMap infiniteParams = null;
87
+
88
+
89
+ private boolean useDiff = false; // 是否使用diff
90
+ private String keyName; // diff的key
91
+
92
+ private Object focusViewTag;
93
+
94
+ private boolean reFocusAfterDiff = false;
95
+
96
+ // public FastListView(Context context) {
97
+ // super(context);
98
+ // }
99
+
100
+ public FastListView(Context context, HippyMap params) {
101
+ super(context);
102
+ applyProps(params);
103
+ }
104
+
105
+ public static final String TAG_CLONED = "ClonedDispatch";
106
+
107
+ public static View findNodeViewByTemplateView(int position, View view) {
108
+ HippyEngineContext context = Utils.getHippyContext(view);
109
+ RenderNode node = context != null ? context.getRenderManager().getRenderNode(view.getId()) : null;
110
+ final FastListView fastList = findParentFastList(context,node);
111
+ View targetView = null;
112
+ if (fastList != null) {
113
+ if (fastList.getFastAdapter() != null) {
114
+ targetView = fastList.getFastAdapter().findClonedViewByTemplateView(position,view);
115
+ if(LogUtils.isDebug()) {
116
+ Log.i(TAG_CLONED, "findNodeViewByTemplateView targetView targetView is :" + targetView);
117
+ }
118
+ }
119
+ }else{
120
+ Log.e(TAG_CLONED,"findNodeViewByTemplateView error fastList is null");
121
+ }
122
+
123
+ return targetView;
124
+ }
125
+
126
+ public static FastListView findParentFastList(HippyEngineContext context,RenderNode node){
127
+ if (context != null && node != null) {
128
+ //RenderNode node = context.getRenderManager().getRenderNode(view.getId());
129
+ ///Log.i(TAG_CLONED,"findParentFastList node:"+node+",class Name:"+node.getClassName());
130
+ if(FastListViewController.CLASS_NAME.equals(node.getClassName())){
131
+ View fv = context.getRenderManager().getControllerManager().findView(node.getId());
132
+ if(fv instanceof FastListView){
133
+ return (FastListView) fv;
134
+ }
135
+ }else{
136
+ return findParentFastList(context, node.getParent());
137
+ }
138
+ }
139
+ return null;
140
+ }
141
+
142
+ public void setReFocusAfterDiff(boolean reFocusAfterDiff) {
143
+ this.reFocusAfterDiff = reFocusAfterDiff;
144
+ }
145
+
146
+
147
+ public void diffSetSelectionPosition(int select){
148
+ if(LogUtils.isDebug()) {
149
+ Log.i(TAG, "diffSetSelectionPosition select:" + select + ",getControlProps().singleSelectPosition:" + getControlProps().singleSelectPosition + ",this :" + ExtendUtil.debugViewLite(this));
150
+ }
151
+ if(select != getControlProps().singleSelectPosition){
152
+ this.setSelectChildPosition(select,true);
153
+ }else{
154
+ defaultSectionPosition = select;
155
+ }
156
+ getControlProps().singleSelectPosition = select;
157
+ }
158
+
159
+ public int getFocusChildPosition(){
160
+ if(hasFocus()) {
161
+ final View child = getFocusedChild();
162
+ if (child != null) {
163
+ return getChildAdapterPosition(child);
164
+ }
165
+ }
166
+ return -1;
167
+ }
168
+
169
+ public void setAutofocusPositionInfiniteMode(int offset){
170
+ this.setAutofocusPosition(convertInfinitePosition(offset));
171
+ }
172
+
173
+ public void setAutofocusPosition(int position){
174
+ Log.i(AutoFocusManager.TAG, "list setAutofocusPosition :" + position+",hasFocus:"+hasFocus()+",current autofocusPosition:"+getControlProps().autofocusPosition);
175
+ if(getControlProps().autofocusPosition != position) {
176
+ getControlProps().autofocusPosition = position;
177
+ if (position == -1) {
178
+ return;
179
+ }
180
+ if(!hasFocus()) {
181
+ HippyMap hippyMap = new HippyMap();
182
+ hippyMap.pushInt("focusPosition", position);
183
+ hippyMap.pushInt("scrollToPosition", position);
184
+ hippyMap.pushBoolean("alignCenter", true);
185
+ hippyMap.pushBoolean("autofocus", true);
186
+ setInitPositionInfo(hippyMap);
187
+ }else{
188
+ final View view = findViewByPosition(position);
189
+ //这里
190
+ if(view != null && getFocusChildPosition() != position){
191
+ onRequestAutofocus(this,view,AUTOFOCUS_TYPE_FORCE);
192
+ if(LogUtils.isDebug()) {
193
+ Log.i(AutoFocusManager.TAG, "setAutofocusPosition requestFocus directly on childVisible position" + position);
194
+ }
195
+ } else {
196
+ if(LogUtils.isDebug()) {
197
+ Log.e(AutoFocusManager.TAG, "setAutofocusPosition return on getFocusChildPosition() == position:" + getFocusChildPosition());
198
+ }
199
+ HippyMap hippyMap = new HippyMap();
200
+ hippyMap.pushInt("focusPosition", position);
201
+ hippyMap.pushInt("scrollToPosition", position);
202
+ hippyMap.pushBoolean("alignCenter", true);
203
+ hippyMap.pushBoolean("autofocus", true);
204
+ setInitPositionInfo(hippyMap);
205
+ }
206
+ }
207
+ }else{
208
+ Log.e(AutoFocusManager.TAG,"setAutofocus return on getControlProps().autofocusPosition = position :"+position);
209
+ }
210
+ // setupInitScrollWork(position,);
211
+ }
212
+
213
+ public void setAutoSelectPosition(int position){
214
+ Log.i(AutoFocusManager.TAG, ">>>list setAutoSelectPosition :" + position);
215
+ diffSetSelectionPosition(position);
216
+ // if(position != getControlProps().autoScrollToPosition){
217
+ // setAutoscrollPosition(position);
218
+ // }
219
+ }
220
+
221
+ public void setAutoscrollPosition(int position){
222
+ setAutoscrollPosition(position,false,0);
223
+ }
224
+
225
+
226
+ int convertInfinitePosition(int offset){
227
+ return FastAdapter.INFINITE_START_POSITION + offset;
228
+ }
229
+
230
+ public void setAutoscrollInfiniteMode(int positionOffset, boolean force, int offset){
231
+ final int finalPosition = convertInfinitePosition(positionOffset);
232
+ this.setAutoscrollPosition(finalPosition,force,offset);
233
+ }
234
+
235
+ public void setAutoscrollPosition(int position,boolean force,int offset){
236
+ Log.i(AutoFocusManager.TAG, ">list setAutoscrollPosition :" + position+",focusChildPos:"+getFocusChildPosition());
237
+ if(getControlProps().autoScrollToPosition != position || force){
238
+ getControlProps().autoScrollToPosition = position;
239
+ getControlProps().scrollOffset = offset;
240
+ if(getControlProps().autofocusPosition == position && hasFocus()){
241
+ Log.e(AutoFocusManager.TAG, ">list setAutoscrollPosition return on autofocusPosition == position :" + position);
242
+ return;
243
+ }
244
+ if (getControlProps().autoScrollToPosition == -1) {
245
+ return;
246
+ }
247
+ final int focusChildPos = getFocusChildPosition();
248
+ if(focusChildPos == position && hasFocus()){
249
+ Log.e(AutoFocusManager.TAG, ">list setAutoscrollPosition return on focusChildPos == position :" + position);
250
+ return;
251
+ }
252
+ // HippyMap hippyMap = new HippyMap();setAutoscrollPosition
253
+ // hippyMap.pushInt("scrollToPosition",position);
254
+ // hippyMap.pushBoolean("alignCenter",true);
255
+ // setInitPositionInfo(hippyMap);
256
+ if(!hasFocus() || getChildCount() < 1) {
257
+ setTargetFocusChildPosition(position);
258
+ // int diffScroll = Math.abs(getControlProps().currentScrollToPosition - position);
259
+ boolean anim = false;
260
+ // final View view = findViewByPosition(position);
261
+ // if (view != null) {
262
+ // anim = true;
263
+ // }
264
+ scrollToPosition4Autoscroll(position, anim);
265
+ // HippyMap hippyMap = new HippyMap();
266
+ // hippyMap.pushInt("scrollToPosition",position);
267
+ // hippyMap.pushBoolean("alignCenter",true);
268
+ // setInitPositionInfo(hippyMap);
269
+ }else{
270
+ Log.e(AutoFocusManager.TAG, ">list setAutoscrollPosition return on hasFocus position :" + position);
271
+ }
272
+ //scrollToPosition(position);
273
+ }else{
274
+ Log.e(AutoFocusManager.TAG, ">list setAutoscrollPosition return on autoScrollToPosition == position :" + position);
275
+ }
276
+ }
277
+
278
+ // public void diffSetFocusPosition(int position){
279
+ //// if(((getControlProps().focusPosition != position)
280
+ //// || (getFocusChildPosition() != position))//当焦点不是当前焦点时,也执行
281
+ //// && position > -1){
282
+ //// //这里证明焦点发生变化,需要获取焦点
283
+ //// removeCallbacks(this.pendingDiffScroll);
284
+ //// requestPendingScroll(position,position,
285
+ //// getControlProps().scrollOffset,null);
286
+ //// }
287
+ // getControlProps().autofocusPosition = position;
288
+ // }
289
+
290
+ public int getAutofocusPosition(){
291
+ return getControlProps().autofocusPosition;
292
+ }
293
+ public void diffSetScrollToPosition(int position, int offset){
294
+ this.diffSetScrollToPosition(position,offset,50);
295
+ }
296
+ public void diffSetScrollToPosition(int position, int offset,int delay){
297
+ removeCallbacks(this.pendingDiffScroll);
298
+ if((position != getControlProps().scrollToPosition && getControlProps() .focusPosition != position)
299
+ || offset != getControlProps().scrollOffset && position > -1){
300
+ //setInitPositionInfo();
301
+ requestPendingScroll(-1, position,
302
+ offset, null,delay,true);
303
+ }else{
304
+ Log.e(TAG,"diffSetScrollToPosition return on same position");
305
+ }
306
+ getControlProps().scrollToPosition = position;
307
+ getControlProps().scrollOffset = offset;
308
+ }
309
+
310
+ public void setUseDiff(boolean useDiff) {
311
+ this.useDiff = useDiff;
312
+ }
313
+
314
+ public boolean isUseDiff() {
315
+ return useDiff;
316
+ }
317
+
318
+ public void setKeyName(String keyName) {
319
+ this.keyName = keyName;
320
+ }
321
+
322
+ protected void applyProps(HippyMap params) {
323
+ setVerticalScrollBarEnabled(false);
324
+ setHorizontalScrollBarEnabled(false);
325
+
326
+ final int spanCount = params.containsKey("spanCount") ? params.getInt("spanCount") : 1;
327
+ final int orientation = params.containsKey("horizontal") ? RecyclerView.HORIZONTAL : RecyclerView.VERTICAL;
328
+ mManagerType = spanCount > 1 ? 2 : 1;
329
+ //setAdapter(mAdapter);
330
+ //notice:使用viewPool会导致列表切换时不刷新,暂不使用
331
+ if(params.containsKey("infiniteParams")){
332
+ infiniteParams = params.getMap("infiniteParams");
333
+ isInfinityLoop = true;
334
+
335
+ }else{
336
+ isInfinityLoop = params.containsKey("infiniteMode");
337
+ }
338
+
339
+ // Log.i("DebugInfinite","applyProps isInfinityLoop : "+isInfinityLoop+",this:"+ExtendUtil.debugViewLite(this));
340
+ // isInfinityLoop = true;
341
+ if (mAdapter == null) {
342
+ mAdapter = newAdapter();
343
+
344
+ // if(params.containsKey("stableIdKey")){
345
+ // mAdapter.setStableIdKey(params.getString("stableIdKey"));
346
+ // }
347
+ // setRecycledViewPool(mAdapter.getCacheWorker(getContext(),this));
348
+ // Log.d("EsPageViewLog", "getCacheWorker set this:" + this+",findPageRootView():"+findPageRootView());
349
+ }
350
+
351
+
352
+ if (LogUtils.isDebug()) {
353
+ Log.i(TAG, "fastList applyProps spanCount:" + spanCount + ",orientation:" + orientation + ",isInfinityLoop:" + isInfinityLoop);
354
+ }
355
+ if (spanCount > 1) {
356
+ setGridViewLayout(spanCount, orientation, mAdapter);
357
+ } else {
358
+ init(orientation, mAdapter);
359
+ }
360
+ if (params.containsKey("disableAdvancedFocusSearch")) {
361
+ setUseAdvancedFocusSearch(false);
362
+ }
363
+ if (params.containsKey("advancedFocusSearchSpan")) {
364
+ this.advancedFocusSearchMore = params.getInt("advancedFocusSearchSpan");
365
+ if (LogUtils.isDebug()) {
366
+ Log.d(TAG, "advancedFocusSearchSpan set :" + this.advancedFocusSearchMore);
367
+ }
368
+ }
369
+ //padding="60,0,0,0"
370
+ if (params.containsKey("padding")) {
371
+ String paddingString = params.getString("padding");
372
+ if (paddingString.contains(",")) {
373
+ String[] padding = paddingString.split(",");
374
+ this.setPadding(Utils.toPX(padding[0] != null ? Integer.parseInt(padding[0]) : 0), Utils.toPX(padding[1] != null ? Integer.parseInt(padding[1]) : 0),
375
+ Utils.toPX(padding[2] != null ? Integer.parseInt(padding[2]) : 0), Utils.toPX(padding[3] != null ? Integer.parseInt(padding[3]) : 0));
376
+ }
377
+ }
378
+ mItemDecoration = mAdapter.buildListItemDecoration();
379
+ addItemDecoration(mItemDecoration);
380
+
381
+ // setItemAnimatorEnable(false);
382
+ // setItemAnimatorEnable(true);
383
+ }
384
+
385
+ public void setItemAnimatorEnable(boolean b){
386
+ if (b) {
387
+ setItemAnimator(new DefaultItemAnimator());
388
+ }else{
389
+ setItemAnimator(null);
390
+ }
391
+ }
392
+
393
+ public void updateItemProps(String name, int position, HippyMap dataToUpdate, boolean updateView) {
394
+
395
+ if (mAdapter != null) {
396
+ final ViewHolder vh = findViewHolderForAdapterPosition(position);
397
+ mAdapter.updateItemProps(name, position, dataToUpdate, updateView, vh);
398
+ if (vh == null) {
399
+ Log.e(TAG, "updateItemProps error,没有找到对应的Holder,当前View可能没有在展示");
400
+ }
401
+ }
402
+ }
403
+
404
+ FastAdapter newAdapter() {
405
+ final FastAdapter a = new FastAdapter();
406
+ a.eventDeliverer = eventDeliverer;
407
+ a.setBoundListView(this);
408
+ a.isInfiniteLoop = isInfinityLoop;
409
+ // setReFocusAfterDiff();
410
+ //a.setShareViewPoolType(hashCode() + "");
411
+ a.setContext(getEngineContext(),getContext());
412
+ return a;
413
+ }
414
+
415
+
416
+ HippyEngineContext getEngineContext() {
417
+ return ((HippyInstanceContext) getContext()).getEngineContext();
418
+ }
419
+
420
+ @Override
421
+ public View getView() {
422
+ return this;
423
+ }
424
+
425
+ @Override
426
+ public void notifyRecycled() {
427
+ if (LogUtils.isDebug()) {
428
+ Log.d(TAG, "FastListView notifyRecycled");
429
+ }
430
+ if(resetOnDetach) {
431
+ if (LogUtils.isDebug()) {
432
+ Log.w(TAG, "FastListView resetOnDetach");
433
+ }
434
+ scrollToTop();
435
+ setSelectChildPosition(0, true);
436
+ }
437
+ }
438
+
439
+ public void setGroupChildSelectByItemPosition(int anInt) {
440
+ }
441
+
442
+ public void scrollToPosition(int pos) {
443
+ this.scrollToPosition(pos, 0);
444
+ }
445
+
446
+ public void scrollToPosition(int pos, int offset) {
447
+ this.scrollToPosition(pos, offset, false);
448
+ }
449
+
450
+ public void callScrollToInfinitePosition(int pos, int offset, boolean anim) {
451
+ this.callScrollToPosition(convertInfinitePosition(pos),offset,anim);
452
+ }
453
+
454
+ public void callScrollToPosition(int pos, int offset, boolean anim) {
455
+ if(pos > -1) {
456
+ // autofocusDirty = true;
457
+ // autofocusDirtyOnDataChange = true;
458
+ if(LogUtils.isDebug()) {
459
+ Log.i(AutoFocusManager.TAG, "callScrollToPosition pos:" + pos + ",offset:" + offset + ",anim:" + anim + ",autofocusPosition:" + getControlProps().autofocusPosition);
460
+ }
461
+ if(getControlProps().autofocusPosition > -1){
462
+ setupInitScrollWork(getControlProps().autofocusPosition,getControlProps().autofocusPosition,0,null,false,0,true);
463
+ }
464
+ }
465
+ this.scrollToPosition(pos,offset,anim);
466
+ }
467
+
468
+ public void scrollToPosition4Autoscroll(int pos, boolean anim){
469
+ if(getChildOnScreenScroller().getScrollType() == TVRecyclerView.REQUEST_CHILD_ON_SCREEN_TYPE_CENTER){
470
+ getControlProps().pendingScrollToPosition = pos;
471
+ }
472
+ int offset = getControlProps().scrollOffset;
473
+ if(LogUtils.isDebug()) {
474
+ Log.i(AutoFocusManager.TAG, "handleAutoscroll scrollToPositionWithAlignCenter pos:" + pos + ",offset:" + offset + ",getControlProps().pendingScrollToPosition:" + getControlProps().pendingScrollToPosition);
475
+ }
476
+ //setupInitScrollWork(-1,pos,offset,null,false,0,false);
477
+ this.scrollToPosition(pos,offset,anim);
478
+ // this.updateList(anim);
479
+ // RenderUtil.req
480
+ // RenderUtil.requestNodeLayout(this);
481
+ }
482
+
483
+
484
+ public void scrollToPosition(int pos, int offset, boolean anim) {
485
+
486
+ if (LogUtils.isDebug()) {
487
+ Log.i(AutoFocusManager.TAG, "handleAutoscroll scrollToPosition pos:" + pos + ",offset:" + offset + " ,anim:" + anim);
488
+ }
489
+ getControlProps().currentScrollToPosition = pos;
490
+ stopScroll();
491
+ if (!anim) {
492
+ handleScrollBackToTop(pos);
493
+ getLayoutExecutor().scrollToPositionWithOffset(pos,offset);
494
+ // getLayoutManager().requestLayout();
495
+ // RenderUtil.reLayoutView(this, (int) getX(), (int) getY(), getWidth(), getHeight());
496
+ // super.scrollToPosition(pos);
497
+ requestLayoutManual();
498
+ // requestLayout();`
499
+ // postInvalidateDelayed(16);
500
+ // RenderUtil.requestNodeLayout(this);
501
+ } else {
502
+ handleScrollBackToTop(pos);
503
+ SmoothScroller ss = new MyLinearScroller(this, offset);
504
+ ss.setTargetPosition(pos);
505
+ getLayoutManagerCompat().startSmoothScroll(ss);
506
+ }
507
+ }
508
+
509
+ //设置根节点
510
+ public void setTemplateNode(RenderNode templateNode) {
511
+ this.templateNode = templateNode;
512
+ }
513
+
514
+ public void setPostContentDelay(int time) {
515
+ if (mAdapter != null) {
516
+ mAdapter.postDelay = time;
517
+ }
518
+ }
519
+
520
+ @Override
521
+ public void requestChildFocus(View child, View focused) {
522
+ // if (stateEnableOnFocusNames != null) {
523
+ // if (mFocusChildPosition > -1) {
524
+ // View last = findViewByPosition(mFocusChildPosition);
525
+ // if (last != null) {
526
+ // for(String s : stateEnableOnFocusNames){
527
+ // if(last instanceof StateView){
528
+ // if("selected".equals(s)){
529
+ // last.setSelected(false);
530
+ // }
531
+ // ((StateView) last).setCustomState(s,false);
532
+ // }
533
+ // }
534
+ // }
535
+ // }
536
+ // }
537
+ super.requestChildFocus(child, focused);
538
+ //Log.i("DebugInfinite","requestChildFocus position:"+mFocusChildPosition);
539
+ if (stateEnableOnFocusNames != null) {
540
+ for(String s : stateEnableOnFocusNames){
541
+ if(child instanceof StateView){
542
+ if("selected".equals(s)){
543
+ //child.setSelected(true);
544
+ //diffSetSelectionPosition(mFocusChildPosition);
545
+ this.setSelectChildPosition(mFocusChildPosition,true);
546
+ }
547
+ ((StateView) child).setCustomState(s,true);
548
+ }
549
+ }
550
+ }
551
+ }
552
+
553
+ public void requestChildFocus(int pos, int direction) {
554
+ if (LogUtils.isDebug()) {
555
+ LogUtils.e(FocusDispatchView.TAG, "requestChildFocus view:" + getId());
556
+ }
557
+
558
+ final View v = findViewByPosition(pos);
559
+ if (v != null) {
560
+ v.requestFocus(direction);
561
+ }
562
+ }
563
+
564
+ public void setup() {
565
+
566
+ }
567
+
568
+
569
+ public RenderNode getTemplateNode() {
570
+ return templateNode;
571
+ }
572
+
573
+ private FastListNode getRenderNode() {
574
+ if (templateNode != null) {
575
+ if (templateNode instanceof FastListNode) {
576
+ return (FastListNode) templateNode;
577
+ }
578
+ }
579
+ final RenderNode node = Utils.getRenderNode(this);
580
+ if (node instanceof FastListNode) {
581
+ return (FastListNode) node;
582
+ }
583
+ Log.e(TAG, "FastListView getRenderNode return null id :" + getId());
584
+ return null;
585
+ }
586
+
587
+ @Override
588
+ public void setVisibility(int visibility) {
589
+ super.setVisibility(visibility);
590
+ // if(visibility != )
591
+ if(LogUtils.isDebug()) {
592
+ if (visibility == View.VISIBLE) {
593
+ Log.d(AutoFocusManager.TAG, "FastListView setVisibility :" + "View.VISIBLE" + ",this:" + ExtendUtil.debugView(this));
594
+ } else {
595
+ Log.d(AutoFocusManager.TAG, "FastListView setVisibility :" + (visibility == INVISIBLE ? "invisible" : "gone") + ",this:" + ExtendUtil.debugView(this));
596
+ }
597
+ }
598
+ // if(visibility == View.VISIBLE){
599
+ // final int autofocusPosition = getControlProps().autofocusPosition;
600
+ // final View targetChild = findViewByPosition(autofocusPosition);
601
+ // if (targetChild != null && targetChild.getVisibility() == View.VISIBLE) {
602
+ // if (LogUtils.isDebug()) {
603
+ // Log.i(AutoFocusManager.TAG, "setVisibility find target requestFocus directly :" + targetChild);
604
+ // }
605
+ // onRequestAutofocus(this, targetChild, ExtendViewGroup.AUTOFOCUS_TYPE_FORCE);
606
+ // }else {
607
+ // if (!checkAutoFocus("onSetVisibility", true)) {
608
+ // checkAutoscroll();
609
+ // }
610
+ // }
611
+ // }
612
+ }
613
+
614
+ @Override
615
+ protected void onWindowVisibilityChanged(int visibility) {
616
+ globalVisibility = visibility;
617
+ if(LogUtils.isDebug()) {
618
+ if (visibility == View.VISIBLE) {
619
+ Log.d(AutoFocusManager.TAG, "FastListView onWindowVisibilityChanged :" + "View.VISIBLE" + ",this:" + ExtendUtil.debugView(this));
620
+ } else {
621
+ Log.d(AutoFocusManager.TAG, "FastListView onWindowVisibilityChanged :" + (visibility == INVISIBLE ? "invisible" : "gone") + ",this:" + ExtendUtil.debugView(this));
622
+ }
623
+ }
624
+ if(pauseTaskOnHide) {
625
+ //Fixme 这里嵌套的tv-list自动将任务pause,后面应该根据一些逻辑判断来执行
626
+ if (visibility != View.VISIBLE) {
627
+ pausePostTask();
628
+ } else {
629
+ resumePostTask();
630
+ }
631
+ }
632
+ super.onWindowVisibilityChanged(visibility);
633
+ if(visibility == View.VISIBLE && getControlProps().pendingCheckAutofocus){
634
+ getControlProps().pendingCheckAutofocus = false;
635
+ // autofocusDirty = true;
636
+ if(!checkAutoFocus("onVisibilityChanged",true)){
637
+ checkAutoscroll();
638
+ }
639
+ }
640
+
641
+ // checkAutoFocus("visibility changed");
642
+ }
643
+ private int globalVisibility = View.INVISIBLE;
644
+
645
+ @Override
646
+ protected void onLayout(boolean changed, int l, int t, int r, int b) {
647
+ // Log.e(TAG, "FastListView onLayout width:"+getWidth()+",height:"+getHeight());
648
+ // notifyUpdateItemsLayout();
649
+ // if(getWidth())
650
+ super.onLayout(changed, l, t, r, b);
651
+ }
652
+
653
+
654
+
655
+ @Override
656
+ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
657
+ super.onSizeChanged(w, h, oldw, oldh);
658
+ if (w > 0 && h > 0) {
659
+ setupListView();
660
+ }
661
+ if (LogUtils.isDebug()) {
662
+ Log.d(TAG, "FastListView onSizeChanged w:" + w + ",h:" + h);
663
+ }
664
+ if(w < 1 || h < 1){
665
+ if(LogUtils.isDebug()){
666
+ Log.i(AutoFocusManager.TAG,"resetAutoWork on size 0 ");
667
+ }
668
+ resetAutoWork();
669
+ }
670
+
671
+ if(oldw < 1 && oldh < 1 && w > 0 && h > 0){
672
+ //v-show变化后
673
+ if(globalVisibility == View.VISIBLE){
674
+ // autofocusDirty = true;
675
+ if(!checkAutoFocus("sizeChanged",true)){
676
+ checkAutoscroll();
677
+ }
678
+ }else{
679
+ getControlProps().pendingCheckAutofocus = true;
680
+ }
681
+ }
682
+
683
+ }
684
+
685
+
686
+ public void requestAutofocusPosition(){
687
+ checkAutoFocus("CustomRequest",true);
688
+ }
689
+
690
+ private boolean checkAutoFocus(String state){
691
+ return checkAutoFocus(state,false);
692
+ }
693
+ private boolean checkAutoFocus(String state,boolean force){
694
+ if(LogUtils.isDebug()) {
695
+ Log.i(AutoFocusManager.TAG, "FastListView checkAutoFocus focusPosition on "+ state
696
+ +",autoscrollPosition:"+getControlProps().autoScrollToPosition
697
+ +",focusChildPosition:"+mFocusChildPosition+",hasFocus:"+hasFocus()
698
+ + ",autofocusPosition " + getControlProps().autofocusPosition + " ,view:" + ExtendUtil.debugView(this) +",childCount:"+getChildCount());
699
+ }
700
+ // if(globalVisibility == View.VISIBLE
701
+ // && getVisibility() == View.VISIBLE
702
+ // && getControlProps().focusPosition > -1
703
+ // && isAttached()
704
+ // && getWidth() > 0 && getHeight() > 0
705
+ // ) {
706
+ // Log.i(AutoFocusManager.TAG,"FastListView auto requestFocus focusPosition on "+state+",position "+getControlProps().focusPosition+" ,view:"+this);
707
+ // diffSetFocusPosition(getControlProps().focusPosition);
708
+ // }
709
+
710
+ final int autofocusPosition = getControlProps().autofocusPosition;
711
+ if(getControlProps().autofocusPosition > -1
712
+ ){
713
+ if(getVisibility() == View.VISIBLE
714
+ && ((getFocusChildPosition() != getControlProps().autofocusPosition) || isFocused() || force)){
715
+ if(LogUtils.isDebug()) {
716
+ Log.e(AutoFocusManager.TAG, "FastListView do autofocus on " + state + ",autofocusPosition " + autofocusPosition + " ,view:" + ExtendUtil.debugView(this));
717
+ }
718
+ setupInitScrollWork(autofocusPosition,autofocusPosition,0,null,false,0,true);
719
+ if((getChildCount() > 0 || force) && getVisibility() == View.VISIBLE && getWidth() > 0 && getHeight() > 0)
720
+ {
721
+ updateList();
722
+ return true;
723
+ }else{
724
+ Log.e(AutoFocusManager.TAG,"FastListView do autofocus on childCount:"+getChildCount()+",width:"+getWidth()+",height:"+getHeight());
725
+ }
726
+ }else{
727
+ Log.e(AutoFocusManager.TAG, "should do autofocus return on getVisibility():" + getVisibility()
728
+ + ",getControlProps().autofocusPosition :" + getControlProps().autofocusPosition
729
+ + ",getFocusChildPosition() :" + getFocusChildPosition()
730
+ + ",mFocusChildPosition :" + mFocusChildPosition
731
+ + ",hasFocus() :" + hasFocus()
732
+ + ",isFocused :" + isFocused()
733
+ + ",this :" + ExtendUtil.debugView(this)
734
+ );
735
+ }
736
+
737
+ }
738
+ return false;
739
+ }
740
+
741
+ private void checkAutoscroll(){
742
+ if(getVisibility() == View.VISIBLE && getControlProps().autoScrollToPosition > -1){
743
+ Log.i(AutoFocusManager.TAG,"onSizeChanged exeAutoscroll :"+getControlProps().autoScrollToPosition+",getControlProps().scrollOffset:"+getControlProps().scrollOffset);
744
+ setAutoscrollPosition(getControlProps().autoScrollToPosition,true,getControlProps().scrollOffset);
745
+ //setupInitScrollWork(-1,getControlProps().autofocusPosition,getControlProps().scrollOffset,null,false,0,true);
746
+
747
+ }
748
+ }
749
+
750
+
751
+ private void setupListView() {
752
+ // Log.d(TAG, "FastListView setupListView width:" + getWidth() + ",height:" + getHeight());
753
+ // if(mRealList == null){
754
+ // mRealList = new FastRecyclerView(getContext());
755
+ // mRealList.init();
756
+ // mRealList.setAdapter(mAdapter);
757
+ // addView(mRealList,new ViewGroup.LayoutParams(getWidth(),getHeight()));
758
+ // }
759
+ if(customFadeLength < 0) {
760
+ float defaultLength = FastListModule.getGlobalConfig(getEngineContext()).defaultFadingEdgeLength;
761
+ if (defaultLength > 0) {
762
+ boolean horizontal = getLayoutManagerCompat().getOrientation() == RecyclerView.HORIZONTAL;
763
+ int length;
764
+ if (horizontal) {
765
+ length = (int) (getWidth() * defaultLength);
766
+ setHorizontalFadingEdgeEnabled(true);
767
+ } else {
768
+ length = (int) (getHeight() * defaultLength);
769
+ setVerticalFadingEdgeEnabled(true);
770
+ }
771
+ if (length > 0) {
772
+ super.setFadingEdgeLength(length);
773
+ }
774
+ invalidate();
775
+ }
776
+ }
777
+ }
778
+
779
+ @Override
780
+ public void setFadingEdgeLength(int length) {
781
+ super.setFadingEdgeLength(length);
782
+ this.customFadeLength = length;
783
+ }
784
+
785
+ public void setList(HippyArray array) {
786
+ this.setListWithParams(array, false, useDiff);
787
+ }
788
+
789
+ public void setListWithParams(HippyArray array, boolean autoChangeVisible, boolean useDiff) {
790
+ //clearAllTask();
791
+ final FastListNode node = getRenderNode();
792
+ if (LogUtils.isDebug()) {
793
+ Log.i(TAG, "FastListView TEST_FOCUS setList node:" + node + ",array :" + array + ",hasFocus:" + hasFocus());
794
+ }
795
+ assert (node != null);
796
+ this.setPendingData(array, node, autoChangeVisible, useDiff);
797
+ }
798
+
799
+
800
+ public void notifyPause() {
801
+ if (LogUtils.isDebug()) {
802
+ Log.e(TAG, "DebugPool notifyPause,this:" + Utils.hashCode(this));
803
+ }
804
+ notifyChildrenSaveState();
805
+ }
806
+
807
+ public void notifyRestore() {
808
+ if (LogUtils.isDebug()) {
809
+ Log.e(TAG, "DebugPool notifyRestore,this:" + Utils.hashCode(this));
810
+ }
811
+ notifyChildrenRestoreState();
812
+ }
813
+
814
+ public void setDisplay(boolean display, boolean autoDataState) {
815
+ if (LogUtils.isDebug()) {
816
+ if (display) {
817
+ Log.e(TAG, "++++DebugPool setDisplay display:" + true + ",this:" + Utils.hashCode(this) + ",autoDataState:" + autoDataState);
818
+ } else {
819
+ Log.e(TAG, "----DebugPool setDisplay display:" + false + ",this:" + Utils.hashCode(this) + ",autoDataState:" + autoDataState);
820
+ }
821
+ }
822
+ if (!display) {
823
+ pendingChangeVisible = false;
824
+ removeCallbacks(changeVisibilityRunnable);
825
+ }
826
+ if (isDisplayed == display) {
827
+ if (LogUtils.isDebug()) {
828
+ Log.d(TAG, "----DebugPool setDisplay ");
829
+ }
830
+ return;
831
+ }
832
+ this.isDisplayed = display;
833
+ //notifyRestore();
834
+ if (!display) {
835
+ changeVisibility4Display(false);
836
+ } else {
837
+ changeVisibility4Display(true);
838
+ }
839
+ if (autoDataState) {
840
+ //notifyPause();
841
+ }
842
+ }
843
+
844
+
845
+ @Override
846
+ public void requestLayout() {
847
+ super.requestLayout();
848
+ // ExtendUtil.layoutViewManual(this);
849
+ }
850
+
851
+ public void clearInitFocusPosition() {
852
+ if (mInitParams != null) {
853
+ mInitParams.targetFocusPosition = -1;
854
+ }
855
+ }
856
+
857
+
858
+ public void setupInitScrollWork(int position, int scrollToPosition, int offset, String focusName, boolean block, int delay, boolean alignCenter) {
859
+ if (position < 0 && scrollToPosition < 0) {
860
+ clearInitFocusPosition();
861
+ } else {
862
+ mInitParams = new InitParams(position, scrollToPosition, offset, focusName, block, delay, alignCenter);
863
+ if(LogUtils.isDebug()) {
864
+ Log.i(AutoFocusManager.TAG, "setupInitScrollWork initParams:" + mInitParams);
865
+ }
866
+ if (block) {
867
+ if (LogUtils.isDebug()) {
868
+ Log.e("PendingFocus", "setPendingFocusChild blockRootFocus!!");
869
+ }
870
+
871
+ InternalExtendViewUtil.blockRootFocus(this);
872
+ if (hasFocus()) {
873
+ this.clearFocus();
874
+ }
875
+ }
876
+ }
877
+
878
+ }
879
+
880
+ @Override
881
+ public void clearFocus() {
882
+ super.clearFocus();
883
+ mFocusChildPosition = -1;
884
+ }
885
+
886
+ private Runnable hideTask;
887
+
888
+ private void hideAWhile(int time) {
889
+ //暂时将自己隐藏一会,主要用来解决列表重设数据,多次变更的问题
890
+ if (LogUtils.isDebug()) {
891
+ Log.i(TAG, "hideAWhile time:" + time + ",this:" + ExtendUtil.debugViewLite(this));
892
+ }
893
+ if (hideTask != null) {
894
+ removeCallbacks(hideTask);
895
+ }
896
+ setAlpha(0);
897
+ hideTask = () -> setAlpha(1);
898
+ postDelayed(hideTask, time);
899
+ }
900
+
901
+ void updateList(boolean anim){
902
+ if (mInitParams != null) {
903
+ if (LogUtils.isDebug()) {
904
+ Log.i("PendingFocus", "after setListData scrollToPosition:" + mInitParams + ",id:" + getId());
905
+ }
906
+ if (mInitParams.alignCenter) {
907
+ //只有滚动居中时才需要设置pendingWork
908
+ getLayoutManagerCompat().setPendingScroll(mInitParams.scrollToPosition, mInitParams.scrollOffset);
909
+ }
910
+ scrollToPosition(mInitParams.scrollToPosition, mInitParams.scrollOffset,anim);
911
+ // RenderUtil.requestNodeLayout(this);
912
+ }
913
+ }
914
+
915
+ void updateList() {
916
+ this.updateList(false);
917
+ }
918
+
919
+ protected int getScrollToPosition() {
920
+ return mInitParams == null ? -1 : mInitParams.scrollToPosition;
921
+ }
922
+
923
+ public void scrollToFocus(int pos) {
924
+ this.scrollToFocus(pos, 0, -1, null);
925
+ }
926
+ public void scrollToFocus(int pos, int scrollOffset, int delay, String target) {
927
+ this.scrollToFocus(pos,scrollOffset,delay,target,true);
928
+ }
929
+
930
+ // FIXME sdk<19时,isInLayout方法会报VerifyError,需要删除
931
+ public void scrollToFocus(int pos, int scrollOffset, int delay, String target,boolean force) {
932
+ Log.i(TAG,"scrollToFocus pos:"+pos+",scrollOffset:"+scrollOffset+",delay:"+delay+",target:"+target);
933
+
934
+ final HippyMap hm = new HippyMap();
935
+ hm.pushInt("focusPosition", pos);
936
+ hm.pushBoolean("force", force);
937
+ hm.pushBoolean("alignCenter", true);
938
+ hm.pushBoolean("blockOthers", true);
939
+ hm.pushBoolean("hide", false);
940
+ hm.pushInt("scrollToPosition", pos);
941
+ if (target != null) {
942
+ hm.pushString("target", target);
943
+ }
944
+ if (scrollOffset != 0) {
945
+ hm.pushInt("scrollOffset", scrollOffset);
946
+ }
947
+ if (delay > 0) {
948
+ hm.pushInt("delay", delay);
949
+ }
950
+ this.clearInitFocusPosition();
951
+ if (pos == 0 && scrollOffset == 0) {
952
+ //如果回到0,需要通知vue层scrollToTop
953
+ mOffsetY = 0;
954
+ mOffsetX = 0;
955
+ handleScrollValue(true);
956
+ resetScrollOffset();
957
+ if (mScrollToTopListener != null) {
958
+ mScrollToTopListener.onScrolled(this, 0, 0);
959
+ }
960
+ resetScrollOffset();
961
+ }
962
+ this.stopScroll();
963
+ if (!isComputingLayout() && !isInLayout()) {
964
+ this.setInitPositionInfo(hm);
965
+ } else {
966
+ if (LogUtils.isDebug()) {
967
+ Log.e(TAG, "scrollToFocus on error state postTask:" + lastState);
968
+ }
969
+ }
970
+ }
971
+
972
+ @Override
973
+ protected void resetScrollOffset() {
974
+ super.resetScrollOffset();
975
+ if (mAdapter != null) {
976
+ mAdapter.clearDetachCaches();
977
+ }
978
+ }
979
+
980
+ @Override
981
+ protected void onVisibilityChanged(@NonNull View changedView, int visibility) {
982
+ super.onVisibilityChanged(changedView, visibility);
983
+ if(visibility == View.VISIBLE){
984
+ // autofocusDirty = true;
985
+ }
986
+ }
987
+
988
+
989
+
990
+
991
+ public void requestPendingScroll(int focusPosition, int scrollToPosition, int scrollOffset, final String target,int postDelay,boolean alignCenter){
992
+ removeCallbacks(this.pendingDiffScroll);
993
+ //Log.i(AutoFocusManager.TAG,"requestPendingScroll focusPosition:"+focusPosition+",scrollToPosition:"+scrollToPosition+",scrollOffset:"+scrollOffset+",target:"+target);
994
+ this.setupInitScrollWork(focusPosition,scrollToPosition,scrollOffset,null,true,0,alignCenter);
995
+ // hideAWhile(200);
996
+ this.pendingDiffScroll = new Runnable() {
997
+ @Override
998
+ public void run() {
999
+ // hideAWhile(0);
1000
+ updateList();
1001
+ }
1002
+ };
1003
+ postDelayed(this.pendingDiffScroll,postDelay);
1004
+ }
1005
+
1006
+ public void setInitPositionInfo(HippyMap map) {
1007
+ /*
1008
+ :initPosition=
1009
+ {
1010
+ // 请求焦点的位置可以不传,不传不会请求焦点
1011
+ focusPosition:5,
1012
+ //首次滚动的位置, 可以不传
1013
+ scrollToPosition:3,
1014
+ //首次滚动的偏移值, 可以不传
1015
+ scrollOffset:200,
1016
+ }
1017
+ *
1018
+ **/
1019
+ if (map == null || map.size() < 1) {
1020
+ clearInitFocusPosition();
1021
+ return;
1022
+ }
1023
+ int position = map.containsKey("focusPosition") ? map.getInt("focusPosition") : -1;
1024
+ if (position < 0) {
1025
+ position = map.containsKey("position") ? map.getInt("position") : -1;
1026
+ }
1027
+ final int scrollToPosition = map.containsKey("scrollToPosition") ? map.getInt("scrollToPosition") : -1;
1028
+ final int scrollOffset = map.containsKey("scrollOffset") ? map.getInt("scrollOffset") : 0;
1029
+
1030
+ final String target = map.containsKey("target") ? map.getString("target") : null;
1031
+ // final boolean oneShot = map.getBoolean("oneShot");
1032
+ final boolean block = map.containsKey("blockOthers") && map.getBoolean("blockOthers");
1033
+ final boolean force = map.getBoolean("force");
1034
+ final boolean alignCenter = map.getBoolean("alignCenter");
1035
+ final boolean autofocus = map.getBoolean("autofocus");
1036
+ if(alignCenter){
1037
+ if(scrollToPosition > 0){
1038
+ setTargetFocusChildPosition(scrollToPosition);
1039
+ }
1040
+ }
1041
+ final int initTargetFocusPosition = map.containsKey("nextTargetFocusPosition") ? map.getInt("nextTargetFocusPosition") : -1;
1042
+ if(initTargetFocusPosition > -1){
1043
+ setTargetFocusChildPosition(initTargetFocusPosition);
1044
+ }
1045
+ final int delay = map.containsKey("delay") ? map.getInt("delay") : -1;
1046
+ final boolean hideBeforeScroll = !map.containsKey("hide") || map.getBoolean("hide");
1047
+ if (position < 0 && scrollToPosition < 0) {
1048
+ this.clearInitFocusPosition();
1049
+ return;
1050
+ }
1051
+ if(autofocus && position > -1){
1052
+ getControlProps().autofocusPosition = position;
1053
+ }
1054
+
1055
+ boolean requestFocus = position > -1;
1056
+ if (LogUtils.isDebug()) {
1057
+ Log.d("PendingFocus", "begin initPosition requestFocus:" + requestFocus+",autofocus:"+autofocus);
1058
+ }
1059
+ if (requestFocus) {
1060
+ final View targetView = findTargetChildFocus(position, target);
1061
+ if (LogUtils.isDebug()) {
1062
+ Log.d("PendingFocus", "findTargetChildFocus findTargetChildFocus:" + targetView);
1063
+ }
1064
+ if (targetView != null && targetView.getVisibility() == View.VISIBLE) {
1065
+ // requestTargetFocus(block,delay,position,target);
1066
+ setupInitScrollWork(position, scrollToPosition, scrollOffset, target, block, delay, alignCenter);
1067
+ if (force) {
1068
+ if (hideBeforeScroll) {
1069
+ hideAWhile(300);
1070
+ }
1071
+ updateList();
1072
+ }
1073
+ } else {
1074
+ setupInitScrollWork(position, scrollToPosition, scrollOffset, target, block, delay, alignCenter);
1075
+ if (force) {
1076
+ if (hideBeforeScroll) {
1077
+ hideAWhile(300);
1078
+ }
1079
+ updateList();
1080
+ }
1081
+ if (scrollToPosition > -1) {
1082
+ if (LogUtils.isDebug()) {
1083
+ Log.e("PendingFocus", "scrollToPositionWithScrollType Directly");
1084
+ }
1085
+ // scrollToPositionWithScrollType(scrollToPosition,scrollOffset);
1086
+ } else {
1087
+ // scrollToPositionWithScrollType(position,scrollOffset);
1088
+ }
1089
+ }
1090
+ } else {
1091
+ setupInitScrollWork(-1, scrollToPosition, scrollOffset, target, block, delay, alignCenter);
1092
+ if (LogUtils.isDebug()) {
1093
+ Log.e("PendingFocus", "scrollToPositionWithScrollType Directly!! scrollToPosition:" + scrollToPosition + ",offset:" + scrollOffset + ",id:" + getId());
1094
+ }
1095
+ if (force) {
1096
+ hideAWhile(300);
1097
+ updateList();
1098
+ }
1099
+ // scrollToPositionWithScrollType(scrollToPosition,scrollOffset);
1100
+ }
1101
+
1102
+
1103
+ }
1104
+
1105
+
1106
+ @Override
1107
+ protected void onDetachedFromWindow() {
1108
+ super.onDetachedFromWindow();
1109
+ //fixme 暂不置空
1110
+ // pageRootView = null;
1111
+ if (LogUtils.isDebug()) {
1112
+ Log.e(TAG, "FastList onDetachedFromWindow this:" + hashCode());
1113
+ }
1114
+ // if (mAdapter != null) {
1115
+ // mAdapter.clearDetachCaches();
1116
+ // }
1117
+ }
1118
+
1119
+ void recycleAdapter() {
1120
+ if (mAdapter != null) {
1121
+ mAdapter.clearCache();
1122
+ }
1123
+ }
1124
+
1125
+ public RenderNode getTemplateNodeByPosition(int position){
1126
+ if (mAdapter != null) {
1127
+ int type = mAdapter.getItemViewType(position);
1128
+ return mAdapter.getTemplateNodeByType(type);
1129
+ }
1130
+ return null;
1131
+ }
1132
+
1133
+
1134
+ @Override
1135
+ public NativeGestureDispatcher getGestureDispatcher() {
1136
+ return mGestureDispatcher;
1137
+ }
1138
+
1139
+ @Override
1140
+ public void setGestureDispatcher(NativeGestureDispatcher dispatcher) {
1141
+ mGestureDispatcher = dispatcher;
1142
+ }
1143
+
1144
+ public void updateItem(int pos, Object data) {
1145
+ this.updateItem(pos,data,true);
1146
+ }
1147
+ @Override
1148
+ public void updateItem(int pos, Object data,boolean traverse) {
1149
+ if (LogUtils.isDebug()) {
1150
+ Log.d(TAG, "updateItem pos:" + pos+"-----------------start");
1151
+ Log.d("DebugReplaceItem", "updateItem pos:" + pos+"-----------------start "+data);
1152
+ }
1153
+ final HippyArray array = new HippyArray();
1154
+ array.pushObject(data);
1155
+ this.updateItemRange(pos, array,traverse);
1156
+ requestLayoutManual();
1157
+ }
1158
+
1159
+ public void diffUpdateItem(int pos,Object data){
1160
+ Log.d(TAG, "diffUpdateItem pos:" + pos+",this:"+this);
1161
+ //
1162
+
1163
+ }
1164
+
1165
+ /**
1166
+ * 从某个位置插入数据
1167
+ *
1168
+ * @param pos
1169
+ * @param array
1170
+ */
1171
+ public void insertItemRange(int pos, HippyArray array) {
1172
+ if (LogUtils.isDebug()) {
1173
+ Log.d(TAG, "insertItem pos:" + pos);
1174
+ }
1175
+ if (array != null && array.size() > 0) {
1176
+ this.updateItemRangeInserted(pos, array, true);
1177
+ } else {
1178
+ if (LogUtils.isDebug()) {
1179
+ Log.d(TAG, "insertItem fail : array = null or array.size() = 0");
1180
+ }
1181
+ }
1182
+ }
1183
+
1184
+ /**
1185
+ * 根据数据指定的id,来寻找对应item刷新
1186
+ *
1187
+ * @param id
1188
+ * @param newData
1189
+ */
1190
+ public void updateItemMatched(String idKey, Object id, Object newData) {
1191
+ HippyArray array = getFastAdapter().dataList;
1192
+ if (array != null) {
1193
+ final int itemPosition = Utils.searchFastAdapterData(array, id, idKey);
1194
+ if (itemPosition > -1) {
1195
+ updateItem(itemPosition, newData);
1196
+ } else {
1197
+ Log.e(TAG, "updateItemMatched on itemPosition error:" + itemPosition);
1198
+ }
1199
+ }
1200
+ }
1201
+
1202
+
1203
+ public void requestItemLayout(int pos) {
1204
+ if (LogUtils.isDebug()) {
1205
+ Log.d(TAG, "updateItemLayout pos:" + pos);
1206
+ }
1207
+
1208
+ if (mAdapter != null) {
1209
+ final ViewHolder vh = findViewHolderForAdapterPosition(pos);
1210
+ if (vh instanceof FastAdapter.Holder) {
1211
+ mAdapter.requestItemLayout((FastAdapter.Holder) vh, pos);
1212
+ }
1213
+ } else {
1214
+ Log.e(TAG, "updateItemLayout error,adapter is null pos:" + pos);
1215
+ }
1216
+ }
1217
+
1218
+ @Override
1219
+ public void updateItemProps(String name, int pos, Object data, boolean updateView) {
1220
+ updateItemProps(name, pos, (HippyMap) data, updateView);
1221
+ }
1222
+
1223
+
1224
+ private HippyMap recycledViewPoolMap;
1225
+ private String poolName = hashCode()+"";
1226
+
1227
+ public HippyMap getRecycledViewPoolMap() {
1228
+ if (recycledViewPoolMap == null) {
1229
+ recycledViewPoolMap = new HippyMap();
1230
+ }
1231
+ return recycledViewPoolMap;
1232
+ }
1233
+
1234
+
1235
+
1236
+ @Override
1237
+ protected void onAttachedToWindow() {
1238
+ super.onAttachedToWindow();
1239
+ //checkAutoFocus("onAttachedToWindow");
1240
+ // Log.d("EsPageViewLog", "onAttachedToWindow this:" + this+",root:"+findPageRootView());
1241
+ updateCachePoolName();
1242
+ updateCachePoolMap();
1243
+ }
1244
+
1245
+ public void setCachePoolName(String name) {
1246
+ this.poolName = name;
1247
+ if(isAttached()){
1248
+ updateCachePoolName();
1249
+ }
1250
+ }
1251
+
1252
+ private void updateCachePoolName(){
1253
+ mAdapter.setShareViewPoolType(poolName);
1254
+ final RecycledViewPool pool = mAdapter.getCacheWorker(getContext(),this);
1255
+ setRecycledViewPool(pool);
1256
+ if (LogUtils.isDebug()) {
1257
+ Log.i(TAG, "setCachePoolMap name=" + poolName + ",this:" + this);
1258
+ Log.i("EsPageViewLog", "DebugPool setupPool instance:" + Utils.hashCode(pool)+",context:"+getContext());
1259
+ }
1260
+ }
1261
+
1262
+ private void updateCachePoolMap(){
1263
+ final HippyMap map = recycledViewPoolMap;
1264
+ if (map == null) {
1265
+ return;
1266
+ }
1267
+ if (mAdapter != null) {
1268
+ if (map.containsKey("name")) {
1269
+ mAdapter.setShareViewPoolType(map.getString("name"));
1270
+ final RecycledViewPool pool = mAdapter.getCacheWorker(getContext(),this);
1271
+ setRecycledViewPool(pool);
1272
+ if (LogUtils.isDebug()) {
1273
+ Log.e("DebugPool", "setCachePoolMap name=" + map.getString("name") + ",this:" + this);
1274
+ Log.e("DebugPool", "DebugPool setupPool instance:" + Utils.hashCode(pool)+",context:"+getContext());
1275
+ }
1276
+ HippyMap size = map.getMap("size");
1277
+ for (String typeS : size.keySet()) {
1278
+ final int type = Integer.parseInt(typeS);
1279
+ final int count = size.getInt(typeS);
1280
+ if (LogUtils.isDebug()) {
1281
+ Log.e("DebugPool", "setCachePoolMap type:" + type + ",count:" + count + ",this:" + this);
1282
+ }
1283
+ if (mAdapter.findOldCacheWorker() != null) {
1284
+ mAdapter.findOldCacheWorker().setMaxCacheSize(type, count);
1285
+ }
1286
+ }
1287
+ }
1288
+ }
1289
+ }
1290
+
1291
+
1292
+ @Override
1293
+ public void setCachePoolMap(HippyMap map) {
1294
+ this.recycledViewPoolMap = map;
1295
+ if(isAttached()){
1296
+ updateCachePoolMap();
1297
+ }
1298
+ }
1299
+
1300
+ @Override
1301
+ protected void onLayoutComplete(State state) {
1302
+ super.onLayoutComplete(state);
1303
+ if (LogUtils.isDebug()) {
1304
+ Log.e(TAG, "~~~~~~onLayoutComplete pendingChangeVisible " + pendingChangeVisible + ",this:" + Utils.hashCode(this)+",autofocusDirty:"+ autofocusDirtyOnDataChange);
1305
+ Log.i(TAG,"onLayoutComplete selectPosition:"+getSelectChildPosition()+",select:"+findSelectedChild());
1306
+ }
1307
+ if (pendingChangeVisible) {
1308
+ pendingChangeVisible = false;
1309
+ changeVisibility4Display(true);
1310
+ this.isDisplayed = true;
1311
+ changeVisibilityRunnable = null;
1312
+ }
1313
+ if (mAdapter != null) {
1314
+ mAdapter.onLayoutComplete(state,this);
1315
+ }
1316
+ // handleAutoscroll();
1317
+ // handleAutoscroll();
1318
+ if(autofocusDirtyOnDataChange && state.getItemCount() > 0){
1319
+ autofocusDirtyOnDataChange = false;
1320
+ if(!checkAutoFocus("layoutComplete",true)){
1321
+ checkAutoscroll();
1322
+ }
1323
+ }
1324
+ handlePendingFocus();
1325
+ if(!hasFocus()) {
1326
+ handleDimItems();
1327
+ }
1328
+ }
1329
+
1330
+ protected void handleAutoscroll(){
1331
+ // if(getControlProps().autoScrollToPosition > -1){
1332
+ // int pos = find
1333
+ // }
1334
+ Log.v(TAG,"handleAutoscroll called pendingScrollToPosition"+ getControlProps().pendingScrollToPosition );
1335
+ if(getControlProps().pendingScrollToPosition > -1){
1336
+ //final View targetChild = findViewByPosition(position);
1337
+ int position = getControlProps().pendingScrollToPosition;
1338
+ final View target = findViewByPosition(position);
1339
+ if (target == null) {
1340
+ Log.e(TAG,"handleAutoscroll on pendingScrollToPosition find target "+ null +",position:"+position);
1341
+ return;
1342
+ }
1343
+ Log.i(TAG,"handleAutoscroll on pendingScrollToPosition find target "+target+",position:"+position);
1344
+ if(getChildOnScreenScroller().getScrollType() == TVRecyclerView.REQUEST_CHILD_ON_SCREEN_TYPE_CENTER) {
1345
+ //scrollToPositionWithAlignCenter(mInitParams.targetScrollToPosition);
1346
+ int scrollOffset = ChildOnScreenScroller.getScrollToPositionOffset(this,position,target,0);
1347
+ Log.i(TAG,"handleAutoscroll on pendingScrollToPosition scrollBy "+scrollOffset+",position:"+position);
1348
+ if(scrollOffset != 0) {
1349
+ if (getOrientation() == VERTICAL) {
1350
+ scrollBy(0, scrollOffset);
1351
+ requestLayoutManual();
1352
+ } else {
1353
+ scrollBy(scrollOffset, 0);
1354
+ requestLayoutManual();
1355
+ }
1356
+ }
1357
+ }
1358
+ getControlProps().pendingScrollToPosition = -1;
1359
+ }
1360
+ }
1361
+
1362
+ protected void handlePendingFocus() {
1363
+ if (mInitParams != null) {
1364
+ if (mInitParams.blockOthers) {
1365
+ InternalExtendViewUtil.unBlockRootFocus(this);
1366
+ }
1367
+ if (mInitParams.targetFocusPosition > -1) {
1368
+ final int position = mInitParams.targetFocusPosition;
1369
+ final View targetChild = findViewByPosition(position);
1370
+ if (targetChild != null && targetChild.getVisibility() == View.VISIBLE) {
1371
+ if (LogUtils.isDebug()) {
1372
+ Log.i("PendingFocus", "handlePendingFocus find target:" + targetChild);
1373
+ }
1374
+ //targetChild.requestFocus();
1375
+ //AutoFocusManager.globalRequestFocus(targetChild);
1376
+ onRequestAutofocus(this,targetChild,ExtendViewGroup.AUTOFOCUS_TYPE_FORCE);
1377
+ } else {
1378
+ Log.e("PendingFocus", "handlePendingFocus error on no target shown : " + targetChild);
1379
+ }
1380
+ if (LogUtils.isDebug()) {
1381
+ Log.i("PendingFocus", "~~~~~~onLayoutComplete handlePendingFocus targetFocusPosition " + mInitParams.targetFocusPosition + ",targetChild:" + targetChild);
1382
+ }
1383
+ mInitParams.targetFocusPosition = -1;
1384
+ }
1385
+ if (mInitParams.targetName != null) {
1386
+ final View targetView = ExtendUtil.findViewByName(mInitParams.targetName,this);
1387
+ if (targetView != null && targetView.getVisibility() == View.VISIBLE) {
1388
+ if (LogUtils.isDebug()) {
1389
+ Log.i("PendingFocus", "handlePendingFocus find target by name :" + targetView);
1390
+ }
1391
+ onRequestAutofocus(this,targetView,ExtendViewGroup.AUTOFOCUS_TYPE_FORCE);
1392
+ }
1393
+ }
1394
+ }
1395
+ }
1396
+
1397
+ void changeVisibility4Display(boolean b) {
1398
+ this.isDraw = b;
1399
+ invalidate();
1400
+ }
1401
+
1402
+
1403
+ @Override
1404
+ protected void dispatchDraw(Canvas canvas) {
1405
+ if (!isDraw) {
1406
+ return;
1407
+ }
1408
+ super.dispatchDraw(canvas);
1409
+ }
1410
+
1411
+ @Override
1412
+ public void replaceItemData(int pos, Object data) {
1413
+ if (mAdapter != null) {
1414
+ mAdapter.replaceItemData(pos,data);
1415
+ }
1416
+ }
1417
+
1418
+ void updateItemRange(int pos, HippyArray data, boolean traverse) {
1419
+ if (LogUtils.isDebug()) {
1420
+ Log.d(TAG, "updateItemRange pos:" + pos + ",count:" + 1 + ",data List size:" + data.size());
1421
+ }
1422
+
1423
+ if (mAdapter != null) {
1424
+ if (mAdapter.getItemCount() > pos && pos > -1) {
1425
+ mAdapter.updateItemDataRange(pos, 1, data);
1426
+ // final ViewHolder vh = findViewHolderForAdapterPosition(pos);
1427
+ // if (vh instanceof FastAdapter.Holder) {
1428
+ // mAdapter.updateItemOnReplace((FastAdapter.Holder) vh, pos,traverse);
1429
+ // mAdapter.requestItemLayout((FastAdapter.Holder) vh, pos);
1430
+ // } else {
1431
+ Log.d(TAG, "updateItemRange pos:" + pos + ",count:" + 1 + " notifyItemChanged this:"+ExtendUtil.debugViewLite(this));
1432
+ HippyMap params = new HippyMap();
1433
+ params.pushBoolean("traverse",traverse);
1434
+ mAdapter.notifyItemChanged(pos,new FastAdapter.Payload(FastAdapter.PayloadType.TYPE_UPDATE,params));
1435
+ // }
1436
+ } else {
1437
+ Log.e(TAG, "updateItemRange error,pos invalid, pos:" + pos + ",adapter count :" + (mAdapter == null ? 0 : mAdapter.getItemCount()));
1438
+ }
1439
+ } else {
1440
+ Log.e(TAG, "updateItemRange error,adapter is null pos:" + pos + ",count:" + 1);
1441
+ }
1442
+ }
1443
+
1444
+ public int getScrolledOffset(){
1445
+ if (getOrientation() == FastListView.HORIZONTAL) {
1446
+ return getOffsetX();
1447
+ }else{
1448
+ return getOffsetY();
1449
+ }
1450
+ }
1451
+
1452
+ public void updateItemRange(int pos, int count, HippyArray data, boolean updateLayout) {
1453
+ if (LogUtils.isDebug()) {
1454
+ Log.d(TAG, "updateItemRange start pos:" + pos + ",count:" + count + ",data List size:" + data.size() +",currentIndex:"+getScrollX()+",getScrollY"+getScrollY());
1455
+
1456
+ }
1457
+ if (mAdapter != null) {
1458
+ final int itemCount = mAdapter.getItemCount();
1459
+ if (pos < 0 || (pos + count) > itemCount) {
1460
+ Log.e(TAG, "updateItemRange error on wrong state, pos:" + pos + ",count:" + count);
1461
+ return;
1462
+ }
1463
+ mAdapter.updateItemDataRange(pos, count, data);
1464
+ mAdapter.notifyItemRangeChanged(pos, count, new FastAdapter.Payload(FastAdapter.PayloadType.TYPE_UPDATE,null));
1465
+ if (updateLayout) {
1466
+ requestLayoutManual();
1467
+ }
1468
+ } else {
1469
+ Log.e(TAG, "updateItemRange error,adapter is null pos:" + pos + ",count:" + count);
1470
+ }
1471
+ }
1472
+
1473
+ public void notifyItemsLayoutChanged(){
1474
+ if(mAdapter != null && getChildCount() > 0) {
1475
+ View firstChild = getChildAt(0);
1476
+ int start = firstChild == null ? -1 : findPositionByChild(firstChild);
1477
+ if (LogUtils.isDebug()) {
1478
+ Log.d(TAG, "notifyUpdateItemsLayout start:" + start + ",childCount:" + getChildCount()+",this:"+ExtendUtil.debugViewLite(this));
1479
+ }
1480
+ if(start > -1){
1481
+ mAdapter.notifyItemRangeChanged(start, getChildCount(), new FastAdapter.Payload(FastAdapter.PayloadType.TYPE_LAYOUT,null));
1482
+ requestLayoutManual();
1483
+ }
1484
+ }
1485
+ }
1486
+
1487
+ // public void updateItemsLayout(){
1488
+ // Log.i(TAG,"updateItemsLayout");
1489
+ // if (mAdapter != null) {
1490
+ // mAdapter.notifyitem
1491
+ // }
1492
+ // }
1493
+
1494
+ public void updateItemRangeInserted(int pos, HippyArray data, boolean updateLayout) {
1495
+ if (LogUtils.isDebug()) {
1496
+ Log.d(TAG, "updateItemRangeInserted pos:" + pos + ",data List size:" + data.size());
1497
+ }
1498
+ if (mAdapter != null) {
1499
+ final int itemCount = mAdapter.getItemCount();
1500
+ final int count = data.size();
1501
+ if (pos > itemCount || pos < 0) {
1502
+ Log.e(TAG, "updateItemRangeInserted error on IndexOutOfBoundsException, pos:" + pos);
1503
+ return;
1504
+ }
1505
+ mAdapter.insertItemDataRange(pos, count, data);
1506
+ mAdapter.notifyItemRangeInserted(pos, count);
1507
+ if(pos == 0){
1508
+ if(LogUtils.isDebug()){
1509
+ Log.d(TAG,"updateItemRangeInserted at position 0 getScrolledOffset :"+getScrolledOffset());
1510
+ }
1511
+ if(getScrolledOffset() < 10){
1512
+ scrollToTop();
1513
+ }
1514
+ }
1515
+
1516
+ if (updateLayout) {
1517
+ requestLayoutManual();
1518
+ }
1519
+ } else {
1520
+ Log.e(TAG, "updateItemRangeInserted error,adapter is null pos:" + pos);
1521
+ }
1522
+ }
1523
+
1524
+ public void deleteItemRange(int pos, int count) {
1525
+ if (mAdapter != null) {
1526
+ mAdapter.deleteData(pos, count);
1527
+ mAdapter.notifyItemRangeRemoved(pos, count);
1528
+ requestLayoutManual();
1529
+ } else {
1530
+ Log.e(TAG, "deleteItemRange error,adapter is null pos:" + pos + ",count:" + count);
1531
+ }
1532
+ }
1533
+
1534
+ public void addData(HippyArray data, int deleteCount) {
1535
+ if (mAdapter == null || mAdapter.dataList == null || mAdapter.dataList.size() < 1) {
1536
+ Log.i(TAG, "addData on mAdapter empty call setListWithParams");
1537
+ setListWithParams(data, false, useDiff);
1538
+ return;
1539
+ }
1540
+ if (LogUtils.isDebug()) {
1541
+ Log.d(FocusDispatchView.TAG,"addData called deleteCount: "+deleteCount+",data size:" + (data == null ? 0 : data.size()));
1542
+ }
1543
+ // Log.i(TAG,"add data this:"+Utils.hashCode(this)+",data size:"+(data == null ? 0 : data.size()));
1544
+ if (data != null && data.size() > 0) {
1545
+ boolean hasFocus = hasFocus();
1546
+ if (deleteCount > 0) {
1547
+ int deleteStart = mAdapter.getItemCount() - deleteCount;
1548
+ if (LogUtils.isDebug()) {
1549
+ Log.i(TAG, "addData on mAdapter deleteStart :" + deleteStart);
1550
+ }
1551
+ //Log.i(FocusDispatchView.TAG, "addData on data size :" + data.size());
1552
+ if(!hasFocus) {
1553
+ FocusDispatchView.blockFocus(this);
1554
+ }
1555
+ mAdapter.deleteData(deleteCount);
1556
+ mAdapter.notifyItemRangeRemoved(deleteStart, deleteCount);
1557
+ }
1558
+ int start = mAdapter.getItemCount();
1559
+ if (LogUtils.isDebug()) {
1560
+ Log.i(TAG, "addData array size :" + data.size() + ",start:" + start + ",data:" + data);
1561
+ }
1562
+ if(!hasFocus) {
1563
+ FocusDispatchView.blockFocus(this);
1564
+ }
1565
+ mAdapter.addData(data);
1566
+ mAdapter.notifyItemRangeInserted(start, data.size());
1567
+ requestLayoutManual();
1568
+ if(!isPostTaskPaused() && !hasFocus) {
1569
+ postDelayed(() -> FocusDispatchView.unBlockFocus(FastListView.this), 100);
1570
+ }
1571
+ } else {
1572
+ if (LogUtils.isDebug()) {
1573
+ Log.i(TAG, "addData array is null or empty");
1574
+ }
1575
+ }
1576
+ }
1577
+
1578
+ // public void addData(HippyArray data){
1579
+ // if(mAdapter == null || mAdapter.dataList == null || mAdapter.dataList.size() < 1){
1580
+ // Log.e(TAG,"addData on mAdapter empty call setListWithParams");
1581
+ // setListWithParams(data,false);
1582
+ // return;
1583
+ // }
1584
+ // if(data != null && data.size() > 0) {
1585
+ // int start = mAdapter.getItemCount();
1586
+ // if(LogUtils.isDebug()){
1587
+ // Log.i(TAG,"addData array size :"+data.size()+",start:"+start+",data:"+data);
1588
+ // }
1589
+ // mAdapter.addData(data);
1590
+ // FocusDispatchView.blockFocus(this);
1591
+ // mAdapter.notifyItemRangeInserted(start, data.size());
1592
+ // requestLayoutManual();
1593
+ // postDelayed(() -> FocusDispatchView.unBlockFocus(FastListView.this), 100);
1594
+ // }else{
1595
+ // if(LogUtils.isDebug()){
1596
+ // Log.i(TAG,"addData array is null or empty");
1597
+ // }
1598
+ // }
1599
+ // }
1600
+
1601
+
1602
+ //根据viewpager的节点创建新的fastlist
1603
+ public void createFastList(Object data, RenderNode templateNode) {
1604
+ setPendingData(data, templateNode, true, useDiff);
1605
+ }
1606
+
1607
+
1608
+ @Override
1609
+ public void setHandleEventNodeId(int id) {
1610
+ super.setHandleEventNodeId(id);
1611
+ if (mAdapter != null) {
1612
+ mAdapter.rootListNodeID = id;
1613
+ }
1614
+ }
1615
+
1616
+ public void setPendingData(Object data, RenderNode templateNode, boolean changeVisibility) {
1617
+ this.setPendingData(data, templateNode, changeVisibility, this.isUseDiff());
1618
+ }
1619
+
1620
+ @Override
1621
+ public void setSharedItemStore(String name) {
1622
+ if (mAdapter != null) {
1623
+ mAdapter.setShareItemStoreName(name);
1624
+ }
1625
+ }
1626
+
1627
+ public boolean isInfiniteLoopEnabled(){
1628
+ return isInfinityLoop;
1629
+ }
1630
+
1631
+ public void setPendingData(Object data, RenderNode templateNode, boolean changeVisibility, boolean useDiff) {
1632
+ if(destroyed){
1633
+ Log.e(TAG,"setPendingData return on FastListView destroyed,this"+this);
1634
+ return;
1635
+ }
1636
+ // Log.d(, "setPendingData this:" + this+",root:"+findPageRootView());
1637
+ if(LogUtils.isDebug()) {
1638
+ Log.e(FastAdapter.TAG_POST, "SCROLL_POSTER clearAllTask on setPendingData this:"+this+",useDiff:"+useDiff+",hasSet:"+hasSet);
1639
+ }
1640
+ clearAllTask();
1641
+ if (data instanceof HippyArray) {
1642
+ HippyArray newData = new HippyArray();
1643
+ final int newSize = ((HippyArray) data).size();
1644
+ for (int i = 0; i < newSize; i++) {
1645
+ newData.pushObject(((HippyArray) data).get(i));
1646
+ }
1647
+ final FastListNode node = templateNode instanceof FastListNode ? (FastListNode) templateNode : getRenderNode();
1648
+ if (LogUtils.isDebug()) {
1649
+ Log.i(TAG, "DebugPool setPendingData setList this:" + Utils.hashCode(this) + ",id:" + getId() + "dataCount:" + newData.size() + ",isComputingLayout:" + isComputingLayout()
1650
+ +",stableKey:"+mAdapter.getStableIdKey());
1651
+ Log.d(TAG, "DebugPool setPendingData setList array:" + newData);
1652
+ // Log.d(TAG, "setPendingData setList node:" + node);
1653
+ Log.d(TAG, "setPendingData setPendingData setList this:" + Utils.hashCode(this) + ",id:" + getId() + ",isComputingLayout:" + isComputingLayout());
1654
+ }
1655
+ if (isComputingLayout()) {
1656
+ Log.e(TAG, "setPendingData 出现错误 : isComputingLayout true ,layoutManager:" + getLayoutManagerCompat());
1657
+ return;
1658
+ }
1659
+ // if(mItemDecoration != null){
1660
+ // stopScroll();
1661
+ // if(!isInLayout() && !getMyLayoutManager().isSmoothScrolling()) {
1662
+ // removeItemDecoration(mItemDecoration);
1663
+ // }
1664
+ // }
1665
+ if (mManagerType == 1) {
1666
+ assert getLayoutManagerCompat() != null : "没有设置LayoutManager";
1667
+ }
1668
+ // if(mAdapter.getStableIdKey() != null) {
1669
+ // mAdapter.setStableIdKey(mAdapter.getStableIdKey());
1670
+ // }
1671
+
1672
+ if (changeVisibility) {
1673
+ removeCallbacks(changeVisibilityRunnable);
1674
+ changeVisibility4Display(false);
1675
+ this.pendingChangeVisible = true;
1676
+ }
1677
+
1678
+ if(newSize > 0 && isInfinityLoop){
1679
+ int scrollTo = FastAdapter.INFINITE_START_POSITION;
1680
+ int scrollOffset = 0;
1681
+ int selectPosition = -1;
1682
+ if (infiniteParams != null) {
1683
+ if(infiniteParams.containsKey("autoscroll")){
1684
+ HippyArray array = infiniteParams.getArray("autoscroll");
1685
+ scrollTo = convertInfinitePosition(array.getInt(0));
1686
+ scrollOffset = (int) PixelUtil.dp2px(array.getInt(1));
1687
+ }else{
1688
+ if(infiniteParams.containsKey("scrollOffset")){
1689
+ scrollOffset = (int) PixelUtil.dp2px(infiniteParams.getInt("scrollOffset"));
1690
+ }else{
1691
+ final int itemSize = (int) PixelUtil.dp2px(infiniteParams.getInt("itemSize"));
1692
+ if (getWidth() < 1 || getHeight() < 1) {
1693
+ Log.e(TAG,"setPendingData compute scrollOffset Error on parent size invalid");
1694
+ }else {
1695
+ scrollOffset = ChildOnScreenScroller.computeAlignCenterScrollOffset(getOrientation() == VERTICAL ? getHeight() : getWidth(), itemSize);
1696
+ }
1697
+ }
1698
+ }
1699
+ if(infiniteParams.containsKey("selectPosition")) {
1700
+ selectPosition = infiniteParams.getInt("selectPosition");
1701
+ }
1702
+ if(infiniteParams.containsKey("minChildScale")){
1703
+ minScale = (float) infiniteParams.getDouble("minChildScale");
1704
+ }
1705
+ }
1706
+ //scrollToPosition(scrollTo);
1707
+ //diffSetScrollToPosition(scrollTo,scrollOffset);
1708
+ setAutoscrollPosition(scrollTo,true,scrollOffset);
1709
+ if (selectPosition > -1) {
1710
+ diffSetSelectionPosition(convertInfinitePosition(selectPosition));
1711
+ setTargetFocusChildPosition(selectPosition);
1712
+ }else{
1713
+ setTargetFocusChildPosition(scrollTo);
1714
+ getFirstFocusHelper().setFindAtStart(true);
1715
+ }
1716
+ if(LogUtils.isDebug()) {
1717
+ Log.i("DebugInfinite", "fix infinite scroll on setPendingData scrollTo" + scrollTo + ",scrollOffset:" + scrollOffset + ",selectPosition:" + selectPosition + ",minScale:" + minScale);
1718
+ }
1719
+ }
1720
+
1721
+ if (newSize < 1 && mAdapter != null) {
1722
+ mAdapter.onDetachedFromView(this);
1723
+ autofocusDirtyOnDataChange = true;
1724
+ mAdapter.clearData();
1725
+ resetAutoWork();
1726
+ if (hasSet) {
1727
+ mAdapter.notifyDataSetChanged();
1728
+ requestLayoutManual();
1729
+ }
1730
+ return;
1731
+ }
1732
+
1733
+ assert (node != null);
1734
+ if (mAdapter != null && mAdapter.getItemCount() > 0) {
1735
+ // Log.d(TAG, "DebugPool setPendingData find items count:" + mAdapter.getItemCount());
1736
+ mAdapter.onDetachedFromView(this);
1737
+ // mAdapter.clearData(); TODO 感觉这里不需要clear 而且影响下面逻辑
1738
+ // setAdapter(null);
1739
+ // recycle();
1740
+ // removeAllViews();
1741
+ }
1742
+
1743
+ //mAdapter = newAdapter();
1744
+ if (mAdapter != null) {
1745
+ if (node.getId() > 0) {
1746
+ mAdapter.rootListNodeID = node.getId();
1747
+ if (LogUtils.isDebug()) {
1748
+ Log.d(TAG, "setRootListNodeID id:" + node.getId() + ",this:" + this);
1749
+ }
1750
+ }
1751
+ mAdapter.setListNode(node);
1752
+
1753
+ // mAdapter.setData(newData);
1754
+
1755
+ mAdapter.onAttachedToView(this);
1756
+ // mItemDecoration = mAdapter.buildListItemDecoration();
1757
+ //addItemDecoration(mItemDecoration);
1758
+ mAdapter.onBeforeChangeAdapter();
1759
+
1760
+ if(destroyed){
1761
+ Log.e(TAG,"setPendingData return on FastListView destroyed,this"+this);
1762
+ return;
1763
+ }
1764
+ if (hasSet) {
1765
+ if (useDiff) {
1766
+ // 处理diff
1767
+ final HippyArray oldData = mAdapter.dataList;
1768
+ handleDataDiff(oldData, newData);
1769
+ } else {
1770
+ resetAutoWork();
1771
+ autofocusDirtyOnDataChange = true;
1772
+ mAdapter.setData(newData);
1773
+ mAdapter.notifyDataSetChanged();
1774
+ if(isLayoutAnimationAutoPlay){
1775
+ scheduleLayoutAnimation();
1776
+ }
1777
+ }
1778
+ requestLayoutManual();
1779
+ } else {
1780
+ resetAutoWork();
1781
+ autofocusDirtyOnDataChange = true;
1782
+ mAdapter.setData(newData);
1783
+ setAdapter(mAdapter);
1784
+ if(isLayoutAnimationAutoPlay){
1785
+ scheduleLayoutAnimation();
1786
+ }
1787
+ hasSet = true;
1788
+ }
1789
+ // checkAutoFocus("setData");
1790
+ if (LogUtils.isDebug()) {
1791
+ Log.i(TAG, "DebugPool setPendingData setAdapter done");
1792
+ }
1793
+ }
1794
+ } else {
1795
+ throw new IllegalArgumentException("setPendingData data必须是HippyArray data:"+data);
1796
+ }
1797
+ }
1798
+
1799
+ private void handleDataDiff(HippyArray oldArray, HippyArray newArray) {
1800
+ // if (mAdapter.mRootListView != null &&
1801
+ // mAdapter.mRootListView != mAdapter.mBoundListView) {
1802
+ // mAdapter.setData(newArray);
1803
+ // mAdapter.notifyDataSetChanged();
1804
+ // if (LogUtils.isDebug()) {
1805
+ // Log.i(TAG, "handleDataDiff 嵌套子fastList刷新数据");
1806
+ // }
1807
+ // return;
1808
+ // }
1809
+ if (LogUtils.isDebug()) {
1810
+ Log.i(TAG, "handleDataDiff 刷新数据 oldArray.size--" + oldArray.size() + " newArray.size--" + newArray.size()
1811
+ + " hashCode--" + FastListView.this.hashCode());
1812
+ }
1813
+ if (getItemAnimator() != null) {
1814
+ ((SimpleItemAnimator) Objects.requireNonNull(getItemAnimator())).setSupportsChangeAnimations(false);
1815
+ }
1816
+ FastListDataBindingHelper.handleDataDiffCallBack3(oldArray, newArray, keyName,
1817
+ new FastListDataBindingHelper.OnDataDiffListener3() {
1818
+
1819
+ @Override
1820
+ public void onRangeInsert(int position, int count) {
1821
+ mAdapter.notifyItemRangeInserted(position, count);
1822
+ if (LogUtils.isDebug()) {
1823
+ Log.i(TAG, "handleDataDiff 刷新数据 onRangeInsert--" + " position--" + position + " count--" + count
1824
+ + " hashCode--" + FastListView.this.hashCode());
1825
+ }
1826
+ }
1827
+
1828
+ @Override
1829
+ public void onRangeDelete(int position, int count) {
1830
+ mAdapter.notifyItemRangeRemoved(position, count);
1831
+ if (LogUtils.isDebug()) {
1832
+ Log.i(TAG, "handleDataDiff 刷新数据 onRangeDelete--" + " position--" + position + " count--" + count
1833
+ + " hashCode--" + FastListView.this.hashCode());
1834
+ }
1835
+ }
1836
+
1837
+ @Override
1838
+ public void onUpdateViewData() {
1839
+ mAdapter.setData(newArray);
1840
+ if (LogUtils.isDebug()) {
1841
+ Log.i(TAG, "handleDataDiff 刷新数据 onUpdateViewData"
1842
+ + " hashCode--" + FastListView.this.hashCode());
1843
+ }
1844
+ }
1845
+
1846
+ @Override
1847
+ public void onMove(int position, int nextPosition) {
1848
+ mAdapter.notifyItemMoved(position, nextPosition);
1849
+ if (LogUtils.isDebug()) {
1850
+ Log.i(TAG, "handleDataDiff 刷新数据 onMove--" + " position--" + position + " nextPosition--" + nextPosition
1851
+ + " hashCode--" + FastListView.this.hashCode());
1852
+ }
1853
+ }
1854
+
1855
+ @Override
1856
+ public void onRangeUpdate(int start, int count) {
1857
+ // ((SimpleItemAnimator) getItemAnimator()).setSupportsChangeAnimations(false);
1858
+ mAdapter.notifyItemRangeChanged(start, count);
1859
+ if (LogUtils.isDebug()) {
1860
+ Log.i(TAG, "handleDataDiff 刷新数据 onRangeUpdate--" + " start--" + start + " count--" + count
1861
+ + " hashCode--" + FastListView.this.hashCode());
1862
+ }
1863
+ }
1864
+
1865
+ @Override
1866
+ public void onAllChange() {
1867
+ mAdapter.notifyDataSetChanged();
1868
+ if (LogUtils.isDebug()) {
1869
+ Log.i(TAG, "handleDataDiff 刷新数据 onAllChange"
1870
+ + " hashCode--" + FastListView.this.hashCode());
1871
+ }
1872
+ }
1873
+ },
1874
+ item -> (HippyMap) item.raw, FastAdapter.ItemEntity.class);
1875
+ }
1876
+
1877
+ @Override
1878
+ protected void onAdapterChanged(@Nullable Adapter oldAdapter, @Nullable Adapter newAdapter) {
1879
+ super.onAdapterChanged(oldAdapter, newAdapter);
1880
+ // Log.i(TAG,"-------onAdapterChanged newAdapter:"+newAdapter);
1881
+ if(LogUtils.isDebug()){
1882
+ Log.i(AutoFocusManager.TAG,"resetAutoWork on onAdapterChanged");
1883
+ }
1884
+ if (mAdapter != null) {
1885
+ mAdapter.clearDetachCaches();
1886
+ }
1887
+ resetAutoWork();
1888
+ }
1889
+
1890
+ private void resetAutoWork(){
1891
+ // autofocusDirty = true;
1892
+ if(getControlProps().singleSelectPosition != -1){
1893
+ // Log.i(TAG, "resetAutoWork on singleSelectPosition:" + getControlProps().singleSelectPosition);
1894
+ defaultSectionPosition = getControlProps().singleSelectPosition;
1895
+ }
1896
+ getControlProps().currentScrollToPosition = -1;
1897
+ }
1898
+
1899
+ @Override
1900
+ public void setPendingData(Object data, RenderNode templateNode) {
1901
+ this.setPendingData(data, templateNode, false, useDiff);
1902
+ }
1903
+
1904
+
1905
+ public void smoothScrollToTop() {
1906
+ smoothScrollToPosition(0);
1907
+ }
1908
+
1909
+ public void scrollToIndex(int xIndex, int yIndex, boolean animated, int duration, int offset) {
1910
+ if (getLayoutManagerCompat() != null) {
1911
+ handleScrollBackToTop(yIndex);
1912
+ getLayoutManagerCompat().scrollToPositionWithOffset(yIndex, offset);
1913
+ }
1914
+ }
1915
+
1916
+ private void handleScrollBackToTop(int position) {
1917
+ if (position < 1) {
1918
+ if (LogUtils.isDebug()) {
1919
+ Log.e("ScrollLog", "handleScrollBackToTop mOffsetY:" + mOffsetY);
1920
+ }
1921
+ if (mOffsetY >= scrollYLesserReferenceValue) {
1922
+ handleScrollValue(true, -1, 0);
1923
+ }
1924
+ resetScrollOffset();
1925
+ }
1926
+ }
1927
+
1928
+ public void recycle() {
1929
+ if (mAdapter != null) {
1930
+ for (int i = 0; i < getChildCount(); i++) {
1931
+ final View child = getChildAt(i);
1932
+ final ViewHolder h = getChildViewHolder(child);
1933
+ if (h instanceof FastAdapter.Holder) {
1934
+ if (LogUtils.isDebug()) {
1935
+ Log.d(TAG, "DebugPool recycle holder type:" + ((FastAdapter.Holder) h).type);
1936
+ }
1937
+ mAdapter.recycleItem((FastAdapter.Holder) h);
1938
+ }
1939
+ }
1940
+ //mAdapter.recycleAll();
1941
+ }
1942
+ }
1943
+
1944
+ public void setListenBoundEvent(boolean enable) {
1945
+ if (mAdapter != null) {
1946
+ mAdapter.setListenBoundEvent(enable);
1947
+ }
1948
+ }
1949
+
1950
+
1951
+ public void prepareForRecycle() {
1952
+ if (mAdapter != null) {
1953
+ for (int i = 0; i < getChildCount(); i++) {
1954
+ final View child = getChildAt(i);
1955
+ final ViewHolder h = getChildViewHolder(child);
1956
+ if (h instanceof FastAdapter.Holder) {
1957
+ if (LogUtils.isDebug()) {
1958
+ Log.i(TAG, "DebugPool FastList prepareForRecycle holder type:" + ((FastAdapter.Holder) h).type + ",view :" + h.itemView);
1959
+ }
1960
+ if (h.itemView instanceof HippyRecycler) {
1961
+ ((HippyRecycler) h.itemView).onResetBeforeCache();
1962
+ }
1963
+ }
1964
+ }
1965
+ //mAdapter.recycleAll();
1966
+ }
1967
+ }
1968
+
1969
+ public void notifyChildrenSaveState() {
1970
+ if (mAdapter != null) {
1971
+ for (int i = 0; i < getChildCount(); i++) {
1972
+ final View child = getChildAt(i);
1973
+ final ViewHolder h = getChildViewHolder(child);
1974
+ if (h instanceof FastAdapter.Holder) {
1975
+ if (LogUtils.isDebug()) {
1976
+ Log.i(TAG, "+++DebugPool FastList notifyChildrenSaveState holder type:" + ((FastAdapter.Holder) h).type + ",view :" + h.itemView);
1977
+ }
1978
+ if (h.itemView instanceof HippyRecycler) {
1979
+ ((HippyRecycler) h.itemView).notifySaveState();
1980
+ }
1981
+ }
1982
+ }
1983
+ //mAdapter.recycleAll();
1984
+ }
1985
+ }
1986
+
1987
+
1988
+ @Override
1989
+ public void resumePostTask() {
1990
+ super.resumePostTask();
1991
+ notifyResumeTask();
1992
+ }
1993
+
1994
+ @Override
1995
+ public void pausePostTask() {
1996
+ super.pausePostTask();
1997
+ notifyPauseTask();
1998
+ }
1999
+
2000
+ @Override
2001
+ public void notifyPauseTask() {
2002
+ if (mAdapter != null) {
2003
+ for (int i = 0; i < getChildCount(); i++) {
2004
+ final View child = getChildAt(i);
2005
+ final ViewHolder h = getChildViewHolder(child);
2006
+ if (h instanceof FastAdapter.Holder) {
2007
+ if (h.itemView instanceof FastAdapter.ScrollTaskHandler) {
2008
+ ((FastAdapter.ScrollTaskHandler) h.itemView).notifyPauseTask();
2009
+ }
2010
+ }
2011
+ }
2012
+ }
2013
+ }
2014
+
2015
+ @Override
2016
+ public void notifyBringToFront(boolean front) {
2017
+ if (mAdapter != null) {
2018
+ for (int i = 0; i < getChildCount(); i++) {
2019
+ final View child = getChildAt(i);
2020
+ final ViewHolder h = getChildViewHolder(child);
2021
+ if (h instanceof FastAdapter.Holder) {
2022
+ if (h.itemView instanceof FastAdapter.ScrollTaskHandler) {
2023
+ ((FastAdapter.ScrollTaskHandler) h.itemView).notifyBringToFront(front);
2024
+ }
2025
+ }
2026
+ }
2027
+ }
2028
+ }
2029
+
2030
+ @Override
2031
+ public void notifyResumeTask() {
2032
+ if (mAdapter != null) {
2033
+ for (int i = 0; i < getChildCount(); i++) {
2034
+ final View child = getChildAt(i);
2035
+ final ViewHolder h = getChildViewHolder(child);
2036
+ if (h instanceof FastAdapter.Holder) {
2037
+ if (h.itemView instanceof FastAdapter.ScrollTaskHandler) {
2038
+ ((FastAdapter.ScrollTaskHandler) h.itemView).notifyResumeTask();
2039
+ }
2040
+ }
2041
+ }
2042
+ }
2043
+ }
2044
+
2045
+ public void notifyChildrenRestoreState() {
2046
+ if (mAdapter != null) {
2047
+ for (int i = 0; i < getChildCount(); i++) {
2048
+ final View child = getChildAt(i);
2049
+ final ViewHolder h = getChildViewHolder(child);
2050
+ if (h instanceof FastAdapter.Holder) {
2051
+ if (LogUtils.isDebug()) {
2052
+ Log.i(TAG, "---DebugPool FastList notifyChildrenRestoreState holder type:" + ((FastAdapter.Holder) h).type + ",view :" + h.itemView);
2053
+ }
2054
+ if (h.itemView instanceof HippyRecycler) {
2055
+ ((HippyRecycler) h.itemView).notifyRestoreState();
2056
+ }
2057
+ }
2058
+ }
2059
+ //mAdapter.recycleAll();
2060
+ }
2061
+ }
2062
+
2063
+ @Override
2064
+ public void clearPostTask(int type) {
2065
+
2066
+ }
2067
+
2068
+
2069
+ @Override
2070
+ public void notifyDetachFromParent() {
2071
+ if (mAdapter != null) {
2072
+ for (int i = 0; i < getChildCount(); i++) {
2073
+ final View child = getChildAt(i);
2074
+ final ViewHolder h = getChildViewHolder(child);
2075
+ if (h instanceof FastAdapter.Holder) {
2076
+ mAdapter.onViewDetachedFromWindow((FastAdapter.Holder) h);
2077
+ }
2078
+ }
2079
+ }
2080
+ }
2081
+
2082
+ @Override
2083
+ public void notifyAttachToParent() {
2084
+ if (mAdapter != null) {
2085
+ for (int i = 0; i < getChildCount(); i++) {
2086
+ final View child = getChildAt(i);
2087
+ final ViewHolder h = getChildViewHolder(child);
2088
+ if (h instanceof FastAdapter.Holder) {
2089
+ mAdapter.onViewAttachedToWindow((FastAdapter.Holder) h);
2090
+ }
2091
+ }
2092
+ }
2093
+ }
2094
+
2095
+
2096
+ @Override
2097
+ protected void onReAttached() {
2098
+ super.onReAttached();
2099
+ if (LogUtils.isDebug()) {
2100
+ Log.d(TAG, "FastListAttachEvent ++ onReAttached defaultSectionPosition: " + defaultSectionPosition + " this :" + this);
2101
+ }
2102
+ if (defaultSectionPosition != -1) {
2103
+ //zhaopeng 20220731 在重新attach后,如果不在这里更新状态,select状态会不显示
2104
+ changeSelectState(defaultSectionPosition, true);
2105
+ }
2106
+ }
2107
+
2108
+
2109
+ @Override
2110
+ protected boolean onInterceptRequestChildRectangleOnScreen(@NonNull View child, @NonNull Rect rect, boolean immediate, int direction, boolean focusedChildVisible) {
2111
+ return mAdapter != null && mAdapter.onInterceptRequestChildRectangleOnScreen(this, child, rect, immediate, direction, focusedChildVisible);
2112
+ }
2113
+
2114
+ public void clearData() {
2115
+ if (LogUtils.isDebug()) {
2116
+ Log.i(TAG, "clearData called");
2117
+ }
2118
+ // autofocusDirtyOnDataChange = true;
2119
+ if (mAdapter != null) {
2120
+ mAdapter.clearData();
2121
+ mAdapter.notifyDataSetChanged();
2122
+ } else {
2123
+ setAdapter(null);
2124
+ }
2125
+ requestLayoutManual();
2126
+ }
2127
+
2128
+ private boolean resetOnDetach = true;
2129
+ public void setResetOnDetach(boolean enable) {
2130
+ this.resetOnDetach = enable;
2131
+ }
2132
+
2133
+ public void setEventSendItem(boolean flag) {
2134
+ if (mAdapter != null) {
2135
+ mAdapter.setEventSendItem(flag);
2136
+ }
2137
+ }
2138
+
2139
+ public void setPlaceholderPostDelay(int time) {
2140
+ if (mAdapter != null) {
2141
+ mAdapter.placeholderPostDelay = time;
2142
+ }
2143
+ }
2144
+
2145
+
2146
+ public interface FastListItemView {
2147
+ void onRecycleItemView(FastListView listView, FastAdapter adapter);
2148
+ }
2149
+
2150
+ static final class InitParams {
2151
+ int customFocusPosition;
2152
+ int targetFocusPosition;
2153
+ int targetScrollToPosition;
2154
+ int scrollToPosition;
2155
+ int scrollOffset;
2156
+ boolean alignCenter;
2157
+ String targetName;
2158
+ boolean valid = true;
2159
+ final boolean blockOthers;
2160
+ int delay;
2161
+
2162
+ private InitParams(int targetFocusPosition, int scrollToPosition, int scrollOffset, String targetName, boolean blockOthers, int delay, boolean alignCenter) {
2163
+ this.targetFocusPosition = targetFocusPosition;
2164
+ this.customFocusPosition = targetFocusPosition;
2165
+ this.targetScrollToPosition = scrollToPosition;
2166
+ this.scrollToPosition = scrollToPosition;
2167
+ this.scrollOffset = scrollOffset;
2168
+ this.targetName = targetName;
2169
+ this.blockOthers = blockOthers;
2170
+ this.delay = delay;
2171
+ this.alignCenter = alignCenter;
2172
+ }
2173
+
2174
+ @Override
2175
+ public String toString() {
2176
+ return "InitParams{" +
2177
+ "customFocusPosition=" + customFocusPosition +
2178
+ ", targetFocusPosition=" + targetFocusPosition +
2179
+ ", scrollToPosition=" + scrollToPosition +
2180
+ ", scrollOffset=" + scrollOffset +
2181
+ ", targetName='" + targetName + '\'' +
2182
+ ", valid=" + valid +
2183
+ ", blockOthers=" + blockOthers +
2184
+ ", delay=" + delay +
2185
+ ", alignCenter=" + alignCenter +
2186
+ '}';
2187
+ }
2188
+ }
2189
+
2190
+ public void dispatchItemFunction(HippyArray var, @Nullable Promise promise) {
2191
+ final int itemPos = var.getInt(0);
2192
+ final String targetName = var.getString(1);
2193
+ final String functionTargetName = var.getString(2);
2194
+ final HippyArray array = var.getArray(3);
2195
+
2196
+ final ViewHolder holder = findViewHolderForAdapterPosition(itemPos);
2197
+ if (holder instanceof FastAdapter.Holder) {
2198
+ FastAdapter.Holder vh = (FastAdapter.Holder) holder;
2199
+ final FastAdapter.ElementNode targetNode = Utils.findElementNodeByName(targetName, vh.tag.getRootNode());
2200
+ final View target = targetNode == null ? null : targetNode.boundView;
2201
+ if (target != null && functionTargetName != null && !"dispatchFunctionByViewName".equals(functionTargetName)) {
2202
+ if (LogUtils.isDebug()) {
2203
+ Log.i(TAG, "dispatchItemFunction dispatchItemFunction work, target ==:" + target + ",targetName:" + targetName + ",functionTargetName:" + functionTargetName);
2204
+ }
2205
+ Utils.dispatchFunction(mAdapter.getControllerManager(), targetNode, functionTargetName, array, promise);
2206
+ } else {
2207
+ if (LogUtils.isDebug()) {
2208
+ Log.e(TAG, "dispatchItemFunction dispatchFunctionByViewName error target ==:" + target + ",targetName:" + targetName + ",functionTargetName:" + functionTargetName);
2209
+ }
2210
+ }
2211
+ } else {
2212
+ Log.e(TAG, "dispatchItemFunction dispatchItemFunction error , found holder null , pos:" + itemPos);
2213
+ }
2214
+
2215
+ }
2216
+
2217
+ @Override
2218
+ public void onScrolled(int x, int y) {
2219
+ super.onScrolled(x, y);
2220
+ if(y != 0){
2221
+ TriggerTaskManagerModule.dispatchTriggerTask(this,"onScrollY");
2222
+ }
2223
+ if(x != 0){
2224
+ TriggerTaskManagerModule.dispatchTriggerTask(this,"onScrollX");
2225
+ }
2226
+ }
2227
+
2228
+ @Override
2229
+ public void onScrollStateChanged(int state) {
2230
+ int dx = mOffsetX - lastScrollX;
2231
+ int dy = mOffsetY - lastScrollY;
2232
+ lastScrollX = mOffsetX;
2233
+ lastScrollY = mOffsetY;
2234
+ if (onScrollStateChangedListener != null) {
2235
+ onScrollStateChangedListener.onScrollStateChanged(lastState, state, dx, dy);
2236
+ }
2237
+ if (state == RecyclerView.SCROLL_STATE_IDLE) {
2238
+ if (lastState != state) {
2239
+ TriggerTaskManagerModule.dispatchTriggerTask(this,"onScrollStateIdle");
2240
+ }
2241
+ }else if(lastState == RecyclerView.SCROLL_STATE_IDLE){
2242
+ TriggerTaskManagerModule.dispatchTriggerTask(this,"onScrollStateScrolling");
2243
+ }
2244
+ super.onScrollStateChanged(state);
2245
+ }
2246
+
2247
+ @Override
2248
+ protected void onTriggerScrollYGreater() {
2249
+ super.onTriggerScrollYGreater();
2250
+ if (onScrollStateChangedListener != null) {
2251
+ onScrollStateChangedListener.onTriggerScrollYGreater();
2252
+ }
2253
+ }
2254
+
2255
+ @Override
2256
+ protected void onTriggerScrollYLesser() {
2257
+ super.onTriggerScrollYLesser();
2258
+ if (onScrollStateChangedListener != null) {
2259
+ onScrollStateChangedListener.onTriggerScrollYLesser();
2260
+ }
2261
+ }
2262
+
2263
+ public FastAdapter getFastAdapter() {
2264
+ return mAdapter;
2265
+ }
2266
+
2267
+ @Override
2268
+ public void setRootList(FastListView rootList, FastAdapter adapter) {
2269
+ if (mAdapter != null) {
2270
+ mAdapter.setRootList(rootList, adapter);
2271
+ }
2272
+
2273
+ }
2274
+
2275
+ public View getAgentView() {
2276
+ return agentView;
2277
+ }
2278
+
2279
+ public void setAgentView(View agentView) {
2280
+ this.agentView = agentView;
2281
+ }
2282
+
2283
+ public OnFastScrollStateChangedListener getOnScrollStateChangedListener() {
2284
+ return onScrollStateChangedListener;
2285
+ }
2286
+
2287
+ public void setOnScrollStateChangedListener(OnFastScrollStateChangedListener onScrollStateChangedListener) {
2288
+ this.onScrollStateChangedListener = onScrollStateChangedListener;
2289
+ }
2290
+
2291
+ @Override
2292
+ public int findPositionByChild(View child) {
2293
+ return getLayoutManagerCompat().getPosition(child);
2294
+ }
2295
+
2296
+ public boolean isShakeEnd() {
2297
+ return mShakeEndAnimator == null;
2298
+ }
2299
+
2300
+ private boolean destroyed = false;
2301
+ @Override
2302
+ public void destroy() {
2303
+ super.destroy();
2304
+ this.destroyed = true;
2305
+ try {
2306
+ if (mAdapter != null) {
2307
+ mAdapter.clearDetachCaches();
2308
+ mAdapter.clearCache();
2309
+ mAdapter.clearData();
2310
+ setAdapter(null);
2311
+ }
2312
+ templateNode = null;
2313
+ } catch (Throwable t) {
2314
+ t.printStackTrace();
2315
+ }
2316
+ }
2317
+
2318
+ @Override
2319
+ public void getState(@NonNull HippyMap map) {
2320
+ Utils.getFastListState(this, map);
2321
+ }
2322
+
2323
+ @Override
2324
+ public void onRequestAutofocus(View child, View target,int type) {
2325
+ // if(target != null && autofocusDirty){
2326
+ if(target != null){//暂时不判断
2327
+ // autofocusDirty = false;
2328
+ if(!hasFocus() || isFocused() || type == ExtendViewGroup.AUTOFOCUS_TYPE_SIZE_VALID
2329
+ || type == ExtendViewGroup.AUTOFOCUS_TYPE_FORCE) {
2330
+ super.onRequestAutofocus(child, target,type);
2331
+ }else{
2332
+ if(AutoFocusManager.isNextGlobalPendingAutofocus(target)){
2333
+ super.onRequestAutofocus(child, target,type);
2334
+ }else {
2335
+ Log.e(AutoFocusManager.TAG, "onRequestAutofocus return on List hasFocus :" + this);
2336
+ }
2337
+ }
2338
+ }
2339
+ }
2340
+
2341
+ private HippyViewGroup pageRootView;
2342
+ @Override
2343
+ public HippyViewGroup findPageRootView() {
2344
+ if (pageRootView != null) {
2345
+ return pageRootView;
2346
+ }
2347
+ View v = HippyViewGroup.findRootViewFromParent(this);
2348
+ if(v instanceof HippyViewGroup){
2349
+ pageRootView = (HippyViewGroup) v;
2350
+ }
2351
+ return pageRootView;
2352
+ }
2353
+
2354
+
2355
+ @Override
2356
+ public void searchUpdateItemDataByItemID(String id, Object data, boolean traverse) {
2357
+ FastAdapterUtil.updateItemData4FastAdapterTraverse(id,data,getFastAdapter().dataList,traverse,ExtendUtil.debugViewLite(this));
2358
+ }
2359
+
2360
+ @Override
2361
+ public void searchUpdateItemViewByItemID(String id, Object data, boolean traverse) {
2362
+ FastAdapterUtil.updateItemViewByItemID(this.getView(),id,data,traverse);
2363
+ }
2364
+
2365
+ @Override
2366
+ public HippyArray getItemListData() {
2367
+ return getFastAdapter().dataList;
2368
+ }
2369
+
2370
+ @Override
2371
+ public int findItemPositionBySID(String id) {
2372
+ return getFastAdapter() == null ? -1 : getFastAdapter().findItemPositionBySID(id);
2373
+ }
2374
+
2375
+ /**
2376
+ * 根据指定的itemID,动态的更新一个元素的属性,
2377
+ */
2378
+ @Override
2379
+ public void searchUpdateItemPropsBySID(String name, String itemID, String prop, Object newValue, boolean updateView){
2380
+ FastAdapterUtil.updateItemPropsByItemID(this.getView(),name,itemID,prop,newValue,updateView);
2381
+ }
2382
+
2383
+ @Override
2384
+ public void updateItemSpecificProp(String name, int position, String key, Object value,boolean updateView) {
2385
+ if (mAdapter != null) {
2386
+ final ViewHolder vh = findViewHolderForAdapterPosition(position);
2387
+ mAdapter.updateItemSpecificPropByTargetName(name, position, key, value, updateView,vh);
2388
+ if (vh == null) {
2389
+ Log.e(TAG, "updateItemSpecificProp error,没有找到对应的Holder,当前View可能没有在展示");
2390
+ }
2391
+ }
2392
+ }
2393
+
2394
+ public void changeItemState(int position,String state,boolean on){
2395
+ if("selected".equals(state)){
2396
+ if(on){
2397
+ setSelectChildPosition(position,true);
2398
+ }else{
2399
+ setSelectChildPosition(-1,false);
2400
+ }
2401
+ }else if (mAdapter != null) {
2402
+
2403
+ final ViewHolder vh = findViewHolderForAdapterPosition(position);
2404
+ if(vh != null){
2405
+ if(vh.itemView instanceof StateView){
2406
+ ((StateView) vh.itemView).setCustomState(state,on);
2407
+ }
2408
+ }else {
2409
+ Log.e(TAG, "changeItemState error,没有找到对应的Holder,当前View可能没有在展示");
2410
+ }
2411
+ }
2412
+ }
2413
+
2414
+ private String[] stateEnableOnFocusNames;
2415
+ public void setStateEnableOnFocusNames(String[] names) {
2416
+ Log.e(TAG,"setStateEnableOnFocusNames new names = " + Arrays.toString(names)+",old stateEnableOnFocusNames:"+Arrays.toString(stateEnableOnFocusNames));
2417
+ if (stateEnableOnFocusNames != null && stateEnableOnFocusNames.length > 0 && names == null || names.length == 0) {
2418
+ //取消
2419
+ View child = getFocusedChild();
2420
+ for(String s : stateEnableOnFocusNames){
2421
+ Log.i(TAG,"setStateEnableOnFocusNames on clearSelectChild s:"+s);
2422
+ if("selected".equals(s)){
2423
+ // setSelectChildPosition(-1,false);
2424
+ clearSelectChild();
2425
+ }
2426
+ if(child instanceof StateView){
2427
+ ((StateView) child).setCustomState(s,false);
2428
+ }
2429
+ }
2430
+ }
2431
+ this.stateEnableOnFocusNames = names;
2432
+ if (stateEnableOnFocusNames != null) {
2433
+ View child = getFocusedChild();
2434
+ for(String s : stateEnableOnFocusNames){
2435
+ if(child instanceof StateView){
2436
+ if("selected".equals(s)){
2437
+ int pos = findPositionByChild(child);
2438
+ Log.i(TAG,"setSelectChildPosition on setStateEnableOnFocusNames pos:"+pos);
2439
+ setSelectChildPosition(pos,false);
2440
+ }
2441
+ ((StateView) child).setCustomState(s,true);
2442
+ }
2443
+ }
2444
+ }
2445
+ }
2446
+
2447
+ @Override
2448
+ public View findFirstFocusByDirection(int direction) {
2449
+ return getLayoutManagerCompat().findFirstFocusByDirection(direction);
2450
+ }
2451
+
2452
+ @Override
2453
+ protected int getFirstFocusChildPosition(int direction) {
2454
+ if (mTargetFocusChildPosition > -1) {
2455
+ return mTargetFocusChildPosition;
2456
+ }else {
2457
+ if (isInfinityLoop) {
2458
+ return FastAdapter.INFINITE_START_POSITION;
2459
+ }else{
2460
+ return 0;
2461
+ }
2462
+ }
2463
+ }
2464
+
2465
+
2466
+ }