@24i/smartapps-bigscreen-rnv-build-engine 0.17.9 → 0.17.10-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.
Files changed (233) hide show
  1. package/package.json +5 -5
  2. package/dist/src/__tests__/engine.spec.js +0 -57
  3. package/dist/src/__tests__/resolvers/resolveBaseUrl.spec.js +0 -120
  4. package/dist/src/__tests__/resolvers/resolveBuildEnvName.spec.js +0 -23
  5. package/dist/src/__tests__/resolvers/resolveBuildEnvType.spec.js +0 -23
  6. package/dist/src/__tests__/resolvers/resolveBuildFileBaseName.spec.js +0 -100
  7. package/dist/src/__tests__/resolvers/resolveBuildFileExtension.spec.js +0 -26
  8. package/dist/src/__tests__/resolvers/resolveBuildFileName.spec.js +0 -109
  9. package/dist/src/__tests__/resolvers/resolveBuildVersion.spec.js +0 -60
  10. package/dist/src/__tests__/resolvers/resolveBuildVersionOffset.spec.js +0 -111
  11. package/dist/src/__tests__/resolvers/resolveDeployLocations.spec.js +0 -98
  12. package/dist/src/__tests__/resolvers/resolveGenericRnvConfig.spec.js +0 -92
  13. package/dist/src/__tests__/resolvers/resolveHbbtvDeployConfig.spec.js +0 -35
  14. package/dist/src/__tests__/resolvers/resolveHbbtvDeployUrl.spec.js +0 -53
  15. package/dist/src/__tests__/resolvers/resolveHbbtvRemoteBuildDirRelativePath.spec.js +0 -68
  16. package/dist/src/__tests__/resolvers/resolveSupportedPlatforms.spec.js +0 -22
  17. package/dist/src/__tests__/resolvers/resolveUsedFlavours.spec.js +0 -38
  18. package/dist/src/__tests__/resolvers/resolveZippedPlatformBuildsRelativeFilePath.spec.js +0 -18
  19. package/dist/src/__tests__/sdks/sdk-utils/registerSdkPath.spec.js +0 -60
  20. package/dist/src/__tests__/sdks/sdk-utils/sdk-installer/sdkInstaller.spec.js +0 -85
  21. package/dist/src/__tests__/sdks/sdk-utils/sdk-installer/services/clean.spec.js +0 -50
  22. package/dist/src/__tests__/sdks/sdk-utils/sdk-installer/services/download.spec.js +0 -103
  23. package/dist/src/__tests__/sdks/sdk-utils/sdk-installer/services/install.spec.js +0 -57
  24. package/dist/src/__tests__/sdks/sdk-utils/sdk-installer/services/unzip.spec.js +0 -51
  25. package/dist/src/__tests__/utils/forEachSupportedPlatformFlavour.spec.js +0 -104
  26. package/dist/src/__tests__/utils/generatePngSpriteMap.spec.js +0 -81
  27. package/dist/src/__tests__/utils/generateSvgSpriteMap.spec.js +0 -108
  28. package/dist/src/__tests__/utils/mergeSvgAndPngIcons.spec.js +0 -112
  29. package/dist/src/__tests__/utils/replaceRelevantStringsInConfig/replaceRelevantStringsInConfig.spec.js +0 -116
  30. package/dist/src/__tests__/utils/replaceRelevantStringsInConfig/replaceTemplateString.spec.js +0 -65
  31. package/dist/src/__tests__/utils/zipBuildsByPlatforms.spec.js +0 -69
  32. package/dist/src/constants/buildEnvironments.js +0 -9
  33. package/dist/src/constants/buildProductionPackages.js +0 -10
  34. package/dist/src/constants/buildSchemes.js +0 -19
  35. package/dist/src/constants/delopyLivePlatforms.js +0 -14
  36. package/dist/src/constants/index.js +0 -9
  37. package/dist/src/constants/platforms.js +0 -18
  38. package/dist/src/engine.js +0 -118
  39. package/dist/src/index.js +0 -30
  40. package/dist/src/resolvers/index.js +0 -42
  41. package/dist/src/resolvers/resolveBaseUrl.js +0 -27
  42. package/dist/src/resolvers/resolveBuildEnvName.js +0 -16
  43. package/dist/src/resolvers/resolveBuildEnvType.js +0 -23
  44. package/dist/src/resolvers/resolveBuildFileBaseName.js +0 -46
  45. package/dist/src/resolvers/resolveBuildFileExtension.js +0 -12
  46. package/dist/src/resolvers/resolveBuildFileName.js +0 -12
  47. package/dist/src/resolvers/resolveBuildVersion.js +0 -47
  48. package/dist/src/resolvers/resolveBuildVersionOffset.js +0 -34
  49. package/dist/src/resolvers/resolveDeployLocations.js +0 -76
  50. package/dist/src/resolvers/resolveGenericRnvConfig.js +0 -58
  51. package/dist/src/resolvers/resolveHbbtvDeployConfig.js +0 -13
  52. package/dist/src/resolvers/resolveHbbtvDeployUrl.js +0 -11
  53. package/dist/src/resolvers/resolveHbbtvRemoteBuildDirRelativePath.js +0 -29
  54. package/dist/src/resolvers/resolvePackageVersions.js +0 -57
  55. package/dist/src/resolvers/resolveProductionZipFileRelativePath.js +0 -35
  56. package/dist/src/resolvers/resolveS3BucketAppPath.js +0 -15
  57. package/dist/src/resolvers/resolveSupportedFlavoursForPlatform.js +0 -8
  58. package/dist/src/resolvers/resolveSupportedPlatforms.js +0 -5
  59. package/dist/src/resolvers/resolveUsedFlavours.js +0 -23
  60. package/dist/src/resolvers/resolveZippedPlatformBuildsRelativeFilePath.js +0 -38
  61. package/dist/src/resolvers/shared/constructFullUrl.js +0 -25
  62. package/dist/src/scripts/buildAllWithScheme.js +0 -25
  63. package/dist/src/scripts/buildAllWithSchemes.js +0 -88
  64. package/dist/src/scripts/buildProductionPackagesAll.js +0 -75
  65. package/dist/src/scripts/deployLiveAll.js +0 -27
  66. package/dist/src/scripts/deployLivePlatform.js +0 -44
  67. package/dist/src/scripts/generateDeployUrls/formatTableDataSpaces.js +0 -30
  68. package/dist/src/scripts/generateDeployUrls/generateDeployUrls.js +0 -151
  69. package/dist/src/scripts/generateDeployUrls/index.js +0 -4
  70. package/dist/src/scripts/generateDeployUrls/makeTableDataByScheme.js +0 -65
  71. package/dist/src/scripts/gitReleaser/afterVersionBump.js +0 -18
  72. package/dist/src/scripts/gitReleaser/beforeVersionBump.js +0 -12
  73. package/dist/src/scripts/gitReleaser/checkReleaseNotes.js +0 -16
  74. package/dist/src/scripts/gitReleaser/pushRelease.js +0 -31
  75. package/dist/src/scripts/gitReleaser/pushReleaseCandidate.js +0 -6
  76. package/dist/src/scripts/gitReleaser/pushReleaseNotes.js +0 -37
  77. package/dist/src/scripts/release/appCenter/appCenter.js +0 -17
  78. package/dist/src/scripts/release/appCenter/deployProductionPackagesToAppCenter.js +0 -127
  79. package/dist/src/scripts/release/appCenter/deployToAppCenter.js +0 -76
  80. package/dist/src/scripts/release/deleteSourceMaps.js +0 -11
  81. package/dist/src/scripts/release/githubRelease.js +0 -132
  82. package/dist/src/scripts/release/notifySlack/generateWebhoook.js +0 -69
  83. package/dist/src/scripts/release/notifySlack/makePayload.js +0 -89
  84. package/dist/src/scripts/release/notifySlack/notifySlack.js +0 -56
  85. package/dist/src/scripts/release/notifySlack/slackBlockKitBuilder.js +0 -39
  86. package/dist/src/scripts/release/sentryRelease.js +0 -95
  87. package/dist/src/scripts/release/urlsMarkdown.js +0 -66
  88. package/dist/src/scripts/releaseAllWithScheme.js +0 -90
  89. package/dist/src/scripts/releaseAllWithSchemes.js +0 -158
  90. package/dist/src/scripts/releaseProductionPackagesAll.js +0 -13
  91. package/dist/src/scripts/utils/cmdUtils.js +0 -12
  92. package/dist/src/scripts/utils/fsUtils.js +0 -37
  93. package/dist/src/scripts/utils/generateIcons.js +0 -29
  94. package/dist/src/scripts/utils/gitUtils.js +0 -78
  95. package/dist/src/scripts/utils/index.js +0 -31
  96. package/dist/src/scripts/utils/stringUtils.js +0 -5
  97. package/dist/src/sdks/index.js +0 -51
  98. package/dist/src/sdks/sdk-androidtv/index.js +0 -17
  99. package/dist/src/sdks/sdk-androidtv/sdkAndroidtv.js +0 -290
  100. package/dist/src/sdks/sdk-tizen/index.js +0 -17
  101. package/dist/src/sdks/sdk-tizen/sdkTizen.js +0 -178
  102. package/dist/src/sdks/sdk-utils/index.js +0 -18
  103. package/dist/src/sdks/sdk-utils/registerSdkPath.js +0 -14
  104. package/dist/src/sdks/sdk-utils/sdk-installer/index.js +0 -5
  105. package/dist/src/sdks/sdk-utils/sdk-installer/sdkInstaller.js +0 -37
  106. package/dist/src/sdks/sdk-utils/sdk-installer/services/clean.js +0 -11
  107. package/dist/src/sdks/sdk-utils/sdk-installer/services/download.js +0 -80
  108. package/dist/src/sdks/sdk-utils/sdk-installer/services/index.js +0 -11
  109. package/dist/src/sdks/sdk-utils/sdk-installer/services/install.js +0 -23
  110. package/dist/src/sdks/sdk-utils/sdk-installer/services/unzip.js +0 -13
  111. package/dist/src/sdks/sdk-webos/index.js +0 -17
  112. package/dist/src/sdks/sdk-webos/sdkWebos.js +0 -90
  113. package/dist/src/sdks/sdk-webpack/index.js +0 -17
  114. package/dist/src/sdks/sdk-webpack/sdkWebpack.js +0 -121
  115. package/dist/src/sdks/sdk-xbox/index.js +0 -17
  116. package/dist/src/sdks/sdk-xbox/sdkXbox.js +0 -221
  117. package/dist/src/tasks/deploy/aswS3/aws.js +0 -40
  118. package/dist/src/tasks/deploy/aswS3/deployS3.js +0 -74
  119. package/dist/src/tasks/deploy/aswS3/distToLiveS3.js +0 -75
  120. package/dist/src/tasks/deploy/hbbtv/deployHbbtv.js +0 -104
  121. package/dist/src/tasks/engineTasks.js +0 -24
  122. package/dist/src/tasks/task.rnv.build.js +0 -118
  123. package/dist/src/tasks/task.rnv.configure.js +0 -48
  124. package/dist/src/tasks/task.rnv.configureSoft.js +0 -30
  125. package/dist/src/tasks/task.rnv.deploy.js +0 -53
  126. package/dist/src/tasks/task.rnv.hooks.run.js +0 -74
  127. package/dist/src/tasks/task.rnv.package.js +0 -18
  128. package/dist/src/tasks/task.rnv.platform.configure.js +0 -79
  129. package/dist/src/tasks/task.rnv.project.configure.js +0 -120
  130. package/dist/src/tasks/task.rnv.start.js +0 -48
  131. package/dist/src/types/c.js +0 -2
  132. package/dist/src/types/constants.js +0 -2
  133. package/dist/src/types/index.js +0 -2
  134. package/dist/src/utils/copyEnvironmentFolder.js +0 -65
  135. package/dist/src/utils/copyTheoPlayerLibs.js +0 -48
  136. package/dist/src/utils/forEachSupportedPlatformFlavour.js +0 -46
  137. package/dist/src/utils/generatePngSpriteMap.js +0 -81
  138. package/dist/src/utils/generateSvgSpriteMap.js +0 -117
  139. package/dist/src/utils/getSafeSchemeString.js +0 -7
  140. package/dist/src/utils/mergeSvgAndPngIcons.js +0 -65
  141. package/dist/src/utils/replaceRelevantStringsInConfig/index.js +0 -5
  142. package/dist/src/utils/replaceRelevantStringsInConfig/replaceRelevantStringsInConfig.js +0 -31
  143. package/dist/src/utils/replaceRelevantStringsInConfig/replaceTemplateString.js +0 -40
  144. package/dist/src/utils/zipBuildsByPlatforms.js +0 -68
  145. package/dist/src/utils/zipStagingProdBuildsByPlatforms.js +0 -114
  146. package/dist/templates/platforms/_shared/template.js +0 -87
  147. package/dist/templates/platforms/_shared/utils/extendSass.js +0 -29
  148. package/dist/templates/platforms/_shared/utils/joinStrings.js +0 -5
  149. package/dist/templates/platforms/_shared/webpack.base.js +0 -248
  150. package/dist/templates/platforms/_shared/webpack.config.dev.js +0 -6
  151. package/dist/templates/platforms/_shared/webpack.config.prod.js +0 -6
  152. package/dist/templates/platforms/_shared/webpack.extend.js +0 -8
  153. package/dist/templates/platforms/_shared/webpackConfigAdapter.js +0 -99
  154. package/dist/templates/platforms/_shared/webpackPlatformProps.js +0 -8
  155. package/dist/templates/platforms/androidtv/project/README.md +0 -196
  156. package/dist/templates/platforms/androidtv/project/amazoniap/build.gradle +0 -38
  157. package/dist/templates/platforms/androidtv/project/amazoniap/consumer-rules.pro +0 -0
  158. package/dist/templates/platforms/androidtv/project/amazoniap/libs/in-app-purchasing-2.0.76.jar +0 -0
  159. package/dist/templates/platforms/androidtv/project/amazoniap/proguard-rules.pro +0 -21
  160. package/dist/templates/platforms/androidtv/project/amazoniap/src/main/java/com/twentyfouri/bridgetv/amazoniap/AmazonIapSevice.kt +0 -106
  161. package/dist/templates/platforms/androidtv/project/app/build.gradle +0 -110
  162. package/dist/templates/platforms/androidtv/project/app/proguard-rules.pro +0 -47
  163. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  164. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/raw/configuration.json +0 -8
  165. package/dist/templates/platforms/androidtv/project/app/src/main/AndroidManifest.xml +0 -52
  166. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/FlavorBase.kt +0 -12
  167. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeFromJavaScript.kt +0 -382
  168. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeToJavaScript.kt +0 -104
  169. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/BridgeConfig.kt +0 -17
  170. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/ConfigCallback.kt +0 -6
  171. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/ConfigProvider.kt +0 -27
  172. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/Drm.kt +0 -10
  173. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/UserAgent.kt +0 -6
  174. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/BaseApplication.kt +0 -73
  175. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityComponent.kt +0 -13
  176. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityModule.kt +0 -14
  177. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ApplicationComponent.kt +0 -26
  178. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ApplicationModule.kt +0 -51
  179. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/PerActivity.kt +0 -26
  180. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/LocalStorage.kt +0 -30
  181. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/LoggingDrmCallback.kt +0 -38
  182. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/OverriddenHttpMediaDrmCallback.kt +0 -134
  183. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryConfigured.kt +0 -33
  184. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryExoPlayerCustomized.kt +0 -90
  185. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryTheoPlayerCustomized.kt +0 -14
  186. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryVersion.kt +0 -27
  187. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/SimpleActivityLifecycleCallback.kt +0 -32
  188. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/SourceDrmOverridden.kt +0 -91
  189. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/sound/TouchPlayer.kt +0 -86
  190. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/client/BridgeWebView.kt +0 -82
  191. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/client/BridgeWebViewClient.kt +0 -114
  192. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/AnalyticsPlaybackInfo.kt +0 -10
  193. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/ContentModel.kt +0 -14
  194. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/DrmModel.kt +0 -20
  195. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/MediaEventType.kt +0 -25
  196. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/PlaybackInfoParser.kt +0 -10
  197. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/SourceParser.kt +0 -89
  198. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/TrackJsonModelParser.kt +0 -58
  199. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/Mainview.kt +0 -17
  200. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/PlayerCache.kt +0 -15
  201. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/WebViewActivity.kt +0 -247
  202. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/viewmodel/WebViewModel.kt +0 -557
  203. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_focus.xml +0 -10
  204. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_normal.xml +0 -7
  205. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_pressed.xml +0 -7
  206. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_focus.xml +0 -8
  207. package/dist/templates/platforms/androidtv/project/app/src/main/res/layout/activity_web_view.xml +0 -28
  208. package/dist/templates/platforms/androidtv/project/app/src/main/res/raw/click.ogg +0 -0
  209. package/dist/templates/platforms/androidtv/project/app/src/main/res/values/styles.xml +0 -12
  210. package/dist/templates/platforms/androidtv/project/app/src/main/res/xml/network_security_config.xml +0 -4
  211. package/dist/templates/platforms/androidtv/project/build.gradle +0 -47
  212. package/dist/templates/platforms/androidtv/project/common/build.gradle +0 -37
  213. package/dist/templates/platforms/androidtv/project/common/consumer-rules.pro +0 -0
  214. package/dist/templates/platforms/androidtv/project/common/proguard-rules.pro +0 -21
  215. package/dist/templates/platforms/androidtv/project/common/src/main/java/com/twentyfouri/tvbridge/common/IapService.kt +0 -114
  216. package/dist/templates/platforms/androidtv/project/googleiap/build.gradle +0 -39
  217. package/dist/templates/platforms/androidtv/project/googleiap/consumer-rules.pro +0 -0
  218. package/dist/templates/platforms/androidtv/project/googleiap/proguard-rules.pro +0 -21
  219. package/dist/templates/platforms/androidtv/project/googleiap/src/main/java/com/twentyfouri/tvbridge/googleiap/GoogleIapService.kt +0 -29
  220. package/dist/templates/platforms/androidtv/project/gradle/wrapper/gradle-wrapper.jar +0 -0
  221. package/dist/templates/platforms/androidtv/project/gradle/wrapper/gradle-wrapper.properties +0 -6
  222. package/dist/templates/platforms/androidtv/project/gradle.properties +0 -4
  223. package/dist/templates/platforms/androidtv/project/gradlew +0 -185
  224. package/dist/templates/platforms/androidtv/project/gradlew.bat +0 -104
  225. package/dist/templates/platforms/androidtv/project/proguard-rules.pro +0 -42
  226. package/dist/templates/platforms/androidtv/project/settings.gradle +0 -4
  227. package/dist/templates/platforms/hbbtv/webpackPlatformProps.js +0 -24
  228. package/dist/templates/platforms/tizen/project/.project +0 -24
  229. package/dist/templates/platforms/tizen/project/.tproject +0 -12
  230. package/dist/templates/platforms/tizen/project/config.xml +0 -17
  231. package/dist/templates/platforms/webos/project/.project +0 -35
  232. package/dist/templates/platforms/webos/project/appinfo.json +0 -19
  233. package/dist/templates/platforms/webos/webpackPlatformProps.js +0 -8
