@takeoffmedia/react-native-penthera 0.5.1 → 0.5.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/android/src/main/java/com/takeoffmediareactnativepenthera/virtuoso/OfflineVideoEngine.kt +23 -25
- package/ios/Catalog.swift +3 -2
- package/ios/Penthera.swift +5 -3
- package/ios/Util.swift +8 -0
- package/lib/typescript/interface/PentheraTypes.d.ts +2 -0
- package/lib/typescript/interface/PentheraTypes.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/interface/PentheraTypes.ts +2 -0
package/android/src/main/java/com/takeoffmediareactnativepenthera/virtuoso/OfflineVideoEngine.kt
CHANGED
|
@@ -280,35 +280,33 @@ class OfflineVideoEngine(private val context: ReactApplicationContext) {
|
|
|
280
280
|
}
|
|
281
281
|
|
|
282
282
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
// This a workaround to works ancillary files
|
|
292
|
-
val offlineUrl = asset?.playbackURL
|
|
293
|
-
val request = Request.Builder()
|
|
294
|
-
.url(offlineUrl.toString())
|
|
295
|
-
.build()
|
|
296
|
-
client.newCall(request).execute().use { response ->
|
|
297
|
-
if (!response.isSuccessful) throw IOException("Unexpected code $response")
|
|
298
|
-
}
|
|
283
|
+
fun getByAssetId(assetId: String): String? {
|
|
284
|
+
try {
|
|
285
|
+
// load asset if it has already been downloaded
|
|
286
|
+
val list: MutableList<IIdentifier> = virtuoso.assetManager.getByAssetId(assetId)
|
|
287
|
+
|
|
288
|
+
list.let {
|
|
289
|
+
if (it.isNotEmpty()) {
|
|
290
|
+
asset = list[0] as VirtuosoSegmentedFile
|
|
299
291
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
keyValueMap["metadata"] = asset?.metadata.toString()
|
|
292
|
+
// This a workaround to works ancillary files
|
|
293
|
+
val offlineUrl = asset?.playbackURL
|
|
303
294
|
|
|
304
|
-
|
|
295
|
+
val keyValueMap = HashMap<String, Any>()
|
|
296
|
+
keyValueMap["offlineUrl"] = offlineUrl.toString()
|
|
297
|
+
keyValueMap["metadata"] = asset?.metadata.toString()
|
|
305
298
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
299
|
+
val ancillaryFiles = (asset as ISegmentedAsset).getAncillaryFiles(context)
|
|
300
|
+
|
|
301
|
+
// HERE THE ASSET MANIFEST IS REQUESTED
|
|
302
|
+
keyValueMap["ancillary"] = ancillaryFiles
|
|
303
|
+
return gson.toJson(keyValueMap)
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
} catch (e: Exception) {
|
|
307
|
+
e.printStackTrace()
|
|
309
308
|
}
|
|
310
|
-
|
|
311
|
-
return null
|
|
309
|
+
return null
|
|
312
310
|
}
|
|
313
311
|
|
|
314
312
|
private fun toSubtitleMimeType(format: String?): String? {
|
package/ios/Catalog.swift
CHANGED
|
@@ -23,6 +23,7 @@ struct OfflineCatalog: Codable {
|
|
|
23
23
|
var isCompleted: Bool
|
|
24
24
|
var isPaused: Bool
|
|
25
25
|
var percentage: Float?
|
|
26
|
+
var creationTime: String?
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
struct Thumbnails: Codable {
|
|
@@ -55,12 +56,12 @@ struct DataItem: Codable {
|
|
|
55
56
|
var classification: Classification?
|
|
56
57
|
var estimatedSize: Int?
|
|
57
58
|
var dataOffers: Array<Category>?
|
|
58
|
-
var expiryDate:
|
|
59
|
+
var expiryDate: Date?
|
|
59
60
|
var expiryAfterPlay: String?
|
|
60
61
|
var expiryAfterDownload: String?
|
|
61
62
|
var isExpired: Bool?
|
|
62
63
|
var inForcedExpire: Bool?
|
|
63
|
-
var effectiveExpiryDate:
|
|
64
|
+
var effectiveExpiryDate: TimeInterval?
|
|
64
65
|
var isReproduced: Bool?
|
|
65
66
|
var mediaId: String?
|
|
66
67
|
var vpid: String?
|
package/ios/Penthera.swift
CHANGED
|
@@ -426,6 +426,7 @@ class Penthera: RCTEventEmitter, VirtuosoDownloadEngineNotificationsDelegate {
|
|
|
426
426
|
let expiryDate = va.expiryDate
|
|
427
427
|
let effectiveExpiryDate = va.effectiveExpiryDate
|
|
428
428
|
let isReproduced = va.firstPlayDateTime
|
|
429
|
+
let creationDate = va.creationDateTime.toSeconds()
|
|
429
430
|
|
|
430
431
|
var dataItem = DataItem(
|
|
431
432
|
title: va.userInfo?["title"] as? String,
|
|
@@ -444,11 +445,11 @@ class Penthera: RCTEventEmitter, VirtuosoDownloadEngineNotificationsDelegate {
|
|
|
444
445
|
)
|
|
445
446
|
|
|
446
447
|
if let effectiveExpiryDate = effectiveExpiryDate {
|
|
447
|
-
dataItem.effectiveExpiryDate =
|
|
448
|
+
dataItem.effectiveExpiryDate = isReproduced != nil ? va.expiryAfterPlay : va.expiryAfterDownload
|
|
448
449
|
}
|
|
449
450
|
|
|
450
451
|
if let expiryDate = expiryDate {
|
|
451
|
-
dataItem.expiryDate =
|
|
452
|
+
dataItem.expiryDate = va.expiryDate
|
|
452
453
|
}
|
|
453
454
|
|
|
454
455
|
if va.isExpired {
|
|
@@ -461,7 +462,8 @@ class Penthera: RCTEventEmitter, VirtuosoDownloadEngineNotificationsDelegate {
|
|
|
461
462
|
thumbnails: thumbnails,
|
|
462
463
|
isCompleted: va.downloadCompleteDateTime != nil ? true : false,
|
|
463
464
|
isPaused: va.isPaused,
|
|
464
|
-
percentage: Float(va.fractionComplete)
|
|
465
|
+
percentage: Float(va.fractionComplete),
|
|
466
|
+
creationTime: creationDate
|
|
465
467
|
)
|
|
466
468
|
offlineCatalogs.append(catalog)
|
|
467
469
|
}
|
package/ios/Util.swift
CHANGED
|
@@ -15,6 +15,13 @@ extension String {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
extension Date {
|
|
19
|
+
func toSeconds(format: String = "yyyy-MM-dd HH:mm:ss") -> String {
|
|
20
|
+
let seconds = Int(self.timeIntervalSince1970)
|
|
21
|
+
return String(seconds)
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
18
25
|
|
|
19
26
|
func parseOffers(offer: Any) -> Array<Offers> {
|
|
20
27
|
guard let offersArray = offer as? Array<Any> else {
|
|
@@ -139,3 +146,4 @@ func extractInteger(from string: String) -> Int {
|
|
|
139
146
|
}
|
|
140
147
|
return 0
|
|
141
148
|
}
|
|
149
|
+
|
|
@@ -19,6 +19,7 @@ export declare namespace PentheraTypes {
|
|
|
19
19
|
duration?: number;
|
|
20
20
|
dataOffers?: Category[];
|
|
21
21
|
percentage?: number;
|
|
22
|
+
creationTime?: string;
|
|
22
23
|
}
|
|
23
24
|
interface DataItem {
|
|
24
25
|
type?: string;
|
|
@@ -55,6 +56,7 @@ export declare namespace PentheraTypes {
|
|
|
55
56
|
expiryDate?: string;
|
|
56
57
|
mediaId: string;
|
|
57
58
|
vpid: string;
|
|
59
|
+
isReproduced?: boolean;
|
|
58
60
|
}
|
|
59
61
|
interface Classification {
|
|
60
62
|
code: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PentheraTypes.d.ts","sourceRoot":"","sources":["../../../src/interface/PentheraTypes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC,UAAiB,eAAe;QAC9B,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB;IAED,UAAiB,WAAW;QAC1B,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,IAAI,EAAE,QAAQ,CAAC;QACf,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"PentheraTypes.d.ts","sourceRoot":"","sources":["../../../src/interface/PentheraTypes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -20,6 +20,7 @@ export declare namespace PentheraTypes {
|
|
|
20
20
|
duration?: number;
|
|
21
21
|
dataOffers?: Category[];
|
|
22
22
|
percentage?: number;
|
|
23
|
+
creationTime?: string;
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
export interface DataItem {
|
|
@@ -55,6 +56,7 @@ export declare namespace PentheraTypes {
|
|
|
55
56
|
expiryDate?: string;
|
|
56
57
|
mediaId: string;
|
|
57
58
|
vpid: string;
|
|
59
|
+
isReproduced?: boolean;
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
export interface Classification {
|