@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,247 +0,0 @@
1
- package com.twentyfouri.tvbridge.webview.view
2
-
3
- import android.annotation.SuppressLint
4
- import android.app.Activity
5
- import android.graphics.Point
6
- import android.media.AudioManager
7
- import android.media.AudioManager.OnAudioFocusChangeListener
8
- import android.os.Bundle
9
- import android.text.Editable
10
- import android.text.TextWatcher
11
- import android.util.Log
12
- import android.view.KeyEvent
13
- import android.view.View
14
- import android.view.View.MeasureSpec
15
- import android.view.WindowManager
16
- import android.view.inputmethod.InputMethodManager
17
- import android.widget.RelativeLayout
18
- import android.widget.Toast
19
- import androidx.appcompat.app.AppCompatActivity
20
- import androidx.databinding.DataBindingUtil
21
- import androidx.media.AudioAttributesCompat
22
- import androidx.media.AudioFocusRequestCompat
23
- import androidx.media.AudioManagerCompat
24
- import com.twentyfouri.tvbridge.R
25
- import com.twentyfouri.tvbridge.configuration.BridgeConfig
26
- import com.twentyfouri.tvbridge.databinding.ActivityWebViewBinding
27
- import com.twentyfouri.tvbridge.global.BaseApplication
28
- import com.twentyfouri.tvbridge.global.di.ActivityComponent
29
- import com.twentyfouri.tvbridge.global.di.ActivityModule
30
- import com.twentyfouri.tvbridge.global.di.DaggerActivityComponent
31
- import com.twentyfouri.tvbridge.sound.TouchPlayer
32
- import com.twentyfouri.tvbridge.webview.model.MediaEventType
33
- import com.twentyfouri.tvbridge.webview.viewmodel.WebViewModel
34
- import java.net.CookieHandler
35
- import java.net.CookieManager
36
- import java.net.CookiePolicy
37
-
38
- class WebViewActivity : AppCompatActivity(), Mainview {
39
-
40
- private var initialized: Boolean = false
41
- private lateinit var component: ActivityComponent
42
- private lateinit var binding: ActivityWebViewBinding
43
- private lateinit var config: BridgeConfig
44
- private lateinit var audioManager: AudioManager
45
- private lateinit var viewModel: WebViewModel
46
- private lateinit var touchPlayer: TouchPlayer
47
-
48
- private val audioFocusListener = OnAudioFocusChangeListener { /* we actually don't care */ }
49
-
50
- @SuppressLint("SetJavaScriptEnabled")
51
- override fun onCreate(savedInstanceState: Bundle?) {
52
- super.onCreate(savedInstanceState)
53
-
54
- if (!isTaskRoot) {
55
- finish()
56
- return
57
- }
58
-
59
- component = DaggerActivityComponent.builder()
60
- .applicationComponent((application as BaseApplication).component)
61
- .activityModule(ActivityModule(this))
62
- .build()
63
- config = component.configuration
64
- touchPlayer = component.touchPlayer
65
- viewModel = component.viewModelFactory.get()
66
- audioManager = getSystemService(AUDIO_SERVICE) as AudioManager
67
-
68
- window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
69
- val currentHandler = CookieHandler.getDefault()
70
- if (currentHandler !== defaultCookieManager) {
71
- CookieHandler.setDefault(defaultCookieManager)
72
- }
73
-
74
- binding = ActivityWebViewBinding.inflate(layoutInflater)
75
- setContentView(binding.root)
76
- binding.playerView.playerFactory = viewModel.playerFactory
77
- viewModel.attachView(this)
78
- viewModel.configureWebView(binding.webview)
79
- viewModel.player = binding.playerView.player
80
-
81
- loadUrl(config.baseUrl)
82
-
83
- initialized = true
84
- }
85
-
86
- override fun hideKeyboard() {
87
- val imm = getSystemService(Activity.INPUT_METHOD_SERVICE) as? InputMethodManager
88
- ?: return
89
- //If imm is null do nothing
90
- //Find the currently focused view, so we can grab the correct window token from it.
91
- //If no view currently has focus, create a new one, just so we can grab a window token from it
92
- val view = currentFocus ?: View(this)
93
- imm.hideSoftInputFromWindow(view.windowToken, 0)
94
- }
95
-
96
- override fun setBlackCurtainVisibility(visibility: Int) {
97
- runOnUiThread {
98
- binding.blackCurtain.visibility = visibility
99
- }
100
- }
101
-
102
- override fun showMessage(message: String?) {
103
- Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
104
- }
105
-
106
- override fun requestAudioFocus(): Int {
107
- return AudioManagerCompat.requestAudioFocus(
108
- audioManager,
109
- AudioFocusRequestCompat
110
- .Builder(AudioManagerCompat.AUDIOFOCUS_GAIN)
111
- .setAudioAttributes(
112
- AudioAttributesCompat
113
- .Builder()
114
- .setContentType(AudioAttributesCompat.CONTENT_TYPE_MOVIE)
115
- .build()
116
- )
117
- .setOnAudioFocusChangeListener(audioFocusListener)
118
- .build()
119
- )
120
- }
121
-
122
- override fun abandonAudioFocus() {
123
- AudioManagerCompat.abandonAudioFocusRequest(
124
- audioManager,
125
- AudioFocusRequestCompat
126
- .Builder(AudioManagerCompat.AUDIOFOCUS_GAIN)
127
- .setOnAudioFocusChangeListener(audioFocusListener)
128
- .build()
129
- )
130
- }
131
-
132
- public override fun onResume() {
133
- super.onResume()
134
- viewModel.checkNewPurchases()
135
- viewModel.resumePlayer()
136
- }
137
-
138
- public override fun onPause() {
139
- viewModel.pausePlayer()
140
- super.onPause()
141
- }
142
-
143
- public override fun onDestroy() {
144
- if (initialized) {
145
- viewModel.releasePlayer()
146
- }
147
- super.onDestroy()
148
- }
149
-
150
- override fun goFullscreen() {
151
- val layoutParams = binding.playerView.layoutParams as RelativeLayout.LayoutParams
152
- layoutParams.width = -1
153
- layoutParams.height = -1
154
- layoutParams.leftMargin = 0
155
- layoutParams.topMargin = 0
156
- val wm = getSystemService(WINDOW_SERVICE) as WindowManager
157
- val display = wm.defaultDisplay
158
- val size = Point()
159
- display.getSize(size)
160
- val width = size.x
161
- val height = size.y
162
- binding.playerView.layoutParams = layoutParams
163
- binding.playerView.measure(
164
- MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
165
- MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)
166
- )
167
- binding.playerView.layout(width, height, 0, 0)
168
- }
169
-
170
- override fun launchIapPurchase(sku: String) {
171
- viewModel.launchIapPurchase(this, sku)
172
- }
173
-
174
- override fun exitFullscreen(width: Int, height: Int, left: Int, top: Int) {
175
- val layoutParams = binding.playerView.layoutParams as RelativeLayout.LayoutParams
176
- layoutParams.width = width
177
- layoutParams.height = height
178
- layoutParams.leftMargin = left
179
- layoutParams.topMargin = top
180
-
181
- //set the layout inner and outer sizes
182
- binding.playerView.layoutParams = layoutParams
183
- binding.playerView.layout(width, height, left, top)
184
- }
185
-
186
- override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
187
- when (event.keyCode) {
188
- KeyEvent.KEYCODE_DPAD_CENTER -> goToUrl()
189
- else -> {
190
- viewModel.sendKeyCode(event.keyCode, MediaEventType.KEY_DOWN)
191
- }
192
- }
193
- return super.onKeyDown(keyCode, event)
194
- }
195
-
196
- override fun dispatchKeyEvent(event: KeyEvent): Boolean {
197
- playTouchSounds(event)
198
- return super.dispatchKeyEvent(event)
199
- }
200
-
201
- private fun playTouchSounds(event: KeyEvent) {
202
- if (event.action != KeyEvent.ACTION_DOWN) {
203
- return
204
- }
205
- when (event.keyCode) {
206
- KeyEvent.KEYCODE_DPAD_RIGHT,
207
- KeyEvent.KEYCODE_DPAD_LEFT,
208
- KeyEvent.KEYCODE_DPAD_UP,
209
- KeyEvent.KEYCODE_DPAD_DOWN,
210
- KeyEvent.KEYCODE_DPAD_CENTER ->
211
- if (config.isEnabledTouchSound) {
212
- touchPlayer.play()
213
- }
214
- }
215
- }
216
-
217
- private fun goToUrl() {
218
- viewModel.onClickGo()
219
- }
220
-
221
- override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
222
- // Send these key presses to the WebView, through a JavaScript bridge.
223
- viewModel.sendKeyCode(event.keyCode, MediaEventType.KEY_UP)
224
- return true
225
- }
226
-
227
- override fun onKeyLongPress(keyCode: Int, event: KeyEvent): Boolean {
228
- // Send these key presses to the WebView, through a JavaScript bridge.
229
- viewModel.sendKeyCode(event.keyCode, MediaEventType.KEY_PRESS)
230
- return true
231
- }
232
-
233
- override fun loadUrl(url: String?) {
234
- if (url.isNullOrEmpty()) return
235
- binding.webview.visibility = View.VISIBLE
236
- binding.webview.loadUrl(url)
237
- if (url.startsWith("http")) {
238
- binding.webview.requestFocus()
239
- }
240
- }
241
-
242
- companion object {
243
- private val defaultCookieManager: CookieManager = CookieManager().apply {
244
- setCookiePolicy(CookiePolicy.ACCEPT_ALL)
245
- }
246
- }
247
- }