react-native-theoplayer 1.7.2 → 1.8.1

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 (248) hide show
  1. package/README.md +2 -0
  2. package/android/src/main/java/com/theoplayer/PlayerConfigAdapter.kt +115 -0
  3. package/android/src/main/java/com/theoplayer/PlayerEventEmitter.kt +648 -0
  4. package/android/src/main/java/com/theoplayer/ReactTHEOplayerPackage.kt +23 -0
  5. package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.kt +447 -0
  6. package/android/src/main/java/com/theoplayer/ReactTHEOplayerViewManager.kt +117 -0
  7. package/android/src/main/java/com/theoplayer/{TimeUpdateRate.java → TimeUpdateRate.kt} +2 -2
  8. package/android/src/main/java/com/theoplayer/ads/AdAdapter.kt +161 -0
  9. package/android/src/main/java/com/theoplayer/ads/AdEventAdapter.kt +90 -0
  10. package/android/src/main/java/com/theoplayer/ads/AdsModule.kt +140 -0
  11. package/android/src/main/java/com/theoplayer/cast/CastEventAdapter.kt +81 -0
  12. package/android/src/main/java/com/theoplayer/cast/CastModule.kt +75 -0
  13. package/android/src/main/java/com/theoplayer/drm/ContentProtectionAdapter.kt +2 -2
  14. package/android/src/main/java/com/theoplayer/drm/ContentProtectionModule.kt +1 -2
  15. package/android/src/main/java/com/theoplayer/drm/ProxyContentProtectionIntegration.kt +1 -2
  16. package/android/src/main/java/com/theoplayer/drm/ProxyContentProtectionIntegrationFactory.kt +3 -5
  17. package/android/src/main/java/com/theoplayer/source/SourceAdapter.kt +402 -0
  18. package/android/src/main/java/com/theoplayer/track/MediaTrackEventType.kt +6 -0
  19. package/android/src/main/java/com/theoplayer/track/MediaTrackType.kt +6 -0
  20. package/android/src/main/java/com/theoplayer/track/QualityListAdapter.kt +43 -0
  21. package/android/src/main/java/com/theoplayer/track/QualityListFilter.kt +28 -0
  22. package/android/src/main/java/com/theoplayer/track/TextTrackCueEventType.kt +10 -0
  23. package/android/src/main/java/com/theoplayer/track/TrackEventType.kt +7 -0
  24. package/android/src/main/java/com/theoplayer/track/TrackListAdapter.kt +219 -0
  25. package/android/src/main/java/com/theoplayer/util/ViewResolver.kt +19 -0
  26. package/ios/THEOplayerRCTBridge.m +52 -1
  27. package/ios/THEOplayerRCTDebug.swift +3 -0
  28. package/ios/{THEOplayerRCTViewMainEventHandler.swift → THEOplayerRCTMainEventHandler.swift} +2 -2
  29. package/ios/{THEOplayerRCTViewMediaTrackEventHandler.swift → THEOplayerRCTMediaTrackEventHandler.swift} +8 -8
  30. package/ios/THEOplayerRCTSourceDescriptionBuilder.swift +95 -118
  31. package/ios/{THEOplayerRCTViewTextTrackEventHandler.swift → THEOplayerRCTTextTrackEventHandler.swift} +7 -7
  32. package/ios/{THEOplayerRCTMetadataAggregator.swift → THEOplayerRCTTrackMetadataAggregator.swift} +12 -12
  33. package/ios/THEOplayerRCTView.swift +51 -71
  34. package/ios/{THEOplayerRCTAdAggregator.swift → ads/THEOplayerRCTAdAggregator.swift} +13 -7
  35. package/ios/ads/THEOplayerRCTAdsAPI+DAI.swift +108 -0
  36. package/ios/{THEOplayerRCTAdsAPI.swift → ads/THEOplayerRCTAdsAPI.swift} +4 -95
  37. package/ios/{THEOplayerRCTViewAdEventHandler.swift → ads/THEOplayerRCTAdsEventHandler.swift} +3 -3
  38. package/ios/ads/THEOplayerRCTSourceDescriptionBuilder+Ads.swift +130 -0
  39. package/ios/ads/THEOplayerRCTView+Ads.swift +15 -0
  40. package/ios/ads/THEOplayerRCTView+AdsConfig.swift +82 -0
  41. package/ios/casting/THEOplayerRCTCastAPI+Airplay.swift +97 -0
  42. package/ios/casting/THEOplayerRCTCastAPI+Chromecast.swift +132 -0
  43. package/ios/casting/THEOplayerRCTCastAPI.swift +53 -0
  44. package/ios/casting/THEOplayerRCTCastEventHandler.swift +124 -0
  45. package/ios/casting/THEOplayerRCTView+CastConfig.swift +47 -0
  46. package/ios/casting/THEOplayerRCTView+Casting.swift +17 -0
  47. package/ios/{THEOplayerRCTContentProtectionAPI.swift → contentprotection/THEOplayerRCTContentProtectionAPI.swift} +0 -0
  48. package/ios/{THEOplayerRCTContentProtectionAggregator.swift → contentprotection/THEOplayerRCTContentProtectionAggregator.swift} +0 -0
  49. package/ios/{THEOplayerRCTProxyContentProtectionIntegration.swift → contentprotection/THEOplayerRCTProxyContentProtectionIntegration.swift} +0 -0
  50. package/ios/{THEOplayerRCTProxyContentProtectionIntegrationFactory.swift → contentprotection/THEOplayerRCTProxyContentProtectionIntegrationFactory.swift} +0 -0
  51. package/ios/custom/Frameworks/ios/put_custom_ios_xcframework_here.txt +1 -1
  52. package/ios/custom/Frameworks/tvos/put_custom_tvos_xcframework_here.txt +2 -0
  53. package/ios/custom/react-native-theoplayer_custom.podspec +46 -0
  54. package/lib/commonjs/api/THEOplayerView.js.map +1 -1
  55. package/lib/commonjs/api/barrel.js +21 -8
  56. package/lib/commonjs/api/barrel.js.map +1 -1
  57. package/lib/commonjs/api/cast/Airplay.js +6 -0
  58. package/lib/commonjs/api/cast/Airplay.js.map +1 -0
  59. package/lib/commonjs/api/cast/CastAPI.js +6 -0
  60. package/lib/commonjs/api/cast/CastAPI.js.map +1 -0
  61. package/lib/commonjs/api/cast/CastConfiguration.js +2 -0
  62. package/lib/commonjs/api/cast/CastConfiguration.js.map +1 -0
  63. package/lib/commonjs/api/cast/CastState.js +2 -0
  64. package/lib/commonjs/api/cast/CastState.js.map +1 -0
  65. package/lib/commonjs/api/cast/Chromecast.js +6 -0
  66. package/lib/commonjs/api/cast/Chromecast.js.map +1 -0
  67. package/lib/commonjs/api/cast/barrel.js +71 -0
  68. package/lib/commonjs/api/cast/barrel.js.map +1 -0
  69. package/lib/commonjs/api/config/PlayerConfiguration.js.map +1 -1
  70. package/lib/commonjs/api/error/ChromecastError.js +2 -0
  71. package/lib/commonjs/api/error/ChromecastError.js.map +1 -0
  72. package/lib/commonjs/api/error/barrel.js +13 -0
  73. package/lib/commonjs/api/error/barrel.js.map +1 -1
  74. package/lib/commonjs/api/event/CastEvent.js +21 -0
  75. package/lib/commonjs/api/event/CastEvent.js.map +1 -0
  76. package/lib/commonjs/api/event/barrel.js +25 -12
  77. package/lib/commonjs/api/event/barrel.js.map +1 -1
  78. package/lib/commonjs/api/source/SourceDescription.js.map +1 -1
  79. package/lib/commonjs/api/source/barrel.js +13 -0
  80. package/lib/commonjs/api/source/barrel.js.map +1 -1
  81. package/lib/commonjs/api/source/metadata/MetadataDescription.js +2 -0
  82. package/lib/commonjs/api/source/metadata/MetadataDescription.js.map +1 -0
  83. package/lib/commonjs/api/source/metadata/barrel.js +19 -0
  84. package/lib/commonjs/api/source/metadata/barrel.js.map +1 -0
  85. package/lib/commonjs/internal/THEOplayerView.js +16 -0
  86. package/lib/commonjs/internal/THEOplayerView.js.map +1 -1
  87. package/lib/commonjs/internal/THEOplayerView.web.js +9 -0
  88. package/lib/commonjs/internal/THEOplayerView.web.js.map +1 -1
  89. package/lib/commonjs/internal/cast/THEOplayerNativeAirplay.js +34 -0
  90. package/lib/commonjs/internal/cast/THEOplayerNativeAirplay.js.map +1 -0
  91. package/lib/commonjs/internal/cast/THEOplayerNativeCastApi.js +46 -0
  92. package/lib/commonjs/internal/cast/THEOplayerNativeCastApi.js.map +1 -0
  93. package/lib/commonjs/internal/cast/THEOplayerNativeChromecast.js +42 -0
  94. package/lib/commonjs/internal/cast/THEOplayerNativeChromecast.js.map +1 -0
  95. package/lib/commonjs/internal/cast/THEOplayerWebCastApi.js +31 -0
  96. package/lib/commonjs/internal/cast/THEOplayerWebCastApi.js.map +1 -0
  97. package/lib/commonjs/internal/web/stub/CastButtonStub.js +16 -0
  98. package/lib/commonjs/internal/web/stub/CastButtonStub.js.map +1 -0
  99. package/lib/module/api/THEOplayerView.js.map +1 -1
  100. package/lib/module/api/barrel.js +1 -0
  101. package/lib/module/api/barrel.js.map +1 -1
  102. package/lib/module/api/cast/Airplay.js +2 -0
  103. package/lib/module/api/cast/Airplay.js.map +1 -0
  104. package/lib/module/api/cast/CastAPI.js +2 -0
  105. package/lib/module/api/cast/CastAPI.js.map +1 -0
  106. package/lib/module/api/cast/CastConfiguration.js +2 -0
  107. package/lib/module/api/cast/CastConfiguration.js.map +1 -0
  108. package/lib/module/api/cast/CastState.js +2 -0
  109. package/lib/module/api/cast/CastState.js.map +1 -0
  110. package/lib/module/api/cast/Chromecast.js +2 -0
  111. package/lib/module/api/cast/Chromecast.js.map +1 -0
  112. package/lib/module/api/cast/barrel.js +6 -0
  113. package/lib/module/api/cast/barrel.js.map +1 -0
  114. package/lib/module/api/config/PlayerConfiguration.js.map +1 -1
  115. package/lib/module/api/error/ChromecastError.js +2 -0
  116. package/lib/module/api/error/ChromecastError.js.map +1 -0
  117. package/lib/module/api/error/barrel.js +1 -0
  118. package/lib/module/api/error/barrel.js.map +1 -1
  119. package/lib/module/api/event/CastEvent.js +14 -0
  120. package/lib/module/api/event/CastEvent.js.map +1 -0
  121. package/lib/module/api/event/barrel.js +2 -1
  122. package/lib/module/api/event/barrel.js.map +1 -1
  123. package/lib/module/api/source/SourceDescription.js.map +1 -1
  124. package/lib/module/api/source/barrel.js +1 -0
  125. package/lib/module/api/source/barrel.js.map +1 -1
  126. package/lib/module/api/source/metadata/MetadataDescription.js +2 -0
  127. package/lib/module/api/source/metadata/MetadataDescription.js.map +1 -0
  128. package/lib/module/api/source/metadata/barrel.js +2 -0
  129. package/lib/module/api/source/metadata/barrel.js.map +1 -0
  130. package/lib/module/internal/THEOplayerView.js +15 -0
  131. package/lib/module/internal/THEOplayerView.js.map +1 -1
  132. package/lib/module/internal/THEOplayerView.web.js +8 -0
  133. package/lib/module/internal/THEOplayerView.web.js.map +1 -1
  134. package/lib/module/internal/cast/THEOplayerNativeAirplay.js +24 -0
  135. package/lib/module/internal/cast/THEOplayerNativeAirplay.js.map +1 -0
  136. package/lib/module/internal/cast/THEOplayerNativeCastApi.js +34 -0
  137. package/lib/module/internal/cast/THEOplayerNativeCastApi.js.map +1 -0
  138. package/lib/module/internal/cast/THEOplayerNativeChromecast.js +32 -0
  139. package/lib/module/internal/cast/THEOplayerNativeChromecast.js.map +1 -0
  140. package/lib/module/internal/cast/THEOplayerWebCastApi.js +22 -0
  141. package/lib/module/internal/cast/THEOplayerWebCastApi.js.map +1 -0
  142. package/lib/module/internal/web/stub/CastButtonStub.js +6 -0
  143. package/lib/module/internal/web/stub/CastButtonStub.js.map +1 -0
  144. package/lib/typescript/lib/commonjs/api/cast/Airplay.d.ts +1 -0
  145. package/lib/typescript/lib/commonjs/api/cast/CastAPI.d.ts +1 -0
  146. package/lib/typescript/lib/commonjs/api/cast/CastConfiguration.d.ts +0 -0
  147. package/lib/typescript/lib/commonjs/api/cast/CastState.d.ts +0 -0
  148. package/lib/typescript/lib/commonjs/api/cast/Chromecast.d.ts +1 -0
  149. package/lib/typescript/lib/commonjs/api/cast/barrel.d.ts +1 -0
  150. package/lib/typescript/lib/commonjs/api/error/ChromecastError.d.ts +0 -0
  151. package/lib/typescript/lib/commonjs/api/event/CastEvent.d.ts +2 -0
  152. package/lib/typescript/lib/commonjs/api/source/metadata/MetadataDescription.d.ts +0 -0
  153. package/lib/typescript/lib/commonjs/api/source/metadata/barrel.d.ts +1 -0
  154. package/lib/typescript/lib/commonjs/internal/THEOplayerView.d.ts +3 -0
  155. package/lib/typescript/lib/commonjs/internal/THEOplayerView.web.d.ts +3 -0
  156. package/lib/typescript/lib/commonjs/internal/cast/THEOplayerNativeAirplay.d.ts +9 -0
  157. package/lib/typescript/lib/commonjs/internal/cast/THEOplayerNativeCastApi.d.ts +12 -0
  158. package/lib/typescript/lib/commonjs/internal/cast/THEOplayerNativeChromecast.d.ts +11 -0
  159. package/lib/typescript/lib/commonjs/internal/cast/THEOplayerWebCastApi.d.ts +8 -0
  160. package/lib/typescript/lib/commonjs/internal/web/stub/CastButtonStub.d.ts +2 -0
  161. package/lib/typescript/lib/module/api/barrel.d.ts +1 -0
  162. package/lib/typescript/lib/module/api/cast/Airplay.d.ts +1 -0
  163. package/lib/typescript/lib/module/api/cast/CastAPI.d.ts +1 -0
  164. package/lib/typescript/lib/module/api/cast/CastConfiguration.d.ts +0 -0
  165. package/lib/typescript/lib/module/api/cast/CastState.d.ts +0 -0
  166. package/lib/typescript/lib/module/api/cast/Chromecast.d.ts +1 -0
  167. package/lib/typescript/lib/module/api/cast/barrel.d.ts +3 -0
  168. package/lib/typescript/lib/module/api/error/ChromecastError.d.ts +0 -0
  169. package/lib/typescript/lib/module/api/event/CastEvent.d.ts +1 -0
  170. package/lib/typescript/lib/module/api/event/barrel.d.ts +2 -1
  171. package/lib/typescript/lib/module/api/source/barrel.d.ts +1 -0
  172. package/lib/typescript/lib/module/api/source/metadata/MetadataDescription.d.ts +0 -0
  173. package/lib/typescript/lib/module/api/source/metadata/barrel.d.ts +1 -0
  174. package/lib/typescript/lib/module/internal/THEOplayerView.d.ts +3 -0
  175. package/lib/typescript/lib/module/internal/THEOplayerView.web.d.ts +3 -0
  176. package/lib/typescript/lib/module/internal/cast/THEOplayerNativeAirplay.d.ts +8 -0
  177. package/lib/typescript/lib/module/internal/cast/THEOplayerNativeCastApi.d.ts +11 -0
  178. package/lib/typescript/lib/module/internal/cast/THEOplayerNativeChromecast.d.ts +10 -0
  179. package/lib/typescript/lib/module/internal/cast/THEOplayerWebCastApi.d.ts +7 -0
  180. package/lib/typescript/lib/module/internal/web/stub/CastButtonStub.d.ts +2 -0
  181. package/lib/typescript/src/api/THEOplayerView.d.ts +10 -0
  182. package/lib/typescript/src/api/barrel.d.ts +1 -0
  183. package/lib/typescript/src/api/cast/Airplay.d.ts +27 -0
  184. package/lib/typescript/src/api/cast/CastAPI.d.ts +25 -0
  185. package/lib/typescript/src/api/cast/CastConfiguration.d.ts +41 -0
  186. package/lib/typescript/src/api/cast/CastState.d.ts +10 -0
  187. package/lib/typescript/src/api/cast/Chromecast.d.ts +39 -0
  188. package/lib/typescript/src/api/cast/barrel.d.ts +5 -0
  189. package/lib/typescript/src/api/config/PlayerConfiguration.d.ts +6 -1
  190. package/lib/typescript/src/api/error/ChromecastError.d.ts +34 -0
  191. package/lib/typescript/src/api/error/barrel.d.ts +1 -0
  192. package/lib/typescript/src/api/event/CastEvent.d.ts +21 -0
  193. package/lib/typescript/src/api/event/barrel.d.ts +2 -1
  194. package/lib/typescript/src/api/source/SourceDescription.d.ts +7 -0
  195. package/lib/typescript/src/api/source/barrel.d.ts +1 -0
  196. package/lib/typescript/src/api/source/metadata/MetadataDescription.d.ts +12 -0
  197. package/lib/typescript/src/api/source/metadata/barrel.d.ts +1 -0
  198. package/lib/typescript/src/internal/THEOplayerView.d.ts +5 -1
  199. package/lib/typescript/src/internal/THEOplayerView.web.d.ts +3 -1
  200. package/lib/typescript/src/internal/cast/THEOplayerNativeAirplay.d.ts +9 -0
  201. package/lib/typescript/src/internal/cast/THEOplayerNativeCastApi.d.ts +10 -0
  202. package/lib/typescript/src/internal/cast/THEOplayerNativeChromecast.d.ts +11 -0
  203. package/lib/typescript/src/internal/cast/THEOplayerWebCastApi.d.ts +9 -0
  204. package/lib/typescript/src/internal/web/stub/CastButtonStub.d.ts +3 -0
  205. package/package.json +2 -2
  206. package/react-native-theoplayer.podspec +2 -2
  207. package/src/api/THEOplayerView.ts +12 -0
  208. package/src/api/barrel.ts +1 -0
  209. package/src/api/cast/Airplay.ts +31 -0
  210. package/src/api/cast/CastAPI.ts +30 -0
  211. package/src/api/cast/CastConfiguration.ts +44 -0
  212. package/src/api/cast/CastState.ts +10 -0
  213. package/src/api/cast/Chromecast.ts +45 -0
  214. package/src/api/cast/barrel.ts +5 -0
  215. package/src/api/config/PlayerConfiguration.ts +7 -1
  216. package/src/api/error/ChromecastError.ts +46 -0
  217. package/src/api/error/barrel.ts +1 -0
  218. package/src/api/event/CastEvent.ts +45 -0
  219. package/src/api/event/barrel.ts +2 -1
  220. package/src/api/source/SourceDescription.ts +8 -0
  221. package/src/api/source/barrel.ts +1 -0
  222. package/src/api/source/metadata/MetadataDescription.ts +13 -0
  223. package/src/api/source/metadata/barrel.ts +1 -0
  224. package/src/internal/THEOplayerView.tsx +17 -0
  225. package/src/internal/THEOplayerView.web.tsx +8 -1
  226. package/src/internal/cast/THEOplayerNativeAirplay.ts +22 -0
  227. package/src/internal/cast/THEOplayerNativeCastApi.ts +28 -0
  228. package/src/internal/cast/THEOplayerNativeChromecast.ts +30 -0
  229. package/src/internal/cast/THEOplayerWebCastApi.ts +21 -0
  230. package/src/internal/web/stub/CastButtonStub.tsx +7 -0
  231. package/android/src/main/java/com/theoplayer/PlayerConfigHelper.java +0 -70
  232. package/android/src/main/java/com/theoplayer/ReactTHEOplayerPackage.java +0 -32
  233. package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.java +0 -525
  234. package/android/src/main/java/com/theoplayer/ReactTHEOplayerViewManager.java +0 -127
  235. package/android/src/main/java/com/theoplayer/SourceHelper.java +0 -362
  236. package/android/src/main/java/com/theoplayer/VideoEventEmitter.java +0 -578
  237. package/android/src/main/java/com/theoplayer/ads/AdEventAdapter.java +0 -92
  238. package/android/src/main/java/com/theoplayer/ads/AdInfo.java +0 -168
  239. package/android/src/main/java/com/theoplayer/ads/AdsModule.java +0 -152
  240. package/android/src/main/java/com/theoplayer/track/MediaTrackEventType.java +0 -11
  241. package/android/src/main/java/com/theoplayer/track/MediaTrackType.java +0 -11
  242. package/android/src/main/java/com/theoplayer/track/QualityListAdapter.java +0 -54
  243. package/android/src/main/java/com/theoplayer/track/QualityListFilter.java +0 -40
  244. package/android/src/main/java/com/theoplayer/track/TextTrackCueEventType.java +0 -11
  245. package/android/src/main/java/com/theoplayer/track/TrackEventType.java +0 -12
  246. package/android/src/main/java/com/theoplayer/track/TrackListInfo.java +0 -234
  247. package/android/src/main/java/com/theoplayer/util/ViewResolver.java +0 -42
  248. package/ios/custom/react-native-theoplayer_custom_ios.podspec +0 -36
