@takeoffmedia/react-native-penthera 0.7.0 → 0.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.
@@ -29,6 +29,7 @@ import com.takeoffmediareactnativepenthera.AssetQueueObserver
29
29
  import com.takeoffmediareactnativepenthera.EventEmitter
30
30
  import com.takeoffmediareactnativepenthera.PentheraEvent
31
31
  import com.takeoffmediareactnativepenthera.virtuoso.errors.PentheraErrors
32
+ import com.takeoffmediareactnativepenthera.virtuoso.util.Util
32
33
  import org.json.JSONArray
33
34
  import org.json.JSONObject
34
35
  import java.net.MalformedURLException
@@ -37,6 +38,7 @@ import java.util.UUID
37
38
  import okhttp3.OkHttpClient
38
39
  import okhttp3.Request
39
40
  import java.io.IOException
41
+ import kotlinx.coroutines.delay
40
42
 
41
43
  class OfflineVideoEngine(private val context: ReactApplicationContext) {
42
44
  private val virtuoso = Virtuoso(context)
@@ -173,6 +175,7 @@ class OfflineVideoEngine(private val context: ReactApplicationContext) {
173
175
  val dataMap = mutableMapOf<String, Any>()
174
176
  var eap = ""
175
177
  var ead = ""
178
+ var creationTime = ""
176
179
  for (columnName in columnNames) {
177
180
  val columnIndex = cursor.getColumnIndex(columnName)
178
181
  if (columnIndex >= 0) {
@@ -212,6 +215,9 @@ class OfflineVideoEngine(private val context: ReactApplicationContext) {
212
215
  if (columnName == "eap") {
213
216
  eap = value
214
217
  }
218
+ if (columnName == "creationTime") {
219
+ creationTime = value
220
+ }
215
221
  if (columnName == "activePercentOfDownloads") {
216
222
  val percentage = value.toDouble() * 100
217
223
  val isComplete = percentage == 100.0
@@ -219,6 +225,7 @@ class OfflineVideoEngine(private val context: ReactApplicationContext) {
219
225
  }
220
226
  if (columnName == "firstPlayTime") {
221
227
  (dataMap["data"] as? MutableMap<String, Any> ?: mutableMapOf()).apply {
228
+ put("creationTime", if (value == "0") creationTime else value)
222
229
  put("effectiveExpiryDate", if (value == "0") ead else eap);
223
230
  put("isReproduced", value != "0");
224
231
  }.also { dataMap["data"] = it }
@@ -266,7 +273,7 @@ class OfflineVideoEngine(private val context: ReactApplicationContext) {
266
273
  "Asset is null"
267
274
  )
268
275
  return
269
- }
276
+ }
270
277
  val body: String
271
278
  val status = asset.downloadStatus
272
279
  body = when (status) {
@@ -318,43 +325,45 @@ class OfflineVideoEngine(private val context: ReactApplicationContext) {
318
325
 
319
326
 
320
327
  fun getByAssetId(assetId: String): String? {
321
- // load asset if it has already been downloaded
328
+ return Util.retryWithDelay(maxRetries = 5, delayMillis = 1000) {
322
329
  val list: MutableList<IIdentifier> = virtuoso.assetManager.getByAssetId(assetId)
330
+ if (list.isNotEmpty()) {
331
+ val asset = list[0] as VirtuosoSegmentedFile
323
332
 
324
- list.let {
325
- if (it.isNotEmpty()) {
326
- asset = list[0] as VirtuosoSegmentedFile
327
-
328
- // This a workaround to works ancillary files
329
- val offlineUrl = asset?.playbackURL
330
- if (offlineUrl != null) {
331
- val request = Request.Builder()
332
- .url(offlineUrl.toString())
333
- .build()
333
+ // This is a workaround to handle ancillary files
334
+ val offlineUrl = asset.playbackURL
335
+ if (offlineUrl != null) {
336
+ val request = Request.Builder()
337
+ .url(offlineUrl.toString())
338
+ .build()
334
339
 
340
+ try {
335
341
  client.newCall(request).execute().use { response ->
336
342
  if (!response.isSuccessful) throw IOException("Unexpected code $response")
337
343
  }
338
344
 
339
345
  val keyValueMap = HashMap<String, Any>()
340
346
  keyValueMap["offlineUrl"] = offlineUrl.toString()
341
- keyValueMap["metadata"] = asset?.metadata.toString()
347
+ keyValueMap["metadata"] = asset.metadata.toString()
342
348
 
343
349
  val ancillaryFiles = (asset as ISegmentedAsset).getAncillaryFiles(context)
344
350
 
345
351
  // HERE THE ASSET MANIFEST IS REQUESTED
346
352
  keyValueMap["ancillary"] = ancillaryFiles
347
- return gson.toJson(keyValueMap)
348
- } else {
349
- // Handle the case where offlineUrl is null
350
- println("Error: offlineUrl is null")
353
+ return@retryWithDelay gson.toJson(keyValueMap)
354
+ } catch (e: IOException) {
355
+ println("Error: ${e.message}")
351
356
  }
352
-
357
+ } else {
358
+ // Handle the case where offlineUrl is null
359
+ println("Error: offlineUrl is null")
353
360
  }
354
361
  }
355
- return null
362
+ null
363
+ }
356
364
  }
357
365
 
366
+
358
367
  private fun toSubtitleMimeType(format: String?): String? {
359
368
  if (format == null) {
360
369
  return null
@@ -55,5 +55,29 @@ object Util {
55
55
  }
56
56
  }
57
57
 
58
+ fun <T> retryWithDelay(
59
+ maxRetries: Int,
60
+ delayMillis: Long,
61
+ block: () -> T?
62
+ ): T? {
63
+ var retryCount = 0
64
+ var result: T? = null
65
+
66
+ while (result == null && retryCount < maxRetries) {
67
+ result = block()
68
+ if (result == null) {
69
+ retryCount++
70
+ try {
71
+ Thread.sleep(delayMillis)
72
+ } catch (e: InterruptedException) {
73
+ Thread.currentThread().interrupt()
74
+ return null
75
+ }
76
+ }
77
+ }
78
+
79
+ return result
80
+ }
81
+
58
82
 
59
83
  }
@@ -20,13 +20,6 @@ class Penthera: RCTEventEmitter, VirtuosoDownloadEngineNotificationsDelegate {
20
20
  var assetError: String = ""
21
21
  var vcHttpServer: VirtuosoClientHTTPServer? = nil
22
22
 
23
- func getAssetId(asset: VirtuosoAsset) -> String {
24
- if let mediaId = asset.userInfo?["mediaId"] as? String {
25
- return mediaId
26
- } else {
27
- return asset.assetID
28
- }
29
- }
30
23
 
31
24
  func updateStatusInfo() {
32
25
  DispatchQueue.global().async {
@@ -146,16 +139,7 @@ class Penthera: RCTEventEmitter, VirtuosoDownloadEngineNotificationsDelegate {
146
139
  }
147
140
  }
148
141
 
149
- func timeIntervalToString(_ timeInterval: TimeInterval?) -> String {
150
- let formatter = DateComponentsFormatter()
151
- formatter.allowedUnits = [.hour, .minute, .second]
152
- formatter.unitsStyle = .positional
153
- formatter.zeroFormattingBehavior = .pad
154
- guard let interval = timeInterval else {
155
- return "00:00:00"
156
- }
157
- return formatter.string(from: interval) ?? "00:00:00"
158
- }
142
+
159
143
 
160
144
  func dateToString (_ date: Date?) -> String? {
161
145
  let dateFormatter = DateFormatter()
@@ -414,69 +398,9 @@ class Penthera: RCTEventEmitter, VirtuosoDownloadEngineNotificationsDelegate {
414
398
 
415
399
  var offlineCatalogs: [OfflineCatalog] = []
416
400
 
417
- // Process completed and pending assets using a shared function
418
- func processAsset(_ va: VirtuosoAsset) {
419
- let thumbnail = va.findAllAncillaries(withTag: "thumbnail").first
420
- let show = va.findAllAncillaries(withTag: "show").first
421
- let thumbnails = Thumbnails(
422
- thumbnail: thumbnail?.fileDownloadURL ?? "",
423
- show: show?.fileDownloadURL ?? ""
424
- )
425
-
426
- let expiryDate = va.expiryDate
427
- let effectiveExpiryDate = va.effectiveExpiryDate
428
- let isReproduced = va.firstPlayDateTime
429
- let creationDate = va.creationDateTime.toSeconds()
430
-
431
- var dataItem = DataItem(
432
- title: va.userInfo?["title"] as? String,
433
- seasonId: va.userInfo?["seasonId"] as? String,
434
- seasonTitle: va.userInfo?["seasonTitle"] as? String,
435
- duration: va.duration,
436
- estimatedSize: Int(va.estimatedSize),
437
- dataOffers: parseDataOffersInObject(anyElement: va.userInfo?["dataOffers"] as Any),
438
- expiryAfterPlay: timeIntervalToString(va.expiryAfterPlay),
439
- expiryAfterDownload: timeIntervalToString(va.expiryAfterDownload),
440
- isExpired: va.isExpired,
441
- inForcedExpire: va.inForcedExpire,
442
- isReproduced: isReproduced != nil,
443
- mediaId: va.userInfo?["mediaId"] as? String,
444
- vpid: va.userInfo?["vpid"] as? String
445
- )
446
-
447
- if let effectiveExpiryDate = effectiveExpiryDate {
448
- dataItem.effectiveExpiryDate = isReproduced != nil ? va.expiryAfterPlay : va.expiryAfterDownload
449
- }
450
-
451
- if let expiryDate = expiryDate {
452
- dataItem.expiryDate = va.expiryDate
453
- }
454
-
455
- if va.isExpired {
456
- va.delete()
457
- } else {
458
- let catalog = OfflineCatalog(
459
- id: getAssetId(asset: va), // Change vpid to assetId
460
- title: va.description,
461
- data: dataItem,
462
- thumbnails: thumbnails,
463
- isCompleted: va.downloadCompleteDateTime != nil ? true : false,
464
- isPaused: va.isPaused,
465
- percentage: Float(va.fractionComplete),
466
- creationTime: creationDate
467
- )
468
- offlineCatalogs.append(catalog)
469
- }
470
- }
471
-
472
- // Process completed assets
473
- for case let va as VirtuosoAsset in completedAssets {
474
- processAsset(va)
475
- }
476
-
477
- // Process pending assets
478
- for case let va as VirtuosoAsset in pendingAssets {
479
- processAsset(va)
401
+ let allAssets = completedAssets + pendingAssets
402
+ for case let va as VirtuosoAsset in allAssets {
403
+ offlineCatalogs.append(processAsset(va))
480
404
  }
481
405
 
482
406
  let encoder = JSONEncoder()
package/ios/Util.swift CHANGED
@@ -1,5 +1,5 @@
1
1
  import Foundation
2
-
2
+ import VirtuosoClientDownloadEngine
3
3
 
4
4
  extension String {
5
5
  func getDictionary() -> [String:AnyObject]? {
@@ -147,3 +147,79 @@ func extractInteger(from string: String) -> Int {
147
147
  return 0
148
148
  }
149
149
 
150
+ // Process completed and pending assets using a shared function
151
+ func processAsset(_ va: VirtuosoAsset) -> OfflineCatalog {
152
+ var catalog = OfflineCatalog(id: "", isCompleted: false, isPaused: false, creationTime: "")
153
+ let thumbnail = va.findAllAncillaries(withTag: "thumbnail").first
154
+ let show = va.findAllAncillaries(withTag: "show").first
155
+ let thumbnails = Thumbnails(
156
+ thumbnail: thumbnail?.fileDownloadURL ?? "",
157
+ show: show?.fileDownloadURL ?? ""
158
+ )
159
+
160
+ let expiryDate = va.expiryDate
161
+ let effectiveExpiryDate = va.effectiveExpiryDate
162
+ let isReproduced = va.firstPlayDateTime
163
+ let creationDate = va.creationDateTime.toSeconds()
164
+ let firstPlayDate = va.firstPlayDateTime?.toSeconds()
165
+
166
+ var dataItem = DataItem(
167
+ title: va.userInfo?["title"] as? String,
168
+ seasonId: va.userInfo?["seasonId"] as? String,
169
+ seasonTitle: va.userInfo?["seasonTitle"] as? String,
170
+ duration: va.duration,
171
+ estimatedSize: Int(va.estimatedSize),
172
+ dataOffers: parseDataOffersInObject(anyElement: va.userInfo?["dataOffers"] as Any),
173
+ expiryAfterPlay: timeIntervalToString(va.expiryAfterPlay),
174
+ expiryAfterDownload: timeIntervalToString(va.expiryAfterDownload),
175
+ isExpired: va.isExpired,
176
+ inForcedExpire: va.inForcedExpire,
177
+ isReproduced: isReproduced != nil,
178
+ mediaId: va.userInfo?["mediaId"] as? String,
179
+ vpid: va.userInfo?["vpid"] as? String
180
+ )
181
+
182
+ if effectiveExpiryDate != nil {
183
+ dataItem.effectiveExpiryDate = isReproduced != nil ? va.expiryAfterPlay : va.expiryAfterDownload
184
+ }
185
+
186
+ if expiryDate != nil {
187
+ dataItem.expiryDate = va.expiryDate
188
+ }
189
+
190
+ if va.isExpired {
191
+ va.delete()
192
+ } else {
193
+ catalog = OfflineCatalog(
194
+ id: getAssetId(asset: va), // Change vpid to assetId
195
+ title: va.description,
196
+ data: dataItem,
197
+ thumbnails: thumbnails,
198
+ isCompleted: va.downloadCompleteDateTime != nil ? true : false,
199
+ isPaused: va.isPaused,
200
+ percentage: Float(va.fractionComplete),
201
+ creationTime: isReproduced != nil ? firstPlayDate : creationDate
202
+ )
203
+ }
204
+ return catalog
205
+ }
206
+
207
+ func timeIntervalToString(_ timeInterval: TimeInterval?) -> String {
208
+ let formatter = DateComponentsFormatter()
209
+ formatter.allowedUnits = [.hour, .minute, .second]
210
+ formatter.unitsStyle = .positional
211
+ formatter.zeroFormattingBehavior = .pad
212
+ guard let interval = timeInterval else {
213
+ return "00:00:00"
214
+ }
215
+ return formatter.string(from: interval) ?? "00:00:00"
216
+ }
217
+
218
+ func getAssetId(asset: VirtuosoAsset) -> String {
219
+ if let mediaId = asset.userInfo?["mediaId"] as? String {
220
+ return mediaId
221
+ } else {
222
+ return asset.assetID
223
+ }
224
+ }
225
+
@@ -59,6 +59,7 @@ export declare namespace PentheraTypes {
59
59
  vpid: string;
60
60
  isReproduced?: boolean;
61
61
  hasZoom?: boolean;
62
+ infoVideoPlayer?: IInfoVideoPlayer;
62
63
  }
63
64
  interface Classification {
64
65
  code: string;
@@ -160,5 +161,11 @@ export declare namespace PentheraTypes {
160
161
  maxStorageAllowed?: string;
161
162
  minimumLowBandWidth?: string;
162
163
  }
164
+ interface IInfoVideoPlayer {
165
+ title: string;
166
+ description: string;
167
+ advisoryClassification: string;
168
+ advisoryDescription: string;
169
+ }
163
170
  }
164
171
  //# sourceMappingURL=PentheraTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PentheraTypes.d.ts","sourceRoot":"","sources":["../../../src/interface/PentheraTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PentheraTypes.d.ts","sourceRoot":"","sources":["../../../src/interface/PentheraTypes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takeoffmedia/react-native-penthera",
3
- "version": "0.7.0",
3
+ "version": "0.8.1",
4
4
  "description": "test",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -165,4 +165,4 @@
165
165
  "dependencies": {
166
166
  "zustand": "^4.4.0"
167
167
  }
168
- }
168
+ }
@@ -59,6 +59,7 @@ export declare namespace PentheraTypes {
59
59
  vpid: string;
60
60
  isReproduced?: boolean;
61
61
  hasZoom?: boolean;
62
+ infoVideoPlayer?: IInfoVideoPlayer;
62
63
  }
63
64
 
64
65
  export interface Classification {
@@ -170,4 +171,11 @@ export declare namespace PentheraTypes {
170
171
  maxStorageAllowed?: string;
171
172
  minimumLowBandWidth?: string;
172
173
  }
174
+
175
+ export interface IInfoVideoPlayer {
176
+ title: string;
177
+ description: string;
178
+ advisoryClassification: string;
179
+ advisoryDescription: string;
180
+ }
173
181
  }