react-native-tpstreams 1.0.3 → 1.0.4
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/TPStreamsRNPlayerView.podspec +1 -1
- package/android/src/main/java/com/tpstreams/JsonUtils.kt +46 -0
- package/android/src/main/java/com/tpstreams/TPStreamsDownloadModule.kt +2 -7
- package/android/src/main/java/com/tpstreams/TPStreamsRNPlayerView.kt +3 -3
- package/ios/TPStreamsDownloadModule.swift +8 -3
- package/ios/TPStreamsModule.swift +1 -2
- package/ios/TPStreamsRNPlayerView.swift +2 -2
- package/lib/typescript/src/TPStreamsDownload.d.ts +1 -1
- package/lib/typescript/src/TPStreamsDownload.d.ts.map +1 -1
- package/lib/typescript/src/TPStreamsPlayer.d.ts +1 -1
- package/lib/typescript/src/TPStreamsPlayer.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/TPStreamsDownload.tsx +1 -1
- package/src/TPStreamsPlayer.tsx +1 -1
|
@@ -21,7 +21,7 @@ Pod::Spec.new do |s|
|
|
|
21
21
|
'DEFINES_MODULE' => 'YES',
|
|
22
22
|
'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES'
|
|
23
23
|
}
|
|
24
|
-
s.dependency "TPStreamsSDK" , "1.2.
|
|
24
|
+
s.dependency "TPStreamsSDK" , "1.2.9"
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
# Ensure the module is not built as a framework to avoid bridging header conflicts
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
package com.tpstreams
|
|
2
|
+
|
|
3
|
+
import org.json.JSONObject
|
|
4
|
+
|
|
5
|
+
object JsonUtils {
|
|
6
|
+
|
|
7
|
+
fun parseJsonString(map: Map<String, Any>?): Map<String, Any> {
|
|
8
|
+
val result = mutableMapOf<String, Any>()
|
|
9
|
+
map?.forEach { (key, value) ->
|
|
10
|
+
when (value) {
|
|
11
|
+
is String -> {
|
|
12
|
+
if (value.startsWith("{") && value.endsWith("}")) {
|
|
13
|
+
try {
|
|
14
|
+
val json = JSONObject(value)
|
|
15
|
+
result[key] = jsonToMap(json)
|
|
16
|
+
} catch (e: Exception) {
|
|
17
|
+
result[key] = value
|
|
18
|
+
}
|
|
19
|
+
} else {
|
|
20
|
+
result[key] = value
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
else -> result[key] = value
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return result
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
private fun jsonToMap(json: JSONObject): Map<String, Any> {
|
|
30
|
+
val map = mutableMapOf<String, Any>()
|
|
31
|
+
val keys = json.keys()
|
|
32
|
+
while (keys.hasNext()) {
|
|
33
|
+
val key = keys.next()
|
|
34
|
+
val value = json.get(key)
|
|
35
|
+
when (value) {
|
|
36
|
+
is String -> map[key] = value
|
|
37
|
+
is Int -> map[key] = value
|
|
38
|
+
is Double -> map[key] = value
|
|
39
|
+
is Boolean -> map[key] = value
|
|
40
|
+
is JSONObject -> map[key] = jsonToMap(value)
|
|
41
|
+
else -> map[key] = value.toString()
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return map
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -109,13 +109,8 @@ class TPStreamsDownloadModule(private val reactContext: ReactApplicationContext)
|
|
|
109
109
|
map.putDouble("downloadedBytes", item.downloadedBytes.toDouble())
|
|
110
110
|
map.putDouble("progressPercentage", item.progressPercentage.toDouble())
|
|
111
111
|
map.putString("state", downloadClient.getDownloadStatus(item.assetId))
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
item.metadata.forEach { (key, value) ->
|
|
115
|
-
metadataJson.put(key, value)
|
|
116
|
-
}
|
|
117
|
-
map.putString("metadata", metadataJson.toString())
|
|
118
|
-
|
|
112
|
+
val parsedMetadata = JsonUtils.parseJsonString(item.metadata)
|
|
113
|
+
map.putMap("metadata", Arguments.makeNativeMap(parsedMetadata))
|
|
119
114
|
return map
|
|
120
115
|
}
|
|
121
116
|
|
|
@@ -30,7 +30,7 @@ class TPStreamsRNPlayerView(context: ThemedReactContext) : FrameLayout(context)
|
|
|
30
30
|
private var startAt: Long = 0
|
|
31
31
|
private var showDefaultCaptions: Boolean = false
|
|
32
32
|
private var enableDownload: Boolean = false
|
|
33
|
-
private var downloadMetadata: Map<String,
|
|
33
|
+
private var downloadMetadata: Map<String, Any>? = null
|
|
34
34
|
private var offlineLicenseExpireTime: Long = DEFAULT_OFFLINE_LICENSE_EXPIRE_TIME
|
|
35
35
|
private var accessTokenCallback: ((String) -> Unit)? = null
|
|
36
36
|
|
|
@@ -87,7 +87,7 @@ class TPStreamsRNPlayerView(context: ThemedReactContext) : FrameLayout(context)
|
|
|
87
87
|
this.enableDownload = enableDownload
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
fun setDownloadMetadata(metadata: Map<String,
|
|
90
|
+
fun setDownloadMetadata(metadata: Map<String, Any>?) {
|
|
91
91
|
this.downloadMetadata = metadata
|
|
92
92
|
}
|
|
93
93
|
|
|
@@ -116,7 +116,7 @@ class TPStreamsRNPlayerView(context: ThemedReactContext) : FrameLayout(context)
|
|
|
116
116
|
startAt,
|
|
117
117
|
enableDownload,
|
|
118
118
|
showDefaultCaptions,
|
|
119
|
-
downloadMetadata,
|
|
119
|
+
downloadMetadata?.mapValues { it.value.toString() },
|
|
120
120
|
offlineLicenseExpireTime
|
|
121
121
|
)
|
|
122
122
|
|
|
@@ -23,12 +23,16 @@ class TPStreamsDownloadModule: RCTEventEmitter, TPStreamsDownloadDelegate {
|
|
|
23
23
|
private let downloadManager = TPStreamsDownloadManager.shared
|
|
24
24
|
private var isListening = false
|
|
25
25
|
private var tokenDelegate: TokenRequestDelegate?
|
|
26
|
-
static var
|
|
27
|
-
|
|
26
|
+
private static var _shared: TPStreamsDownloadModule?
|
|
27
|
+
|
|
28
|
+
static var shared: TPStreamsDownloadModule? {
|
|
29
|
+
return _shared
|
|
30
|
+
}
|
|
31
|
+
|
|
28
32
|
override init() {
|
|
29
33
|
super.init()
|
|
34
|
+
TPStreamsDownloadModule._shared = self
|
|
30
35
|
downloadManager.setTPStreamsDownloadDelegate(tpStreamsDownloadDelegate: self)
|
|
31
|
-
TPStreamsDownloadModule.shared = self
|
|
32
36
|
}
|
|
33
37
|
|
|
34
38
|
func setAccessTokenDelegate(_ delegate: TokenRequestDelegate) {
|
|
@@ -43,6 +47,7 @@ class TPStreamsDownloadModule: RCTEventEmitter, TPStreamsDownloadDelegate {
|
|
|
43
47
|
@objc
|
|
44
48
|
func addDownloadProgressListener(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
|
|
45
49
|
isListening = true
|
|
50
|
+
notifyDownloadsChange()
|
|
46
51
|
resolve(nil)
|
|
47
52
|
}
|
|
48
53
|
|
|
@@ -9,7 +9,6 @@ class TPStreamsModule: NSObject {
|
|
|
9
9
|
|
|
10
10
|
@objc func initialize(_ organizationId: NSString) {
|
|
11
11
|
if !isInitialized {
|
|
12
|
-
print("Initializing TPStreamsSDK with org code: \(organizationId)")
|
|
13
12
|
DispatchQueue.main.async {
|
|
14
13
|
TPStreamsSDK.initialize(withOrgCode: organizationId as String)
|
|
15
14
|
self.isInitialized = true
|
|
@@ -19,7 +18,7 @@ class TPStreamsModule: NSObject {
|
|
|
19
18
|
}
|
|
20
19
|
|
|
21
20
|
private func initializeDownloadModule() {
|
|
22
|
-
|
|
21
|
+
_ = TPStreamsDownloadModule.shared
|
|
23
22
|
}
|
|
24
23
|
|
|
25
24
|
@objc
|
|
@@ -184,12 +184,12 @@ class TPStreamsRNPlayerView: UIView {
|
|
|
184
184
|
TPStreamsDownloadModule.shared?.setAccessTokenDelegate(self)
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
private func parseMetadataJSON(from jsonString: NSString?) -> [String:
|
|
187
|
+
private func parseMetadataJSON(from jsonString: NSString?) -> [String: Any]? {
|
|
188
188
|
guard let metadataString = jsonString as String? else { return nil }
|
|
189
189
|
|
|
190
190
|
guard let data = metadataString.data(using: .utf8) else { return nil }
|
|
191
191
|
do {
|
|
192
|
-
if let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String:
|
|
192
|
+
if let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] {
|
|
193
193
|
return json
|
|
194
194
|
}
|
|
195
195
|
} catch {
|
|
@@ -7,7 +7,7 @@ export interface DownloadItem {
|
|
|
7
7
|
downloadedBytes: number;
|
|
8
8
|
progressPercentage: number;
|
|
9
9
|
state: string;
|
|
10
|
-
metadata: string
|
|
10
|
+
metadata: Record<string, any>;
|
|
11
11
|
}
|
|
12
12
|
export type DownloadProgressChange = DownloadItem;
|
|
13
13
|
export type DownloadProgressListener = (downloads: DownloadProgressChange[]) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TPStreamsDownload.d.ts","sourceRoot":"","sources":["../../../src/TPStreamsDownload.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIxD,MAAM,WAAW,YAAY;IAC3B,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;IACd,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"TPStreamsDownload.d.ts","sourceRoot":"","sources":["../../../src/TPStreamsDownload.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIxD,MAAM,WAAW,YAAY;IAC3B,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;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAC;AAClD,MAAM,MAAM,wBAAwB,GAAG,CACrC,SAAS,EAAE,sBAAsB,EAAE,KAChC,IAAI,CAAC;AAEV,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,2BAA2B,GAAG,CACxC,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,aAAa,GAAG,IAAI,KACxB,IAAI,CAAC;AAIV,wBAAgB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED,wBAAgB,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,wBAAwB,GACjC,mBAAmB,CAKrB;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,2BAA2B,GACpC,mBAAmB,CAIrB;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7D;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE9D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE/D;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE1D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAElE;AAED,wBAAgB,eAAe,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAEzD"}
|
|
@@ -19,7 +19,7 @@ export interface TPStreamsPlayerProps extends ViewProps {
|
|
|
19
19
|
offlineLicenseExpireTime?: number;
|
|
20
20
|
showDefaultCaptions?: boolean;
|
|
21
21
|
downloadMetadata?: {
|
|
22
|
-
[key: string]:
|
|
22
|
+
[key: string]: any;
|
|
23
23
|
};
|
|
24
24
|
onPlayerStateChanged?: (state: number) => void;
|
|
25
25
|
onIsPlayingChanged?: (isPlaying: boolean) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TPStreamsPlayer.d.ts","sourceRoot":"","sources":["../../../src/TPStreamsPlayer.tsx"],"names":[],"mappings":";AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAc9C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,gBAAgB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACzC;AAGD,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"TPStreamsPlayer.d.ts","sourceRoot":"","sources":["../../../src/TPStreamsPlayer.tsx"],"names":[],"mappings":";AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAc9C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,kBAAkB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,gBAAgB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACzC;AAGD,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAC1C,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAK,IAAI,CAAC;IACX,oBAAoB,CAAC,EAAE,CACrB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,KACjC,IAAI,CAAC;CACX;AAED;;;GAGG;AACH,QAAA,MAAM,mBAAmB,qHAyMvB,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
|
package/package.json
CHANGED
package/src/TPStreamsPlayer.tsx
CHANGED
|
@@ -40,7 +40,7 @@ export interface TPStreamsPlayerProps extends ViewProps {
|
|
|
40
40
|
enableDownload?: boolean;
|
|
41
41
|
offlineLicenseExpireTime?: number;
|
|
42
42
|
showDefaultCaptions?: boolean;
|
|
43
|
-
downloadMetadata?: { [key: string]:
|
|
43
|
+
downloadMetadata?: { [key: string]: any };
|
|
44
44
|
onPlayerStateChanged?: (state: number) => void;
|
|
45
45
|
onIsPlayingChanged?: (isPlaying: boolean) => void;
|
|
46
46
|
onPlaybackSpeedChanged?: (speed: number) => void;
|