@@ -1,168 +0,0 @@
1
- package com.theoplayer.ads;
2
-
3
- import androidx.annotation.Nullable;
4
-
5
- import com.facebook.react.bridge.Arguments;
6
- import com.facebook.react.bridge.WritableArray;
7
- import com.facebook.react.bridge.WritableMap;
8
- import com.theoplayer.android.api.ads.Ad;
9
- import com.theoplayer.android.api.ads.AdBreak;
10
- import com.theoplayer.android.api.ads.CompanionAd;
11
- import com.theoplayer.android.api.ads.GoogleImaAd;
12
- import com.theoplayer.android.api.ads.UniversalAdId;
13
-
14
- import java.util.List;
15
-
16
- public class AdInfo {
17
- private static final String PROP_AD_SYSTEM = "adSystem";
18
- private static final String PROP_AD_INTEGRATION = "integration";
19
- private static final String PROP_AD_TYPE = "type";
20
- private static final String PROP_AD_ID = "id";
21
- private static final String PROP_AD_BREAK = "adBreak";
22
- private static final String PROP_AD_COMPANIONS = "companions";
23
- private static final String PROP_AD_SKIPOFFSET = "skipOffset";
24
- private static final String PROP_AD_CREATIVE_ID = "creativeId";
25
- private static final String PROP_AD_TRAFFICKING_PARAMETERS = "traffickingParametersString";
26
- private static final String PROP_AD_BITRATE = "bitrate";
27
- private static final String PROP_AD_UNIVERSAL_AD_IDS = "universalAdIds";
28
- private static final String PROP_AD_TITLE = "title";
29
- private static final String PROP_AD_DURATION = "duration";
30
- private static final String PROP_AD_WRAPPER_AD_IDS = "wrapperAdIds";
31
- private static final String PROP_AD_WRAPPER_AD_SYSTEMS = "wrapperAdSystems";
32
- private static final String PROP_AD_WRAPPER_CREATIVE_IDS = "wrapperCreativeIds";
33
- private static final String PROP_AD_WIDTH = "width";
34
- private static final String PROP_AD_HEIGHT = "height";
35
- private static final String PROP_AD_CONTENT_TYPE = "contentType";
36
-
37
- private static final String PROP_ADBREAK_INTEGRATION = "integration";
38
- private static final String PROP_ADBREAK_MAXDURATION = "maxDuration";
39
- private static final String PROP_ADBREAK_TIMEOFFSET = "timeOffset";
40
- private static final String PROP_ADBREAK_MAXREMAININGDURATION = "maxRemainingDuration";
41
- private static final String PROP_ADBREAK_ADS = "ads";
42
-
43
- private static final String PROP_COMPANION_ADSLOTID = "adSlotId";
44
- private static final String PROP_COMPANION_ALTTEXT = "altText";
45
- private static final String PROP_COMPANION_CLICKTHROUGH = "clickThrough";
46
- private static final String PROP_COMPANION_WIDTH = "width";
47
- private static final String PROP_COMPANION_HEIGHT = "height";
48
- private static final String PROP_COMPANION_RESOURCEURI = "resourceURI";
49
-
50
- private static final String PROP_UNIVERSAL_AD_ID_REGISTRY = "adIdRegistry";
51
- private static final String PROP_UNIVERSAL_AD_ID_VALUE = "adIdValue";
52
-
53
- public static WritableMap fromAd(final Ad ad) {
54
- return fromAd(ad, true);
55
- }
56
-
57
- public static WritableArray fromAds(final List<Ad> ads) {
58
- WritableArray payload = Arguments.createArray();
59
- for (final Ad ad: ads) {
60
- payload.pushMap(fromAd(ad, true));
61
- }
62
- return payload;
63
- }
64
-
65
- private static WritableMap fromAd(final Ad ad, boolean includeAdBreak) {
66
- WritableMap adPayload = Arguments.createMap();
67
- adPayload.putString(PROP_AD_INTEGRATION, ad.getIntegration() != null ? ad.getIntegration().getType() : "");
68
- adPayload.putString(PROP_AD_TYPE, ad.getType());
69
- adPayload.putString(PROP_AD_ID, ad.getId());
70
- AdBreak adBreak = ad.getAdBreak();
71
- if (includeAdBreak && adBreak != null) {
72
- adPayload.putMap(PROP_AD_BREAK, fromAdBreak(adBreak));
73
- }
74
- adPayload.putArray(PROP_AD_COMPANIONS, fromCompanions(ad.getCompanions()));
75
- adPayload.putInt(PROP_AD_SKIPOFFSET, ad.getSkipOffset());
76
-
77
- if (ad instanceof GoogleImaAd) {
78
- GoogleImaAd googleImaAd = (GoogleImaAd)ad;
79
- adPayload.putString(PROP_AD_SYSTEM, googleImaAd.getAdSystem());
80
- adPayload.putString(PROP_AD_CREATIVE_ID, googleImaAd.getCreativeId());
81
- adPayload.putString(PROP_AD_TRAFFICKING_PARAMETERS, googleImaAd.getTraffickingParameters());
82
- adPayload.putInt(PROP_AD_BITRATE, googleImaAd.getVastMediaBitrate());
83
- try {
84
- adPayload.putString(PROP_AD_TITLE, googleImaAd.getImaAd().getTitle());
85
- adPayload.putInt(PROP_AD_DURATION, (int)(1e3 * googleImaAd.getImaAd().getDuration()));
86
- adPayload.putDouble(PROP_AD_WIDTH, googleImaAd.getImaAd().getVastMediaWidth());
87
- adPayload.putDouble(PROP_AD_HEIGHT, googleImaAd.getImaAd().getVastMediaHeight());
88
- adPayload.putString(PROP_AD_CONTENT_TYPE, googleImaAd.getImaAd().getContentType());
89
- } catch (Exception ignore) {
90
- // googleImaAd.getImaAd() is not known yet
91
- }
92
-
93
- WritableArray universalAdIdsPayload = Arguments.createArray();
94
- for (UniversalAdId universalAdId: googleImaAd.getUniversalAdIds()) {
95
- WritableMap idPayload = Arguments.createMap();
96
- idPayload.putString(PROP_UNIVERSAL_AD_ID_REGISTRY, universalAdId.getUniversalAdIdRegistry());
97
- idPayload.putString(PROP_UNIVERSAL_AD_ID_VALUE, universalAdId.getUniversalAdIdValue());
98
- universalAdIdsPayload.pushMap(idPayload);
99
- }
100
- adPayload.putArray(PROP_AD_UNIVERSAL_AD_IDS, universalAdIdsPayload);
101
-
102
- WritableArray wrapperAdIdsPayload = Arguments.createArray();
103
- for (String wrapperAdId: googleImaAd.getWrapperAdIds()) {
104
- wrapperAdIdsPayload.pushString(wrapperAdId);
105
- }
106
- adPayload.putArray(PROP_AD_WRAPPER_AD_IDS, wrapperAdIdsPayload);
107
-
108
- WritableArray wrapperAdSystemsPayload = Arguments.createArray();
109
- for (String wrapperAdSystem: googleImaAd.getWrapperAdSystems()) {
110
- wrapperAdSystemsPayload.pushString(wrapperAdSystem);
111
- }
112
- adPayload.putArray(PROP_AD_WRAPPER_AD_SYSTEMS, wrapperAdSystemsPayload);
113
-
114
- WritableArray wrapperCreativeIdsPayload = Arguments.createArray();
115
- for (String wrapperCreativeId: googleImaAd.getWrapperCreativeIds()) {
116
- wrapperCreativeIdsPayload.pushString(wrapperCreativeId);
117
- }
118
- adPayload.putArray(PROP_AD_WRAPPER_CREATIVE_IDS, wrapperCreativeIdsPayload);
119
- }
120
-
121
- return adPayload;
122
- }
123
-
124
- public static WritableMap fromAdBreak(@Nullable final AdBreak adbreak) {
125
- WritableMap adbreakPayload = Arguments.createMap();
126
- if (adbreak == null) {
127
- return adbreakPayload;
128
- }
129
- adbreakPayload.putString(PROP_ADBREAK_INTEGRATION, adbreak.getIntegration().getType());
130
- adbreakPayload.putInt(PROP_ADBREAK_MAXDURATION, (int)(1e3 * adbreak.getMaxDuration()));
131
- adbreakPayload.putInt(PROP_ADBREAK_TIMEOFFSET, (int)(1e3 * adbreak.getTimeOffset()));
132
- adbreakPayload.putInt(PROP_ADBREAK_MAXREMAININGDURATION, (int)(1e3 * adbreak.getMaxRemainingDuration()));
133
-
134
- WritableArray adsPayload = Arguments.createArray();
135
- for (Ad ad: adbreak.getAds()) {
136
- // Some ads in the ad break are possibly not loaded yet.
137
- if (ad != null) {
138
- adsPayload.pushMap(fromAd(ad, false));
139
- }
140
- }
141
- adbreakPayload.putArray(PROP_ADBREAK_ADS, adsPayload);
142
-
143
- return adbreakPayload;
144
- }
145
-
146
- public static WritableArray fromAdBreaks(final List<AdBreak> adbreaks) {
147
- WritableArray payload = Arguments.createArray();
148
- for (AdBreak adbreak: adbreaks) {
149
- payload.pushMap(fromAdBreak(adbreak));
150
- }
151
- return payload;
152
- }
153
-
154
- public static WritableArray fromCompanions(final List<CompanionAd> companions) {
155
- WritableArray companionsPayload = Arguments.createArray();
156
- for (CompanionAd companionAd: companions) {
157
- WritableMap adPayload = Arguments.createMap();
158
- adPayload.putString(PROP_COMPANION_ADSLOTID, companionAd.getAdSlotId());
159
- adPayload.putString(PROP_COMPANION_ALTTEXT, companionAd.getAltText());
160
- adPayload.putString(PROP_COMPANION_CLICKTHROUGH, companionAd.getClickThrough());
161
- adPayload.putInt(PROP_COMPANION_WIDTH, companionAd.getWidth());
162
- adPayload.putInt(PROP_COMPANION_HEIGHT, companionAd.getHeight());
163
- adPayload.putString(PROP_COMPANION_RESOURCEURI, companionAd.getResourceURI());
164
- companionsPayload.pushMap(adPayload);
165
- }
166
- return companionsPayload;
167
- }
168
- }
@@ -1,152 +0,0 @@
1
- package com.theoplayer.ads;
2
-
3
- import android.util.Log;
4
-
5
- import androidx.annotation.NonNull;
6
-
7
- import com.facebook.react.bridge.Arguments;
8
- import com.facebook.react.bridge.Promise;
9
- import com.facebook.react.bridge.ReactApplicationContext;
10
- import com.facebook.react.bridge.ReactContextBaseJavaModule;
11
- import com.facebook.react.bridge.ReactMethod;
12
- import com.facebook.react.bridge.ReadableMap;
13
- import com.theoplayer.SourceHelper;
14
- import com.theoplayer.android.api.ads.dai.GoogleDaiIntegration;
15
- import com.theoplayer.android.api.error.THEOplayerException;
16
- import com.theoplayer.util.ViewResolver;
17
-
18
- public class AdsModule extends ReactContextBaseJavaModule {
19
- private static final String TAG = "AdsModule";
20
- private final SourceHelper sourceHelper = new SourceHelper();
21
- private final ViewResolver viewResolver;
22
-
23
- public AdsModule(ReactApplicationContext context) {
24
- super(context);
25
- viewResolver = new ViewResolver(context);
26
- }
27
-
28
- @NonNull
29
- @Override
30
- public String getName() {
31
- return TAG;
32
- }
33
-
34
- // Add an ad break request.
35
- @ReactMethod
36
- public void schedule(Integer tag, ReadableMap ad) {
37
- viewResolver.resolveViewByTag(tag, view -> {
38
- if (view != null) {
39
- try {
40
- view.getAdsApi().schedule(sourceHelper.parseAdFromJS(ad));
41
- } catch (THEOplayerException exception) {
42
- Log.e(TAG, exception.getMessage());
43
- }
44
- }
45
- });
46
- }
47
-
48
- // The currently playing ad break.
49
- @ReactMethod
50
- public void currentAdBreak(Integer tag, Promise promise) {
51
- viewResolver.resolveViewByTag(tag, view -> {
52
- if (view == null) {
53
- promise.resolve(Arguments.createMap());
54
- } else {
55
- promise.resolve(AdInfo.fromAdBreak(view.getAdsApi().getCurrentAdBreak()));
56
- }
57
- });
58
- }
59
-
60
- // List of currently playing ads.
61
- @ReactMethod
62
- public void currentAds(Integer tag, Promise promise) {
63
- viewResolver.resolveViewByTag(tag, view -> {
64
- if (view == null) {
65
- promise.resolve(Arguments.createMap());
66
- } else {
67
- promise.resolve(AdInfo.fromAds(view.getAdsApi().getCurrentAds()));
68
- }
69
- });
70
- }
71
-
72
- // List of ad breaks which still need to be played.
73
- @ReactMethod
74
- public void scheduledAdBreaks(Integer tag, Promise promise) {
75
- viewResolver.resolveViewByTag(tag, view -> {
76
- if (view == null) {
77
- promise.resolve(Arguments.createMap());
78
- } else {
79
- promise.resolve(AdInfo.fromAdBreaks(view.getAdsApi().getScheduledAdBreaks()));
80
- }
81
- });
82
- }
83
-
84
- // Whether a linear ad is currently playing.
85
- @ReactMethod
86
- public void playing(Integer tag, Promise promise) {
87
- viewResolver.resolveViewByTag(tag, view -> {
88
- if (view == null) {
89
- promise.resolve(false);
90
- } else {
91
- promise.resolve(view.getAdsApi().isPlaying());
92
- }
93
- });
94
- }
95
-
96
- // Skip the current linear ad.
97
- // NOTE: This will have no effect when the current linear ad is (not yet) skippable.
98
- @ReactMethod
99
- public void skip(Integer tag) {
100
- viewResolver.resolveViewByTag(tag, view -> {
101
- if (view != null) {
102
- view.getAdsApi().skip();
103
- }
104
- });
105
- }
106
-
107
- @ReactMethod
108
- public void daiSnapback(Integer tag, Promise promise) {
109
- viewResolver.resolveViewByTag(tag, view -> {
110
- GoogleDaiIntegration daiIntegration = view != null ? view.getDaiIntegration() : null;
111
- if (daiIntegration == null) {
112
- promise.resolve(false);
113
- } else {
114
- promise.resolve(daiIntegration.getEnableSnapback());
115
- }
116
- });
117
- }
118
-
119
- @ReactMethod
120
- public void daiSetSnapback(Integer tag, Boolean enabled) {
121
- viewResolver.resolveViewByTag(tag, view -> {
122
- GoogleDaiIntegration daiIntegration = view != null ? view.getDaiIntegration() : null;
123
- if (daiIntegration != null) {
124
- daiIntegration.setEnableSnapback(enabled);
125
- }
126
- });
127
- }
128
-
129
- @ReactMethod
130
- public void daiContentTimeForStreamTime(Integer tag, Integer time, Promise promise) {
131
- viewResolver.resolveViewByTag(tag, view -> {
132
- GoogleDaiIntegration daiIntegration = view != null ? view.getDaiIntegration() : null;
133
- if (daiIntegration == null) {
134
- promise.resolve(time);
135
- } else {
136
- promise.resolve((int)(1e03 * daiIntegration.contentTimeForStreamTime(1e-03 * time)));
137
- }
138
- });
139
- }
140
-
141
- @ReactMethod
142
- public void daiStreamTimeForContentTime(Integer tag, Integer time, Promise promise) {
143
- viewResolver.resolveViewByTag(tag, view -> {
144
- GoogleDaiIntegration daiIntegration = view != null ? view.getDaiIntegration() : null;
145
- if (daiIntegration == null) {
146
- promise.resolve(time);
147
- } else {
148
- promise.resolve((int)(1e03 * daiIntegration.streamTimeForContentTime(1e-03 * time)));
149
- }
150
- });
151
- }
152
- }
@@ -1,11 +0,0 @@
1
- package com.theoplayer.track;
2
-
3
- public enum MediaTrackEventType {
4
- ACTIVE_QUALITY_CHANGED(0),
5
- TARGET_QUALITY_CHANGED(1);
6
-
7
- public final int type;
8
- MediaTrackEventType(int type) {
9
- this.type = type;
10
- }
11
- }
@@ -1,11 +0,0 @@
1
- package com.theoplayer.track;
2
-
3
- public enum MediaTrackType {
4
- AUDIO(0),
5
- VIDEO(1);
6
-
7
- public final int type;
8
- MediaTrackType(int type) {
9
- this.type = type;
10
- }
11
- }
@@ -1,54 +0,0 @@
1
- package com.theoplayer.track;
2
-
3
- import androidx.annotation.NonNull;
4
-
5
- import com.theoplayer.android.api.player.track.mediatrack.quality.Quality;
6
- import com.theoplayer.android.api.player.track.mediatrack.quality.QualityList;
7
-
8
- import java.util.ArrayList;
9
- import java.util.Collections;
10
- import java.util.Comparator;
11
- import java.util.Iterator;
12
- import java.util.List;
13
-
14
- /**
15
- * Adapts an Android List to a QualityList.
16
- */
17
- public class QualityListAdapter<Q extends Quality> implements QualityList<Q> {
18
- private List<Q> qualities;
19
-
20
- public QualityListAdapter(@NonNull List<Q> qualities) {
21
- this.qualities = qualities;
22
- }
23
-
24
- public QualityListAdapter(@NonNull QualityList<Q> qualities) {
25
- this.qualities = new ArrayList<Q>();
26
- for (final Q quality : qualities) {
27
- this.qualities.add(quality);
28
- }
29
- }
30
-
31
- @Override
32
- public int length() {
33
- return qualities.size();
34
- }
35
-
36
- @Override
37
- public Q getItem(int i) {
38
- return (i >= 0 && i < length()) ? qualities.get(i) : null;
39
- }
40
-
41
- @NonNull
42
- @Override
43
- public Iterator<Q> iterator() {
44
- return qualities.iterator();
45
- }
46
-
47
- public List<Q> asList() {
48
- return qualities;
49
- }
50
-
51
- public void sort(Comparator<Q> comparator) {
52
- Collections.sort(qualities, comparator);
53
- }
54
- }
@@ -1,40 +0,0 @@
1
- package com.theoplayer.track;
2
-
3
- import androidx.annotation.NonNull;
4
-
5
- import com.facebook.react.bridge.ReadableArray;
6
- import com.theoplayer.android.api.player.track.mediatrack.quality.Quality;
7
- import com.theoplayer.android.api.player.track.mediatrack.quality.QualityList;
8
-
9
- import java.util.ArrayList;
10
- import java.util.List;
11
-
12
- /**
13
- * QualityListFilter allows filtering a QualityList.
14
- */
15
- public class QualityListFilter<Q extends Quality> {
16
-
17
- private final QualityList<Q> qualities;
18
-
19
- public QualityListFilter(QualityList<Q> qualities) {
20
- this.qualities = qualities;
21
- }
22
-
23
- @NonNull
24
- public QualityList<Q> filterQualityList(ReadableArray uids) {
25
- return new QualityListAdapter<Q>(filterList(uids));
26
- }
27
-
28
- @NonNull
29
- public List<Q> filterList(ReadableArray uids) {
30
- final List<Q> filteredQualities = new ArrayList<>();
31
- for (int q = 0; q < uids.size(); q++) {
32
- for (final Q quality : qualities) {
33
- if (uids.getInt(q) == quality.getUid()) {
34
- filteredQualities.add(quality);
35
- }
36
- }
37
- }
38
- return filteredQualities;
39
- }
40
- }
@@ -1,11 +0,0 @@
1
- package com.theoplayer.track;
2
-
3
- public enum TextTrackCueEventType {
4
- ADD_CUE(0),
5
- REMOVE_CUE(1);
6
-
7
- public final int type;
8
- TextTrackCueEventType(int type) {
9
- this.type = type;
10
- }
11
- }
@@ -1,12 +0,0 @@
1
- package com.theoplayer.track;
2
-
3
- public enum TrackEventType {
4
- ADD_TRACK(0),
5
- REMOVE_TRACK(1),
6
- CHANGE_TRACK(2);
7
-
8
- public final int type;
9
- TrackEventType(int type) {
10
- this.type = type;
11
- }
12
- }