@24i/smartapps-bigscreen-rnv-build-engine 0.17.6-alpha.8 → 0.17.6

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.
Files changed (58) hide show
  1. package/README.md +16 -12
  2. package/dist/src/constants/buildProductionPackages.js +1 -0
  3. package/dist/src/constants/delopyLivePlatforms.js +2 -1
  4. package/dist/src/constants/platforms.js +2 -0
  5. package/dist/src/engine.js +10 -0
  6. package/dist/src/resolvers/index.js +3 -1
  7. package/dist/src/resolvers/resolveBaseUrl.js +5 -24
  8. package/dist/src/resolvers/resolveProductionZipFileRelativePath.js +1 -2
  9. package/dist/src/resolvers/resolveS3BucketAppPath.js +15 -0
  10. package/dist/src/resolvers/shared/constructFullUrl.js +25 -0
  11. package/dist/src/scripts/buildAllWithSchemes.js +23 -4
  12. package/dist/src/scripts/release/appCenter/deployProductionPackagesToAppCenter.js +20 -10
  13. package/dist/src/scripts/release/urlsMarkdown.js +2 -0
  14. package/dist/src/scripts/releaseAllWithSchemes.js +3 -2
  15. package/dist/src/sdks/index.js +1 -0
  16. package/dist/src/sdks/sdk-androidtv/sdkAndroidtv.js +25 -9
  17. package/dist/src/sdks/sdk-tizen/sdkTizen.js +2 -0
  18. package/dist/src/sdks/sdk-webos/sdkWebos.js +2 -0
  19. package/dist/src/sdks/sdk-webpack/sdkWebpack.js +2 -0
  20. package/dist/src/tasks/deploy/aswS3/deployS3.js +3 -10
  21. package/dist/src/tasks/deploy/aswS3/distToLiveS3.js +4 -5
  22. package/dist/src/tasks/deploy/hbbtv/deployHbbtv.js +1 -1
  23. package/dist/src/tasks/task.rnv.build.js +16 -6
  24. package/dist/src/tasks/task.rnv.configure.js +2 -0
  25. package/dist/src/tasks/task.rnv.deploy.js +2 -0
  26. package/dist/src/tasks/task.rnv.platform.configure.js +33 -1
  27. package/dist/src/tasks/task.rnv.start.js +2 -0
  28. package/dist/src/utils/copyTheoPlayerLibs.js +48 -0
  29. package/dist/src/utils/zipStagingProdBuildsByPlatforms.js +3 -3
  30. package/dist/templates/platforms/androidtv/project/amazoniap/build.gradle +2 -2
  31. package/dist/templates/platforms/androidtv/project/app/build.gradle +17 -21
  32. package/dist/templates/platforms/androidtv/project/app/proguard-rules.pro +15 -0
  33. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/raw/configuration.json +1 -2
  34. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeFromJavaScript.kt +4 -58
  35. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeToJavaScript.kt +15 -0
  36. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/BridgeConfig.kt +2 -1
  37. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityModule.kt +0 -3
  38. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ApplicationModule.kt +2 -2
  39. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/PerActivity.kt +0 -0
  40. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryConfigured.kt +33 -0
  41. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryExoPlayerCustomized.kt +7 -1
  42. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryTheoPlayerCustomized.kt +14 -0
  43. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryVersion.kt +27 -0
  44. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/SourceDrmOverridden.kt +42 -0
  45. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/MediaEventType.kt +3 -0
  46. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/SourceParser.kt +89 -0
  47. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/Mainview.kt +0 -3
  48. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/PlayerCache.kt +2 -2
  49. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/WebViewActivity.kt +24 -83
  50. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/viewmodel/WebViewModel.kt +48 -111
  51. package/dist/templates/platforms/androidtv/project/app/src/main/res/layout/activity_web_view.xml +23 -71
  52. package/dist/templates/platforms/androidtv/project/common/build.gradle +2 -2
  53. package/dist/templates/platforms/androidtv/project/googleiap/build.gradle +2 -2
  54. package/package.json +1 -1
  55. package/renative.engine.json +2 -0
  56. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/jump/JumpAnalytics.kt +0 -211
  57. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/ContentModelParser.kt +0 -16
  58. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/DeviceInfoParser.kt +0 -22
