@24i/smartapps-bigscreen-rnv-build-engine 0.17.6-alpha.19 → 0.17.6-alpha.2
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/README.md +12 -16
- package/dist/src/constants/delopyLivePlatforms.js +1 -2
- package/dist/src/constants/platforms.js +0 -2
- package/dist/src/engine.js +0 -10
- package/dist/src/resolvers/index.js +1 -8
- package/dist/src/resolvers/resolveBaseUrl.js +25 -16
- package/dist/src/resolvers/resolveDeployLocations.js +6 -3
- package/dist/src/resolvers/resolveGenericRnvConfig.js +2 -9
- package/dist/src/resolvers/resolveZippedPlatformBuildsRelativeFilePath.js +1 -25
- package/dist/src/scripts/deployLiveAll.js +2 -2
- package/dist/src/scripts/deployLivePlatform.js +5 -9
- package/dist/src/scripts/release/{appCenter/deployToAppCenter.js → deployToAppCenter.js} +17 -6
- package/dist/src/scripts/release/notifySlack/notifySlack.js +8 -11
- package/dist/src/scripts/release/sentryRelease.js +5 -11
- package/dist/src/scripts/release/urlsMarkdown.js +0 -2
- package/dist/src/scripts/releaseAllWithScheme.js +4 -4
- package/dist/src/sdks/index.js +0 -1
- package/dist/src/sdks/sdk-androidtv/sdkAndroidtv.js +13 -35
- package/dist/src/sdks/sdk-tizen/sdkTizen.js +0 -2
- package/dist/src/sdks/sdk-webos/sdkWebos.js +0 -2
- package/dist/src/sdks/sdk-webpack/sdkWebpack.js +1 -10
- package/dist/src/tasks/deploy/aswS3/deployS3.js +11 -9
- package/dist/src/tasks/deploy/aswS3/distToLiveS3.js +5 -4
- package/dist/src/tasks/deploy/hbbtv/deployHbbtv.js +1 -7
- package/dist/src/tasks/task.rnv.build.js +7 -26
- package/dist/src/tasks/task.rnv.configure.js +0 -2
- package/dist/src/tasks/task.rnv.deploy.js +1 -12
- package/dist/src/tasks/task.rnv.platform.configure.js +1 -33
- package/dist/src/tasks/task.rnv.start.js +0 -2
- package/dist/src/utils/forEachSupportedPlatformFlavour.js +7 -24
- package/dist/src/utils/zipBuildsByPlatforms.js +5 -8
- package/dist/templates/platforms/_shared/webpack.base.js +2 -2
- package/dist/templates/platforms/androidtv/project/amazoniap/build.gradle +2 -2
- package/dist/templates/platforms/androidtv/project/app/build.gradle +21 -17
- package/dist/templates/platforms/androidtv/project/app/proguard-rules.pro +0 -15
- package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/raw/configuration.json +2 -1
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeFromJavaScript.kt +58 -4
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeToJavaScript.kt +0 -15
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/BridgeConfig.kt +1 -2
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityModule.kt +3 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ApplicationModule.kt +2 -2
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/PerActivity.kt +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryExoPlayerCustomized.kt +1 -7
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/SourceDrmOverridden.kt +0 -42
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/jump/JumpAnalytics.kt +211 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/MediaEventType.kt +0 -3
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/ContentModelParser.kt +16 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/DeviceInfoParser.kt +22 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/Mainview.kt +3 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/PlayerCache.kt +2 -2
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/WebViewActivity.kt +83 -24
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/viewmodel/WebViewModel.kt +111 -48
- package/dist/templates/platforms/androidtv/project/app/src/main/res/layout/activity_web_view.xml +71 -23
- package/dist/templates/platforms/androidtv/project/common/build.gradle +2 -2
- package/dist/templates/platforms/androidtv/project/googleiap/build.gradle +2 -2
- package/package.json +1 -3
- package/renative.engine.json +0 -2
- package/dist/src/constants/buildProductionPackages.js +0 -10
- package/dist/src/resolvers/resolveProductionZipFileRelativePath.js +0 -35
- package/dist/src/resolvers/resolveS3BucketAppPath.js +0 -15
- package/dist/src/resolvers/resolveSupportedFlavoursForPlatform.js +0 -8
- package/dist/src/resolvers/shared/constructFullUrl.js +0 -25
- package/dist/src/scripts/buildAllWithSchemes.js +0 -88
- package/dist/src/scripts/buildProductionPackagesAll.js +0 -75
- package/dist/src/scripts/release/appCenter/appCenter.js +0 -17
- package/dist/src/scripts/release/appCenter/deployProductionPackagesToAppCenter.js +0 -127
- package/dist/src/scripts/releaseAllWithSchemes.js +0 -158
- package/dist/src/scripts/releaseProductionPackagesAll.js +0 -13
- package/dist/src/utils/copyTheoPlayerLibs.js +0 -48
- package/dist/src/utils/getSafeSchemeString.js +0 -7
- package/dist/src/utils/zipStagingProdBuildsByPlatforms.js +0 -114
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryConfigured.kt +0 -33
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryTheoPlayerCustomized.kt +0 -14
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryVersion.kt +0 -27
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/SourceParser.kt +0 -89
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.zipStagingProdBuildsByPlatforms = void 0;
|
|
27
|
-
const child_process_1 = require("child_process");
|
|
28
|
-
const fs_1 = require("fs");
|
|
29
|
-
const fse = __importStar(require("fs-extra"));
|
|
30
|
-
const path = __importStar(require("path"));
|
|
31
|
-
const glob = __importStar(require("glob"));
|
|
32
|
-
const rnv_1 = require("rnv");
|
|
33
|
-
const index_1 = require("../resolvers/index");
|
|
34
|
-
const getSafeSchemeString_1 = require("./getSafeSchemeString");
|
|
35
|
-
const { getConfigProp } = rnv_1.Common;
|
|
36
|
-
const zipDir = (srcDir, outputFile) => (0, child_process_1.execSync)(`zip ${outputFile} -0 -r *`, { cwd: srcDir });
|
|
37
|
-
const getPlatformBuildsPaths = (c, platformName, scheme) => {
|
|
38
|
-
const { platformBuildsDir } = c.buildConfig.paths;
|
|
39
|
-
const schemeDirName = (0, getSafeSchemeString_1.getSafeSchemeString)(scheme);
|
|
40
|
-
const schemesBuildsPath = path.join(platformBuildsDir, schemeDirName);
|
|
41
|
-
const outputGlob = `${schemesBuildsPath}/**/output`;
|
|
42
|
-
const platformBuildsGlob = `${outputGlob}/*.${(0, index_1.resolveBuildFileExtension)(platformName)}`;
|
|
43
|
-
try {
|
|
44
|
-
const buildsPathsCandidates = glob.sync(platformBuildsGlob) || [];
|
|
45
|
-
const platformBuildsPaths = buildsPathsCandidates.filter((path) => path.includes(platformName));
|
|
46
|
-
return platformBuildsPaths;
|
|
47
|
-
}
|
|
48
|
-
catch (e) {
|
|
49
|
-
return [];
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
const getPublicDirPath = (c, platform, flavour, scheme) => {
|
|
53
|
-
const schemeDirName = (0, getSafeSchemeString_1.getSafeSchemeString)(scheme);
|
|
54
|
-
const sourcePath = path.join(c.paths.project.builds.dir, schemeDirName, `${flavour}_${platform}`);
|
|
55
|
-
c.runtime.scheme = scheme;
|
|
56
|
-
const baseC = (0, index_1.getBaseConfig)({ scheme });
|
|
57
|
-
const { isBuildHosted } = getConfigProp(baseC, platform, 'webpackConfig', {});
|
|
58
|
-
const sourceDirPath = isBuildHosted ? `${sourcePath}-public` : sourcePath;
|
|
59
|
-
const contentDirPath = path.join(sourceDirPath, 'project', 'public');
|
|
60
|
-
return contentDirPath;
|
|
61
|
-
};
|
|
62
|
-
const copyProdContentIntoTempPlatformFlavourDir = (c, platform, flavour, prodScheme, destPlatformFlavourPath) => {
|
|
63
|
-
const srcPublicDirPath = getPublicDirPath(c, platform, flavour, prodScheme);
|
|
64
|
-
const platformFlavourPublicDirPath = path.join(destPlatformFlavourPath, 'public');
|
|
65
|
-
fse.copySync(srcPublicDirPath, platformFlavourPublicDirPath);
|
|
66
|
-
};
|
|
67
|
-
const copyBuildFileIntoTempPlatformFlavourDir = (buildFilePath, tempPlatformFlavourBuildsDir) => {
|
|
68
|
-
const buildFileName = path.basename(buildFilePath);
|
|
69
|
-
const dest = path.join(tempPlatformFlavourBuildsDir, buildFileName);
|
|
70
|
-
(0, fs_1.copyFileSync)(buildFilePath, dest);
|
|
71
|
-
};
|
|
72
|
-
const processPlatform = (c, platformName, schemes) => {
|
|
73
|
-
const [stagingScheme, prodScheme] = schemes;
|
|
74
|
-
if (!prodScheme) {
|
|
75
|
-
throw new Error('Missing production scheme.');
|
|
76
|
-
}
|
|
77
|
-
const outputZipFilePath = (0, index_1.resolveZippedPlatformBuildsRelativeFilePath)(c, platformName);
|
|
78
|
-
const stagingBuildsPaths = stagingScheme ? getPlatformBuildsPaths(c, platformName, stagingScheme) : [];
|
|
79
|
-
const prodBuildsPaths = prodScheme ? getPlatformBuildsPaths(c, platformName, prodScheme) : [];
|
|
80
|
-
const flavourBuilds = [];
|
|
81
|
-
const supportedFlavours = (0, index_1.resolveSupportedFlavoursForPlatform)(c, platformName);
|
|
82
|
-
supportedFlavours.forEach((flavour) => {
|
|
83
|
-
const flavourStagingBuildsPaths = stagingBuildsPaths.filter((path) => path.includes(flavour));
|
|
84
|
-
const flavourProdBuildsPaths = prodBuildsPaths.filter((path) => path.includes(flavour));
|
|
85
|
-
flavourBuilds.push({
|
|
86
|
-
flavour,
|
|
87
|
-
stagingBuildsPaths: flavourStagingBuildsPaths,
|
|
88
|
-
prodBuildsPaths: flavourProdBuildsPaths,
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
const tempPlatformDir = `${path.dirname(outputZipFilePath)}/${platformName}`;
|
|
92
|
-
flavourBuilds.forEach((flavourBuild) => {
|
|
93
|
-
const { flavour, stagingBuildsPaths, prodBuildsPaths } = flavourBuild;
|
|
94
|
-
const tempPFDir = path.join(tempPlatformDir, flavour);
|
|
95
|
-
const tempPFBuildsDir = path.join(tempPFDir, 'builds');
|
|
96
|
-
(0, fs_1.mkdirSync)(tempPFDir, { recursive: true });
|
|
97
|
-
(0, fs_1.mkdirSync)(tempPFBuildsDir, { recursive: true });
|
|
98
|
-
[...stagingBuildsPaths, ...prodBuildsPaths].forEach((buildFilePath) => {
|
|
99
|
-
copyBuildFileIntoTempPlatformFlavourDir(buildFilePath, tempPFBuildsDir);
|
|
100
|
-
});
|
|
101
|
-
copyProdContentIntoTempPlatformFlavourDir(c, platformName, flavour, prodScheme, tempPFDir);
|
|
102
|
-
});
|
|
103
|
-
zipDir(tempPlatformDir, path.resolve(outputZipFilePath));
|
|
104
|
-
(0, fs_1.rmdirSync)(tempPlatformDir, { recursive: true });
|
|
105
|
-
};
|
|
106
|
-
const zipStagingProdBuildsByPlatforms = (c, schemes) => {
|
|
107
|
-
const [, prodScheme] = schemes;
|
|
108
|
-
if (!prodScheme) {
|
|
109
|
-
throw new Error('Missing production scheme.');
|
|
110
|
-
}
|
|
111
|
-
(0, index_1.resolveSupportedPlatforms)(c)
|
|
112
|
-
.forEach((platformName) => processPlatform(c, platformName, schemes));
|
|
113
|
-
};
|
|
114
|
-
exports.zipStagingProdBuildsByPlatforms = zipStagingProdBuildsByPlatforms;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
package com.twentyfouri.tvbridge.global.utils
|
|
2
|
-
|
|
3
|
-
import com.twentyfouri.player.base.*
|
|
4
|
-
import com.twentyfouri.player.theoplayer.PlayerFactoryTheoPlayer
|
|
5
|
-
import com.twentyfouri.tvbridge.configuration.BridgeConfig
|
|
6
|
-
|
|
7
|
-
object PlayerFactoryConfigured {
|
|
8
|
-
|
|
9
|
-
fun buildFactory(bridgeConfig: BridgeConfig): PlayerFactoryBase {
|
|
10
|
-
var factory: PlayerFactoryBase? = null
|
|
11
|
-
if (bridgeConfig.theoLicense.isNotEmpty()) {
|
|
12
|
-
factory = factory ?: buildTheoFactory(bridgeConfig)
|
|
13
|
-
}
|
|
14
|
-
factory = factory ?: buildExoFactory(bridgeConfig)
|
|
15
|
-
return factory ?: throw Exception("Cannot create player factory")
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
private fun buildExoFactory(bridgeConfig: BridgeConfig): PlayerFactoryBase? {
|
|
19
|
-
try {
|
|
20
|
-
return PlayerFactoryExoPlayerCustomized(bridgeConfig)
|
|
21
|
-
} catch (e: NoClassDefFoundError) {
|
|
22
|
-
return null
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
private fun buildTheoFactory(bridgeConfig: BridgeConfig): PlayerFactoryBase? {
|
|
27
|
-
try {
|
|
28
|
-
return PlayerFactoryTheoPlayerCustomized(bridgeConfig)
|
|
29
|
-
} catch (e: NoClassDefFoundError) {
|
|
30
|
-
return null
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
package com.twentyfouri.tvbridge.global.utils
|
|
2
|
-
|
|
3
|
-
import com.theoplayer.android.api.THEOplayerGlobal
|
|
4
|
-
import com.twentyfouri.player.theoplayer.PlayerFactoryTheoPlayer
|
|
5
|
-
import com.twentyfouri.tvbridge.configuration.BridgeConfig
|
|
6
|
-
|
|
7
|
-
class PlayerFactoryTheoPlayerCustomized(
|
|
8
|
-
private val config: BridgeConfig
|
|
9
|
-
) : PlayerFactoryTheoPlayer(config.theoLicense), PlayerFactoryVersion {
|
|
10
|
-
|
|
11
|
-
override val engineName: String = "THEOPlayer"
|
|
12
|
-
|
|
13
|
-
override val engineVersion: String = THEOplayerGlobal.getVersion()
|
|
14
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
package com.twentyfouri.tvbridge.global.utils
|
|
2
|
-
|
|
3
|
-
import com.twentyfouri.player.base.PlayerFactoryBase
|
|
4
|
-
|
|
5
|
-
interface PlayerFactoryVersion {
|
|
6
|
-
val engineName: String
|
|
7
|
-
val engineVersion: String
|
|
8
|
-
|
|
9
|
-
private data class Fixed(
|
|
10
|
-
override val engineName: String,
|
|
11
|
-
override val engineVersion: String
|
|
12
|
-
): PlayerFactoryVersion
|
|
13
|
-
|
|
14
|
-
companion object {
|
|
15
|
-
fun from(factory: PlayerFactoryBase): PlayerFactoryVersion {
|
|
16
|
-
(factory as? PlayerFactoryVersion)?.also { return it }
|
|
17
|
-
|
|
18
|
-
// fallback to just engine name
|
|
19
|
-
val engineName = factory.javaClass.simpleName
|
|
20
|
-
.replace("PlayerFactory", "")
|
|
21
|
-
.replace("Customized", "")
|
|
22
|
-
.lowercase()
|
|
23
|
-
val engineVersion = "0.0.0"
|
|
24
|
-
return Fixed(engineName, engineVersion)
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
package com.twentyfouri.tvbridge.webview.parser
|
|
2
|
-
|
|
3
|
-
import com.twentyfouri.player.base.*
|
|
4
|
-
import com.twentyfouri.tvbridge.global.utils.SourceDrmOverridden
|
|
5
|
-
import org.json.JSONException
|
|
6
|
-
import org.json.JSONObject
|
|
7
|
-
import java.net.URI
|
|
8
|
-
import java.util.UUID
|
|
9
|
-
|
|
10
|
-
object SourceParser {
|
|
11
|
-
private val sourceSerializer = DefaultSourceSerializer()
|
|
12
|
-
|
|
13
|
-
fun stringToJson(jsonString: String?): Source? {
|
|
14
|
-
if (jsonString.isNullOrEmpty()) return null
|
|
15
|
-
if (jsonString.startsWith("http://") || jsonString.startsWith("https://")) {
|
|
16
|
-
return Source {
|
|
17
|
-
url = URI(jsonString)
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
try {
|
|
22
|
-
val jsonSource = JSONObject(jsonString)
|
|
23
|
-
if (jsonSource.has("streamUrl")) {
|
|
24
|
-
return parseContentModel(jsonSource)
|
|
25
|
-
}
|
|
26
|
-
return sourceSerializer.toSource(jsonSource)
|
|
27
|
-
|
|
28
|
-
} catch (e: JSONException) {
|
|
29
|
-
return null
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
private fun parseContentModel(jsonSource: JSONObject): Source? {
|
|
34
|
-
return Source {
|
|
35
|
-
val streamUrl = jsonSource.getString("streamUrl", null)
|
|
36
|
-
if (streamUrl.isNullOrEmpty()) return null
|
|
37
|
-
url = URI(streamUrl)
|
|
38
|
-
|
|
39
|
-
mimeType = jsonSource.getString("streamType", null)
|
|
40
|
-
?.let { MimeType.parse(it) }
|
|
41
|
-
|
|
42
|
-
jsonSource.getObject("drmConfig") { parseDrmModel(it) }
|
|
43
|
-
?.also { drm.add(it) }
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
private fun parseDrmModel(jsonDrm: JSONObject): SourceDrm? {
|
|
48
|
-
val drmSchemeUuid = jsonDrm.getString("drmSchemeUuid", null)
|
|
49
|
-
val drmLicenseUri = jsonDrm.getString("drmLicenseUrl", null)
|
|
50
|
-
?.let { URI(it) }
|
|
51
|
-
val drmCustomData = jsonDrm.getObject("drmCustomData") { parseSourceAuthorization (it) }
|
|
52
|
-
val overrideDrmCallback = jsonDrm.getBoolean("overrideDrmCallback")
|
|
53
|
-
|
|
54
|
-
return if (overrideDrmCallback) {
|
|
55
|
-
SourceDrmOverridden {
|
|
56
|
-
packageName = when (drmSchemeUuid) {
|
|
57
|
-
"widevine", WIDEVINE_UUID -> DrmWidevine.packageName
|
|
58
|
-
"playready", PLAYREADY_UUID -> DrmPlayready.packageName
|
|
59
|
-
else -> null
|
|
60
|
-
}
|
|
61
|
-
licenseServer = drmLicenseUri
|
|
62
|
-
authorization = drmCustomData
|
|
63
|
-
}
|
|
64
|
-
} else {
|
|
65
|
-
when (drmSchemeUuid) {
|
|
66
|
-
"widevine", WIDEVINE_UUID -> SourceDrmWidevine {
|
|
67
|
-
licenseServer = drmLicenseUri
|
|
68
|
-
authorization = drmCustomData
|
|
69
|
-
}
|
|
70
|
-
"playready", PLAYREADY_UUID -> SourceDrmPlayready {
|
|
71
|
-
licenseServer = drmLicenseUri
|
|
72
|
-
authorization = drmCustomData
|
|
73
|
-
}
|
|
74
|
-
else -> null
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
private fun parseSourceAuthorization(jsonMap: JSONObject): SourceAuthorization? {
|
|
80
|
-
return SourceAuthorizationHeaders {
|
|
81
|
-
jsonMap.keys().forEach { key ->
|
|
82
|
-
headers[key] = jsonMap.getString(key)
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
val WIDEVINE_UUID = "edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"
|
|
88
|
-
val PLAYREADY_UUID = "9a04f079-9840-4286-ab92-e65be0885f95"
|
|
89
|
-
}
|