react-native-theoplayer 2.8.0 → 2.9.0

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 (545) hide show
  1. package/CHANGELOG.md +49 -13
  2. package/README.md +16 -2
  3. package/android/src/main/java/com/theoplayer/media/MediaNotificationBuilder.kt +5 -0
  4. package/android/src/main/java/com/theoplayer/media/MediaPlaybackService.kt +31 -8
  5. package/ios/contentprotection/THEOplayerRCTProxyContentProtectionIntegration.swift +19 -29
  6. package/lib/commonjs/api/cast/Chromecast.js.map +1 -1
  7. package/lib/commonjs/index.js +0 -12
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/module/api/cast/Chromecast.js.map +1 -1
  10. package/lib/module/index.js +0 -1
  11. package/lib/module/index.js.map +1 -1
  12. package/lib/typescript/api/cast/Chromecast.d.ts +1 -1
  13. package/lib/typescript/index.d.ts +0 -1
  14. package/package.json +2 -8
  15. package/react-native-theoplayer.podspec +1 -1
  16. package/src/api/cast/Chromecast.ts +1 -1
  17. package/src/index.tsx +0 -1
  18. package/lib/commonjs/ui/THEOplayerDefaultUi.js +0 -82
  19. package/lib/commonjs/ui/THEOplayerDefaultUi.js.map +0 -1
  20. package/lib/commonjs/ui/THEOplayerTheme.js +0 -48
  21. package/lib/commonjs/ui/THEOplayerTheme.js.map +0 -1
  22. package/lib/commonjs/ui/barrel.js +0 -39
  23. package/lib/commonjs/ui/barrel.js.map +0 -1
  24. package/lib/commonjs/ui/components/activityindicator/CenteredDelayedActivityIndicator.js +0 -99
  25. package/lib/commonjs/ui/components/activityindicator/CenteredDelayedActivityIndicator.js.map +0 -1
  26. package/lib/commonjs/ui/components/activityindicator/DelayedActivityIndicator.js +0 -35
  27. package/lib/commonjs/ui/components/activityindicator/DelayedActivityIndicator.js.map +0 -1
  28. package/lib/commonjs/ui/components/activityindicator/barrel.js +0 -28
  29. package/lib/commonjs/ui/components/activityindicator/barrel.js.map +0 -1
  30. package/lib/commonjs/ui/components/barrel.js +0 -105
  31. package/lib/commonjs/ui/components/barrel.js.map +0 -1
  32. package/lib/commonjs/ui/components/button/AirplayButton.js +0 -81
  33. package/lib/commonjs/ui/components/button/AirplayButton.js.map +0 -1
  34. package/lib/commonjs/ui/components/button/ChromecastButton.js +0 -66
  35. package/lib/commonjs/ui/components/button/ChromecastButton.js.map +0 -1
  36. package/lib/commonjs/ui/components/button/ChromecastButton.web.js +0 -82
  37. package/lib/commonjs/ui/components/button/ChromecastButton.web.js.map +0 -1
  38. package/lib/commonjs/ui/components/button/FullscreenButton.js +0 -72
  39. package/lib/commonjs/ui/components/button/FullscreenButton.js.map +0 -1
  40. package/lib/commonjs/ui/components/button/MuteButton.js +0 -66
  41. package/lib/commonjs/ui/components/button/MuteButton.js.map +0 -1
  42. package/lib/commonjs/ui/components/button/PipButton.js +0 -72
  43. package/lib/commonjs/ui/components/button/PipButton.js.map +0 -1
  44. package/lib/commonjs/ui/components/button/PlayButton.js +0 -113
  45. package/lib/commonjs/ui/components/button/PlayButton.js.map +0 -1
  46. package/lib/commonjs/ui/components/button/SkipButton.js +0 -122
  47. package/lib/commonjs/ui/components/button/SkipButton.js.map +0 -1
  48. package/lib/commonjs/ui/components/button/actionbutton/ActionButton.js +0 -82
  49. package/lib/commonjs/ui/components/button/actionbutton/ActionButton.js.map +0 -1
  50. package/lib/commonjs/ui/components/button/barrel.js +0 -105
  51. package/lib/commonjs/ui/components/button/barrel.js.map +0 -1
  52. package/lib/commonjs/ui/components/button/svg/AirplaySvg.js +0 -22
  53. package/lib/commonjs/ui/components/button/svg/AirplaySvg.js.map +0 -1
  54. package/lib/commonjs/ui/components/button/svg/ArrowForwardSvg.js +0 -22
  55. package/lib/commonjs/ui/components/button/svg/ArrowForwardSvg.js.map +0 -1
  56. package/lib/commonjs/ui/components/button/svg/BackSvg.js +0 -22
  57. package/lib/commonjs/ui/components/button/svg/BackSvg.js.map +0 -1
  58. package/lib/commonjs/ui/components/button/svg/BackwardSvg.js +0 -22
  59. package/lib/commonjs/ui/components/button/svg/BackwardSvg.js.map +0 -1
  60. package/lib/commonjs/ui/components/button/svg/ChromecastSvg.js +0 -22
  61. package/lib/commonjs/ui/components/button/svg/ChromecastSvg.js.map +0 -1
  62. package/lib/commonjs/ui/components/button/svg/ErrorSvg.js +0 -22
  63. package/lib/commonjs/ui/components/button/svg/ErrorSvg.js.map +0 -1
  64. package/lib/commonjs/ui/components/button/svg/ForwardSvg.js +0 -22
  65. package/lib/commonjs/ui/components/button/svg/ForwardSvg.js.map +0 -1
  66. package/lib/commonjs/ui/components/button/svg/FullscreenEnterSvg.js +0 -22
  67. package/lib/commonjs/ui/components/button/svg/FullscreenEnterSvg.js.map +0 -1
  68. package/lib/commonjs/ui/components/button/svg/FullscreenExitSvg.js +0 -22
  69. package/lib/commonjs/ui/components/button/svg/FullscreenExitSvg.js.map +0 -1
  70. package/lib/commonjs/ui/components/button/svg/LanguageSvg.js +0 -22
  71. package/lib/commonjs/ui/components/button/svg/LanguageSvg.js.map +0 -1
  72. package/lib/commonjs/ui/components/button/svg/ListSvg.js +0 -22
  73. package/lib/commonjs/ui/components/button/svg/ListSvg.js.map +0 -1
  74. package/lib/commonjs/ui/components/button/svg/PauseSvg.js +0 -22
  75. package/lib/commonjs/ui/components/button/svg/PauseSvg.js.map +0 -1
  76. package/lib/commonjs/ui/components/button/svg/PipEnterSvg.js +0 -22
  77. package/lib/commonjs/ui/components/button/svg/PipEnterSvg.js.map +0 -1
  78. package/lib/commonjs/ui/components/button/svg/PipExitSvg.js +0 -22
  79. package/lib/commonjs/ui/components/button/svg/PipExitSvg.js.map +0 -1
  80. package/lib/commonjs/ui/components/button/svg/PlaySvg.js +0 -22
  81. package/lib/commonjs/ui/components/button/svg/PlaySvg.js.map +0 -1
  82. package/lib/commonjs/ui/components/button/svg/ReplaySvg.js +0 -22
  83. package/lib/commonjs/ui/components/button/svg/ReplaySvg.js.map +0 -1
  84. package/lib/commonjs/ui/components/button/svg/SettingsSvg.js +0 -22
  85. package/lib/commonjs/ui/components/button/svg/SettingsSvg.js.map +0 -1
  86. package/lib/commonjs/ui/components/button/svg/SvgUtils.js +0 -13
  87. package/lib/commonjs/ui/components/button/svg/SvgUtils.js.map +0 -1
  88. package/lib/commonjs/ui/components/button/svg/VolumeOffSvg.js +0 -22
  89. package/lib/commonjs/ui/components/button/svg/VolumeOffSvg.js.map +0 -1
  90. package/lib/commonjs/ui/components/button/svg/VolumeUpSvg.js +0 -22
  91. package/lib/commonjs/ui/components/button/svg/VolumeUpSvg.js.map +0 -1
  92. package/lib/commonjs/ui/components/button/svg/barrel.js +0 -226
  93. package/lib/commonjs/ui/components/button/svg/barrel.js.map +0 -1
  94. package/lib/commonjs/ui/components/button/svg/res/AirPlayButton.html +0 -6
  95. package/lib/commonjs/ui/components/button/svg/res/Airplay.svg +0 -1
  96. package/lib/commonjs/ui/components/button/svg/res/ChromecastButton.html +0 -25
  97. package/lib/commonjs/ui/components/button/svg/res/arrow_forward.svg +0 -1
  98. package/lib/commonjs/ui/components/button/svg/res/back.svg +0 -1
  99. package/lib/commonjs/ui/components/button/svg/res/backward.svg +0 -1
  100. package/lib/commonjs/ui/components/button/svg/res/chromecast-48px.svg +0 -1
  101. package/lib/commonjs/ui/components/button/svg/res/close.svg +0 -1
  102. package/lib/commonjs/ui/components/button/svg/res/error.svg +0 -1
  103. package/lib/commonjs/ui/components/button/svg/res/forward.svg +0 -1
  104. package/lib/commonjs/ui/components/button/svg/res/fullscreen-enter.svg +0 -1
  105. package/lib/commonjs/ui/components/button/svg/res/fullscreen-exit.svg +0 -1
  106. package/lib/commonjs/ui/components/button/svg/res/language.svg +0 -1
  107. package/lib/commonjs/ui/components/button/svg/res/list.svg +0 -1
  108. package/lib/commonjs/ui/components/button/svg/res/live.svg +0 -1
  109. package/lib/commonjs/ui/components/button/svg/res/pause.svg +0 -1
  110. package/lib/commonjs/ui/components/button/svg/res/pip_enter.svg +0 -1
  111. package/lib/commonjs/ui/components/button/svg/res/pip_exit.svg +0 -1
  112. package/lib/commonjs/ui/components/button/svg/res/play.svg +0 -1
  113. package/lib/commonjs/ui/components/button/svg/res/replay.svg +0 -1
  114. package/lib/commonjs/ui/components/button/svg/res/settings.svg +0 -1
  115. package/lib/commonjs/ui/components/button/svg/res/skip-next.svg +0 -1
  116. package/lib/commonjs/ui/components/button/svg/res/volume-high.svg +0 -1
  117. package/lib/commonjs/ui/components/button/svg/res/volume-low.svg +0 -1
  118. package/lib/commonjs/ui/components/button/svg/res/volume-off.svg +0 -1
  119. package/lib/commonjs/ui/components/controlbar/ControlBar.js +0 -61
  120. package/lib/commonjs/ui/components/controlbar/ControlBar.js.map +0 -1
  121. package/lib/commonjs/ui/components/controlbar/Spacer.js +0 -21
  122. package/lib/commonjs/ui/components/controlbar/Spacer.js.map +0 -1
  123. package/lib/commonjs/ui/components/controlbar/barrel.js +0 -28
  124. package/lib/commonjs/ui/components/controlbar/barrel.js.map +0 -1
  125. package/lib/commonjs/ui/components/menu/LanguageMenuButton.js +0 -175
  126. package/lib/commonjs/ui/components/menu/LanguageMenuButton.js.map +0 -1
  127. package/lib/commonjs/ui/components/menu/PlaybackRateSubMenu.js +0 -91
  128. package/lib/commonjs/ui/components/menu/PlaybackRateSubMenu.js.map +0 -1
  129. package/lib/commonjs/ui/components/menu/QualitySubMenu.js +0 -145
  130. package/lib/commonjs/ui/components/menu/QualitySubMenu.js.map +0 -1
  131. package/lib/commonjs/ui/components/menu/SettingsMenuButton.js +0 -36
  132. package/lib/commonjs/ui/components/menu/SettingsMenuButton.js.map +0 -1
  133. package/lib/commonjs/ui/components/menu/barrel.js +0 -61
  134. package/lib/commonjs/ui/components/menu/barrel.js.map +0 -1
  135. package/lib/commonjs/ui/components/menu/common/MenuButton.js +0 -34
  136. package/lib/commonjs/ui/components/menu/common/MenuButton.js.map +0 -1
  137. package/lib/commonjs/ui/components/menu/common/MenuRadioButton.js +0 -47
  138. package/lib/commonjs/ui/components/menu/common/MenuRadioButton.js.map +0 -1
  139. package/lib/commonjs/ui/components/menu/common/MenuTitle.js +0 -38
  140. package/lib/commonjs/ui/components/menu/common/MenuTitle.js.map +0 -1
  141. package/lib/commonjs/ui/components/menu/common/MenuView.js +0 -75
  142. package/lib/commonjs/ui/components/menu/common/MenuView.js.map +0 -1
  143. package/lib/commonjs/ui/components/menu/common/ScrollableMenu.js +0 -45
  144. package/lib/commonjs/ui/components/menu/common/ScrollableMenu.js.map +0 -1
  145. package/lib/commonjs/ui/components/menu/common/SubMenuWithButton.js +0 -65
  146. package/lib/commonjs/ui/components/menu/common/SubMenuWithButton.js.map +0 -1
  147. package/lib/commonjs/ui/components/menu/common/barrel.js +0 -72
  148. package/lib/commonjs/ui/components/menu/common/barrel.js.map +0 -1
  149. package/lib/commonjs/ui/components/message/CastMessage.js +0 -79
  150. package/lib/commonjs/ui/components/message/CastMessage.js.map +0 -1
  151. package/lib/commonjs/ui/components/message/ErrorDisplay.js +0 -53
  152. package/lib/commonjs/ui/components/message/ErrorDisplay.js.map +0 -1
  153. package/lib/commonjs/ui/components/message/barrel.js +0 -28
  154. package/lib/commonjs/ui/components/message/barrel.js.map +0 -1
  155. package/lib/commonjs/ui/components/seekbar/SeekBar.js +0 -194
  156. package/lib/commonjs/ui/components/seekbar/SeekBar.js.map +0 -1
  157. package/lib/commonjs/ui/components/seekbar/barrel.js +0 -28
  158. package/lib/commonjs/ui/components/seekbar/barrel.js.map +0 -1
  159. package/lib/commonjs/ui/components/seekbar/thumbnail/SingleThumbnailView.js +0 -45
  160. package/lib/commonjs/ui/components/seekbar/thumbnail/SingleThumbnailView.js.map +0 -1
  161. package/lib/commonjs/ui/components/seekbar/thumbnail/Thumbnail.js +0 -18
  162. package/lib/commonjs/ui/components/seekbar/thumbnail/Thumbnail.js.map +0 -1
  163. package/lib/commonjs/ui/components/seekbar/thumbnail/ThumbnailView.js +0 -256
  164. package/lib/commonjs/ui/components/seekbar/thumbnail/ThumbnailView.js.map +0 -1
  165. package/lib/commonjs/ui/components/seekbar/thumbnail/Urlpolyfill.js +0 -17
  166. package/lib/commonjs/ui/components/seekbar/thumbnail/Urlpolyfill.js.map +0 -1
  167. package/lib/commonjs/ui/components/seekbar/thumbnail/Urlpolyfill.web.js +0 -10
  168. package/lib/commonjs/ui/components/seekbar/thumbnail/Urlpolyfill.web.js.map +0 -1
  169. package/lib/commonjs/ui/components/seekbar/thumbnail/barrel.js +0 -28
  170. package/lib/commonjs/ui/components/seekbar/thumbnail/barrel.js.map +0 -1
  171. package/lib/commonjs/ui/components/timelabel/StaticTimeLabel.js +0 -55
  172. package/lib/commonjs/ui/components/timelabel/StaticTimeLabel.js.map +0 -1
  173. package/lib/commonjs/ui/components/timelabel/TimeLabel.js +0 -88
  174. package/lib/commonjs/ui/components/timelabel/TimeLabel.js.map +0 -1
  175. package/lib/commonjs/ui/components/timelabel/barrel.js +0 -28
  176. package/lib/commonjs/ui/components/timelabel/barrel.js.map +0 -1
  177. package/lib/commonjs/ui/components/uicontroller/UiContainer.js +0 -350
  178. package/lib/commonjs/ui/components/uicontroller/UiContainer.js.map +0 -1
  179. package/lib/commonjs/ui/components/uicontroller/UiControls.js +0 -6
  180. package/lib/commonjs/ui/components/uicontroller/UiControls.js.map +0 -1
  181. package/lib/commonjs/ui/components/uicontroller/barrel.js +0 -28
  182. package/lib/commonjs/ui/components/uicontroller/barrel.js.map +0 -1
  183. package/lib/commonjs/ui/components/util/PlayerContext.js +0 -19
  184. package/lib/commonjs/ui/components/util/PlayerContext.js.map +0 -1
  185. package/lib/commonjs/ui/components/util/TrackUtils.js +0 -69
  186. package/lib/commonjs/ui/components/util/TrackUtils.js.map +0 -1
  187. package/lib/commonjs/ui/components/util/barrel.js +0 -17
  188. package/lib/commonjs/ui/components/util/barrel.js.map +0 -1
  189. package/lib/commonjs/ui/utils/ArrayUtils.js +0 -19
  190. package/lib/commonjs/ui/utils/ArrayUtils.js.map +0 -1
  191. package/lib/commonjs/ui/utils/language/Language.js +0 -38
  192. package/lib/commonjs/ui/utils/language/Language.js.map +0 -1
  193. package/lib/commonjs/ui/utils/language/languages.json +0 -1658
  194. package/lib/module/ui/THEOplayerDefaultUi.js +0 -74
  195. package/lib/module/ui/THEOplayerDefaultUi.js.map +0 -1
  196. package/lib/module/ui/THEOplayerTheme.js +0 -41
  197. package/lib/module/ui/THEOplayerTheme.js.map +0 -1
  198. package/lib/module/ui/barrel.js +0 -4
  199. package/lib/module/ui/barrel.js.map +0 -1
  200. package/lib/module/ui/components/activityindicator/CenteredDelayedActivityIndicator.js +0 -90
  201. package/lib/module/ui/components/activityindicator/CenteredDelayedActivityIndicator.js.map +0 -1
  202. package/lib/module/ui/components/activityindicator/DelayedActivityIndicator.js +0 -26
  203. package/lib/module/ui/components/activityindicator/DelayedActivityIndicator.js.map +0 -1
  204. package/lib/module/ui/components/activityindicator/barrel.js +0 -3
  205. package/lib/module/ui/components/activityindicator/barrel.js.map +0 -1
  206. package/lib/module/ui/components/barrel.js +0 -10
  207. package/lib/module/ui/components/barrel.js.map +0 -1
  208. package/lib/module/ui/components/button/AirplayButton.js +0 -72
  209. package/lib/module/ui/components/button/AirplayButton.js.map +0 -1
  210. package/lib/module/ui/components/button/ChromecastButton.js +0 -56
  211. package/lib/module/ui/components/button/ChromecastButton.js.map +0 -1
  212. package/lib/module/ui/components/button/ChromecastButton.web.js +0 -72
  213. package/lib/module/ui/components/button/ChromecastButton.web.js.map +0 -1
  214. package/lib/module/ui/components/button/FullscreenButton.js +0 -63
  215. package/lib/module/ui/components/button/FullscreenButton.js.map +0 -1
  216. package/lib/module/ui/components/button/MuteButton.js +0 -57
  217. package/lib/module/ui/components/button/MuteButton.js.map +0 -1
  218. package/lib/module/ui/components/button/PipButton.js +0 -63
  219. package/lib/module/ui/components/button/PipButton.js.map +0 -1
  220. package/lib/module/ui/components/button/PlayButton.js +0 -104
  221. package/lib/module/ui/components/button/PlayButton.js.map +0 -1
  222. package/lib/module/ui/components/button/SkipButton.js +0 -113
  223. package/lib/module/ui/components/button/SkipButton.js.map +0 -1
  224. package/lib/module/ui/components/button/actionbutton/ActionButton.js +0 -72
  225. package/lib/module/ui/components/button/actionbutton/ActionButton.js.map +0 -1
  226. package/lib/module/ui/components/button/barrel.js +0 -10
  227. package/lib/module/ui/components/button/barrel.js.map +0 -1
  228. package/lib/module/ui/components/button/svg/AirplaySvg.js +0 -12
  229. package/lib/module/ui/components/button/svg/AirplaySvg.js.map +0 -1
  230. package/lib/module/ui/components/button/svg/ArrowForwardSvg.js +0 -12
  231. package/lib/module/ui/components/button/svg/ArrowForwardSvg.js.map +0 -1
  232. package/lib/module/ui/components/button/svg/BackSvg.js +0 -12
  233. package/lib/module/ui/components/button/svg/BackSvg.js.map +0 -1
  234. package/lib/module/ui/components/button/svg/BackwardSvg.js +0 -12
  235. package/lib/module/ui/components/button/svg/BackwardSvg.js.map +0 -1
  236. package/lib/module/ui/components/button/svg/ChromecastSvg.js +0 -12
  237. package/lib/module/ui/components/button/svg/ChromecastSvg.js.map +0 -1
  238. package/lib/module/ui/components/button/svg/ErrorSvg.js +0 -12
  239. package/lib/module/ui/components/button/svg/ErrorSvg.js.map +0 -1
  240. package/lib/module/ui/components/button/svg/ForwardSvg.js +0 -12
  241. package/lib/module/ui/components/button/svg/ForwardSvg.js.map +0 -1
  242. package/lib/module/ui/components/button/svg/FullscreenEnterSvg.js +0 -12
  243. package/lib/module/ui/components/button/svg/FullscreenEnterSvg.js.map +0 -1
  244. package/lib/module/ui/components/button/svg/FullscreenExitSvg.js +0 -12
  245. package/lib/module/ui/components/button/svg/FullscreenExitSvg.js.map +0 -1
  246. package/lib/module/ui/components/button/svg/LanguageSvg.js +0 -12
  247. package/lib/module/ui/components/button/svg/LanguageSvg.js.map +0 -1
  248. package/lib/module/ui/components/button/svg/ListSvg.js +0 -12
  249. package/lib/module/ui/components/button/svg/ListSvg.js.map +0 -1
  250. package/lib/module/ui/components/button/svg/PauseSvg.js +0 -12
  251. package/lib/module/ui/components/button/svg/PauseSvg.js.map +0 -1
  252. package/lib/module/ui/components/button/svg/PipEnterSvg.js +0 -12
  253. package/lib/module/ui/components/button/svg/PipEnterSvg.js.map +0 -1
  254. package/lib/module/ui/components/button/svg/PipExitSvg.js +0 -12
  255. package/lib/module/ui/components/button/svg/PipExitSvg.js.map +0 -1
  256. package/lib/module/ui/components/button/svg/PlaySvg.js +0 -12
  257. package/lib/module/ui/components/button/svg/PlaySvg.js.map +0 -1
  258. package/lib/module/ui/components/button/svg/ReplaySvg.js +0 -12
  259. package/lib/module/ui/components/button/svg/ReplaySvg.js.map +0 -1
  260. package/lib/module/ui/components/button/svg/SettingsSvg.js +0 -12
  261. package/lib/module/ui/components/button/svg/SettingsSvg.js.map +0 -1
  262. package/lib/module/ui/components/button/svg/SvgUtils.js +0 -5
  263. package/lib/module/ui/components/button/svg/SvgUtils.js.map +0 -1
  264. package/lib/module/ui/components/button/svg/VolumeOffSvg.js +0 -12
  265. package/lib/module/ui/components/button/svg/VolumeOffSvg.js.map +0 -1
  266. package/lib/module/ui/components/button/svg/VolumeUpSvg.js +0 -12
  267. package/lib/module/ui/components/button/svg/VolumeUpSvg.js.map +0 -1
  268. package/lib/module/ui/components/button/svg/barrel.js +0 -21
  269. package/lib/module/ui/components/button/svg/barrel.js.map +0 -1
  270. package/lib/module/ui/components/button/svg/res/AirPlayButton.html +0 -6
  271. package/lib/module/ui/components/button/svg/res/Airplay.svg +0 -1
  272. package/lib/module/ui/components/button/svg/res/ChromecastButton.html +0 -25
  273. package/lib/module/ui/components/button/svg/res/arrow_forward.svg +0 -1
  274. package/lib/module/ui/components/button/svg/res/back.svg +0 -1
  275. package/lib/module/ui/components/button/svg/res/backward.svg +0 -1
  276. package/lib/module/ui/components/button/svg/res/chromecast-48px.svg +0 -1
  277. package/lib/module/ui/components/button/svg/res/close.svg +0 -1
  278. package/lib/module/ui/components/button/svg/res/error.svg +0 -1
  279. package/lib/module/ui/components/button/svg/res/forward.svg +0 -1
  280. package/lib/module/ui/components/button/svg/res/fullscreen-enter.svg +0 -1
  281. package/lib/module/ui/components/button/svg/res/fullscreen-exit.svg +0 -1
  282. package/lib/module/ui/components/button/svg/res/language.svg +0 -1
  283. package/lib/module/ui/components/button/svg/res/list.svg +0 -1
  284. package/lib/module/ui/components/button/svg/res/live.svg +0 -1
  285. package/lib/module/ui/components/button/svg/res/pause.svg +0 -1
  286. package/lib/module/ui/components/button/svg/res/pip_enter.svg +0 -1
  287. package/lib/module/ui/components/button/svg/res/pip_exit.svg +0 -1
  288. package/lib/module/ui/components/button/svg/res/play.svg +0 -1
  289. package/lib/module/ui/components/button/svg/res/replay.svg +0 -1
  290. package/lib/module/ui/components/button/svg/res/settings.svg +0 -1
  291. package/lib/module/ui/components/button/svg/res/skip-next.svg +0 -1
  292. package/lib/module/ui/components/button/svg/res/volume-high.svg +0 -1
  293. package/lib/module/ui/components/button/svg/res/volume-low.svg +0 -1
  294. package/lib/module/ui/components/button/svg/res/volume-off.svg +0 -1
  295. package/lib/module/ui/components/controlbar/ControlBar.js +0 -52
  296. package/lib/module/ui/components/controlbar/ControlBar.js.map +0 -1
  297. package/lib/module/ui/components/controlbar/Spacer.js +0 -14
  298. package/lib/module/ui/components/controlbar/Spacer.js.map +0 -1
  299. package/lib/module/ui/components/controlbar/barrel.js +0 -3
  300. package/lib/module/ui/components/controlbar/barrel.js.map +0 -1
  301. package/lib/module/ui/components/menu/LanguageMenuButton.js +0 -165
  302. package/lib/module/ui/components/menu/LanguageMenuButton.js.map +0 -1
  303. package/lib/module/ui/components/menu/PlaybackRateSubMenu.js +0 -80
  304. package/lib/module/ui/components/menu/PlaybackRateSubMenu.js.map +0 -1
  305. package/lib/module/ui/components/menu/QualitySubMenu.js +0 -135
  306. package/lib/module/ui/components/menu/QualitySubMenu.js.map +0 -1
  307. package/lib/module/ui/components/menu/SettingsMenuButton.js +0 -28
  308. package/lib/module/ui/components/menu/SettingsMenuButton.js.map +0 -1
  309. package/lib/module/ui/components/menu/barrel.js +0 -6
  310. package/lib/module/ui/components/menu/barrel.js.map +0 -1
  311. package/lib/module/ui/components/menu/common/MenuButton.js +0 -26
  312. package/lib/module/ui/components/menu/common/MenuButton.js.map +0 -1
  313. package/lib/module/ui/components/menu/common/MenuRadioButton.js +0 -38
  314. package/lib/module/ui/components/menu/common/MenuRadioButton.js.map +0 -1
  315. package/lib/module/ui/components/menu/common/MenuTitle.js +0 -29
  316. package/lib/module/ui/components/menu/common/MenuTitle.js.map +0 -1
  317. package/lib/module/ui/components/menu/common/MenuView.js +0 -65
  318. package/lib/module/ui/components/menu/common/MenuView.js.map +0 -1
  319. package/lib/module/ui/components/menu/common/ScrollableMenu.js +0 -36
  320. package/lib/module/ui/components/menu/common/ScrollableMenu.js.map +0 -1
  321. package/lib/module/ui/components/menu/common/SubMenuWithButton.js +0 -56
  322. package/lib/module/ui/components/menu/common/SubMenuWithButton.js.map +0 -1
  323. package/lib/module/ui/components/menu/common/barrel.js +0 -7
  324. package/lib/module/ui/components/menu/common/barrel.js.map +0 -1
  325. package/lib/module/ui/components/message/CastMessage.js +0 -70
  326. package/lib/module/ui/components/message/CastMessage.js.map +0 -1
  327. package/lib/module/ui/components/message/ErrorDisplay.js +0 -46
  328. package/lib/module/ui/components/message/ErrorDisplay.js.map +0 -1
  329. package/lib/module/ui/components/message/barrel.js +0 -3
  330. package/lib/module/ui/components/message/barrel.js.map +0 -1
  331. package/lib/module/ui/components/seekbar/SeekBar.js +0 -184
  332. package/lib/module/ui/components/seekbar/SeekBar.js.map +0 -1
  333. package/lib/module/ui/components/seekbar/barrel.js +0 -3
  334. package/lib/module/ui/components/seekbar/barrel.js.map +0 -1
  335. package/lib/module/ui/components/seekbar/thumbnail/SingleThumbnailView.js +0 -37
  336. package/lib/module/ui/components/seekbar/thumbnail/SingleThumbnailView.js.map +0 -1
  337. package/lib/module/ui/components/seekbar/thumbnail/Thumbnail.js +0 -11
  338. package/lib/module/ui/components/seekbar/thumbnail/Thumbnail.js.map +0 -1
  339. package/lib/module/ui/components/seekbar/thumbnail/ThumbnailView.js +0 -246
  340. package/lib/module/ui/components/seekbar/thumbnail/ThumbnailView.js.map +0 -1
  341. package/lib/module/ui/components/seekbar/thumbnail/Urlpolyfill.js +0 -2
  342. package/lib/module/ui/components/seekbar/thumbnail/Urlpolyfill.js.map +0 -1
  343. package/lib/module/ui/components/seekbar/thumbnail/Urlpolyfill.web.js +0 -4
  344. package/lib/module/ui/components/seekbar/thumbnail/Urlpolyfill.web.js.map +0 -1
  345. package/lib/module/ui/components/seekbar/thumbnail/barrel.js +0 -3
  346. package/lib/module/ui/components/seekbar/thumbnail/barrel.js.map +0 -1
  347. package/lib/module/ui/components/timelabel/StaticTimeLabel.js +0 -48
  348. package/lib/module/ui/components/timelabel/StaticTimeLabel.js.map +0 -1
  349. package/lib/module/ui/components/timelabel/TimeLabel.js +0 -78
  350. package/lib/module/ui/components/timelabel/TimeLabel.js.map +0 -1
  351. package/lib/module/ui/components/timelabel/barrel.js +0 -3
  352. package/lib/module/ui/components/timelabel/barrel.js.map +0 -1
  353. package/lib/module/ui/components/uicontroller/UiContainer.js +0 -336
  354. package/lib/module/ui/components/uicontroller/UiContainer.js.map +0 -1
  355. package/lib/module/ui/components/uicontroller/UiControls.js +0 -2
  356. package/lib/module/ui/components/uicontroller/UiControls.js.map +0 -1
  357. package/lib/module/ui/components/uicontroller/barrel.js +0 -3
  358. package/lib/module/ui/components/uicontroller/barrel.js.map +0 -1
  359. package/lib/module/ui/components/util/PlayerContext.js +0 -11
  360. package/lib/module/ui/components/util/PlayerContext.js.map +0 -1
  361. package/lib/module/ui/components/util/TrackUtils.js +0 -60
  362. package/lib/module/ui/components/util/TrackUtils.js.map +0 -1
  363. package/lib/module/ui/components/util/barrel.js +0 -2
  364. package/lib/module/ui/components/util/barrel.js.map +0 -1
  365. package/lib/module/ui/utils/ArrayUtils.js +0 -12
  366. package/lib/module/ui/utils/ArrayUtils.js.map +0 -1
  367. package/lib/module/ui/utils/language/Language.js +0 -27
  368. package/lib/module/ui/utils/language/Language.js.map +0 -1
  369. package/lib/module/ui/utils/language/languages.json +0 -1658
  370. package/lib/typescript/ui/THEOplayerDefaultUi.d.ts +0 -35
  371. package/lib/typescript/ui/THEOplayerTheme.d.ts +0 -84
  372. package/lib/typescript/ui/barrel.d.ts +0 -3
  373. package/lib/typescript/ui/components/activityindicator/CenteredDelayedActivityIndicator.d.ts +0 -25
  374. package/lib/typescript/ui/components/activityindicator/DelayedActivityIndicator.d.ts +0 -9
  375. package/lib/typescript/ui/components/activityindicator/barrel.d.ts +0 -2
  376. package/lib/typescript/ui/components/barrel.d.ts +0 -9
  377. package/lib/typescript/ui/components/button/AirplayButton.d.ts +0 -18
  378. package/lib/typescript/ui/components/button/ChromecastButton.d.ts +0 -19
  379. package/lib/typescript/ui/components/button/ChromecastButton.web.d.ts +0 -19
  380. package/lib/typescript/ui/components/button/FullscreenButton.d.ts +0 -17
  381. package/lib/typescript/ui/components/button/MuteButton.d.ts +0 -16
  382. package/lib/typescript/ui/components/button/PipButton.d.ts +0 -17
  383. package/lib/typescript/ui/components/button/PlayButton.d.ts +0 -28
  384. package/lib/typescript/ui/components/button/SkipButton.d.ts +0 -33
  385. package/lib/typescript/ui/components/button/actionbutton/ActionButton.d.ts +0 -41
  386. package/lib/typescript/ui/components/button/barrel.d.ts +0 -9
  387. package/lib/typescript/ui/components/button/svg/AirplaySvg.d.ts +0 -3
  388. package/lib/typescript/ui/components/button/svg/ArrowForwardSvg.d.ts +0 -3
  389. package/lib/typescript/ui/components/button/svg/BackSvg.d.ts +0 -3
  390. package/lib/typescript/ui/components/button/svg/BackwardSvg.d.ts +0 -3
  391. package/lib/typescript/ui/components/button/svg/ChromecastSvg.d.ts +0 -3
  392. package/lib/typescript/ui/components/button/svg/ErrorSvg.d.ts +0 -3
  393. package/lib/typescript/ui/components/button/svg/ForwardSvg.d.ts +0 -3
  394. package/lib/typescript/ui/components/button/svg/FullscreenEnterSvg.d.ts +0 -3
  395. package/lib/typescript/ui/components/button/svg/FullscreenExitSvg.d.ts +0 -3
  396. package/lib/typescript/ui/components/button/svg/LanguageSvg.d.ts +0 -3
  397. package/lib/typescript/ui/components/button/svg/ListSvg.d.ts +0 -3
  398. package/lib/typescript/ui/components/button/svg/PauseSvg.d.ts +0 -3
  399. package/lib/typescript/ui/components/button/svg/PipEnterSvg.d.ts +0 -3
  400. package/lib/typescript/ui/components/button/svg/PipExitSvg.d.ts +0 -3
  401. package/lib/typescript/ui/components/button/svg/PlaySvg.d.ts +0 -3
  402. package/lib/typescript/ui/components/button/svg/ReplaySvg.d.ts +0 -3
  403. package/lib/typescript/ui/components/button/svg/SettingsSvg.d.ts +0 -3
  404. package/lib/typescript/ui/components/button/svg/SvgUtils.d.ts +0 -3
  405. package/lib/typescript/ui/components/button/svg/VolumeOffSvg.d.ts +0 -3
  406. package/lib/typescript/ui/components/button/svg/VolumeUpSvg.d.ts +0 -3
  407. package/lib/typescript/ui/components/button/svg/barrel.d.ts +0 -20
  408. package/lib/typescript/ui/components/controlbar/ControlBar.d.ts +0 -39
  409. package/lib/typescript/ui/components/controlbar/Spacer.d.ts +0 -5
  410. package/lib/typescript/ui/components/controlbar/barrel.d.ts +0 -2
  411. package/lib/typescript/ui/components/menu/LanguageMenuButton.d.ts +0 -40
  412. package/lib/typescript/ui/components/menu/PlaybackRateSubMenu.d.ts +0 -36
  413. package/lib/typescript/ui/components/menu/QualitySubMenu.d.ts +0 -29
  414. package/lib/typescript/ui/components/menu/SettingsMenuButton.d.ts +0 -12
  415. package/lib/typescript/ui/components/menu/barrel.d.ts +0 -5
  416. package/lib/typescript/ui/components/menu/common/MenuButton.d.ts +0 -25
  417. package/lib/typescript/ui/components/menu/common/MenuRadioButton.d.ts +0 -33
  418. package/lib/typescript/ui/components/menu/common/MenuTitle.d.ts +0 -20
  419. package/lib/typescript/ui/components/menu/common/MenuView.d.ts +0 -21
  420. package/lib/typescript/ui/components/menu/common/ScrollableMenu.d.ts +0 -23
  421. package/lib/typescript/ui/components/menu/common/SubMenuWithButton.d.ts +0 -29
  422. package/lib/typescript/ui/components/menu/common/barrel.d.ts +0 -6
  423. package/lib/typescript/ui/components/message/CastMessage.d.ts +0 -16
  424. package/lib/typescript/ui/components/message/ErrorDisplay.d.ts +0 -12
  425. package/lib/typescript/ui/components/message/barrel.d.ts +0 -2
  426. package/lib/typescript/ui/components/seekbar/SeekBar.d.ts +0 -41
  427. package/lib/typescript/ui/components/seekbar/barrel.d.ts +0 -2
  428. package/lib/typescript/ui/components/seekbar/thumbnail/SingleThumbnailView.d.ts +0 -8
  429. package/lib/typescript/ui/components/seekbar/thumbnail/Thumbnail.d.ts +0 -56
  430. package/lib/typescript/ui/components/seekbar/thumbnail/ThumbnailView.d.ts +0 -60
  431. package/lib/typescript/ui/components/seekbar/thumbnail/Urlpolyfill.d.ts +0 -1
  432. package/lib/typescript/ui/components/seekbar/thumbnail/Urlpolyfill.web.d.ts +0 -8
  433. package/lib/typescript/ui/components/seekbar/thumbnail/barrel.d.ts +0 -2
  434. package/lib/typescript/ui/components/timelabel/StaticTimeLabel.d.ts +0 -24
  435. package/lib/typescript/ui/components/timelabel/TimeLabel.d.ts +0 -32
  436. package/lib/typescript/ui/components/timelabel/barrel.d.ts +0 -2
  437. package/lib/typescript/ui/components/uicontroller/UiContainer.d.ts +0 -115
  438. package/lib/typescript/ui/components/uicontroller/UiControls.d.ts +0 -14
  439. package/lib/typescript/ui/components/uicontroller/barrel.d.ts +0 -2
  440. package/lib/typescript/ui/components/util/PlayerContext.d.ts +0 -22
  441. package/lib/typescript/ui/components/util/TrackUtils.d.ts +0 -10
  442. package/lib/typescript/ui/components/util/barrel.d.ts +0 -1
  443. package/lib/typescript/ui/utils/ArrayUtils.d.ts +0 -2
  444. package/lib/typescript/ui/utils/language/Language.d.ts +0 -19
  445. package/src/ui/THEOplayerDefaultUi.tsx +0 -108
  446. package/src/ui/THEOplayerTheme.ts +0 -112
  447. package/src/ui/barrel.ts +0 -3
  448. package/src/ui/components/activityindicator/CenteredDelayedActivityIndicator.tsx +0 -96
  449. package/src/ui/components/activityindicator/DelayedActivityIndicator.tsx +0 -32
  450. package/src/ui/components/activityindicator/barrel.ts +0 -2
  451. package/src/ui/components/barrel.ts +0 -9
  452. package/src/ui/components/button/AirplayButton.tsx +0 -64
  453. package/src/ui/components/button/ChromecastButton.tsx +0 -60
  454. package/src/ui/components/button/ChromecastButton.web.tsx +0 -66
  455. package/src/ui/components/button/FullscreenButton.tsx +0 -60
  456. package/src/ui/components/button/MuteButton.tsx +0 -52
  457. package/src/ui/components/button/PipButton.tsx +0 -61
  458. package/src/ui/components/button/PlayButton.tsx +0 -107
  459. package/src/ui/components/button/SkipButton.tsx +0 -112
  460. package/src/ui/components/button/actionbutton/ActionButton.tsx +0 -105
  461. package/src/ui/components/button/barrel.ts +0 -9
  462. package/src/ui/components/button/svg/AirplaySvg.tsx +0 -18
  463. package/src/ui/components/button/svg/ArrowForwardSvg.tsx +0 -18
  464. package/src/ui/components/button/svg/BackSvg.tsx +0 -18
  465. package/src/ui/components/button/svg/BackwardSvg.tsx +0 -18
  466. package/src/ui/components/button/svg/ChromecastSvg.tsx +0 -18
  467. package/src/ui/components/button/svg/ErrorSvg.tsx +0 -18
  468. package/src/ui/components/button/svg/ForwardSvg.tsx +0 -18
  469. package/src/ui/components/button/svg/FullscreenEnterSvg.tsx +0 -18
  470. package/src/ui/components/button/svg/FullscreenExitSvg.tsx +0 -18
  471. package/src/ui/components/button/svg/LanguageSvg.tsx +0 -18
  472. package/src/ui/components/button/svg/ListSvg.tsx +0 -18
  473. package/src/ui/components/button/svg/PauseSvg.tsx +0 -18
  474. package/src/ui/components/button/svg/PipEnterSvg.tsx +0 -18
  475. package/src/ui/components/button/svg/PipExitSvg.tsx +0 -18
  476. package/src/ui/components/button/svg/PlaySvg.tsx +0 -18
  477. package/src/ui/components/button/svg/ReplaySvg.tsx +0 -18
  478. package/src/ui/components/button/svg/SettingsSvg.tsx +0 -18
  479. package/src/ui/components/button/svg/SvgUtils.ts +0 -4
  480. package/src/ui/components/button/svg/VolumeOffSvg.tsx +0 -18
  481. package/src/ui/components/button/svg/VolumeUpSvg.tsx +0 -18
  482. package/src/ui/components/button/svg/barrel.ts +0 -20
  483. package/src/ui/components/button/svg/res/AirPlayButton.html +0 -6
  484. package/src/ui/components/button/svg/res/Airplay.svg +0 -1
  485. package/src/ui/components/button/svg/res/ChromecastButton.html +0 -25
  486. package/src/ui/components/button/svg/res/arrow_forward.svg +0 -1
  487. package/src/ui/components/button/svg/res/back.svg +0 -1
  488. package/src/ui/components/button/svg/res/backward.svg +0 -1
  489. package/src/ui/components/button/svg/res/chromecast-48px.svg +0 -1
  490. package/src/ui/components/button/svg/res/close.svg +0 -1
  491. package/src/ui/components/button/svg/res/error.svg +0 -1
  492. package/src/ui/components/button/svg/res/forward.svg +0 -1
  493. package/src/ui/components/button/svg/res/fullscreen-enter.svg +0 -1
  494. package/src/ui/components/button/svg/res/fullscreen-exit.svg +0 -1
  495. package/src/ui/components/button/svg/res/language.svg +0 -1
  496. package/src/ui/components/button/svg/res/list.svg +0 -1
  497. package/src/ui/components/button/svg/res/live.svg +0 -1
  498. package/src/ui/components/button/svg/res/pause.svg +0 -1
  499. package/src/ui/components/button/svg/res/pip_enter.svg +0 -1
  500. package/src/ui/components/button/svg/res/pip_exit.svg +0 -1
  501. package/src/ui/components/button/svg/res/play.svg +0 -1
  502. package/src/ui/components/button/svg/res/replay.svg +0 -1
  503. package/src/ui/components/button/svg/res/settings.svg +0 -1
  504. package/src/ui/components/button/svg/res/skip-next.svg +0 -1
  505. package/src/ui/components/button/svg/res/volume-high.svg +0 -1
  506. package/src/ui/components/button/svg/res/volume-low.svg +0 -1
  507. package/src/ui/components/button/svg/res/volume-off.svg +0 -1
  508. package/src/ui/components/controlbar/ControlBar.tsx +0 -69
  509. package/src/ui/components/controlbar/Spacer.tsx +0 -9
  510. package/src/ui/components/controlbar/barrel.ts +0 -2
  511. package/src/ui/components/menu/LanguageMenuButton.tsx +0 -192
  512. package/src/ui/components/menu/PlaybackRateSubMenu.tsx +0 -93
  513. package/src/ui/components/menu/QualitySubMenu.tsx +0 -148
  514. package/src/ui/components/menu/SettingsMenuButton.tsx +0 -25
  515. package/src/ui/components/menu/barrel.ts +0 -5
  516. package/src/ui/components/menu/common/MenuButton.tsx +0 -49
  517. package/src/ui/components/menu/common/MenuRadioButton.tsx +0 -65
  518. package/src/ui/components/menu/common/MenuTitle.tsx +0 -37
  519. package/src/ui/components/menu/common/MenuView.tsx +0 -62
  520. package/src/ui/components/menu/common/ScrollableMenu.tsx +0 -43
  521. package/src/ui/components/menu/common/SubMenuWithButton.tsx +0 -58
  522. package/src/ui/components/menu/common/barrel.ts +0 -6
  523. package/src/ui/components/message/CastMessage.tsx +0 -74
  524. package/src/ui/components/message/ErrorDisplay.tsx +0 -43
  525. package/src/ui/components/message/barrel.ts +0 -2
  526. package/src/ui/components/seekbar/SeekBar.tsx +0 -178
  527. package/src/ui/components/seekbar/barrel.ts +0 -2
  528. package/src/ui/components/seekbar/thumbnail/SingleThumbnailView.tsx +0 -38
  529. package/src/ui/components/seekbar/thumbnail/Thumbnail.ts +0 -72
  530. package/src/ui/components/seekbar/thumbnail/ThumbnailView.tsx +0 -266
  531. package/src/ui/components/seekbar/thumbnail/Urlpolyfill.ts +0 -1
  532. package/src/ui/components/seekbar/thumbnail/Urlpolyfill.web.ts +0 -3
  533. package/src/ui/components/seekbar/thumbnail/barrel.ts +0 -2
  534. package/src/ui/components/timelabel/StaticTimeLabel.tsx +0 -63
  535. package/src/ui/components/timelabel/TimeLabel.tsx +0 -79
  536. package/src/ui/components/timelabel/barrel.ts +0 -2
  537. package/src/ui/components/uicontroller/UiContainer.tsx +0 -355
  538. package/src/ui/components/uicontroller/UiControls.ts +0 -31
  539. package/src/ui/components/uicontroller/barrel.ts +0 -2
  540. package/src/ui/components/util/PlayerContext.ts +0 -29
  541. package/src/ui/components/util/TrackUtils.ts +0 -62
  542. package/src/ui/components/util/barrel.ts +0 -1
  543. package/src/ui/utils/ArrayUtils.ts +0 -12
  544. package/src/ui/utils/language/Language.ts +0 -38
  545. package/src/ui/utils/language/languages.json +0 -1658
