@24i/smartapps-bigscreen-rnv-build-engine 0.17.2-alpha.2162 → 0.17.2-alpha.2164

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 (42) hide show
  1. package/dist/src/resolvers/resolveBuildFileExtension.js +1 -0
  2. package/dist/src/sdks/sdk-androidtv/sdkAndroidtv.js +46 -7
  3. package/dist/src/tasks/task.rnv.build.js +1 -0
  4. package/dist/templates/platforms/androidtv/project/amazoniap/build.gradle +1 -3
  5. package/dist/templates/platforms/androidtv/project/app/build.gradle +270 -37
  6. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/drawable/banner.png +0 -0
  7. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/raw/configuration.json +4 -1
  8. package/dist/templates/platforms/androidtv/project/app/src/kan/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  9. package/dist/templates/platforms/androidtv/project/app/src/kan/res/drawable/banner.png +0 -0
  10. package/dist/templates/platforms/androidtv/project/app/src/kan/res/mipmap-hdpi/ic_launcher.png +0 -0
  11. package/dist/templates/platforms/androidtv/project/app/src/kan/res/mipmap-mdpi/ic_launcher.png +0 -0
  12. package/dist/templates/platforms/androidtv/project/app/src/kan/res/mipmap-xhdpi/ic_launcher.png +0 -0
  13. package/dist/templates/platforms/androidtv/project/app/src/kan/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  14. package/dist/templates/platforms/androidtv/project/app/src/kan/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  15. package/dist/templates/platforms/androidtv/project/app/src/kan/res/raw/configuration.json +9 -0
  16. package/dist/templates/platforms/androidtv/project/app/src/main/AndroidManifest.xml +8 -2
  17. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeFromJavaScript.kt +19 -13
  18. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeToJavaScript.kt +32 -14
  19. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/BridgeConfig.kt +7 -0
  20. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityModule.kt +5 -3
  21. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/LoggingDrmCallback.kt +15 -23
  22. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/OverriddenHttpMediaDrmCallback.kt +134 -0
  23. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryExoPlayerCustomized.kt +84 -0
  24. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/SourceDrmOverridden.kt +49 -0
  25. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/jump/JumpAnalytics.kt +4 -2
  26. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/client/BridgeWebView.kt +2 -0
  27. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/MediaEventType.kt +3 -0
  28. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/TrackJsonModelParser.kt +37 -55
  29. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/Mainview.kt +1 -3
  30. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/PlayerCache.kt +2 -2
  31. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/WebViewActivity.kt +40 -18
  32. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/viewmodel/WebViewModel.kt +173 -171
  33. package/dist/templates/platforms/androidtv/project/app/src/main/res/layout/activity_web_view.xml +2 -4
  34. package/dist/templates/platforms/androidtv/project/app/src/main/res/values/styles.xml +1 -0
  35. package/dist/templates/platforms/androidtv/project/build.gradle +6 -10
  36. package/dist/templates/platforms/androidtv/project/common/build.gradle +1 -3
  37. package/dist/templates/platforms/androidtv/project/googleiap/build.gradle +1 -3
  38. package/dist/templates/platforms/androidtv/project/gradle/wrapper/gradle-wrapper.properties +3 -3
  39. package/dist/templates/platforms/androidtv/project/gradle.properties +1 -2
  40. package/dist/templates/platforms/androidtv/project/keystore/kan11_applicaster.keystore +0 -0
  41. package/dist/templates/platforms/androidtv/project/local.properties +8 -0
  42. package/package.json +1 -1
@@ -6,6 +6,7 @@ const resolveBuildFileExtension = (platform) => {
6
6
  switch (platform) {
7
7
  case constants_1.Platforms.TIZEN: return 'wgt';
8
8
  case constants_1.Platforms.WEBOS: return 'ipk';
9
+ case constants_1.Platforms.ANDROIDTV: return 'apk';
9
10
  default: return 'zip';
10
11
  }
11
12
  };
@@ -34,7 +34,13 @@ const sdk_webpack_1 = require("@rnv/sdk-webpack");
34
34
  const sdk_webpack_2 = require("../sdk-webpack");
35
35
  const sdk_utils_1 = require("../sdk-utils");
36
36
  const services_1 = require("../sdk-utils/sdk-installer/services");
