react-native-theoplayer 3.2.1 → 3.3.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.
- package/CHANGELOG.md +6 -0
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerPackage.kt +3 -1
- package/android/src/main/java/com/theoplayer/ReactTHEOplayerView.kt +2 -1
- package/android/src/main/java/com/theoplayer/ads/AdAdapter.kt +295 -4
- package/android/src/main/java/com/theoplayer/ads/AdEventAdapter.kt +63 -15
- package/android/src/main/java/com/theoplayer/broadcast/DefaultEventDispatcher.kt +27 -0
- package/android/src/main/java/com/theoplayer/broadcast/EventAdapter.kt +23 -0
- package/android/src/main/java/com/theoplayer/broadcast/EventBroadcastAdapter.kt +15 -0
- package/android/src/main/java/com/theoplayer/broadcast/EventBroadcastModule.kt +36 -0
- package/ios/THEOplayerRCTBridge.m +10 -0
- package/ios/THEOplayerRCTTypeUtils.swift +17 -0
- package/ios/THEOplayerRCTView.swift +2 -0
- package/ios/ads/{THEOplayerRCTAdAggregator.swift → THEOplayerRCTAdAdapter.swift} +92 -20
- package/ios/ads/THEOplayerRCTAdEventAdapter.swift +27 -0
- package/ios/ads/THEOplayerRCTAdsAPI.swift +3 -3
- package/ios/ads/THEOplayerRCTAdsEventHandler.swift +9 -9
- package/ios/ads/THEOplayerRCTAdsNative.swift +159 -0
- package/ios/eventBroadcasting/THEOplayerRCTBroadcastEventHandler.swift +99 -0
- package/ios/eventBroadcasting/THEOplayerRCTEventBroadcastAPI.swift +33 -0
- package/lib/commonjs/api/barrel.js +42 -20
- package/lib/commonjs/api/barrel.js.map +1 -1
- package/lib/commonjs/api/broadcast/EventBroadcastAPI.js +6 -0
- package/lib/commonjs/api/broadcast/EventBroadcastAPI.js.map +1 -0
- package/lib/commonjs/api/broadcast/barrel.js +17 -0
- package/lib/commonjs/api/broadcast/barrel.js.map +1 -0
- package/lib/commonjs/api/player/THEOplayer.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js +9 -0
- package/lib/commonjs/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js +5 -0
- package/lib/commonjs/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
- package/lib/commonjs/internal/adapter/broadcast/EventBroadcastAdapter.js +24 -0
- package/lib/commonjs/internal/adapter/broadcast/EventBroadcastAdapter.js.map +1 -0
- package/lib/commonjs/internal/adapter/broadcast/EventBroadcastAdapter.web.js +44 -0
- package/lib/commonjs/internal/adapter/broadcast/EventBroadcastAdapter.web.js.map +1 -0
- package/lib/commonjs/internal/adapter/broadcast/web/DefaultWebEventDispatcher.js +72 -0
- package/lib/commonjs/internal/adapter/broadcast/web/DefaultWebEventDispatcher.js.map +1 -0
- package/lib/module/api/barrel.js +2 -0
- package/lib/module/api/barrel.js.map +1 -1
- package/lib/module/api/broadcast/EventBroadcastAPI.js +2 -0
- package/lib/module/api/broadcast/EventBroadcastAPI.js.map +1 -0
- package/lib/module/api/broadcast/barrel.js +2 -0
- package/lib/module/api/broadcast/barrel.js.map +1 -0
- package/lib/module/api/player/THEOplayer.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerAdapter.js +9 -0
- package/lib/module/internal/adapter/THEOplayerAdapter.js.map +1 -1
- package/lib/module/internal/adapter/THEOplayerWebAdapter.js +5 -0
- package/lib/module/internal/adapter/THEOplayerWebAdapter.js.map +1 -1
- package/lib/module/internal/adapter/broadcast/EventBroadcastAdapter.js +17 -0
- package/lib/module/internal/adapter/broadcast/EventBroadcastAdapter.js.map +1 -0
- package/lib/module/internal/adapter/broadcast/EventBroadcastAdapter.web.js +37 -0
- package/lib/module/internal/adapter/broadcast/EventBroadcastAdapter.web.js.map +1 -0
- package/lib/module/internal/adapter/broadcast/web/DefaultWebEventDispatcher.js +63 -0
- package/lib/module/internal/adapter/broadcast/web/DefaultWebEventDispatcher.js.map +1 -0
- package/lib/typescript/api/barrel.d.ts +2 -0
- package/lib/typescript/api/broadcast/EventBroadcastAPI.d.ts +12 -0
- package/lib/typescript/api/broadcast/barrel.d.ts +1 -0
- package/lib/typescript/api/player/THEOplayer.d.ts +5 -0
- package/lib/typescript/internal/adapter/THEOplayerAdapter.d.ts +4 -3
- package/lib/typescript/internal/adapter/THEOplayerWebAdapter.d.ts +4 -2
- package/lib/typescript/internal/adapter/broadcast/EventBroadcastAdapter.d.ts +7 -0
- package/lib/typescript/internal/adapter/broadcast/EventBroadcastAdapter.web.d.ts +11 -0
- package/lib/typescript/internal/adapter/broadcast/web/DefaultWebEventDispatcher.d.ts +12 -0
- package/package.json +2 -2
- package/react-native-theoplayer.podspec +1 -1
- package/src/api/barrel.ts +2 -0
- package/src/api/broadcast/EventBroadcastAPI.ts +13 -0
- package/src/api/broadcast/barrel.ts +1 -0
- package/src/api/player/THEOplayer.ts +6 -0
- package/src/internal/adapter/THEOplayerAdapter.ts +10 -2
- package/src/internal/adapter/THEOplayerWebAdapter.ts +11 -5
- package/src/internal/adapter/broadcast/EventBroadcastAdapter.ts +20 -0
- package/src/internal/adapter/broadcast/EventBroadcastAdapter.web.ts +44 -0
- package/src/internal/adapter/broadcast/web/DefaultWebEventDispatcher.ts +66 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { EventDispatcher, EventMap, StringKeyOf, EventListener } from "theoplayer";
|
|
2
|
+
|
|
3
|
+
export function arrayRemoveElement<T>(array: T[], element: T): boolean {
|
|
4
|
+
const index = array.indexOf(element);
|
|
5
|
+
if (index === -1) {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
arrayRemoveAt(array, index);
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function arrayRemoveAt<T>(array: T[], index: number): void {
|
|
13
|
+
array.splice(index, 1);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export class DefaultWebEventDispatcher<TMap extends EventMap<StringKeyOf<TMap>>> implements EventDispatcher<TMap> {
|
|
17
|
+
readonly _eventListeners: Map<StringKeyOf<TMap>, EventListener<TMap[StringKeyOf<TMap>]>[]> = new Map();
|
|
18
|
+
|
|
19
|
+
addEventListener<K extends StringKeyOf<TMap>>(types: K | K[], listener: EventListener<TMap[K]>): void {
|
|
20
|
+
if (typeof types === 'string') {
|
|
21
|
+
this.addSingleEventListener_(types, listener);
|
|
22
|
+
} else {
|
|
23
|
+
types.forEach(type => {
|
|
24
|
+
this.addSingleEventListener_(type, listener);
|
|
25
|
+
})
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
private addSingleEventListener_<K extends StringKeyOf<TMap>>(type: K, listener: EventListener<TMap[K]>): void {
|
|
30
|
+
if (!this._eventListeners.has(type)) {
|
|
31
|
+
// @ts-ignore
|
|
32
|
+
this._eventListeners.set(type, [listener]);
|
|
33
|
+
} else {
|
|
34
|
+
// @ts-ignore
|
|
35
|
+
this._eventListeners.get(type)?.push(listener);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
clearEventListeners(): void {
|
|
40
|
+
this._eventListeners.clear();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
dispatchEvent = <K extends StringKeyOf<TMap>>(event: TMap[K]): void => {
|
|
44
|
+
const listeners = (this._eventListeners.get(event.type as K) ?? []).slice();
|
|
45
|
+
for (const listener of listeners) {
|
|
46
|
+
listener.call(this, event);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
removeEventListener<K extends StringKeyOf<TMap>>(types: K | K[], listener: EventListener<TMap[K]>): void {
|
|
51
|
+
if (typeof types === 'string') {
|
|
52
|
+
this.removeSingleEventListener(types, listener);
|
|
53
|
+
} else {
|
|
54
|
+
types.forEach(type => {
|
|
55
|
+
this.removeSingleEventListener(type, listener);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
removeSingleEventListener<K extends StringKeyOf<TMap>>(type: K, listener: EventListener<TMap[K]>): void {
|
|
61
|
+
const listeners = this._eventListeners.get(type);
|
|
62
|
+
if (listeners) {
|
|
63
|
+
arrayRemoveElement(listeners, listener);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|