@@ -1,211 +0,0 @@
1
- package com.twentyfouri.tvbridge.jump
2
-
3
- import android.util.Log
4
- import com.google.android.exoplayer2.ExoPlayer
5
- import com.google.android.exoplayer2.SimpleExoPlayer
6
- import com.google.gson.JsonObject
7
- import com.twentyfouri.tvbridge.BuildConfig
8
- import com.twentyfouri.tvbridge.webview.model.AnalyticsPlaybackInfo
9
- import jump.JumpKit
10
- import jump.insights.models.contextinformation.*
11
- import jump.insights.models.track.events.JKContentType
12
- import jump.insights.models.track.events.JKTransactionType
13
- import jump.libs.gson.annotations.SerializedName
14
- import java.util.*
15
-
16
- class JumpAnalytics {
17
-
18
- private var started = false
19
- private var hasContent = false
20
-
21
- fun setPlaybackInfo(playbackInfo: AnalyticsPlaybackInfo) {
22
- setApplicationId(playbackInfo.id ?: return)
23
- setUserInfo(playbackInfo.userInfo)
24
- setContentInfo(playbackInfo.contentInfo)
25
- }
26
-
27
- private fun setApplicationId(applicationId: String) {
28
- if (started) return
29
- started = true
30
- JumpKit.setDebugMode(BuildConfig.DEBUG)
31
- JumpKit.start(applicationId)
32
- }
33
-
34
- private fun setUserInfo(params: JsonObject?) {
35
- JumpKit.insights.setUserInfo(parseUserInfo(params))
36
- }
37
-
38
- private fun setContentInfo(params: JsonObject?) {
39
- val contentInfo = parseContentInfo(params)
40
- jump.exoplayerextension.JumpKit.insights.setContentInfo(contentInfo)
41
- hasContent = true
42
- }
43
-
44
- fun setVideoPlayer(player: ExoPlayer?) {
45
- @Suppress("DEPRECATION")
46
- if (player !is SimpleExoPlayer) {
47
- /* NOTICE: passing null also causes insights.setContentInfo(null) */
48
- jump.exoplayerextension.JumpKit.insights.setVideoPlayer(null)
49
- hasContent = false
50
- } else if (started && hasContent) {
51
- jump.exoplayerextension.JumpKit.insights.setVideoPlayer(player)
52
- } else if (started) {
53
- Log.w("JumpAnalytics", "No content data available. Did you call SetPlaybackInfo before SetVideoPath?")
54
- }
55
- }
56
-
57
- private fun parseUserInfo(params: JsonObject?): JKUserInfo {
58
- return try {
59
- var userType = parseEnum(params, "userType", JKUserType::class.java)
60
- if (userType == null) userType = JKUserType.ANONYMOUS
61
- val userId = parseString(params, "userId")
62
- val userCountry = parseString(params, "userCountry")
63
- val userBirthDate = parseString(params, "userBirthDate")
64
- var userSex = parseEnum(params, "userSex", JKUserSex::class.java)
65
- if (userSex == null) userSex = JKUserSex.UNDEFINED
66
- val userProfileId = parseString(params, "userProfileId")
67
- val userOperator = parseString(params, "userOperator")
68
- if (userType == JKUserType.ANONYMOUS) JKUserInfo.anonymousInstance() else JKUserInfo(userType, userId, userCountry, userBirthDate, userSex, userProfileId, userOperator)
69
- } catch (e: Exception) {
70
- Log.w("JumpAnalytics", "Parsing userInfo failed. Falling back to ANONYMOUS", e)
71
- JKUserInfo.anonymousInstance()
72
- }
73
- }
74
-
75
- private fun parseCategory(params: JsonObject?, property: String): JKContextCategory? {
76
- val jsonValue = params?.get(property) ?: return null
77
- return if (!jsonValue.isJsonObject) null else parseCategory(jsonValue.asJsonObject)
78
- }
79
-
80
- private fun parseCategory(params: JsonObject): JKContextCategory {
81
- return JKContextCategory(
82
- parseString(params, "categoryId"),
83
- parseString(params, "categoryName")
84
- )
85
- }
86
-
87
- private fun parseSubCategory(params: JsonObject?, property: String): JKContextSubcategory? {
88
- val jsonValue = params?.get(property) ?: return null
89
- return if (!jsonValue.isJsonObject) null else parseSubCategory(jsonValue.asJsonObject)
90
- }
91
-
92
- private fun parseSubCategory(params: JsonObject): JKContextSubcategory {
93
- return JKContextSubcategory(
94
- parseString(params, "subcategoryId"),
95
- parseString(params, "categoryId"),
96
- parseString(params, "subcategoryName")
97
- )
98
- }
99
-
100
- private fun parseGenre(params: JsonObject): JKContextGenre {
101
- return JKContextGenre(
102
- parseString(params, "genreId"),
103
- parseString(params, "genreName"),
104
- parseCategory(params, "categoryId"),
105
- parseSubCategory(params, "subCategoryId")
106
- )
107
- }
108
-
109
- private fun parseContentInfo(params: JsonObject?): JKContextContent {
110
- return JKContextContent(
111
- parseString(params, "contentId"),
112
- parseString(params, "contentTitle"),
113
- parseString(params, "contentSerieTitle"),
114
- parseInteger(params, "contentEpisodeNumber"),
115
- parseInteger(params, "contentSeasonNumber"),
116
- parseString(params, "contentDescription"),
117
- parseCategory(params, "contentCategory"),
118
- parseSubCategory(params, "contentSubCategory"),
119
- parseGenres(params, "contentGenres"),
120
- parseString(params, "contentProvider"),
121
- parseEnum(params, "contentTransactionType", JKTransactionType::class.java),
122
- parseEnum(params, "contentType", JKContentType::class.java),
123
- parseString(params, "contentLanguage")
124
- )
125
- }
126
-
127
- private fun parseGenres(container: JsonObject?, property: String): List<JKContextGenre>? {
128
- if (container == null) return null
129
- val jsonValue = container[property] ?: return null
130
- if (!jsonValue.isJsonArray) return null
131
- val list = ArrayList<JKContextGenre>()
132
- for (jsonElement in jsonValue.asJsonArray) {
133
- if (!jsonElement.isJsonObject) continue
134
- list.add(parseGenre(jsonElement.asJsonObject))
135
- }
136
- return list
137
- }
138
-
139
- private fun <T : Enum<T>> parseEnum(container: JsonObject?, property: String, type: Class<T>): T? {
140
- if (container == null) return null
141
- val jsonValue = container[property] ?: return null
142
- if (!jsonValue.isJsonPrimitive) return null
143
- val primitive = jsonValue.asJsonPrimitive
144
- return when {
145
- primitive.isString ->
146
- parseEnum(type, jsonValue.asString)
147
- primitive.isNumber ->
148
- parseEnum(type, jsonValue.asInt)
149
- else ->
150
- null
151
- }
152
- }
153
-
154
- private fun <T : Enum<T>> parseEnum(type: Class<T>, value: String): T? {
155
- try {
156
- for (constant in type.enumConstants ?: return null) {
157
- val name = constant.name
158
- if (name == value) {
159
- return constant
160
- }
161
- val annotation = type.getField(name).getAnnotation(SerializedName::class.java)
162
- if (annotation != null) {
163
- if (annotation.value == value) {
164
- return constant
165
- }
166
- }
167
- }
168
- return null
169
- } catch (e: NoSuchFieldException) {
170
- return null
171
- }
172
- }
173
-
174
- @Suppress("UNCHECKED_CAST")
175
- private fun <T : Enum<T>> parseEnum(type: Class<T>, value: Int): T? {
176
- return try {
177
- val map = type.getDeclaredField("mapper")[null] as Map<T, Int>
178
- for ((key, value1) in map) {
179
- if (value1 == value) {
180
- return key
181
- }
182
- }
183
- null
184
- } catch (e: ClassCastException) {
185
- null
186
- } catch (e: IllegalAccessException) {
187
- null
188
- } catch (e: NoSuchFieldException) {
189
- null
190
- }
191
- }
192
-
193
- private fun parseString(container: JsonObject?, property: String): String? {
194
- if (container == null) return null
195
- var jsonValue = container[property]
196
- if (jsonValue == null && property.endsWith("Id")) {
197
- // inconsistencies in SDK cause confusion, try uppercased xxxxID just in case
198
- jsonValue = container[property.replace("Id", "ID")]
199
- }
200
- if (jsonValue == null) return null
201
- if (!jsonValue.isJsonPrimitive) return null
202
- return if (!jsonValue.asJsonPrimitive.isString) null else jsonValue.asString
203
- }
204
-
205
- private fun parseInteger(container: JsonObject?, property: String): Int? {
206
- if (container == null) return null
207
- val jsonValue = container[property] ?: return null
208
- if (!jsonValue.isJsonPrimitive) return null
209
- return if (!jsonValue.asJsonPrimitive.isNumber) null else jsonValue.asInt
210
- }
211
- }
@@ -1,16 +0,0 @@
1
- package com.twentyfouri.tvbridge.webview.parser
2
-
3
- import com.google.gson.Gson
4
- import com.twentyfouri.tvbridge.webview.model.ContentModel
5
-
6
- object ContentModelParser {
7
- fun stringToJson(json: String?): ContentModel? = when {
8
- json.isNullOrEmpty() -> null
9
- json.startsWith("http://") || json.startsWith("https://") ->
10
- ContentModel().apply {
11
- streamUrl = json
12
- }
13
- else ->
14
- Gson().fromJson(json, ContentModel::class.java)
15
- }
16
- }
@@ -1,22 +0,0 @@
1
- package com.twentyfouri.tvbridge.webview.parser
2
-
3
- import android.os.Build
4
- import org.json.JSONException
5
- import org.json.JSONObject
6
-
7
- object DeviceInfoParser {
8
- // TODO Auto-generated catch block
9
- val deviceInfoParsed: String
10
- get() {
11
- val deviceInfo = JSONObject()
12
- try {
13
- deviceInfo.put("deviceBrand", Build.MANUFACTURER)
14
- deviceInfo.put("deviceModel", Build.MODEL)
15
- deviceInfo.put("osVersion", Build.VERSION.RELEASE)
16
- } catch (e: JSONException) {
17
- // TODO Auto-generated catch block
18
- e.printStackTrace()
19
- }
20
- return deviceInfo.toString()
21
- }
22
- }