react-native-tpstreams 0.2.25 → 0.2.27
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/android/build.gradle +1 -1
- package/android/src/main/java/com/tpstreams/TPStreamsRNPackage.kt +0 -1
- package/ios/TPStreamsDownloadModule.mm +43 -2
- package/ios/TPStreamsDownloadModule.swift +257 -5
- package/ios/TPStreamsModule.swift +5 -3
- package/ios/TPStreamsRNPlayerView.swift +121 -139
- package/lib/module/TPStreamsPlayer.js +1 -1
- package/lib/module/TPStreamsPlayer.js.map +1 -1
- package/lib/module/index.js +2 -8
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/TPStreamsPlayerViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/TPStreamsPlayer.tsx +2 -2
- package/src/TPStreamsPlayerViewNativeComponent.ts +82 -0
- package/src/index.tsx +2 -7
- package/android/src/main/java/com/tpstreams/TPStreamsDownloadsModule.kt +0 -143
- package/ios/TPStreamsDownloadsModule.mm +0 -32
- package/ios/TPStreamsDownloadsModule.swift +0 -92
- package/lib/typescript/spec/NativeTPStreams.d.ts +0 -7
- package/lib/typescript/spec/NativeTPStreams.d.ts.map +0 -1
- package/lib/typescript/spec/NativeTPStreamsDownloads.d.ts +0 -24
- package/lib/typescript/spec/NativeTPStreamsDownloads.d.ts.map +0 -1
- package/lib/typescript/spec/TPStreamsPlayerViewNativeComponent.d.ts.map +0 -1
- package/spec/NativeTPStreams.ts +0 -8
- package/spec/NativeTPStreamsDownloads.ts +0 -32
- /package/{spec → lib/module}/TPStreamsPlayerViewNativeComponent.ts +0 -0
- /package/lib/typescript/{spec → src}/TPStreamsPlayerViewNativeComponent.d.ts +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { forwardRef, useImperativeHandle, useRef, useCallback } from 'react';
|
|
4
|
-
import TPStreamsPlayerNative, { Commands } from '
|
|
4
|
+
import TPStreamsPlayerNative, { Commands } from './TPStreamsPlayerViewNativeComponent';
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
// Create a unique ID for each instance to track promises
|
|
7
7
|
let nextInstanceId = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useImperativeHandle","useRef","useCallback","TPStreamsPlayerNative","Commands","jsx","_jsx","nextInstanceId","TPStreamsPlayerView","props","ref","videoId","accessToken","shouldAutoPlay","startAt","enableDownload","offlineLicenseExpireTime","showDefaultCaptions","downloadMetadata","style","onPlayerStateChanged","onIsPlayingChanged","onPlaybackSpeedChanged","onIsLoadingChanged","onError","onAccessTokenExpired","restProps","nativeRef","instanceId","promiseMap","onCurrentPosition","event","key","current","handler","resolve","nativeEvent","position","onDuration","duration","onIsPlaying","isPlaying","onPlaybackSpeed","speed","handlePlayerStateChanged","playbackState","handleIsPlayingChanged","handlePlaybackSpeedChanged","handleIsLoadingChanged","isLoading","handleError","message","code","details","Object","entries","forEach","reject","Error","handleAccessTokenExpired","expiredVideoId","newToken","setNewAccessToken","console","error","createPromiseMethod","command","eventKey","Promise","setTimeout","play","pause","seekTo","positionMs","setPlaybackSpeed","getCurrentPosition","getDuration","getPlaybackSpeed","nativeProps","JSON","stringify","undefined"],"sourceRoot":"../../src","sources":["TPStreamsPlayer.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,WAAW,QAAQ,OAAO;AAC5E,OAAOC,qBAAqB,IAC1BC,QAAQ,QACH,
|
|
1
|
+
{"version":3,"names":["forwardRef","useImperativeHandle","useRef","useCallback","TPStreamsPlayerNative","Commands","jsx","_jsx","nextInstanceId","TPStreamsPlayerView","props","ref","videoId","accessToken","shouldAutoPlay","startAt","enableDownload","offlineLicenseExpireTime","showDefaultCaptions","downloadMetadata","style","onPlayerStateChanged","onIsPlayingChanged","onPlaybackSpeedChanged","onIsLoadingChanged","onError","onAccessTokenExpired","restProps","nativeRef","instanceId","promiseMap","onCurrentPosition","event","key","current","handler","resolve","nativeEvent","position","onDuration","duration","onIsPlaying","isPlaying","onPlaybackSpeed","speed","handlePlayerStateChanged","playbackState","handleIsPlayingChanged","handlePlaybackSpeedChanged","handleIsLoadingChanged","isLoading","handleError","message","code","details","Object","entries","forEach","reject","Error","handleAccessTokenExpired","expiredVideoId","newToken","setNewAccessToken","console","error","createPromiseMethod","command","eventKey","Promise","setTimeout","play","pause","seekTo","positionMs","setPlaybackSpeed","getCurrentPosition","getDuration","getPlaybackSpeed","nativeProps","JSON","stringify","undefined"],"sourceRoot":"../../src","sources":["TPStreamsPlayer.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -2,18 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
import { NativeModules } from 'react-native';
|
|
4
4
|
// Export the native component with a different name to avoid conflicts
|
|
5
|
-
export { default as TPStreamsPlayerNative } from '
|
|
6
|
-
export * from '
|
|
5
|
+
export { default as TPStreamsPlayerNative } from './TPStreamsPlayerViewNativeComponent';
|
|
6
|
+
export * from './TPStreamsPlayerViewNativeComponent';
|
|
7
7
|
|
|
8
8
|
// Export the wrapper component as TPStreamsPlayerView
|
|
9
9
|
export { default as TPStreamsPlayerView } from "./TPStreamsPlayer.js";
|
|
10
|
-
// Export the original download module
|
|
11
10
|
export { pauseDownload, resumeDownload, removeDownload, isDownloaded, isDownloading, isPaused, getDownloadStatus, getAllDownloads, addDownloadProgressListener, removeDownloadProgressListener, onDownloadProgressChanged } from "./TPStreamsDownload.js";
|
|
12
|
-
|
|
13
|
-
// Export the TPStreamsDownloads TurboModule directly
|
|
14
|
-
// export { default as TPStreamsDownloads } from '../spec/NativeTPStreamsDownloads';
|
|
15
|
-
// export type { DownloadItem as TPStreamsDownloadsItem } from '../spec/NativeTPStreamsDownloads';
|
|
16
|
-
|
|
17
11
|
const TPStreamsModule = NativeModules.TPStreams;
|
|
18
12
|
export const TPStreams = {
|
|
19
13
|
initialize: organizationId => {
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","default","TPStreamsPlayerNative","TPStreamsPlayerView","pauseDownload","resumeDownload","removeDownload","isDownloaded","isDownloading","isPaused","getDownloadStatus","getAllDownloads","addDownloadProgressListener","removeDownloadProgressListener","onDownloadProgressChanged","TPStreamsModule","TPStreams","initialize","organizationId"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,cAAc;AAC5C;AACA,SAASC,OAAO,IAAIC,qBAAqB,QAAQ,
|
|
1
|
+
{"version":3,"names":["NativeModules","default","TPStreamsPlayerNative","TPStreamsPlayerView","pauseDownload","resumeDownload","removeDownload","isDownloaded","isDownloading","isPaused","getDownloadStatus","getAllDownloads","addDownloadProgressListener","removeDownloadProgressListener","onDownloadProgressChanged","TPStreamsModule","TPStreams","initialize","organizationId"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,cAAc;AAC5C;AACA,SAASC,OAAO,IAAIC,qBAAqB,QAAQ,sCAAsC;AACvF,cAAc,sCAAsC;;AAEpD;AACA,SAASD,OAAO,IAAIE,mBAAmB,QAAQ,sBAAmB;AAGlE,SACEC,aAAa,EACbC,cAAc,EACdC,cAAc,EACdC,YAAY,EACZC,aAAa,EACbC,QAAQ,EACRC,iBAAiB,EACjBC,eAAe,EACfC,2BAA2B,EAC3BC,8BAA8B,EAC9BC,yBAAyB,QAIpB,wBAAqB;AAE5B,MAAMC,eAAe,GAAGf,aAAa,CAACgB,SAAS;AAE/C,OAAO,MAAMA,SAAS,GAAG;EACvBC,UAAU,EAAGC,cAAsB,IAAW;IAC5CH,eAAe,CAACE,UAAU,CAACC,cAAc,CAAC;EAC5C;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TPStreamsPlayerViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../src/TPStreamsPlayerViewNativeComponent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { default as TPStreamsPlayerNative } from '
|
|
2
|
-
export * from '
|
|
1
|
+
export { default as TPStreamsPlayerNative } from './TPStreamsPlayerViewNativeComponent';
|
|
2
|
+
export * from './TPStreamsPlayerViewNativeComponent';
|
|
3
3
|
export { default as TPStreamsPlayerView } from './TPStreamsPlayer';
|
|
4
4
|
export type { TPStreamsPlayerRef } from './TPStreamsPlayer';
|
|
5
5
|
export { pauseDownload, resumeDownload, removeDownload, isDownloaded, isDownloading, isPaused, getDownloadStatus, getAllDownloads, addDownloadProgressListener, removeDownloadProgressListener, onDownloadProgressChanged, type DownloadItem, type DownloadProgressChange, type DownloadProgressListener, } from './TPStreamsDownload';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AACxF,cAAc,sCAAsC,CAAC;AAGrD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,EACd,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,2BAA2B,EAC3B,8BAA8B,EAC9B,yBAAyB,EACzB,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,qBAAqB,CAAC;AAI7B,eAAO,MAAM,SAAS;iCACS,MAAM,KAAG,IAAI;CAG3C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-tpstreams",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.27",
|
|
4
4
|
"description": "Video component for TPStreams",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -150,9 +150,9 @@
|
|
|
150
150
|
]
|
|
151
151
|
},
|
|
152
152
|
"codegenConfig": {
|
|
153
|
-
"name": "
|
|
153
|
+
"name": "TPStreamsPlayerViewSpec",
|
|
154
154
|
"type": "all",
|
|
155
|
-
"jsSrcsDir": "
|
|
155
|
+
"jsSrcsDir": "src",
|
|
156
156
|
"android": {
|
|
157
157
|
"javaPackageName": "com.tpstreams"
|
|
158
158
|
},
|
package/src/TPStreamsPlayer.tsx
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { forwardRef, useImperativeHandle, useRef, useCallback } from 'react';
|
|
2
2
|
import TPStreamsPlayerNative, {
|
|
3
3
|
Commands,
|
|
4
|
-
} from '
|
|
4
|
+
} from './TPStreamsPlayerViewNativeComponent';
|
|
5
5
|
import type {
|
|
6
6
|
NativeProps,
|
|
7
7
|
ErrorEvent,
|
|
8
|
-
} from '
|
|
8
|
+
} from './TPStreamsPlayerViewNativeComponent';
|
|
9
9
|
import type { ViewProps } from 'react-native';
|
|
10
10
|
|
|
11
11
|
// Create a unique ID for each instance to track promises
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
2
|
+
import type { ViewProps } from 'react-native';
|
|
3
|
+
import type {
|
|
4
|
+
Double,
|
|
5
|
+
Float,
|
|
6
|
+
Int32,
|
|
7
|
+
} from 'react-native/Libraries/Types/CodegenTypes';
|
|
8
|
+
import type { HostComponent } from 'react-native';
|
|
9
|
+
import type { DirectEventHandler } from 'react-native/Libraries/Types/CodegenTypes';
|
|
10
|
+
import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
|
|
11
|
+
|
|
12
|
+
export interface ErrorEvent {
|
|
13
|
+
message: string;
|
|
14
|
+
code: Int32;
|
|
15
|
+
details?: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface NativeProps extends ViewProps {
|
|
19
|
+
videoId?: string;
|
|
20
|
+
accessToken?: string;
|
|
21
|
+
shouldAutoPlay?: boolean;
|
|
22
|
+
startAt?: Double;
|
|
23
|
+
enableDownload?: boolean;
|
|
24
|
+
offlineLicenseExpireTime?: Double;
|
|
25
|
+
showDefaultCaptions?: boolean;
|
|
26
|
+
downloadMetadata?: string;
|
|
27
|
+
|
|
28
|
+
// Event props for receiving data from native methods
|
|
29
|
+
onCurrentPosition?: DirectEventHandler<{ position: Double }>;
|
|
30
|
+
onDuration?: DirectEventHandler<{ duration: Double }>;
|
|
31
|
+
onIsPlaying?: DirectEventHandler<{ isPlaying: boolean }>;
|
|
32
|
+
onPlaybackSpeed?: DirectEventHandler<{ speed: Float }>;
|
|
33
|
+
|
|
34
|
+
// Player event props
|
|
35
|
+
onPlayerStateChanged?: DirectEventHandler<{ playbackState: Int32 }>;
|
|
36
|
+
onIsPlayingChanged?: DirectEventHandler<{ isPlaying: boolean }>;
|
|
37
|
+
onPlaybackSpeedChanged?: DirectEventHandler<{ speed: Double }>;
|
|
38
|
+
onIsLoadingChanged?: DirectEventHandler<{ isLoading: boolean }>;
|
|
39
|
+
onError?: DirectEventHandler<ErrorEvent>;
|
|
40
|
+
onAccessTokenExpired?: DirectEventHandler<{ videoId: string }>;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
interface TPStreamsPlayerViewCommands {
|
|
44
|
+
play: (viewRef: React.ElementRef<HostComponent<NativeProps>>) => void;
|
|
45
|
+
pause: (viewRef: React.ElementRef<HostComponent<NativeProps>>) => void;
|
|
46
|
+
seekTo: (
|
|
47
|
+
viewRef: React.ElementRef<HostComponent<NativeProps>>,
|
|
48
|
+
positionMs: Double
|
|
49
|
+
) => void;
|
|
50
|
+
setPlaybackSpeed: (
|
|
51
|
+
viewRef: React.ElementRef<HostComponent<NativeProps>>,
|
|
52
|
+
speed: Float
|
|
53
|
+
) => void;
|
|
54
|
+
getCurrentPosition: (
|
|
55
|
+
viewRef: React.ElementRef<HostComponent<NativeProps>>
|
|
56
|
+
) => void;
|
|
57
|
+
getDuration: (viewRef: React.ElementRef<HostComponent<NativeProps>>) => void;
|
|
58
|
+
isPlaying: (viewRef: React.ElementRef<HostComponent<NativeProps>>) => void;
|
|
59
|
+
getPlaybackSpeed: (
|
|
60
|
+
viewRef: React.ElementRef<HostComponent<NativeProps>>
|
|
61
|
+
) => void;
|
|
62
|
+
setNewAccessToken: (
|
|
63
|
+
viewRef: React.ElementRef<HostComponent<NativeProps>>,
|
|
64
|
+
newToken: string
|
|
65
|
+
) => void;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export const Commands = codegenNativeCommands<TPStreamsPlayerViewCommands>({
|
|
69
|
+
supportedCommands: [
|
|
70
|
+
'play',
|
|
71
|
+
'pause',
|
|
72
|
+
'seekTo',
|
|
73
|
+
'setPlaybackSpeed',
|
|
74
|
+
'getCurrentPosition',
|
|
75
|
+
'getDuration',
|
|
76
|
+
'isPlaying',
|
|
77
|
+
'getPlaybackSpeed',
|
|
78
|
+
'setNewAccessToken',
|
|
79
|
+
],
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
export default codegenNativeComponent<NativeProps>('TPStreamsRNPlayerView');
|
package/src/index.tsx
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { NativeModules } from 'react-native';
|
|
2
2
|
// Export the native component with a different name to avoid conflicts
|
|
3
|
-
export { default as TPStreamsPlayerNative } from '
|
|
4
|
-
export * from '
|
|
3
|
+
export { default as TPStreamsPlayerNative } from './TPStreamsPlayerViewNativeComponent';
|
|
4
|
+
export * from './TPStreamsPlayerViewNativeComponent';
|
|
5
5
|
|
|
6
6
|
// Export the wrapper component as TPStreamsPlayerView
|
|
7
7
|
export { default as TPStreamsPlayerView } from './TPStreamsPlayer';
|
|
8
8
|
export type { TPStreamsPlayerRef } from './TPStreamsPlayer';
|
|
9
9
|
|
|
10
|
-
// Export the original download module
|
|
11
10
|
export {
|
|
12
11
|
pauseDownload,
|
|
13
12
|
resumeDownload,
|
|
@@ -25,10 +24,6 @@ export {
|
|
|
25
24
|
type DownloadProgressListener,
|
|
26
25
|
} from './TPStreamsDownload';
|
|
27
26
|
|
|
28
|
-
// Export the TPStreamsDownloads TurboModule directly
|
|
29
|
-
// export { default as TPStreamsDownloads } from '../spec/NativeTPStreamsDownloads';
|
|
30
|
-
// export type { DownloadItem as TPStreamsDownloadsItem } from '../spec/NativeTPStreamsDownloads';
|
|
31
|
-
|
|
32
27
|
const TPStreamsModule = NativeModules.TPStreams;
|
|
33
28
|
|
|
34
29
|
export const TPStreams = {
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
package com.tpstreams
|
|
2
|
-
|
|
3
|
-
import android.util.Log
|
|
4
|
-
import com.facebook.react.bridge.Promise
|
|
5
|
-
import com.facebook.react.bridge.Arguments
|
|
6
|
-
import com.facebook.react.bridge.ReactApplicationContext
|
|
7
|
-
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
8
|
-
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
9
|
-
import com.tpstreams.NativeTPStreamsDownloadsSpec
|
|
10
|
-
import com.tpstreams.player.download.DownloadClient
|
|
11
|
-
import com.tpstreams.player.download.DownloadItem
|
|
12
|
-
import org.json.JSONObject
|
|
13
|
-
import com.facebook.react.bridge.WritableMap
|
|
14
|
-
|
|
15
|
-
class TPStreamsDownloadsModule(private val reactContext: ReactApplicationContext) :
|
|
16
|
-
NativeTPStreamsDownloadsSpec(reactContext),
|
|
17
|
-
DownloadClient.Listener {
|
|
18
|
-
|
|
19
|
-
private val downloadClient: DownloadClient by lazy {
|
|
20
|
-
DownloadClient.getInstance(reactContext)
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
private var isListening = false
|
|
24
|
-
private val TAG = "TPStreamsDownloadsModule"
|
|
25
|
-
|
|
26
|
-
override fun getAll(promise: Promise) {
|
|
27
|
-
try {
|
|
28
|
-
val downloadItems = downloadClient.getAllDownloadItems()
|
|
29
|
-
val result = Arguments.createArray()
|
|
30
|
-
|
|
31
|
-
for (item in downloadItems) {
|
|
32
|
-
result.pushMap(convertDownloadItemToMap(item))
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
promise.resolve(result)
|
|
36
|
-
} catch (e: Exception) {
|
|
37
|
-
Log.e(TAG, "Error getting all download items: ${e.message}", e)
|
|
38
|
-
promise.reject("DOWNLOAD_ITEMS_ERROR", e.message, e)
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
override fun get(videoId: String, promise: Promise) {
|
|
43
|
-
try {
|
|
44
|
-
val download = downloadClient.getDownload(videoId)
|
|
45
|
-
download?.let {
|
|
46
|
-
val item = downloadClient.createDownloadItem(it)
|
|
47
|
-
promise.resolve(convertDownloadItemToMap(item))
|
|
48
|
-
} ?: promise.resolve(null)
|
|
49
|
-
} catch (e: Exception) {
|
|
50
|
-
Log.e(TAG, "Error getting download item: ${e.message}", e)
|
|
51
|
-
promise.reject("DOWNLOAD_ITEM_ERROR", e.message, e)
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
override fun pause(videoId: String, promise: Promise) {
|
|
56
|
-
try {
|
|
57
|
-
downloadClient.pauseDownload(videoId)
|
|
58
|
-
promise.resolve(null)
|
|
59
|
-
} catch (e: Exception) {
|
|
60
|
-
Log.e(TAG, "Error pausing download: ${e.message}", e)
|
|
61
|
-
promise.reject("DOWNLOAD_PAUSE_ERROR", e.message, e)
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
override fun resume(videoId: String, promise: Promise) {
|
|
66
|
-
try {
|
|
67
|
-
downloadClient.resumeDownload(videoId)
|
|
68
|
-
promise.resolve(null)
|
|
69
|
-
} catch (e: Exception) {
|
|
70
|
-
Log.e(TAG, "Error resuming download: ${e.message}", e)
|
|
71
|
-
promise.reject("DOWNLOAD_RESUME_ERROR", e.message, e)
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
override fun remove(videoId: String, promise: Promise) {
|
|
76
|
-
try {
|
|
77
|
-
downloadClient.removeDownload(videoId)
|
|
78
|
-
promise.resolve(null)
|
|
79
|
-
} catch (e: Exception) {
|
|
80
|
-
Log.e(TAG, "Error removing download: ${e.message}", e)
|
|
81
|
-
promise.reject("DOWNLOAD_REMOVE_ERROR", e.message, e)
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
override fun startProgressUpdates() {
|
|
86
|
-
if (!isListening) {
|
|
87
|
-
downloadClient.addListener(this)
|
|
88
|
-
isListening = true
|
|
89
|
-
Log.d(TAG, "Started listening for download progress updates")
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
override fun stopProgressUpdates() {
|
|
94
|
-
if (isListening) {
|
|
95
|
-
downloadClient.removeListener(this)
|
|
96
|
-
isListening = false
|
|
97
|
-
Log.d(TAG, "Stopped listening for download progress updates")
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
override fun addListener(eventName: String) {
|
|
102
|
-
// Required by NativeEventEmitter, but no-op
|
|
103
|
-
// Actual listener registration happens in startProgressUpdates
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
override fun removeListeners(count: Double) {
|
|
107
|
-
// Required by NativeEventEmitter, but no-op
|
|
108
|
-
// Actual listener removal happens in stopProgressUpdates
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
override fun onDownloadsChanged() {
|
|
112
|
-
try {
|
|
113
|
-
val currentDownloads = downloadClient.getAllDownloadItems()
|
|
114
|
-
|
|
115
|
-
val result = Arguments.createArray()
|
|
116
|
-
for (item in currentDownloads) {
|
|
117
|
-
result.pushMap(convertDownloadItemToMap(item))
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
emitEvent("onDownloadProgressChanged", result)
|
|
121
|
-
} catch (e: Exception) {
|
|
122
|
-
Log.e(TAG, "Error in onDownloadsChanged: ${e.message}", e)
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
private fun convertDownloadItemToMap(item: DownloadItem): WritableMap {
|
|
127
|
-
val map = Arguments.createMap()
|
|
128
|
-
map.putString("videoId", item.assetId)
|
|
129
|
-
map.putString("title", item.title)
|
|
130
|
-
item.thumbnailUrl?.let { map.putString("thumbnailUrl", it) }
|
|
131
|
-
map.putDouble("totalBytes", item.totalBytes.toDouble())
|
|
132
|
-
map.putDouble("downloadedBytes", item.downloadedBytes.toDouble())
|
|
133
|
-
map.putDouble("progressPercentage", item.progressPercentage.toDouble())
|
|
134
|
-
map.putString("state", downloadClient.getDownloadStatus(item.assetId))
|
|
135
|
-
return map
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
private fun emitEvent(eventName: String, data: Any) {
|
|
139
|
-
reactContext
|
|
140
|
-
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|
|
141
|
-
.emit(eventName, data)
|
|
142
|
-
}
|
|
143
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
#import <React/RCTBridgeModule.h>
|
|
2
|
-
#import <React/RCTEventEmitter.h>
|
|
3
|
-
|
|
4
|
-
@interface RCT_EXTERN_MODULE(TPStreamsDownloads, RCTEventEmitter)
|
|
5
|
-
|
|
6
|
-
RCT_EXTERN_METHOD(getAll:(RCTPromiseResolveBlock)resolve
|
|
7
|
-
reject:(RCTPromiseRejectBlock)reject)
|
|
8
|
-
|
|
9
|
-
RCT_EXTERN_METHOD(get:(NSString *)videoId
|
|
10
|
-
resolve:(RCTPromiseResolveBlock)resolve
|
|
11
|
-
reject:(RCTPromiseRejectBlock)reject)
|
|
12
|
-
|
|
13
|
-
RCT_EXTERN_METHOD(pause:(NSString *)videoId
|
|
14
|
-
resolve:(RCTPromiseResolveBlock)resolve
|
|
15
|
-
reject:(RCTPromiseRejectBlock)reject)
|
|
16
|
-
|
|
17
|
-
RCT_EXTERN_METHOD(resume:(NSString *)videoId
|
|
18
|
-
resolve:(RCTPromiseResolveBlock)resolve
|
|
19
|
-
reject:(RCTPromiseRejectBlock)reject)
|
|
20
|
-
|
|
21
|
-
RCT_EXTERN_METHOD(remove:(NSString *)videoId
|
|
22
|
-
resolve:(RCTPromiseResolveBlock)resolve
|
|
23
|
-
reject:(RCTPromiseRejectBlock)reject)
|
|
24
|
-
|
|
25
|
-
// Required for RCTEventEmitter
|
|
26
|
-
RCT_EXTERN_METHOD(supportedEvents)
|
|
27
|
-
|
|
28
|
-
// Required by NativeEventEmitter
|
|
29
|
-
RCT_EXTERN_METHOD(addListener:(NSString *)eventName)
|
|
30
|
-
RCT_EXTERN_METHOD(removeListeners:(double)count)
|
|
31
|
-
|
|
32
|
-
@end
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import Foundation
|
|
2
|
-
import React
|
|
3
|
-
|
|
4
|
-
@objc(TPStreamsDownloads)
|
|
5
|
-
class TPStreamsDownloadsModule: NSObject, RCTEventEmitterProtocol {
|
|
6
|
-
|
|
7
|
-
private var hasListeners = false
|
|
8
|
-
|
|
9
|
-
@objc
|
|
10
|
-
static func requiresMainQueueSetup() -> Bool {
|
|
11
|
-
return false
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
@objc
|
|
15
|
-
func supportedEvents() -> [String] {
|
|
16
|
-
return [
|
|
17
|
-
"onDownloadProgressChanged"
|
|
18
|
-
]
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@objc
|
|
22
|
-
func startObserving() {
|
|
23
|
-
hasListeners = true
|
|
24
|
-
// TODO: Add observer for download progress changes
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@objc
|
|
28
|
-
func stopObserving() {
|
|
29
|
-
hasListeners = false
|
|
30
|
-
// TODO: Remove observer
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
@objc
|
|
34
|
-
func sendEvent(withName name: String, body: Any?) {
|
|
35
|
-
// This method is required by RCTEventEmitterProtocol
|
|
36
|
-
// It should send events to React Native when hasListeners is true
|
|
37
|
-
if hasListeners {
|
|
38
|
-
// TODO: Implement actual event sending logic
|
|
39
|
-
// For now, this satisfies the protocol requirement
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// MARK: - Native Methods (TODO: Implement with TPDownloadClient)
|
|
44
|
-
|
|
45
|
-
@objc
|
|
46
|
-
func getAll(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
47
|
-
// TODO: Get all downloads from TPDownloadClient.shared.getAllDownloads()
|
|
48
|
-
resolve([])
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
@objc
|
|
52
|
-
func get(_ videoId: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
53
|
-
// TODO: Get download by videoId from TPDownloadClient.shared.getDownload(videoId:)
|
|
54
|
-
resolve(nil)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
@objc
|
|
58
|
-
func pause(_ videoId: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
59
|
-
// TODO: Pause download using TPDownloadClient.shared.pauseDownload(videoId:)
|
|
60
|
-
resolve(nil)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
@objc
|
|
64
|
-
func resume(_ videoId: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
65
|
-
// TODO: Resume download using TPDownloadClient.shared.resumeDownload(videoId:)
|
|
66
|
-
resolve(nil)
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
@objc
|
|
70
|
-
func remove(_ videoId: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
71
|
-
// TODO: Remove download using TPDownloadClient.shared.removeDownload(videoId:)
|
|
72
|
-
resolve(nil)
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
@objc
|
|
76
|
-
func addListener(_ eventName: String) {
|
|
77
|
-
// Required for RCTEventEmitter
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
@objc
|
|
81
|
-
func removeListeners(_ count: NSNumber) {
|
|
82
|
-
// Required for RCTEventEmitter
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// Protocol to avoid direct dependency on RCTEventEmitter
|
|
87
|
-
@objc protocol RCTEventEmitterProtocol {
|
|
88
|
-
func supportedEvents() -> [String]
|
|
89
|
-
func startObserving()
|
|
90
|
-
func stopObserving()
|
|
91
|
-
func sendEvent(withName name: String, body: Any?)
|
|
92
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NativeTPStreams.d.ts","sourceRoot":"","sources":["../../../spec/NativeTPStreams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;;AAED,wBAAmE"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { TurboModule } from 'react-native';
|
|
2
|
-
export type DownloadItem = {
|
|
3
|
-
videoId: string;
|
|
4
|
-
title: string;
|
|
5
|
-
thumbnailUrl?: string;
|
|
6
|
-
totalBytes: number;
|
|
7
|
-
downloadedBytes: number;
|
|
8
|
-
progressPercentage: number;
|
|
9
|
-
state: string;
|
|
10
|
-
};
|
|
11
|
-
export interface Spec extends TurboModule {
|
|
12
|
-
getAll(): Promise<DownloadItem[]>;
|
|
13
|
-
get(videoId: string): Promise<DownloadItem | null>;
|
|
14
|
-
pause(videoId: string): Promise<void>;
|
|
15
|
-
resume(videoId: string): Promise<void>;
|
|
16
|
-
remove(videoId: string): Promise<void>;
|
|
17
|
-
startProgressUpdates(): void;
|
|
18
|
-
stopProgressUpdates(): void;
|
|
19
|
-
addListener(eventName: string): void;
|
|
20
|
-
removeListeners(count: number): void;
|
|
21
|
-
}
|
|
22
|
-
declare const _default: Spec;
|
|
23
|
-
export default _default;
|
|
24
|
-
//# sourceMappingURL=NativeTPStreamsDownloads.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NativeTPStreamsDownloads.d.ts","sourceRoot":"","sources":["../../../spec/NativeTPStreamsDownloads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,MAAM,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAClC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACnD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGvC,oBAAoB,IAAI,IAAI,CAAC;IAC7B,mBAAmB,IAAI,IAAI,CAAC;IAI5B,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;;AAED,wBAA4E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TPStreamsPlayerViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../spec/TPStreamsPlayerViewNativeComponent.ts"],"names":[],"mappings":"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"}
|
package/spec/NativeTPStreams.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { TurboModule } from 'react-native';
|
|
2
|
-
import { TurboModuleRegistry } from 'react-native';
|
|
3
|
-
|
|
4
|
-
export interface Spec extends TurboModule {
|
|
5
|
-
initialize(organizationId: string): void;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export default TurboModuleRegistry.getEnforcing<Spec>('TPStreams');
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { TurboModule } from 'react-native';
|
|
2
|
-
import { TurboModuleRegistry } from 'react-native';
|
|
3
|
-
|
|
4
|
-
export type DownloadItem = {
|
|
5
|
-
videoId: string;
|
|
6
|
-
title: string;
|
|
7
|
-
thumbnailUrl?: string;
|
|
8
|
-
totalBytes: number;
|
|
9
|
-
downloadedBytes: number;
|
|
10
|
-
progressPercentage: number;
|
|
11
|
-
state: string;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export interface Spec extends TurboModule {
|
|
15
|
-
// Download management methods
|
|
16
|
-
getAll(): Promise<DownloadItem[]>;
|
|
17
|
-
get(videoId: string): Promise<DownloadItem | null>;
|
|
18
|
-
pause(videoId: string): Promise<void>;
|
|
19
|
-
resume(videoId: string): Promise<void>;
|
|
20
|
-
remove(videoId: string): Promise<void>;
|
|
21
|
-
|
|
22
|
-
// Progress monitoring methods
|
|
23
|
-
startProgressUpdates(): void;
|
|
24
|
-
stopProgressUpdates(): void;
|
|
25
|
-
|
|
26
|
-
// Required by React Native's NativeEventEmitter
|
|
27
|
-
// These are used internally by the event emitter
|
|
28
|
-
addListener(eventName: string): void;
|
|
29
|
-
removeListeners(count: number): void;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export default TurboModuleRegistry.getEnforcing<Spec>('TPStreamsDownloads');
|
|
File without changes
|
|
File without changes
|