@@ -1,43 +0,0 @@
1
- import React from 'react';
2
- import { Text, View } from 'react-native';
3
- import type { PlayerError } from 'react-native-theoplayer';
4
- import { PlayerContext, UiContext } from '../util/PlayerContext';
5
- import { SvgContext } from '../button/svg/SvgUtils';
6
- import { ErrorSvg } from '../button/svg/ErrorSvg';
7
- import { FULLSCREEN_CENTER_STYLE } from '../uicontroller/UiContainer';
8
-
9
- export interface ErrorDisplayProps {
10
- /**
11
- * The error that will be displayed.
12
- */
13
- error: PlayerError;
14
- }
15
-
16
- /**
17
- * A fullscreen error component for the `react-native-theoplayer` UI.
18
- */
19
- export function ErrorDisplay(props: ErrorDisplayProps) {
20
- const { error } = props;
21
- return (
22
- <PlayerContext.Consumer>
23
- {(context: UiContext) => (
24
- <View style={[FULLSCREEN_CENTER_STYLE, { backgroundColor: context.style.colors.errorBackground }]}>
25
- <View style={{ flexDirection: 'row' }}>
26
- <SvgContext.Provider
27
- value={{
28
- fill: context.style.colors.icon,
29
- height: '100%',
30
- width: '100%',
31
- }}>
32
- <View style={{ height: context.style.dimensions.controlBarHeight, aspectRatio: 1, padding: 5 }}>
33
- <ErrorSvg />
34
- </View>
35
- </SvgContext.Provider>
36
- <Text style={[context.style.text, { color: context.style.colors.text, alignSelf: 'center', paddingLeft: 5 }]}>Error:</Text>
37
- </View>
38
- <Text style={[context.style.text, { color: context.style.colors.text }]}>{error.errorMessage}</Text>
39
- </View>
40
- )}
41
- </PlayerContext.Consumer>
42
- );
43
- }
@@ -1,2 +0,0 @@
1
- export * from './CastMessage';
2
- export * from './ErrorDisplay';
@@ -1,178 +0,0 @@
1
- import React, { PureComponent } from 'react';
2
- import { LayoutChangeEvent, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';
3
- import { DurationChangeEvent, LoadedMetadataEvent, PlayerEventType, ProgressEvent, TimeRange, TimeUpdateEvent } from 'react-native-theoplayer';
4
- import { PlayerContext, UiContext } from '../util/PlayerContext';
5
- import Slider from '@react-native-community/slider';
6
- import { SingleThumbnailView } from './thumbnail/SingleThumbnailView';
7
-
8
- export interface SeekBarProps {
9
- /**
10
- * Optional style applied to the SeekBar.
11
- */
12
- style?: StyleProp<ViewStyle>;
13
- }
14
-
15
- interface SeekBarState {
16
- ignoreTimeupdate: boolean;
17
- isSeeking: boolean;
18
- pausedDueToScrubbing: boolean;
19
- seekable: TimeRange[];
20
- duration: number;
21
- sliderTime: number;
22
- width: number;
23
- }
24
-
25
- /**
26
- * The default seek bar component for the `react-native-theoplayer` UI.
27
- */
28
- export class SeekBar extends PureComponent<SeekBarProps, SeekBarState> {
29
- private static initialState: SeekBarState = {
30
- ignoreTimeupdate: false,
31
- isSeeking: false,
32
- sliderTime: 0,
33
- duration: 0,
34
- seekable: [],
35
- pausedDueToScrubbing: false,
36
- width: 0,
37
- };
38
-
39
- private _seekBlockingTimeout: NodeJS.Timeout | undefined;
40
- private _clearIsScrubbingTimout: NodeJS.Timeout | undefined;
41
-
42
- constructor(props: SeekBarProps) {
43
- super(props);
44
- this.state = SeekBar.initialState;
45
- }
46
-
47
- componentDidMount() {
48
- const player = (this.context as UiContext).player;
49
- player.addEventListener(PlayerEventType.LOADED_METADATA, this._onLoadedMetadata);
50
- player.addEventListener(PlayerEventType.DURATION_CHANGE, this._onDurationChange);
51
- player.addEventListener(PlayerEventType.TIME_UPDATE, this._onTimeUpdate);
52
- player.addEventListener(PlayerEventType.PROGRESS, this._onProgress);
53
- this.setState({
54
- ...SeekBar.initialState,
55
- sliderTime: player.currentTime,
56
- duration: player.duration,
57
- seekable: player.seekable,
58
- });
59
- }
60
-
61
- componentWillUnmount() {
62
- const context = this.context as UiContext;
63
- context.player.removeEventListener(PlayerEventType.LOADED_METADATA, this._onLoadedMetadata);
64
- context.player.removeEventListener(PlayerEventType.DURATION_CHANGE, this._onDurationChange);
65
- context.player.removeEventListener(PlayerEventType.TIME_UPDATE, this._onTimeUpdate);
66
- context.player.removeEventListener(PlayerEventType.PROGRESS, this._onProgress);
67
- clearTimeout(this._seekBlockingTimeout);
68
- clearTimeout(this._clearIsScrubbingTimout);
69
- }
70
-
71
- private _onTimeUpdate = (event: TimeUpdateEvent) => {
72
- if (!this.state.ignoreTimeupdate) {
73
- this.setState({ sliderTime: event.currentTime });
74
- }
75
- };
76
- private _onLoadedMetadata = (event: LoadedMetadataEvent) => this.setState({ duration: event.duration });
77
- private _onDurationChange = (event: DurationChangeEvent) => this.setState({ duration: event.duration });
78
- private _onProgress = (event: ProgressEvent) => this.setState({ seekable: event.seekable });
79
-
80
- private _onSlidingStart = (value: number) => {
81
- this.setState({ sliderTime: value });
82
- this._prepareSeekStart();
83
- const player = (this.context as UiContext).player;
84
- if (!player.paused) {
85
- this.debounceSeek(value);
86
- player.pause();
87
- this.setState({ pausedDueToScrubbing: true });
88
- }
89
- };
90
-
91
- private _onValueChange = (value: number) => {
92
- this.setState({ sliderTime: value });
93
- if (this.state.ignoreTimeupdate) {
94
- this.debounceSeek(value);
95
- }
96
- };
97
-
98
- private _onSlidingComplete = (value: number) => {
99
- this.setState({ sliderTime: value });
100
- this.debounceSeek(value, true);
101
- const player = (this.context as UiContext).player;
102
- const isEnded = player.currentTime === player.duration;
103
- if (this.state.pausedDueToScrubbing && !isEnded) {
104
- player.play();
105
- this.setState({ pausedDueToScrubbing: false });
106
- }
107
- this._finishSeek();
108
- };
109
-
110
- private readonly _prepareSeekStart = () => {
111
- this.setState({ isSeeking: true, ignoreTimeupdate: true });
112
- clearTimeout(this._clearIsScrubbingTimout);
113
- };
114
-
115
- private readonly _finishSeek = () => {
116
- this.setState({ isSeeking: false });
117
- // Wait for timeupdate events to settle after seeking, so the Slider does not jump back and forth.
118
- this._clearIsScrubbingTimout = setTimeout(() => {
119
- this.setState({ ignoreTimeupdate: false });
120
- }, 1000);
121
- };
122
-
123
- private debounceSeek = (value: number, force = false) => {
124
- // Don't bombard the player with seeks when seeking. Allow only one seek ever X milliseconds:
125
- const MAX_SEEK_INTERVAL = 200;
126
- if (force || this._seekBlockingTimeout === undefined) {
127
- if (force) {
128
- clearTimeout(this._seekBlockingTimeout);
129
- this._seekBlockingTimeout = undefined;
130
- }
131
- this._seekBlockingTimeout = setTimeout(() => {
132
- this._seekBlockingTimeout = undefined;
133
- }, MAX_SEEK_INTERVAL);
134
- // Do seek
135
- const player = (this.context as UiContext).player;
136
- player.currentTime = value;
137
- }
138
- };
139
-
140
- render() {
141
- const { seekable, sliderTime, duration, isSeeking, width } = this.state;
142
- const { style } = this.props;
143
- const seekableStart = seekable.length > 0 ? seekable[0].start : 0;
144
- const seekableEnd = seekable.length > 0 ? seekable[0].end : 0;
145
- return (
146
- <PlayerContext.Consumer>
147
- {(context: UiContext) => (
148
- <View
149
- style={[StyleSheet.absoluteFill, style]}
150
- onLayout={(event: LayoutChangeEvent) => {
151
- this.setState({ width: event.nativeEvent.layout.width });
152
- }}>
153
- {isSeeking && (
154
- <SingleThumbnailView seekableStart={seekableStart} seekableEnd={seekableEnd} currentTime={sliderTime} seekBarWidth={width} />
155
- )}
156
- <Slider
157
- disabled={!(duration > 0) && seekable.length > 0}
158
- style={[StyleSheet.absoluteFill, style]}
159
- minimumValue={seekableStart}
160
- maximumValue={seekableEnd}
161
- step={1000}
162
- onSlidingStart={this._onSlidingStart}
163
- onValueChange={this._onValueChange}
164
- onSlidingComplete={this._onSlidingComplete}
165
- value={sliderTime}
166
- focusable={true}
167
- minimumTrackTintColor={context.style.colors.seekBarMinimum}
168
- maximumTrackTintColor={context.style.colors.seekBarMaximum}
169
- thumbTintColor={context.style.colors.seekBarDot}
170
- />
171
- </View>
172
- )}
173
- </PlayerContext.Consumer>
174
- );
175
- }
176
- }
177
-
178
- SeekBar.contextType = PlayerContext;
@@ -1,2 +0,0 @@
1
- export * from './SeekBar';
2
- export * from './thumbnail/barrel';
@@ -1,38 +0,0 @@
1
- import { Dimensions, View } from 'react-native';
2
- import { filterThumbnailTracks } from 'react-native-theoplayer';
3
- import { PlayerContext } from '../../util/PlayerContext';
4
- import { ThumbnailView } from './ThumbnailView';
5
- import React, { useContext } from 'react';
6
-
7
- export interface ThumbnailViewProps {
8
- seekableStart: number;
9
- seekableEnd: number;
10
- currentTime: number;
11
- seekBarWidth: number;
12
- }
13
-
14
- export function SingleThumbnailView(props: ThumbnailViewProps) {
15
- const player = useContext(PlayerContext).player;
16
- const thumbnailTrack = filterThumbnailTracks(player.textTracks);
17
- if (!thumbnailTrack) {
18
- return <></>;
19
- }
20
- const window = Dimensions.get('window');
21
- const thumbnailSize = 0.35 * Math.min(window.height, window.width);
22
-
23
- const { seekableStart, seekableEnd, currentTime, seekBarWidth } = props;
24
- const percentageOffset = (currentTime - seekableStart) / (seekableEnd - seekableStart);
25
- const marginHorizontal = 10;
26
-
27
- return (
28
- <View
29
- style={{
30
- position: 'absolute',
31
- top: -(thumbnailSize * 0.6),
32
- left: Math.max(0, Math.min(seekBarWidth - thumbnailSize - marginHorizontal, percentageOffset * seekBarWidth - 0.5 * thumbnailSize)),
33
- marginHorizontal,
34
- }}>
35
- <ThumbnailView thumbnailTrack={thumbnailTrack} duration={player.duration} time={currentTime} size={thumbnailSize} showTimeLabel={false} />
36
- </View>
37
- );
38
- }
@@ -1,72 +0,0 @@
1
- export function isTileMapThumbnail(thumbnail: Thumbnail): thumbnail is TileMapThumbnail {
2
- return thumbnail.tileX !== undefined && thumbnail.tileY !== undefined && thumbnail.tileWidth !== undefined && thumbnail.tileHeight !== undefined;
3
- }
4
-
5
- export function isImageThumbnail(thumbnail: Thumbnail): thumbnail is ImageThumbnail {
6
- return !isTileMapThumbnail(thumbnail);
7
- }
8
-
9
- /**
10
- * Description of a thumbnail, which can be either a full image or part of a tile map.
11
- */
12
- export interface Thumbnail {
13
- /**
14
- * The url of the thumbnail image.
15
- */
16
- url: string;
17
-
18
- /**
19
- * Horizontal offset within the tile map in case the thumbnail is part of tile map.
20
- */
21
- tileX?: number;
22
-
23
- /**
24
- * Vertical offset within the tile map in case the thumbnail is part of tile map.
25
- */
26
- tileY?: number;
27
-
28
- /**
29
- * Width of a tile in case the thumbnail is part of tile map.
30
- */
31
- tileWidth?: number;
32
-
33
- /**
34
- * Height of a tile in case the thumbnail is part of tile map.
35
- */
36
- tileHeight?: number;
37
- }
38
-
39
- /**
40
- * Description of a tile-map thumbnail.
41
- */
42
- export interface TileMapThumbnail extends Thumbnail {
43
- /**
44
- * The url of the thumbnail image.
45
- */
46
- url: string;
47
-
48
- /**
49
- * Horizontal offset within the tile map in case the thumbnail is part of tile map.
50
- */
51
- tileX: number;
52
-
53
- /**
54
- * Vertical offset within the tile map in case the thumbnail is part of tile map.
55
- */
56
- tileY: number;
57
-
58
- /**
59
- * Width of a tile in case the thumbnail is part of tile map.
60
- */
61
- tileWidth: number;
62
-
63
- /**
64
- * Height of a tile in case the thumbnail is part of tile map.
65
- */
66
- tileHeight: number;
67
- }
68
-
69
- /**
70
- * Description of a tile-map thumbnail.
71
- */
72
- export type ImageThumbnail = Thumbnail;
@@ -1,266 +0,0 @@
1
- import React, { PureComponent } from 'react';
2
- import { Image, StyleProp, View, ViewStyle } from 'react-native';
3
- import type { TextTrackCue } from 'react-native-theoplayer';
4
- import { isThumbnailTrack, StaticTimeLabel, TextTrack } from 'react-native-theoplayer';
5
- import type { Thumbnail } from './Thumbnail';
6
- import { isTileMapThumbnail } from './Thumbnail';
7
- import { URL as URLPolyfill } from './Urlpolyfill';
8
-
9
- const SPRITE_REGEX = /^([^#]*)#xywh=(\d+),(\d+),(\d+),(\d+)\s*$/;
10
- const TAG = 'ThumbnailView';
11
-
12
- interface ThumbnailViewState {
13
- imageWidth: number;
14
- imageHeight: number;
15
- renderWidth: number;
16
- renderHeight: number;
17
- }
18
-
19
- export interface ThumbnailViewProps {
20
- /**
21
- * Thumbnail track. A valid thumbnail track should have properties:
22
- * <br/> - `'kind'` equals `'metadata'`.
23
- * <br/> - `'label'` equals `'thumbnails'`.
24
- */
25
- thumbnailTrack: TextTrack;
26
-
27
- /**
28
- * Current time.
29
- */
30
- time: number;
31
-
32
- /**
33
- * Stream duration
34
- */
35
- duration: number;
36
-
37
- /**
38
- * Whether to show a time label.
39
- */
40
- showTimeLabel: boolean;
41
-
42
- /**
43
- * Used to set the width of the rendered thumbnail. The height will be calculated according to the image's aspect ratio.
44
- */
45
- size: number;
46
-
47
- /**
48
- * Optional style applied to the time label.
49
- */
50
- timeLabelStyle?: StyleProp<ViewStyle>;
51
- }
52
-
53
- export const DEFAULT_THUMBNAIL_VIEW_STYLE: ThumbnailStyle = {
54
- containerThumbnail: {
55
- alignItems: 'center',
56
- flexDirection: 'row',
57
- },
58
- thumbnail: {
59
- overflow: 'hidden',
60
- backgroundColor: 'transparent',
61
- },
62
- };
63
-
64
- export interface ThumbnailStyle {
65
- containerThumbnail: ViewStyle;
66
- thumbnail: ViewStyle;
67
- }
68
-
69
- export class ThumbnailView extends PureComponent<ThumbnailViewProps, ThumbnailViewState> {
70
- static defaultProps = {
71
- showTimeLabel: true,
72
- };
73
- private _ismounted = false;
74
-
75
- constructor(props: ThumbnailViewProps) {
76
- super(props);
77
- const { size } = props;
78
- this.state = { imageWidth: size, imageHeight: size, renderWidth: size, renderHeight: 1 };
79
- }
80
-
81
- componentDidMount() {
82
- this._ismounted = true;
83
- }
84
-
85
- componentWillUnmount() {
86
- this._ismounted = false;
87
- }
88
-
89
- private getCueIndexAtTime(time: number): number | undefined {
90
- const { thumbnailTrack } = this.props;
91
-
92
- // Ignore if it's an invalid track or not a thumbnail track.
93
- if (!isThumbnailTrack(thumbnailTrack)) {
94
- console.warn(TAG, 'Invalid thumbnail track');
95
- return undefined;
96
- }
97
-
98
- // Ignore if the track does not have cues
99
- if (thumbnailTrack.cues == null || thumbnailTrack.cues.length == 0) {
100
- return undefined;
101
- }
102
-
103
- const cues = thumbnailTrack.cues;
104
- let cueIndex = 0;
105
- for (const [index, cue] of cues.entries()) {
106
- if (cue.startTime <= time) {
107
- cueIndex = index;
108
- } else if (time >= cue.endTime) {
109
- return cueIndex;
110
- }
111
- }
112
- return cueIndex;
113
- }
114
-
115
- private resolveThumbnailUrl(thumbnail: string): string {
116
- const { thumbnailTrack } = this.props;
117
- // NOTE: TextTrack.src is supported in Android SDK as of 3.5+
118
- if (thumbnailTrack && thumbnailTrack.src) {
119
- return new URLPolyfill(thumbnail, thumbnailTrack.src).href;
120
- } else {
121
- return thumbnail;
122
- }
123
- }
124
-
125
- private getThumbnailImageForCue(cue: TextTrackCue): Thumbnail | null {
126
- const thumbnailContent = cue && cue.content;
127
- if (!thumbnailContent) {
128
- // Cue does not contain any thumbnail info.
129
- return null;
130
- }
131
- const spriteMatch = thumbnailContent.match(SPRITE_REGEX);
132
- if (spriteMatch) {
133
- // The thumbnail is part of a tile.
134
- const [, url, x, y, w, h] = spriteMatch;
135
- return {
136
- tileX: +x,
137
- tileY: +y,
138
- tileWidth: +w,
139
- tileHeight: +h,
140
- url: this.resolveThumbnailUrl(url),
141
- };
142
- } else {
143
- // The thumbnail is a separate image.
144
- return {
145
- url: this.resolveThumbnailUrl(thumbnailContent),
146
- };
147
- }
148
- }
149
-
150
- private onTileImageLoad = (thumbnail: Thumbnail) => () => {
151
- if (!this._ismounted) {
152
- return;
153
- }
154
- const { size } = this.props;
155
- const { tileWidth, tileHeight } = thumbnail;
156
- if (tileWidth && tileHeight) {
157
- Image.getSize(thumbnail.url, (width: number, height: number) => {
158
- this.setState({
159
- imageWidth: width,
160
- imageHeight: height,
161
- renderWidth: size,
162
- renderHeight: (tileHeight * size) / tileWidth,
163
- });
164
- });
165
- }
166
- };
167
-
168
- private onImageLoadError = (event: any) => {
169
- console.error(TAG, 'Failed to load thumbnail url:', event.nativeEvent.error);
170
- };
171
-
172
- private onImageLoad = (thumbnail: Thumbnail) => () => {
173
- if (!this._ismounted) {
174
- return;
175
- }
176
- const { size } = this.props;
177
- Image.getSize(thumbnail.url, (width: number, height: number) => {
178
- this.setState({
179
- imageWidth: width,
180
- imageHeight: height,
181
- renderWidth: size,
182
- renderHeight: (height * size) / width,
183
- });
184
- });
185
- };
186
-
187
- private renderThumbnail = (thumbnail: Thumbnail, index: number) => {
188
- const { imageWidth, imageHeight, renderWidth, renderHeight } = this.state;
189
- const { size } = this.props;
190
- const scale = 1.0;
191
-
192
- if (isTileMapThumbnail(thumbnail)) {
193
- const ratio = thumbnail.tileWidth == 0 ? 0 : (scale * size) / thumbnail.tileWidth;
194
- return (
195
- <View key={index} style={[DEFAULT_THUMBNAIL_VIEW_STYLE.thumbnail, { width: scale * renderWidth, height: scale * renderHeight }]}>
196
- <Image
197
- resizeMode={'cover'}
198
- style={{
199
- position: 'absolute',
200
- top: -ratio * thumbnail.tileY,
201
- left: -ratio * thumbnail.tileX,
202
- width: ratio * imageWidth,
203
- height: ratio * imageHeight,
204
- }}
205
- source={{ uri: thumbnail.url }}
206
- onError={this.onImageLoadError}
207
- onLoad={this.onTileImageLoad(thumbnail)}
208
- />
209
- </View>
210
- );
211
- } else {
212
- return (
213
- <View key={index} style={[DEFAULT_THUMBNAIL_VIEW_STYLE.thumbnail, { width: scale * renderWidth, height: scale * renderHeight }]}>
214
- <Image
215
- resizeMode={'contain'}
216
- style={{ width: scale * size, height: scale * renderHeight }}
217
- source={{ uri: thumbnail.url }}
218
- onError={this.onImageLoadError}
219
- onLoad={this.onImageLoad(thumbnail)}
220
- />
221
- </View>
222
- );
223
- }
224
- };
225
-
226
- render() {
227
- const { time, duration, thumbnailTrack, showTimeLabel, timeLabelStyle } = this.props;
228
- if (!thumbnailTrack || !thumbnailTrack.cues || thumbnailTrack.cues.length === 0) {
229
- // No thumbnails to render.
230
- return <></>;
231
- }
232
-
233
- const nowCueIndex = this.getCueIndexAtTime(time);
234
- if (nowCueIndex === undefined) {
235
- // No thumbnail for current time
236
- return <></>;
237
- }
238
-
239
- const current = this.getThumbnailImageForCue(thumbnailTrack.cues[nowCueIndex]);
240
- if (current === null) {
241
- // No thumbnail for current time
242
- return <></>;
243
- }
244
- const { renderHeight } = this.state;
245
- return (
246
- <View style={{ flexDirection: 'column' }}>
247
- {showTimeLabel && (
248
- <StaticTimeLabel
249
- style={[
250
- {
251
- marginLeft: 20,
252
- height: 20,
253
- alignSelf: 'center',
254
- },
255
- timeLabelStyle,
256
- ]}
257
- time={time}
258
- duration={duration}
259
- showDuration={false}
260
- />
261
- )}
262
- <View style={[DEFAULT_THUMBNAIL_VIEW_STYLE.containerThumbnail, { height: renderHeight }]}>{this.renderThumbnail(current, 0)}</View>
263
- </View>
264
- );
265
- }
266
- }
@@ -1 +0,0 @@
1
- export * from 'react-native-url-polyfill';
@@ -1,3 +0,0 @@
1
- import 'url-polyfill';
2
- const URL = global.URL;
3
- export { URL };
@@ -1,2 +0,0 @@
1
- export * from './SingleThumbnailView';
2
- export * from './Thumbnail';
@@ -1,63 +0,0 @@
1
- import { StyleProp, Text, TextStyle } from 'react-native';
2
- import React from 'react';
3
- import { PlayerContext, UiContext } from '../util/PlayerContext';
4
-
5
- export interface StaticTimeLabelProps {
6
- /**
7
- * Whether to show the duration of the current source.
8
- */
9
- showDuration: boolean;
10
- /**
11
- * The style overrides.
12
- */
13
- style?: StyleProp<TextStyle>;
14
- /**
15
- * The current time of the player
16
- */
17
- time: number;
18
- /**
19
- * The duration of the current source.
20
- */
21
- duration: number;
22
- }
23
-
24
- const LIVE_LABEL = 'LIVE';
25
-
26
- /**
27
- * A static time label for the `react-native-theoplayer` UI.
28
- */
29
- export function StaticTimeLabel(props: StaticTimeLabelProps) {
30
- const { style, showDuration, time, duration } = props;
31
-
32
- // An unknown duration is reported as NaN.
33
- if (isNaN(duration)) {
34
- return <></>;
35
- }
36
-
37
- // Live streams report an Infinity duration.
38
- if (!isFinite(duration)) {
39
- return (
40
- <PlayerContext.Consumer>
41
- {(context: UiContext) => <Text style={[context.style.text, { color: context.style.colors.text }, style]}>{LIVE_LABEL}</Text>}
42
- </PlayerContext.Consumer>
43
- );
44
- }
45
-
46
- try {
47
- let currentTimeLabel = new Date(time).toISOString().substring(11, 19);
48
- let durationLabel = new Date(duration).toISOString().substring(11, 19);
49
- if (durationLabel.startsWith('00:')) {
50
- // Don't render hours if not needed.
51
- currentTimeLabel = currentTimeLabel.slice(3);
52
- durationLabel = durationLabel.slice(3);
53
- }
54
- const label = showDuration ? `${currentTimeLabel} / ${durationLabel}` : currentTimeLabel;
55
- return (
56
- <PlayerContext.Consumer>
57
- {(context: UiContext) => <Text style={[context.style.text, { color: context.style.colors.text }, style]}>{label}</Text>}
58
- </PlayerContext.Consumer>
59
- );
60
- } catch (ignore) {
61
- return <></>;
62
- }
63
- }