37
+ const resolvers_1 = require("../../resolvers");
37
38
  const constants_1 = require("../../constants");
39
+ const flavourName = 'bigscreenAppstage';
40
+ const buildType = 'debug';
41
+ const capitalizeFirstLetter = (str) => {
42
+ return str.charAt(0).toUpperCase() + str.slice(1);
43
+ };
38
44
  const buildAndroidTVProject = async (c) => {
39
45
  rnv_1.Logger.logTask('buildAndroidTVProject');
40
46
  await (0, sdk_webpack_2.buildCoreWebpackProject)(c);
@@ -42,11 +48,13 @@ const buildAndroidTVProject = async (c) => {
42
48
  const projectDir = rnv_1.Common.getPlatformProjectDir(c);
43
49
  const projectParentDir = path.join(projectDir, '..');
44
50
  const tOut = path.join(projectParentDir, 'output');
45
- const flavourName = 'bigscreenAppstage';
46
51
  const apkFileName = `app-${flavourName}-debug.apk`;
47
52
  const apkFilePath = path.join(projectDir, `app/build/outputs/apk/${flavourName}/debug/${apkFileName}`);
48
53
  const gradlew = './gradlew';
49
- (0, child_process_1.execSync)(`cd ${projectDir} && ${gradlew} assembleBigscreenAppstageDebug`);
54
+ const taskBuildType = buildType === 'debug' ? 'Debug' : 'Release';
55
+ const taskFlavourName = capitalizeFirstLetter(flavourName);
56
+ const taskName = `assemble${taskFlavourName}${taskBuildType}`;
57
+ (0, child_process_1.execSync)(`cd ${projectDir} && ${gradlew} ${taskName}`);
50
58
  if (!fs.existsSync(tOut)) {
51
59
  fs.mkdirSync(tOut);
52
60
  }
@@ -60,27 +68,58 @@ const configureProject = (c) => {
60
68
  rnv_1.Logger.logTask('configureProject');
61
69
  const buildGradleFileName = 'build.gradle';
62
70
  const buildGradleFilePath = path.join(rnv_1.Common.getPlatformProjectDir(c), 'app', buildGradleFileName);
63
- const p = c.buildConfig.platforms[c.platform] || {};
64
- const versionName = semver.coerce(rnv_1.Common.getAppVersion(c, c.platform));
65
- const versionCode = 123;
71
+ const version = semver.coerce(rnv_1.Common.getAppVersion(c, c.platform));
72
+ const semVerObj = semver.parse(version);
73
+ if (!semVerObj) {
74
+ throw new Error(`Failed to parse Application version: ${version}`);
75
+ }
76
+ const major = `${semVerObj.major}`.padStart(2, '0');
77
+ const minor = `${semVerObj.minor}`.padStart(2, '0');
78
+ const patch = `${semVerObj.patch}`.padStart(2, '0');
79
+ const versionCode = parseInt(`${major}${minor}${patch}00`, 10);
80
+ const appId = rnv_1.Common.getConfigProp(c, c.platform, 'id', '');
66
81
  const injects = [{
67
82
  pattern: '{{APP_VERSION_CODE}}',
68
83
  override: versionCode,
69
84
  }, {
70
85
  pattern: '{{APP_VERSION_NAME}}',
71
- override: versionName,
86
+ override: version,
87
+ }, {
88
+ pattern: '{{APP_ID}}',
89
+ override: appId,
72
90
  }];
73
91
  rnv_1.Common.addSystemInjects(c, injects);
74
92
  rnv_1.FileUtils.writeCleanFile(buildGradleFilePath, buildGradleFilePath, injects, null, c);
75
93
  };
94
+ const getHostedAppEntryUrl = (c) => {
95
+ const { platform, runtime } = c;
96
+ const baseUrl = (0, resolvers_1.resolveBaseUrl)({
97
+ platform,
98
+ scheme: runtime.scheme || '',
99
+ flavour: runtime.appId,
100
+ });
101
+ return `${baseUrl}/public/index.html`;
102
+ };
103
+ const configureEntryUrl = (c) => {
104
+ rnv_1.Logger.logTask('configureEntryUrl');
105
+ const entryUrl = getHostedAppEntryUrl(c);
106
+ const configFileName = 'configuration.json';
107
+ const injects = [{
108
+ pattern: '{{APP_URL}}',
109
+ override: entryUrl,
110
+ }];
111
+ const file = path.join(rnv_1.Common.getPlatformProjectDir(c), 'app/src', flavourName, 'res/raw', configFileName);
112
+ rnv_1.FileUtils.writeCleanFile(file, file, injects, null, c);
113
+ };
76
114
  const configureAndroidTVProject = async (c) => {
77
115
  rnv_1.Logger.logTask('configureAndroidTVProject');
78
116
  c.runtime.platformBuildsProjectPath = rnv_1.Common.getPlatformProjectDir(c);
79
117
  const platform = constants_1.Platforms.ANDROIDTV;
80
- await rnv_1.ProjectManager.copyAssetsFolder(c, platform);
118
+ await rnv_1.ProjectManager.copyAssetsFolder(c, platform, `app/src/${flavourName}/res`);
81
119
  await (0, sdk_webpack_1.configureCoreWebProject)(c);
82
120
  await configureAndroidProperties(c);
83
121
  configureProject(c);
122
+ configureEntryUrl(c);
84
123
  const gradlew = path.join(rnv_1.Common.getPlatformProjectDir(c), 'gradlew');
85
124
  fs.chmodSync(gradlew, '755');
86
125
  await rnv_1.ProjectManager.copyBuildsFolder(c, platform);
@@ -84,6 +84,7 @@ const buildFn = async (c, parentTask, originTask) => {
84
84
  break;
85
85
  case constants_1.Platforms.ANDROIDTV:
86
86
  await sdks_1.SDKAndroidtv.buildAndroidTVProject(c);
87
+ renameOutput(c);
87
88
  break;
88
89
  default:
89
90
  rnv_1.PlatformManager.logErrorPlatform(c);
@@ -1,10 +1,8 @@
1
1
  apply plugin: 'com.android.library'
2
2
  apply plugin: 'kotlin-android'
3
- apply plugin: 'kotlin-android-extensions'
4
3
 
5
4
  android {
6
- compileSdkVersion 30
7
- buildToolsVersion "30.0.2"
5
+ compileSdkVersion 31
8
6
 
9
7
  compileOptions {
10
8
  sourceCompatibility JavaVersion.VERSION_1_8
@@ -1,22 +1,29 @@
1
1
  apply plugin: 'com.android.application'
2
2
  apply plugin: 'kotlin-android'
3
- apply plugin: 'kotlin-android-extensions'
4
3
  apply plugin: 'kotlin-kapt'
5
4
  apply plugin: 'com.google.gms.google-services'
6
5
  apply plugin: 'com.google.firebase.crashlytics'
7
6
 
8
7
  android {
9
- compileSdkVersion 30
10
- buildToolsVersion "30.0.2"
8
+ compileSdkVersion 31
11
9
 
12
10
  compileOptions {
13
11
  sourceCompatibility JavaVersion.VERSION_1_8
14
12
  targetCompatibility JavaVersion.VERSION_1_8
15
13
  }
16
14
 
15
+ kotlinOptions {
16
+ jvmTarget = '1.8'
17
+ freeCompilerArgs = ['-Xjvm-default=compatibility']
18
+ }
19
+
20
+ packagingOptions {
21
+ exclude 'META-INF/*.kotlin_module'
22
+ }
23
+
17
24
  defaultConfig {
18
25
  minSdkVersion 21
19
- targetSdkVersion 30
26
+ targetSdkVersion 31
20
27
 
21
28
  applicationId 'com.twentyfouri.tvbridge'
22
29
  versionCode 1
@@ -44,11 +51,19 @@ android {
44
51
  v1SigningEnabled true
45
52
  v2SigningEnabled true
46
53
  }
47
- bbg {
54
+ /*bbg {
48
55
  storeFile file('/Users/matus/StudioProjects/Keystores/pureflix.jks')
49
56
  storePassword 'freddie12'
50
57
  keyPassword 'freddie12'
51
58
  keyAlias 'iamflix-app'
59
+ }*/
60
+ kan {
61
+ keyAlias 'ireshet'
62
+ keyPassword 'applicaster'
63
+ storeFile file('../keystore/kan11_applicaster.keystore')
64
+ storePassword 'applicaster'
65
+ v1SigningEnabled true
66
+ v2SigningEnabled true
52
67
  }
53
68
  }
54
69
 
@@ -60,7 +75,6 @@ android {
60
75
  release {
61
76
  minifyEnabled true
62
77
  proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
63
- signingConfig signingConfigs.pureflix
64
78
  }
65
79
  }
66
80
 
@@ -70,22 +84,242 @@ android {
70
84
 
71
85
  flavorDimensions "bridge"
72
86
  productFlavors {
87
+ portal {
88
+ dimension "bridge"
89
+ versionCode 2003000
90
+ versionName "2.3"
91
+ resValue "string", "app_name", "24i Portal"
92
+ }
93
+ portalDrm {
94
+ dimension "bridge"
95
+ applicationIdSuffix ".drmCallback"
96
+ versionCode 1006000
97
+ versionName "1.6"
98
+ resValue "string", "app_name", "24i Portal DRM"
99
+ }
100
+ smartOTT {
101
+ dimension "bridge"
102
+ applicationIdSuffix ".smartOTT"
103
+ versionCode 1
104
+ versionName "1.0"
105
+ resValue "string", "app_name", "SmartOTT"
106
+ }
107
+ hummingbird {
108
+ dimension "bridge"
109
+ applicationIdSuffix ".hummingbird"
110
+ versionCode 1
111
+ versionName "1.0"
112
+ resValue "string", "app_name", "Hummingbird"
113
+ }
114
+ tennisChannel {
115
+ dimension "bridge"
116
+ applicationId "com.tennischannel.tceverywhere.amazon"
117
+ versionCode 46
118
+ versionName "1.1.1"
119
+ resValue "string", "app_name", "Tennis Channel Sinclair"
120
+ }
121
+ cineClick {
122
+ dimension "bridge"
123
+ applicationIdSuffix ".cineclick"
124
+ versionCode 1
125
+ versionName "1.0"
126
+ resValue "string", "app_name", "Cineclick"
127
+ }
128
+ hereMedia {
129
+ dimension "bridge"
130
+ applicationIdSuffix ".heretv"
131
+ versionCode 1
132
+ versionName "1.0"
133
+ resValue "string", "app_name", "Here TV"
134
+ }
135
+ fuboTV {
136
+ dimension "bridge"
137
+ applicationIdSuffix ".fuboTV"
138
+ versionCode 1
139
+ versionName "1.0"
140
+ resValue "string", "app_name", "[Fubo TV]"
141
+ }
142
+ sentai {
143
+ dimension "bridge"
144
+ applicationIdSuffix ".sentai"
145
+ versionCode 1007002
146
+ versionName "1.7.2"
147
+ resValue "string", "app_name", "HIDIVE"
148
+ // uncomment for signing testing builds
149
+ // signingConfig signingConfigs.hidiverelease
150
+ }
151
+ sentaiandroidtv {
152
+ dimension "bridge"
153
+ applicationId 'com.twentyfouri.androidtv.hidive'
154
+ versionCode 1010000
155
+ versionName "1.1.0"
156
+ resValue "string", "app_name", "HIDIVE"
157
+ // uncomment for signing testing builds
158
+ // signingConfig signingConfigs.hidiverelease
159
+ }
160
+ newsmax {
161
+ dimension "bridge"
162
+ //Android TV
163
+ applicationId "com.fli.android.newsmaxapp"
164
+ versionCode 1000300
165
+ versionName "1.0.2-androidTV"
166
+ resValue "string", "app_name", "Newsmax"
167
+ //FireTV
168
+ // applicationId "com.fli.googletv.newsmaxapp"
169
+ // versionCode 1411285562
170
+ // versionName "1.0.5-fireTV"
171
+ // resValue "string", "app_name", "Newsmax"
172
+ }
173
+ entel {
174
+ dimension "bridge"
175
+ applicationIdSuffix ".entel"
176
+ versionCode 1
177
+ versionName "1.0"
178
+ resValue "string", "app_name", "Entel"
179
+ }
180
+ youFone {
181
+ dimension "bridge"
182
+ applicationIdSuffix ".youfone"
183
+ versionCode 1
184
+ versionName "1.0"
185
+ resValue "string", "app_name", "YouFone"
186
+ }
187
+ bbg {
188
+ dimension "bridge"
189
+ applicationIdSuffix ".bbg"
190
+ versionCode 10
191
+ versionName "1.8"
192
+ resValue "string", "app_name", "BBG"
193
+ }
194
+ kijk {
195
+ dimension "bridge"
196
+ applicationIdSuffix ".kijk"
197
+ versionCode 2
198
+ versionName "1.01"
199
+ resValue "string", "app_name", "KIJK"
200
+ }
201
+ rte {
202
+ dimension "bridge"
203
+ applicationIdSuffix ".rte"
204
+ versionCode 5
205
+ versionName "1.0.2"
206
+ resValue "string", "app_name", "RTE"
207
+ }
208
+ alhurra {
209
+ // X.Y.Z XXYYZZUU -> version 1.2.3 will be 01020300, 5th update of 1.2.3 will be 01020305
210
+ dimension "bridge"
211
+ applicationIdSuffix ".alhurra"
212
+ versionCode 1000800
213
+ versionName "1.0.8"
214
+ resValue "string", "app_name", "Alhurra"
215
+ }
216
+ marti {
217
+ // X.Y.Z XXYYZZUU -> version 1.2.3 will be 01020300, 5th update of 1.2.3 will be 01020305
218
+ dimension "bridge"
219
+ applicationIdSuffix ".marti"
220
+ versionCode 1000800
221
+ versionName "1.0.8"
222
+ resValue "string", "app_name", "Marti"
223
+ }
224
+ voa {
225
+ // X.Y.Z XXYYZZUU -> version 1.2.3 will be 01020300, 5th update of 1.2.3 will be 01020305
226
+ dimension "bridge"
227
+ applicationIdSuffix ".voa"
228
+ versionCode 1000800
229
+ versionName "1.0.8"
230
+ resValue "string", "app_name", "VOA"
231
+ }
232
+ voa365 {
233
+ // X.Y.Z XXYYZZUU -> version 1.2.3 will be 01020300, 5th update of 1.2.3 will be 01020305
234
+ dimension "bridge"
235
+ applicationIdSuffix ".voa365"
236
+ versionCode 1000300
237
+ versionName "1.0.3"
238
+ resValue "string", "app_name", "VOA 365"
239
+ }
240
+ rfe {
241
+ // X.Y.Z XXYYZZUU -> version 1.2.3 will be 01020300, 5th update of 1.2.3 will be 01020305
242
+ dimension "bridge"
243
+ applicationIdSuffix ".rfe"
244
+ versionCode 1000100
245
+ versionName "1.0.1"
246
+ resValue "string", "app_name", "RFE"
247
+ }
73
248
  bigscreenAppstage {
74
249
  // X.Y.Z XXYYZZUU -> version 1.2.3 will be 01020300, 5th update of 1.2.3 will be 01020305
75
250
  dimension "bridge"
76
- versionCode {{APP_VERSION_CODE}}
77
- versionName "{{APP_VERSION_NAME}}"
78
- applicationId "{{configProps.id}}"
79
- resValue "string", "app_name", "{{configProps.appName}}"
80
- }
81
- // bigscreenAppstage {
82
- // // X.Y.Z XXYYZZUU -> version 1.2.3 will be 01020300, 5th update of 1.2.3 will be 01020305
83
- // dimension "bridge"
84
- // versionCode 1000100
85
- // versionName "1.0.1"
86
- // applicationId "com.twentyfouri.app.appstagebigscreen"
87
- // resValue "string", "app_name", "Appstage BIGscreen"
88
- // }
251
+ versionCode 1000100
252
+ versionName "1.0.1"
253
+ applicationId "com.twentyfouri.app.appstagebigscreen"
254
+ resValue "string", "app_name", "Appstage BIGscreen"
255
+ }
256
+ kan {
257
+ // X.Y.Z XXYYZZUU -> version 1.2.3 will be 01020300, 5th update of 1.2.3 will be 01020305
258
+ dimension "bridge"
259
+ versionCode 5407
260
+ versionName "54.0.7"
261
+ applicationId "com.applicaster.il.ch1"
262
+ resValue "string", "app_name", "כאן BOX"
263
+ signingConfig signingConfigs.kan
264
+ }
265
+ pureflix {
266
+ // X.Y.Z XXYYZZUU -> version 1.2.3 will be 01020300, 5th update of 1.2.3 will be 01020305
267
+ dimension "bridge"
268
+ versionCode 5000900
269
+ versionName "5.0.9"
270
+ // Android TV
271
+ applicationId "com.pureflix"
272
+ resValue "string", "app_name", "PureFlix (Android TV)"
273
+ // Fire TV
274
+ // applicationId "com.rollingstorm.pureflixFTV"
275
+ // resValue "string", "app_name", "PureFlix"
276
+ }
277
+ rfa {
278
+ // X.Y.Z XXYYZZUU -> version 1.2.3 will be 01020300, 5th update of 1.2.3 will be 01020305
279
+ dimension "bridge"
280
+ applicationIdSuffix ".rfa"
281
+ versionCode 1000300
282
+ versionName "1.0.3"
283
+ resValue "string", "app_name", "RFA"
284
+ }
285
+ fuse {
286
+ dimension "bridge"
287
+ applicationIdSuffix ".fuse"
288
+ versionCode 3
289
+ versionName "1.0.2"
290
+ resValue "string", "app_name", "Fuse"
291
+ }
292
+ gsn {
293
+ dimension "bridge"
294
+ applicationId "com.gsn.apptv" // production
295
+ // applicationId "com.gsn.test.apptv" // staging
296
+ versionCode 1000900
297
+ versionName "1.0.9"
298
+ resValue "string", "app_name", "GSN"
299
+ }
300
+ topic {
301
+ dimension "bridge"
302
+ applicationId "com.flm.topictv" // production
303
+ // applicationId "com.twentyfouri.tvbridge.topic" // staging
304
+ versionCode 1010000
305
+ versionName "1.1.0"
306
+ resValue "string", "app_name", "Topic"
307
+ }
308
+ broadwayhd {
309
+ dimension "bridge"
310
+ applicationId "com.broadwayhd.apptv" // production
311
+ // applicationId "com.twentyfouri.tvbridge.broadwayhd" // staging
312
+ versionCode 1000700
313
+ versionName "1.0.7"
314
+ resValue "string", "app_name", "BroadwayHD"
315
+ }
316
+ kpn {
317
+ dimension "bridge"
318
+ applicationId "com.twentyfouri.kpnandroidtv"
319
+ versionCode 2
320
+ versionName "0.0.2"
321
+ resValue "string", "app_name", "KPN iTV"
322
+ }
89
323
  }
90
324
 
91
325
  sourceSets {
@@ -109,29 +343,28 @@ android.applicationVariants.all { variant ->
109
343
 
110
344
  dependencies {
111
345
  implementation fileTree(include: ['*.jar'], dir: 'libs')
112
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
346
+ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
113
347
  api "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
114
- api "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3"
348
+ api "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2"
115
349
 
116
350
  compileOnly "javax.annotation:jsr250-api:1.0"
117
- implementation "androidx.appcompat:appcompat:1.2.0"
351
+ implementation "androidx.appcompat:appcompat:1.4.2"
118
352
  implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
119
- implementation "androidx.recyclerview:recyclerview:1.1.0"
120
- implementation 'com.google.firebase:firebase-crashlytics:18.2.0'
121
- implementation 'com.google.firebase:firebase-analytics:19.0.0'
353
+ implementation "androidx.recyclerview:recyclerview:1.2.1"
354
+ implementation 'com.google.firebase:firebase-crashlytics:18.2.11'
355
+ implementation 'com.google.firebase:firebase-analytics:21.0.0'
122
356
 
123
- implementation "com.google.dagger:dagger:2.29"
124
- kapt "com.google.dagger:dagger-compiler:2.29"
357
+ implementation "com.google.dagger:dagger:2.42"
358
+ kapt "com.google.dagger:dagger-compiler:2.42"
125
359
 
126
360
  implementation "com.squareup.retrofit2:retrofit:2.9.0"
127
361
  implementation "com.squareup.retrofit2:converter-gson:2.5.0"
128
- implementation "com.squareup.okhttp3:logging-interceptor:3.12.0"
129
- implementation "com.squareup.okhttp3:okhttp:3.12.11"
362
+ implementation "com.squareup.okhttp3:logging-interceptor:4.9.2"
363
+ implementation "com.squareup.okhttp3:okhttp:4.9.2"
364
+ implementation "com.twentyfouri.player:exoplayer:0.6.0-alpha.23"
365
+ implementation 'com.google.android.exoplayer:extension-okhttp:2.17.1'
130
366
  implementation "com.jumptvs.jumpkit:jumpkit-exoplayer:2.6.5"
131
367
 
132
- implementation "com.twentyfouri.smartexoplayer:smartexoplayer:4.0.23"
133
- implementation "com.twentyfouri.androidcore:chromecast:2.1.5"
134
-
135
368
  implementation project(':common')
136
369
  portalImplementation project(':amazoniap')
137
370
  portalImplementation project(':googleiap')
@@ -144,11 +377,11 @@ dependencies {
144
377
  androidTestImplementation "com.squareup.retrofit2:retrofit-mock:2.5.0"
145
378
  androidTestImplementation "com.squareup.okhttp:mockwebserver:2.7.0"
146
379
  androidTestImplementation "com.squareup.spoon:spoon-client:1.2.0"
147
- androidTestImplementation "androidx.test:runner:1.3.0"
148
- androidTestImplementation "androidx.test:rules:1.3.0"
149
- androidTestImplementation 'androidx.test.ext:junit:1.1.2'
150
- androidTestImplementation "androidx.test.espresso:espresso-core:3.3.0"
151
- androidTestImplementation "androidx.test.espresso:espresso-web:3.3.0"
380
+ androidTestImplementation "androidx.test:runner:1.4.0"
381
+ androidTestImplementation "androidx.test:rules:1.4.0"
382
+ androidTestImplementation 'androidx.test.ext:junit:1.1.3'
383
+ androidTestImplementation "androidx.test.espresso:espresso-core:3.4.0"
384
+ androidTestImplementation "androidx.test.espresso:espresso-web:3.4.0"
152
385
  androidTestImplementation('com.github.andrzejchm.RESTMock:android:0.3.1') {
153
386
  exclude module: 'support-annotations'
154
387
  }
@@ -1,5 +1,8 @@
1
1
  {
2
- "baseUrl": "{{APP_URL}}",
2
+ "baseUrl": "http://appstage-bigscreen.kan.24imedia.com.s3.amazonaws.com/builds/androidtv/animated_1080/dist/v0.0.9/public/index.html",
3
+ "customizableUrl": false,
4
+ "mediaEventPrefix": "player:",
5
+ "startWithHighVideoQuality": true,
3
6
  "drm": {
4
7
  "overrideDrmCallback": true
5
8
  }
@@ -0,0 +1,5 @@
1
+ package com.twentyfouri.tvbridge
2
+
3
+ class Flavor: FlavorBase() {
4
+
5
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "baseUrl": "http://appstage-bigscreen.kan.24imedia.com.s3.amazonaws.com/builds/androidtv/animated_1080/live/public/index.html",
3
+ "customizableUrl": false,
4
+ "mediaEventPrefix": "player:",
5
+ "startWithHighVideoQuality": true,
6
+ "drm": {
7
+ "overrideDrmCallback": true
8
+ }
9
+ }
@@ -15,6 +15,9 @@
15
15
 
16
16
  <uses-permission android:name="android.permission.WAKE_LOCK" />
17
17
 
18
+ <uses-permission android:name="com.google.android.assistant.READ_HOTWORD_STATE" />
19
+ <uses-permission android:name="com.google.android.assistant.WRITE_HOTWORD_STATE" />
20
+
18
21
  <application
19
22
  android:name=".global.BaseApplication"
20
23
  android:allowBackup="true"
@@ -27,7 +30,9 @@
27
30
  android:theme="@style/AppTheme">
28
31
  <activity
29
32
  android:name=".webview.view.WebViewActivity"
30
- android:label="@string/app_name">
33
+ android:hardwareAccelerated="true"
34
+ android:label="@string/app_name"
35
+ android:exported="true">
31
36
  <intent-filter>
32
37
  <action android:name="android.intent.action.MAIN" />
33
38
 
@@ -36,7 +41,8 @@
36
41
  </intent-filter>
37
42
  </activity>
38
43
  <receiver android:name="com.amazon.device.iap.ResponseReceiver"
39
- android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY">
44
+ android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY"
45
+ android:exported="true">
40
46
  <intent-filter>
41
47
  <action
42
48
  android:name="com.amazon.inapp.purchasing.NOTIFY" />