@@ -1,51 +0,0 @@
1
- package com.twentyfouri.tvbridge.global.di
2
-
3
- import android.content.Context
4
- import com.twentyfouri.player.base.PlayerFactoryBase
5
- import com.twentyfouri.tvbridge.Flavor
6
- import com.twentyfouri.tvbridge.common.NullIapService
7
- import com.twentyfouri.tvbridge.configuration.BridgeConfig
8
- import com.twentyfouri.tvbridge.global.BaseApplication
9
- import com.twentyfouri.tvbridge.global.utils.LocalStorage
10
- import com.twentyfouri.tvbridge.global.utils.PlayerFactoryConfigured
11
- import com.twentyfouri.tvbridge.sound.TouchPlayer
12
- import dagger.Module
13
- import dagger.Provides
14
- import javax.inject.Singleton
15
-
16
- @Module
17
- class ApplicationModule(
18
- private val baseApplication: BaseApplication,
19
- private val configuration: BridgeConfig
20
- ) {
21
- @Provides
22
- fun getApplication() = baseApplication
23
-
24
- @Provides
25
- fun getConfiguration() = configuration
26
-
27
- @Provides
28
- fun provideApplicationContext(): Context = baseApplication
29
-
30
- @Singleton
31
- @Provides
32
- fun provideLocalStorage() = LocalStorage(baseApplication.applicationContext)
33
-
34
- @Singleton
35
- @Provides
36
- fun provideTouchPlayer() = TouchPlayer(baseApplication)
37
-
38
- @Singleton
39
- @Provides
40
- fun provideIapService() = Flavor()
41
- .getIapServiceFactories()
42
- .firstOrNull { it.detectSupport(baseApplication) }
43
- ?.build(baseApplication)
44
- ?: NullIapService()
45
-
46
- @Provides
47
- @Singleton
48
- fun providePlayerFactory(config: BridgeConfig): PlayerFactoryBase =
49
- PlayerFactoryConfigured.buildFactory(config)
50
-
51
- }
@@ -1,26 +0,0 @@
1
- package com.twentyfouri.tvbridge.global.di
2
-
3
- import javax.inject.Scope
4
-
5
- /*
6
- * Copyright (C) 2013 Square, Inc.
7
- *
8
- * Licensed under the Apache License, Version 2.0 (the "License");
9
- * you may not use this file except in compliance with the License.
10
- * You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing, software
15
- * distributed under the License is distributed on an "AS IS" BASIS,
16
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- * See the License for the specific language governing permissions and
18
- * limitations under the License.
19
- */ /**
20
- * A scoping annotation to permit objects whose lifetime should
21
- * conform to the life of the activity to be memoized in the
22
- * correct component.
23
- */
24
- @Scope
25
- @kotlin.annotation.Retention(AnnotationRetention.RUNTIME)
26
- annotation class PerActivity
@@ -1,30 +0,0 @@
1
- package com.twentyfouri.tvbridge.global.utils
2
-
3
- import android.content.Context
4
- import android.content.SharedPreferences
5
-
6
- class LocalStorage(context: Context) {
7
-
8
- private val preferences: SharedPreferences =
9
- context.applicationContext.getSharedPreferences(SHARED_PREFERENCES, Context.MODE_PRIVATE)
10
-
11
- fun saveCookieJson(key: String?, value: String?) {
12
- val editor = preferences.edit()
13
- editor.putString(key, value)
14
- editor.apply()
15
- }
16
-
17
- fun removeFromLocalStorage(key: String?) {
18
- val editor = preferences.edit()
19
- editor.remove(key)
20
- editor.apply()
21
- }
22
-
23
- fun getFromLocalStorage(key: String?): String? {
24
- return preferences.getString(key, null)
25
- }
26
-
27
- companion object {
28
- private const val SHARED_PREFERENCES = "com.twentyfouri.tvbridge"
29
- }
30
- }
@@ -1,38 +0,0 @@
1
- package com.twentyfouri.tvbridge.global.utils
2
-
3
- import android.util.Base64
4
- import android.util.Log
5
- import com.google.android.exoplayer2.drm.ExoMediaDrm
6
- import com.google.android.exoplayer2.drm.MediaDrmCallback
7
- import java.util.*
8
-
9
- class LoggingDrmCallback(
10
- private val base: MediaDrmCallback,
11
- private val licenseUrl: String? = null
12
- ) : MediaDrmCallback {
13
- override fun executeProvisionRequest(
14
- uuid: UUID,
15
- request: ExoMediaDrm.ProvisionRequest
16
- ): ByteArray {
17
- return base.executeProvisionRequest(uuid, request)
18
- }
19
-
20
- override fun executeKeyRequest(uuid: UUID, request: ExoMediaDrm.KeyRequest): ByteArray {
21
- if (com.twentyfouri.player.exoplayer.BuildConfig.DEBUG) {
22
- Log.v(TAG, "DRM Embedded URL: ${request.licenseServerUrl}")
23
- Log.v(TAG, "DRM Default URL: $licenseUrl")
24
- Log.v(TAG, "DRM request:\n${request.data.toBase64()}")
25
- }
26
- val response = base.executeKeyRequest(uuid, request)
27
- if (com.twentyfouri.player.exoplayer.BuildConfig.DEBUG) {
28
- Log.v(TAG, "DRM response:\n" + response.toBase64())
29
- }
30
- return response
31
- }
32
-
33
- private fun ByteArray.toBase64(): String = Base64.encodeToString(this, Base64.DEFAULT)
34
-
35
- companion object {
36
- const val TAG = "DrmCallback"
37
- }
38
- }
@@ -1,134 +0,0 @@
1
- package com.twentyfouri.tvbridge.global.utils
2
-
3
- import android.net.Uri
4
- import android.util.Base64
5
- import android.util.Log
6
- import com.google.android.exoplayer2.C
7
- import com.google.android.exoplayer2.drm.ExoMediaDrm
8
- import com.google.android.exoplayer2.drm.MediaDrmCallback
9
- import com.google.android.exoplayer2.upstream.DataSourceInputStream
10
- import com.google.android.exoplayer2.upstream.DataSpec
11
- import com.google.android.exoplayer2.upstream.HttpDataSource
12
- import com.google.android.exoplayer2.util.Util
13
- import com.twentyfouri.tvbridge.BuildConfig
14
- import org.json.JSONException
15
- import org.json.JSONObject
16
- import java.io.BufferedReader
17
- import java.io.IOException
18
- import java.io.InputStreamReader
19
- import java.net.MalformedURLException
20
- import java.net.URL
21
- import java.net.URLEncoder
22
- import java.util.HashMap
23
- import java.util.UUID
24
-
25
- class OverriddenHttpMediaDrmCallback(
26
- private val defaultLicenseUrl: String?,
27
- private val forceDefaultLicenseUrl: Boolean,
28
- private val dataSourceFactory: HttpDataSource.Factory
29
- ) : MediaDrmCallback {
30
-
31
- @Throws(IOException::class)
32
- override fun executeProvisionRequest(uuid: UUID, request: ExoMediaDrm.ProvisionRequest): ByteArray {
33
- Log.d(TAG, "executeProvisionRequest")
34
- val url = request.defaultUrl + "&signedRequest=" + String(request.data)
35
- return executePost(dataSourceFactory, url, ByteArray(0), null)
36
- }
37
-
38
- @Throws(Exception::class)
39
- override fun executeKeyRequest(uuid: UUID, request: ExoMediaDrm.KeyRequest): ByteArray {
40
- Log.d(TAG, "executeKeyRequest")
41
- var url: String? = request.licenseServerUrl
42
- if (forceDefaultLicenseUrl || url.isNullOrEmpty()) {
43
- url = defaultLicenseUrl
44
- }
45
- val requestProperties: MutableMap<String, String> = HashMap()
46
- // Add standard request properties for supported schemes.
47
- val contentType = "text/plain"
48
- requestProperties["Content-Type"] = contentType
49
- if (C.PLAYREADY_UUID == uuid) {
50
- requestProperties["SOAPAction"] = "http://schemas.microsoft.com/DRM/2007/03/protocols/AcquireLicense"
51
- }
52
-
53
- //adding data to url
54
- val challenge = request.data
55
- val encoded = URLEncoder.encode(Base64.encodeToString(challenge, Base64.NO_WRAP), "UTF-8")
56
- url = appendQuery(url, "_widevineChallenge=$encoded")
57
- if (BuildConfig.DEBUG) {
58
- Log.d(TAG, "Executing post on url $url with content type $contentType")
59
- }
60
- return executeGet(url)
61
- }
62
-
63
- companion object {
64
- private const val TAG = "DrmCallback"
65
-
66
- private fun executeGet(urlString: String): ByteArray {
67
- try {
68
- val licenserRequest = URL(urlString)
69
- val yc = licenserRequest.openConnection()
70
- val input = BufferedReader(InputStreamReader(yc.getInputStream()))
71
- val builder = StringBuilder()
72
- var inputLine: String?
73
- while (input.readLine().also { inputLine = it } != null) {
74
- builder.append(inputLine)
75
- }
76
- input.close()
77
- val jsonObject = JSONObject(builder.toString())
78
- val container = jsonObject.getJSONObject("getWidevineLicenseResponse")
79
- val license = container.getString("license")
80
- if (BuildConfig.DEBUG) {
81
- Log.d(TAG, "Finished post: $license")
82
- }
83
- return Base64.decode(license, Base64.NO_WRAP)
84
- } catch (e: MalformedURLException) {
85
- e.printStackTrace()
86
- } catch (e: IOException) {
87
- e.printStackTrace()
88
- } catch (e: JSONException) {
89
- e.printStackTrace()
90
- }
91
- return byteArrayOf()
92
- }
93
-
94
- @Throws(IOException::class)
95
- private fun executePost(
96
- dataSourceFactory: HttpDataSource.Factory,
97
- url: String,
98
- data: ByteArray,
99
- requestProperties: Map<String, String>?
100
- ): ByteArray {
101
- Log.d(TAG, "executePost")
102
- val dataSource = dataSourceFactory.createDataSource()
103
- if (requestProperties != null) {
104
- for ((key, value) in requestProperties) {
105
- dataSource.setRequestProperty(key, value)
106
- }
107
- }
108
- val dataSpec = DataSpec.Builder()
109
- .setUri(Uri.parse(url))
110
- .setFlags(DataSpec.FLAG_ALLOW_GZIP)
111
- .setHttpMethod(DataSpec.HTTP_METHOD_POST)
112
- .setHttpBody(data)
113
- .setHttpRequestHeaders(requestProperties ?: emptyMap())
114
- .build()
115
- val inputStream = DataSourceInputStream(dataSource, dataSpec)
116
- return try {
117
- Util.toByteArray(inputStream)
118
- } finally {
119
- Util.closeQuietly(inputStream)
120
- }
121
- }
122
-
123
- fun appendQuery(url: String?, appendQuery: String): String {
124
- val oldUri = Uri.parse(url)
125
- var newQuery = oldUri.query
126
- if (newQuery == null) {
127
- newQuery = appendQuery
128
- } else {
129
- newQuery += "&$appendQuery"
130
- }
131
- return oldUri.scheme + "://" + oldUri.authority + oldUri.path + "?" + newQuery
132
- }
133
- }
134
- }
@@ -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,90 +0,0 @@
1
- package com.twentyfouri.tvbridge.global.utils
2
-
3
- import android.content.Context
4
- import com.google.android.exoplayer2.C
5
- import com.google.android.exoplayer2.ExoPlayerLibraryInfo
6
- import com.google.android.exoplayer2.drm.DefaultDrmSessionManager
7
- import com.google.android.exoplayer2.drm.DrmSessionManager
8
- import com.google.android.exoplayer2.drm.FrameworkMediaDrm
9
- import com.google.android.exoplayer2.drm.MediaDrmCallback
10
- import com.google.android.exoplayer2.upstream.HttpDataSource
11
- import com.google.android.exoplayer2.util.Util
12
- import com.twentyfouri.player.base.DrmPlayready
13
- import com.twentyfouri.player.base.DrmWidevine
14
- import com.twentyfouri.player.base.Source
15
- import com.twentyfouri.player.base.SourceDrm
16
- import com.twentyfouri.player.exoplayer.*
17
- import com.twentyfouri.tvbridge.configuration.BridgeConfig
18
-
19
- class PlayerFactoryExoPlayerCustomized(
20
- private val config: BridgeConfig
21
- ) : PlayerFactoryExoPlayer(), PlayerFactoryVersion {
22
-
23
- override val engineName: String = "Exoplayer"
24
-
25
- override val engineVersion: String = ExoPlayerLibraryInfo.VERSION
26
-
27
- override fun createSharedComponents(context: Context): SharedComponents =
28
- CustomizedSharedComponents(context)
29
-
30
- private inner class CustomizedSharedComponents(context: Context) : DefaultSharedComponents(context) {
31
-
32
- override val drmProvider: DrmSessionManagerProvider by lazy { CustomizedDrmSessionManagerProvider() }
33
-
34
- override val applicationName: String
35
- get() = config.playerAppName ?: super.applicationName
36
-
37
- override fun buildIsolatedComponents(): PlayerComponents {
38
- return CustomizedPlayerComponents(this)
39
- }
40
- }
41
-
42
- private inner class CustomizedPlayerComponents(shared: SharedComponents) : DefaultPlayerComponents(shared) {
43
- override val handleAudioFocus: Boolean
44
- get() = false
45
- }
46
-
47
- private class CustomizedDrmSessionManagerProvider : DefaultDrmSessionManagerProvider() {
48
- override fun buildDrmSessionManager(
49
- dataSourceFactory: AuthorizedDataSourceProvider,
50
- source: Source,
51
- sourceDrm: SourceDrm
52
- ): DrmSessionManager? {
53
- if (sourceDrm is SourceDrmOverridden) {
54
- return buildDrmOverridden(dataSourceFactory, sourceDrm)
55
- } else {
56
- return super.buildDrmSessionManager(dataSourceFactory, source, sourceDrm)
57
- }
58
- }
59
-
60
- private fun buildDrmOverridden(dataSourceFactory: AuthorizedDataSourceProvider, sourceDrm: SourceDrmOverridden): DrmSessionManager? {
61
- val drmUuid = when (sourceDrm.packageName) {
62
- DrmWidevine.packageName -> C.WIDEVINE_UUID
63
- DrmPlayready.packageName -> C.PLAYREADY_UUID
64
- else -> C.UUID_NIL
65
- }
66
- val licenseUrl = sourceDrm.licenseServer?.toString() ?: ""
67
- val forceLicenseUrl = sourceDrm.forceLicenseServer
68
- val httpDataSourceFactory = dataSourceFactory.buildHttpDataSourceFactory(sourceDrm.authorization)
69
-
70
- val drmCallback = LoggingDrmCallback(
71
- OverriddenHttpMediaDrmCallback(
72
- licenseUrl,
73
- forceLicenseUrl,
74
- httpDataSourceFactory
75
- ),
76
- licenseUrl
77
- )
78
-
79
- return DefaultDrmSessionManager.Builder()
80
- .setUuidAndExoMediaDrmProvider(drmUuid, FrameworkMediaDrm.DEFAULT_PROVIDER)
81
- .setMultiSession(false)
82
- .build(drmCallback)
83
- }
84
-
85
- override fun buildDrmCallback(licenseUrl: String, forceLicenseUrl: Boolean, httpDataSourceFactory: HttpDataSource.Factory): MediaDrmCallback {
86
- return LoggingDrmCallback(super.buildDrmCallback(licenseUrl, forceLicenseUrl, httpDataSourceFactory), licenseUrl)
87
- }
88
- }
89
- }
90
-
@@ -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,32 +0,0 @@
1
- package com.twentyfouri.tvbridge.global.utils
2
-
3
- import android.app.Activity
4
- import android.app.Application.ActivityLifecycleCallbacks
5
- import android.os.Bundle
6
-
7
- abstract class SimpleActivityLifecycleCallback : ActivityLifecycleCallbacks {
8
-
9
- override fun onActivityStarted(activity: Activity) {
10
- //Do nothing
11
- }
12
-
13
- override fun onActivityResumed(activity: Activity) {
14
- //Do nothing
15
- }
16
-
17
- override fun onActivityPaused(activity: Activity) {
18
- //Do nothing
19
- }
20
-
21
- override fun onActivityStopped(activity: Activity) {
22
- //Do nothing
23
- }
24
-
25
- override fun onActivitySaveInstanceState(activity: Activity, bundle: Bundle) {
26
- //Do nothing
27
- }
28
-
29
- override fun onActivityDestroyed(activity: Activity) {
30
- //Do nothing
31
- }
32
- }
@@ -1,91 +0,0 @@
1
- package com.twentyfouri.tvbridge.global.utils
2
-
3
- import com.twentyfouri.player.base.Source
4
- import com.twentyfouri.player.base.SourceAuthorization
5
- import com.twentyfouri.player.base.SourceDrm
6
- import com.twentyfouri.player.base.SourceDrmPlayready
7
- import com.twentyfouri.player.base.SourceDrmWidevine
8
- import com.twentyfouri.player.base.buildUpon
9
- import java.net.URI
10
-
11
- open class SourceDrmOverridden protected constructor(
12
- builder: Builder
13
- ) : SourceDrm() {
14
-
15
- override val packageName: String = builder.packageName
16
- ?: throw IllegalStateException("Missing SourceDrmOverridden.packageName")
17
- val licenseServer: URI? = builder.licenseServer
18
- val forceLicenseServer: Boolean = builder.forceLicenseServer
19
- val authorization: SourceAuthorization? = builder.authorization
20
-
21
- override fun hashCode(): Int = licenseServer.hashCode()
22
-
23
- override fun toString(): String = "SourceDrmOverridden($licenseServer)"
24
-
25
- override fun equals(other: Any?): Boolean = other is SourceDrmOverridden &&
26
- packageName == other.packageName &&
27
- licenseServer == other.licenseServer &&
28
- forceLicenseServer == other.forceLicenseServer &&
29
- authorization == other.authorization
30
-
31
- override fun buildUpon() = Builder()
32
- .also { it.applyFrom(this) }
33
-
34
- open class Builder : SourceDrm.Builder() {
35
- var packageName: String? = null
36
- var licenseServer: URI? = null
37
- var forceLicenseServer: Boolean = false
38
- var authorization: SourceAuthorization? = null
39
-
40
- open fun applyFrom(source: SourceDrm) {
41
- when (source) {
42
- is SourceDrmOverridden -> applyFrom(source)
43
- is SourceDrmWidevine -> applyFrom(source)
44
- is SourceDrmPlayready -> applyFrom(source)
45
- else -> {
46
- packageName = source.packageName
47
- }
48
- }
49
- }
50
-
51
- open fun applyFrom(source: SourceDrmOverridden) {
52
- packageName = source.packageName
53
- licenseServer = source.licenseServer
54
- forceLicenseServer = source.forceLicenseServer
55
- authorization = source.authorization
56
- }
57
-
58
- open fun applyFrom(source: SourceDrmWidevine) {
59
- packageName = source.packageName
60
- licenseServer = source.licenseServer
61
- forceLicenseServer = source.forceLicenseServer
62
- authorization = source.authorization
63
- }
64
-
65
- open fun applyFrom(source: SourceDrmPlayready) {
66
- packageName = source.packageName
67
- licenseServer = source.licenseServer
68
- forceLicenseServer = source.forceLicenseServer
69
- authorization = source.authorization
70
- }
71
-
72
- override fun build() =
73
- SourceDrmOverridden(this)
74
- }
75
-
76
- companion object {
77
- fun replaceSource(source: Source): Source {
78
- if (source.drm.isEmpty()) return source
79
- return source.buildUpon {
80
- drm = drm.mapTo(mutableListOf()) { sourceDrm ->
81
- SourceDrmOverridden {
82
- applyFrom(sourceDrm)
83
- }
84
- }
85
- }
86
- }
87
- }
88
- }
89
-
90
- inline fun SourceDrmOverridden(block: SourceDrmOverridden.Builder.() -> Unit) =
91
- SourceDrmOverridden.Builder().apply(block).build()
@@ -1,86 +0,0 @@
1
- package com.twentyfouri.tvbridge.sound
2
-
3
- import android.content.Context
4
- import android.media.AudioManager
5
- import android.media.MediaPlayer
6
- import android.provider.MediaStore
7
- import android.util.Log
8
- import androidx.annotation.IntRange
9
- import androidx.annotation.RawRes
10
- import com.twentyfouri.tvbridge.R
11
-
12
- /**
13
- * Play touch sound. Uses queue to handle several overlapping sounds
14
- * Configuration:
15
- * MEDIA_PLAYER_LIST_SIZE: Number of parallel touch sounds that can be played at once
16
- * TOUCH_SOUND_RES: Resource ID of touch sound to be used
17
- * USE_NATIVE_SOUND: Uses native click sound from AudioManager, don't use overlapping & queue at all
18
- */
19
- class TouchPlayer(
20
- private val context: Context
21
- ) : MediaPlayer.OnCompletionListener {
22
-
23
- companion object {
24
- private const val MEDIA_PLAYER_LIST_SIZE = 1L
25
- @RawRes
26
- private const val TOUCH_SOUND_RES = R.raw.click
27
- private const val USE_NATIVE_SOUND = true
28
- private var audioManager: AudioManager? = null
29
- }
30
-
31
- private var mediaPlayerList = mutableListOf<MediaPlayer>()
32
-
33
- @IntRange(from = 0, to = MEDIA_PLAYER_LIST_SIZE - 1)
34
- private var mediaPlayerListIterator: Int = 0
35
-
36
- init {
37
- for (i in 0 until Companion.MEDIA_PLAYER_LIST_SIZE) {
38
- mediaPlayerList.add(getNewPlayer())
39
- }
40
- if (USE_NATIVE_SOUND) {
41
- audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
42
- }
43
- }
44
-
45
- fun play() {
46
- Log.d("TouchPlayer", "Touch event envoked")
47
- audioManager?.playSoundEffect(AudioManager.FX_KEY_CLICK)
48
- ?: getAvailableMediaPlayer()?.start()
49
- }
50
-
51
- override fun onCompletion(mp: MediaPlayer) {
52
- if (mp in mediaPlayerList) {
53
- mediaPlayerList[mediaPlayerList.indexOf(mp)] = getNewPlayer()
54
- mp.release()
55
- }
56
- }
57
-
58
- /**
59
- * Returns available player from buffer. If there is no available player already, it returns null
60
- */
61
- private fun getAvailableMediaPlayer(): MediaPlayer? {
62
- val nextIter = if (MEDIA_PLAYER_LIST_SIZE.toInt() == 1) {
63
- mediaPlayerListIterator
64
- } else {
65
- ++mediaPlayerListIterator / MEDIA_PLAYER_LIST_SIZE.toInt()
66
- }
67
- val selectedPlayer = mediaPlayerList[mediaPlayerListIterator]
68
-
69
- return if (selectedPlayer.isPlaying) { // We reached the end of available buffer
70
- null
71
- } else {
72
- mediaPlayerListIterator = nextIter
73
- selectedPlayer
74
- }
75
- }
76
-
77
- private fun getNewPlayer(): MediaPlayer {
78
- val mediaPlayer = MediaPlayer()
79
- mediaPlayer.setAudioStreamType(AudioManager.STREAM_SYSTEM)
80
- mediaPlayer.setOnCompletionListener(this)
81
- val afd = context.resources.openRawResourceFd(TOUCH_SOUND_RES)
82
- mediaPlayer.setDataSource(afd.fileDescriptor, afd.startOffset, afd.length)
83
- mediaPlayer.prepare()
84
- return mediaPlayer
85
- }
86
- }