@24i/smartapps-bigscreen-rnv-build-engine 0.17.2-alpha.2167 → 0.17.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 (302) hide show
  1. package/dist/src/resolvers/index.js +1 -3
  2. package/dist/src/resolvers/resolveBuildFileName.js +27 -3
  3. package/dist/src/sdks/index.js +1 -5
  4. package/dist/src/sdks/sdk-utils/sdk-installer/services/unzip.js +2 -3
  5. package/dist/src/tasks/task.rnv.build.js +1 -3
  6. package/dist/src/tasks/task.rnv.configure.js +1 -3
  7. package/dist/src/tasks/task.rnv.platform.configure.js +1 -4
  8. package/package.json +2 -3
  9. package/dist/src/resolvers/resolveBuildFileBaseName.js +0 -34
  10. package/dist/src/sdks/sdk-androidtv/index.js +0 -17
  11. package/dist/src/sdks/sdk-androidtv/sdkAndroidtv.js +0 -240
  12. package/dist/templates/platforms/androidtv/project/README.md +0 -198
  13. package/dist/templates/platforms/androidtv/project/amazoniap/build.gradle +0 -37
  14. package/dist/templates/platforms/androidtv/project/amazoniap/consumer-rules.pro +0 -0
  15. package/dist/templates/platforms/androidtv/project/amazoniap/libs/in-app-purchasing-2.0.76.jar +0 -0
  16. package/dist/templates/platforms/androidtv/project/amazoniap/proguard-rules.pro +0 -21
  17. package/dist/templates/platforms/androidtv/project/amazoniap/src/main/AndroidManifest.xml +0 -4
  18. package/dist/templates/platforms/androidtv/project/amazoniap/src/main/java/com/twentyfouri/bridgetv/amazoniap/AmazonIapSevice.kt +0 -106
  19. package/dist/templates/platforms/androidtv/project/app/build.gradle +0 -402
  20. package/dist/templates/platforms/androidtv/project/app/proguard-rules.pro +0 -32
  21. package/dist/templates/platforms/androidtv/project/app/src/alhurra/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  22. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/drawable/banner.png +0 -0
  23. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-hdpi/ic_launcher.png +0 -0
  24. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-mdpi/ic_launcher.png +0 -0
  25. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-xhdpi/ic_launcher.png +0 -0
  26. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  27. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  28. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/raw/configuration.json +0 -7
  29. package/dist/templates/platforms/androidtv/project/app/src/androidTest/assets/getStatusSuccesfulResponse.json +0 -9
  30. package/dist/templates/platforms/androidtv/project/app/src/androidTest/assets/tokenFromPassword_200.json +0 -7
  31. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/ngsn/tv/RestServiceTestHelper.java +0 -34
  32. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/ngsn/tv/WebViewActivityTest.java +0 -104
  33. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/SignTest.kt +0 -54
  34. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/amazonIAP/AmazonIAPManagerTest.java +0 -74
  35. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/amazonIAP/SinclairTestRunner.java +0 -22
  36. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/webview/ui/model/BridgeWebViewTest.java +0 -50
  37. package/dist/templates/platforms/androidtv/project/app/src/bbg/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  38. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/drawable/banner.png +0 -0
  39. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-hdpi/ic_launcher.png +0 -0
  40. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-mdpi/ic_launcher.png +0 -0
  41. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-xhdpi/ic_launcher.png +0 -0
  42. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  43. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  44. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/raw/configuration.json +0 -7
  45. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  46. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/drawable/banner.png +0 -0
  47. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-hdpi/ic_launcher.png +0 -0
  48. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-mdpi/ic_launcher.png +0 -0
  49. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-xhdpi/ic_launcher.png +0 -0
  50. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  51. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  52. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/raw/configuration.json +0 -9
  53. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/java/com/twentyfouri/tvbridge/Flavor.kt +0 -9
  54. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/drawable/banner.png +0 -0
  55. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-hdpi/ic_launcher.png +0 -0
  56. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-mdpi/ic_launcher.png +0 -0
  57. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-xhdpi/ic_launcher.png +0 -0
  58. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  59. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/raw/configuration.json +0 -16
  60. package/dist/templates/platforms/androidtv/project/app/src/cineClick/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  61. package/dist/templates/platforms/androidtv/project/app/src/cineClick/res/raw/configuration.json +0 -6
  62. package/dist/templates/platforms/androidtv/project/app/src/entel/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  63. package/dist/templates/platforms/androidtv/project/app/src/entel/res/raw/configuration.json +0 -6
  64. package/dist/templates/platforms/androidtv/project/app/src/fuboTV/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  65. package/dist/templates/platforms/androidtv/project/app/src/fuboTV/res/raw/configuration.json +0 -6
  66. package/dist/templates/platforms/androidtv/project/app/src/fuse/AndroidManifest.xml +0 -12
  67. package/dist/templates/platforms/androidtv/project/app/src/fuse/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  68. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/drawable/banner.png +0 -0
  69. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-hdpi/ic_launcher.png +0 -0
  70. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-mdpi/ic_launcher.png +0 -0
  71. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-xhdpi/ic_launcher.png +0 -0
  72. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  73. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  74. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/raw/configuration.json +0 -9
  75. package/dist/templates/platforms/androidtv/project/app/src/gsn/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  76. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/drawable/banner.png +0 -0
  77. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-hdpi/ic_launcher.png +0 -0
  78. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-mdpi/ic_launcher.png +0 -0
  79. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-xhdpi/ic_launcher.png +0 -0
  80. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  81. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/raw/configuration.json +0 -8
  82. package/dist/templates/platforms/androidtv/project/app/src/heremedia/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  83. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/drawable/banner.png +0 -0
  84. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-hdpi/ic_launcher.png +0 -0
  85. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-mdpi/ic_launcher.png +0 -0
  86. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-xhdpi/ic_launcher.png +0 -0
  87. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  88. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  89. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/raw/configuration.json +0 -6
  90. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  91. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-hdpi/ic_launcher.png +0 -0
  92. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-mdpi/ic_launcher.png +0 -0
  93. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-xhdpi/ic_launcher.png +0 -0
  94. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  95. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  96. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/raw/configuration.json +0 -6
  97. package/dist/templates/platforms/androidtv/project/app/src/kan/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  98. package/dist/templates/platforms/androidtv/project/app/src/kan/res/drawable/banner.png +0 -0
  99. package/dist/templates/platforms/androidtv/project/app/src/kan/res/mipmap-hdpi/ic_launcher.png +0 -0
  100. package/dist/templates/platforms/androidtv/project/app/src/kan/res/mipmap-mdpi/ic_launcher.png +0 -0
  101. package/dist/templates/platforms/androidtv/project/app/src/kan/res/mipmap-xhdpi/ic_launcher.png +0 -0
  102. package/dist/templates/platforms/androidtv/project/app/src/kan/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  103. package/dist/templates/platforms/androidtv/project/app/src/kan/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  104. package/dist/templates/platforms/androidtv/project/app/src/kan/res/raw/configuration.json +0 -9
  105. package/dist/templates/platforms/androidtv/project/app/src/kijk/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  106. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/drawable/banner.png +0 -0
  107. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-hdpi/ic_launcher.png +0 -0
  108. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-mdpi/ic_launcher.png +0 -0
  109. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-xhdpi/ic_launcher.png +0 -0
  110. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  111. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  112. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/raw/configuration.json +0 -6
  113. package/dist/templates/platforms/androidtv/project/app/src/kpn/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  114. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/drawable/banner.png +0 -0
  115. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-hdpi/ic_launcher.png +0 -0
  116. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-mdpi/ic_launcher.png +0 -0
  117. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-xhdpi/ic_launcher.png +0 -0
  118. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  119. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  120. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/raw/configuration.json +0 -6
  121. package/dist/templates/platforms/androidtv/project/app/src/main/AndroidManifest.xml +0 -53
  122. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/FlavorBase.kt +0 -12
  123. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeFromJavaScript.kt +0 -385
  124. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeToJavaScript.kt +0 -83
  125. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/BridgeConfig.kt +0 -16
  126. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/ConfigCallback.kt +0 -6
  127. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/ConfigProvider.kt +0 -27
  128. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/Drm.kt +0 -10
  129. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/UserAgent.kt +0 -6
  130. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/BaseApplication.kt +0 -73
  131. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityComponent.kt +0 -13
  132. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityModule.kt +0 -21
  133. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ApplicationComponent.kt +0 -24
  134. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ApplicationModule.kt +0 -43
  135. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/PerActivity.kt +0 -26
  136. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/LocalStorage.kt +0 -30
  137. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/LoggingDrmCallback.kt +0 -38
  138. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/OverriddenHttpMediaDrmCallback.kt +0 -134
  139. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/PlayerFactoryExoPlayerCustomized.kt +0 -84
  140. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/SimpleActivityLifecycleCallback.kt +0 -32
  141. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/SourceDrmOverridden.kt +0 -49
  142. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/jump/JumpAnalytics.kt +0 -211
  143. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/sound/TouchPlayer.kt +0 -86
  144. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/client/BridgeWebView.kt +0 -82
  145. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/client/BridgeWebViewClient.kt +0 -114
  146. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/AnalyticsPlaybackInfo.kt +0 -10
  147. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/ContentModel.kt +0 -14
  148. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/DrmModel.kt +0 -20
  149. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/MediaEventType.kt +0 -20
  150. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/ContentModelParser.kt +0 -16
  151. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/DeviceInfoParser.kt +0 -22
  152. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/PlaybackInfoParser.kt +0 -10
  153. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/TrackJsonModelParser.kt +0 -58
  154. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/Mainview.kt +0 -20
  155. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/PlayerCache.kt +0 -15
  156. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/WebViewActivity.kt +0 -301
  157. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/viewmodel/WebViewModel.kt +0 -571
  158. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/banner.png +0 -0
  159. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_focus.xml +0 -10
  160. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_normal.xml +0 -7
  161. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_pressed.xml +0 -7
  162. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_focus.xml +0 -8
  163. package/dist/templates/platforms/androidtv/project/app/src/main/res/layout/activity_web_view.xml +0 -76
  164. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  165. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  166. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  167. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  168. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  169. package/dist/templates/platforms/androidtv/project/app/src/main/res/raw/click.ogg +0 -0
  170. package/dist/templates/platforms/androidtv/project/app/src/main/res/raw/fiddle_root_michal_konecny.cer +0 -0
  171. package/dist/templates/platforms/androidtv/project/app/src/main/res/raw/proxy_milanwilczak.pem +0 -26
  172. package/dist/templates/platforms/androidtv/project/app/src/main/res/values/styles.xml +0 -12
  173. package/dist/templates/platforms/androidtv/project/app/src/main/res/xml/network_security_config.xml +0 -12
  174. package/dist/templates/platforms/androidtv/project/app/src/marti/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  175. package/dist/templates/platforms/androidtv/project/app/src/marti/res/drawable/banner.png +0 -0
  176. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-hdpi/ic_launcher.png +0 -0
  177. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-mdpi/ic_launcher.png +0 -0
  178. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-xhdpi/ic_launcher.png +0 -0
  179. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  180. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  181. package/dist/templates/platforms/androidtv/project/app/src/marti/res/raw/configuration.json +0 -8
  182. package/dist/templates/platforms/androidtv/project/app/src/newsmax/AndroidManifest.xml +0 -43
  183. package/dist/templates/platforms/androidtv/project/app/src/newsmax/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  184. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/drawable/banner.png +0 -0
  185. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-hdpi/ic_launcher.png +0 -0
  186. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-mdpi/ic_launcher.png +0 -0
  187. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-xhdpi/ic_launcher.png +0 -0
  188. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  189. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  190. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/raw/configuration.json +0 -7
  191. package/dist/templates/platforms/androidtv/project/app/src/portal/java/com/twentyfouri/tvbridge/Flavor.kt +0 -10
  192. package/dist/templates/platforms/androidtv/project/app/src/portal/res/raw/configuration.json +0 -7
  193. package/dist/templates/platforms/androidtv/project/app/src/portalDrm/java/com/twentyfouri/tvbridge/Flavor.kt +0 -10
  194. package/dist/templates/platforms/androidtv/project/app/src/portalDrm/res/drawable/banner.png +0 -0
  195. package/dist/templates/platforms/androidtv/project/app/src/portalDrm/res/raw/configuration.json +0 -6
  196. package/dist/templates/platforms/androidtv/project/app/src/pureflix/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  197. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/drawable/banner.png +0 -0
  198. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-hdpi/ic_launcher.png +0 -0
  199. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-mdpi/ic_launcher.png +0 -0
  200. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-xhdpi/ic_launcher.png +0 -0
  201. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  202. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  203. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/raw/configuration.json +0 -6
  204. package/dist/templates/platforms/androidtv/project/app/src/rfa/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  205. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/drawable/banner.png +0 -0
  206. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-hdpi/ic_launcher.png +0 -0
  207. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-mdpi/ic_launcher.png +0 -0
  208. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-xhdpi/ic_launcher.png +0 -0
  209. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  210. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  211. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/raw/configuration.json +0 -7
  212. package/dist/templates/platforms/androidtv/project/app/src/rfe/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  213. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/drawable/banner.png +0 -0
  214. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-hdpi/ic_launcher.png +0 -0
  215. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-mdpi/ic_launcher.png +0 -0
  216. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-xhdpi/ic_launcher.png +0 -0
  217. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  218. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  219. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/raw/configuration.json +0 -6
  220. package/dist/templates/platforms/androidtv/project/app/src/rte/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  221. package/dist/templates/platforms/androidtv/project/app/src/rte/res/drawable/banner.png +0 -0
  222. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-hdpi/ic_launcher.png +0 -0
  223. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-mdpi/ic_launcher.png +0 -0
  224. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-xhdpi/ic_launcher.png +0 -0
  225. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  226. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  227. package/dist/templates/platforms/androidtv/project/app/src/rte/res/raw/configuration.json +0 -9
  228. package/dist/templates/platforms/androidtv/project/app/src/sentai/google-services.json +0 -191
  229. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-hdpi/ic_launcher.png +0 -0
  230. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-mdpi/ic_launcher.png +0 -0
  231. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-xhdpi/ic_launcher.png +0 -0
  232. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  233. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  234. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/raw/configuration.json +0 -15
  235. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/google-services.json +0 -191
  236. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/java/com/twentyfouri/tvbridge/Flavor.kt +0 -54
  237. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/java/com/twentyfouri/tvbridge/SentaiRequestData.kt +0 -13
  238. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/drawable/banner.png +0 -0
  239. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-hdpi/ic_launcher.png +0 -0
  240. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-mdpi/ic_launcher.png +0 -0
  241. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-xhdpi/ic_launcher.png +0 -0
  242. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  243. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  244. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/raw/configuration.json +0 -14
  245. package/dist/templates/platforms/androidtv/project/app/src/smartott/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  246. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-hdpi/ic_launcher.png +0 -0
  247. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-mdpi/ic_launcher.png +0 -0
  248. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-xhdpi/ic_launcher.png +0 -0
  249. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  250. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/raw/configuration.json +0 -6
  251. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/java/com/twentyfouri/tvbridge/Flavor.kt +0 -9
  252. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-hdpi/ic_launcher.png +0 -0
  253. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-mdpi/ic_launcher.png +0 -0
  254. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-xhdpi/ic_launcher.png +0 -0
  255. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  256. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  257. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/raw/configuration.json +0 -6
  258. package/dist/templates/platforms/androidtv/project/app/src/topic/java/com/twentyfouri/tvbridge/Flavor.kt +0 -9
  259. package/dist/templates/platforms/androidtv/project/app/src/topic/res/drawable/banner.png +0 -0
  260. package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-hdpi/ic_launcher.png +0 -0
  261. package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-mdpi/ic_launcher.png +0 -0
  262. package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-xhdpi/ic_launcher.png +0 -0
  263. package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  264. package/dist/templates/platforms/androidtv/project/app/src/topic/res/raw/configuration.json +0 -9
  265. package/dist/templates/platforms/androidtv/project/app/src/voa/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  266. package/dist/templates/platforms/androidtv/project/app/src/voa/res/drawable/banner.png +0 -0
  267. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-hdpi/ic_launcher.png +0 -0
  268. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-mdpi/ic_launcher.png +0 -0
  269. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-xhdpi/ic_launcher.png +0 -0
  270. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  271. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  272. package/dist/templates/platforms/androidtv/project/app/src/voa/res/raw/configuration.json +0 -7
  273. package/dist/templates/platforms/androidtv/project/app/src/voa365/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  274. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/drawable/banner.png +0 -0
  275. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-hdpi/ic_launcher.png +0 -0
  276. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-mdpi/ic_launcher.png +0 -0
  277. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-xhdpi/ic_launcher.png +0 -0
  278. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  279. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  280. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/raw/configuration.json +0 -7
  281. package/dist/templates/platforms/androidtv/project/app/src/youFone/java/com/twentyfouri/tvbridge/Flavor.kt +0 -5
  282. package/dist/templates/platforms/androidtv/project/app/src/youFone/res/raw/configuration.json +0 -6
  283. package/dist/templates/platforms/androidtv/project/build.gradle +0 -48
  284. package/dist/templates/platforms/androidtv/project/common/build.gradle +0 -36
  285. package/dist/templates/platforms/androidtv/project/common/consumer-rules.pro +0 -0
  286. package/dist/templates/platforms/androidtv/project/common/proguard-rules.pro +0 -21
  287. package/dist/templates/platforms/androidtv/project/common/src/main/AndroidManifest.xml +0 -4
  288. package/dist/templates/platforms/androidtv/project/common/src/main/java/com/twentyfouri/tvbridge/common/IapService.kt +0 -114
  289. package/dist/templates/platforms/androidtv/project/googleiap/build.gradle +0 -38
  290. package/dist/templates/platforms/androidtv/project/googleiap/consumer-rules.pro +0 -0
  291. package/dist/templates/platforms/androidtv/project/googleiap/proguard-rules.pro +0 -21
  292. package/dist/templates/platforms/androidtv/project/googleiap/src/main/AndroidManifest.xml +0 -6
  293. package/dist/templates/platforms/androidtv/project/googleiap/src/main/java/com/twentyfouri/tvbridge/googleiap/GoogleIapService.kt +0 -29
  294. package/dist/templates/platforms/androidtv/project/gradle/wrapper/gradle-wrapper.jar +0 -0
  295. package/dist/templates/platforms/androidtv/project/gradle/wrapper/gradle-wrapper.properties +0 -6
  296. package/dist/templates/platforms/androidtv/project/gradle.properties +0 -4
  297. package/dist/templates/platforms/androidtv/project/gradlew +0 -185
  298. package/dist/templates/platforms/androidtv/project/gradlew.bat +0 -104
  299. package/dist/templates/platforms/androidtv/project/keystore/debug_madrid.jks +0 -0
  300. package/dist/templates/platforms/androidtv/project/keystore/kan11_applicaster.keystore +0 -0
  301. package/dist/templates/platforms/androidtv/project/proguard-rules.pro +0 -42
  302. package/dist/templates/platforms/androidtv/project/settings.gradle +0 -4
@@ -1,211 +0,0 @@
1
- package com.twentyfouri.tvbridge.jump
2
-
3
- import android.util.Log
4
- import com.google.android.exoplayer2.ExoPlayer
5
- import com.google.android.exoplayer2.SimpleExoPlayer
6
- import com.google.gson.JsonObject
7
- import com.twentyfouri.tvbridge.BuildConfig
8
- import com.twentyfouri.tvbridge.webview.model.AnalyticsPlaybackInfo
9
- import jump.JumpKit
10
- import jump.insights.models.contextinformation.*
11
- import jump.insights.models.track.events.JKContentType
12
- import jump.insights.models.track.events.JKTransactionType
13
- import jump.libs.gson.annotations.SerializedName
14
- import java.util.*
15
-
16
- class JumpAnalytics {
17
-
18
- private var started = false
19
- private var hasContent = false
20
-
21
- fun setPlaybackInfo(playbackInfo: AnalyticsPlaybackInfo) {
22
- setApplicationId(playbackInfo.id ?: return)
23
- setUserInfo(playbackInfo.userInfo)
24
- setContentInfo(playbackInfo.contentInfo)
25
- }
26
-
27
- private fun setApplicationId(applicationId: String) {
28
- if (started) return
29
- started = true
30
- JumpKit.setDebugMode(BuildConfig.DEBUG)
31
- JumpKit.start(applicationId)
32
- }
33
-
34
- private fun setUserInfo(params: JsonObject?) {
35
- JumpKit.insights.setUserInfo(parseUserInfo(params))
36
- }
37
-
38
- private fun setContentInfo(params: JsonObject?) {
39
- val contentInfo = parseContentInfo(params)
40
- jump.exoplayerextension.JumpKit.insights.setContentInfo(contentInfo)
41
- hasContent = true
42
- }
43
-
44
- fun setVideoPlayer(player: ExoPlayer?) {
45
- @Suppress("DEPRECATION")
46
- if (player !is SimpleExoPlayer) {
47
- /* NOTICE: passing null also causes insights.setContentInfo(null) */
48
- jump.exoplayerextension.JumpKit.insights.setVideoPlayer(null)
49
- hasContent = false
50
- } else if (started && hasContent) {
51
- jump.exoplayerextension.JumpKit.insights.setVideoPlayer(player)
52
- } else if (started) {
53
- Log.w("JumpAnalytics", "No content data available. Did you call SetPlaybackInfo before SetVideoPath?")
54
- }
55
- }
56
-
57
- private fun parseUserInfo(params: JsonObject?): JKUserInfo {
58
- return try {
59
- var userType = parseEnum(params, "userType", JKUserType::class.java)
60
- if (userType == null) userType = JKUserType.ANONYMOUS
61
- val userId = parseString(params, "userId")
62
- val userCountry = parseString(params, "userCountry")
63
- val userBirthDate = parseString(params, "userBirthDate")
64
- var userSex = parseEnum(params, "userSex", JKUserSex::class.java)
65
- if (userSex == null) userSex = JKUserSex.UNDEFINED
66
- val userProfileId = parseString(params, "userProfileId")
67
- val userOperator = parseString(params, "userOperator")
68
- if (userType == JKUserType.ANONYMOUS) JKUserInfo.anonymousInstance() else JKUserInfo(userType, userId, userCountry, userBirthDate, userSex, userProfileId, userOperator)
69
- } catch (e: Exception) {
70
- Log.w("JumpAnalytics", "Parsing userInfo failed. Falling back to ANONYMOUS", e)
71
- JKUserInfo.anonymousInstance()
72
- }
73
- }
74
-
75
- private fun parseCategory(params: JsonObject?, property: String): JKContextCategory? {
76
- val jsonValue = params?.get(property) ?: return null
77
- return if (!jsonValue.isJsonObject) null else parseCategory(jsonValue.asJsonObject)
78
- }
79
-
80
- private fun parseCategory(params: JsonObject): JKContextCategory {
81
- return JKContextCategory(
82
- parseString(params, "categoryId"),
83
- parseString(params, "categoryName")
84
- )
85
- }
86
-
87
- private fun parseSubCategory(params: JsonObject?, property: String): JKContextSubcategory? {
88
- val jsonValue = params?.get(property) ?: return null
89
- return if (!jsonValue.isJsonObject) null else parseSubCategory(jsonValue.asJsonObject)
90
- }
91
-
92
- private fun parseSubCategory(params: JsonObject): JKContextSubcategory {
93
- return JKContextSubcategory(
94
- parseString(params, "subcategoryId"),
95
- parseString(params, "categoryId"),
96
- parseString(params, "subcategoryName")
97
- )
98
- }
99
-
100
- private fun parseGenre(params: JsonObject): JKContextGenre {
101
- return JKContextGenre(
102
- parseString(params, "genreId"),
103
- parseString(params, "genreName"),
104
- parseCategory(params, "categoryId"),
105
- parseSubCategory(params, "subCategoryId")
106
- )
107
- }
108
-
109
- private fun parseContentInfo(params: JsonObject?): JKContextContent {
110
- return JKContextContent(
111
- parseString(params, "contentId"),
112
- parseString(params, "contentTitle"),
113
- parseString(params, "contentSerieTitle"),
114
- parseInteger(params, "contentEpisodeNumber"),
115
- parseInteger(params, "contentSeasonNumber"),
116
- parseString(params, "contentDescription"),
117
- parseCategory(params, "contentCategory"),
118
- parseSubCategory(params, "contentSubCategory"),
119
- parseGenres(params, "contentGenres"),
120
- parseString(params, "contentProvider"),
121
- parseEnum(params, "contentTransactionType", JKTransactionType::class.java),
122
- parseEnum(params, "contentType", JKContentType::class.java),
123
- parseString(params, "contentLanguage")
124
- )
125
- }
126
-
127
- private fun parseGenres(container: JsonObject?, property: String): List<JKContextGenre>? {
128
- if (container == null) return null
129
- val jsonValue = container[property] ?: return null
130
- if (!jsonValue.isJsonArray) return null
131
- val list = ArrayList<JKContextGenre>()
132
- for (jsonElement in jsonValue.asJsonArray) {
133
- if (!jsonElement.isJsonObject) continue
134
- list.add(parseGenre(jsonElement.asJsonObject))
135
- }
136
- return list
137
- }
138
-
139
- private fun <T : Enum<T>> parseEnum(container: JsonObject?, property: String, type: Class<T>): T? {
140
- if (container == null) return null
141
- val jsonValue = container[property] ?: return null
142
- if (!jsonValue.isJsonPrimitive) return null
143
- val primitive = jsonValue.asJsonPrimitive
144
- return when {
145
- primitive.isString ->
146
- parseEnum(type, jsonValue.asString)
147
- primitive.isNumber ->
148
- parseEnum(type, jsonValue.asInt)
149
- else ->
150
- null
151
- }
152
- }
153
-
154
- private fun <T : Enum<T>> parseEnum(type: Class<T>, value: String): T? {
155
- try {
156
- for (constant in type.enumConstants ?: return null) {
157
- val name = constant.name
158
- if (name == value) {
159
- return constant
160
- }
161
- val annotation = type.getField(name).getAnnotation(SerializedName::class.java)
162
- if (annotation != null) {
163
- if (annotation.value == value) {
164
- return constant
165
- }
166
- }
167
- }
168
- return null
169
- } catch (e: NoSuchFieldException) {
170
- return null
171
- }
172
- }
173
-
174
- @Suppress("UNCHECKED_CAST")
175
- private fun <T : Enum<T>> parseEnum(type: Class<T>, value: Int): T? {
176
- return try {
177
- val map = type.getDeclaredField("mapper")[null] as Map<T, Int>
178
- for ((key, value1) in map) {
179
- if (value1 == value) {
180
- return key
181
- }
182
- }
183
- null
184
- } catch (e: ClassCastException) {
185
- null
186
- } catch (e: IllegalAccessException) {
187
- null
188
- } catch (e: NoSuchFieldException) {
189
- null
190
- }
191
- }
192
-
193
- private fun parseString(container: JsonObject?, property: String): String? {
194
- if (container == null) return null
195
- var jsonValue = container[property]
196
- if (jsonValue == null && property.endsWith("Id")) {
197
- // inconsistencies in SDK cause confusion, try uppercased xxxxID just in case
198
- jsonValue = container[property.replace("Id", "ID")]
199
- }
200
- if (jsonValue == null) return null
201
- if (!jsonValue.isJsonPrimitive) return null
202
- return if (!jsonValue.asJsonPrimitive.isString) null else jsonValue.asString
203
- }
204
-
205
- private fun parseInteger(container: JsonObject?, property: String): Int? {
206
- if (container == null) return null
207
- val jsonValue = container[property] ?: return null
208
- if (!jsonValue.isJsonPrimitive) return null
209
- return if (!jsonValue.asJsonPrimitive.isNumber) null else jsonValue.asInt
210
- }
211
- }
@@ -1,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
- }
@@ -1,82 +0,0 @@
1
- package com.twentyfouri.tvbridge.webview.client
2
-
3
- import android.content.Context
4
- import android.content.pm.PackageManager
5
- import android.graphics.Color
6
- import android.util.AttributeSet
7
- import android.util.Log
8
- import android.view.KeyEvent
9
- import android.webkit.WebSettings
10
- import android.webkit.WebView
11
- import com.twentyfouri.tvbridge.BuildConfig
12
- import com.twentyfouri.tvbridge.configuration.BridgeConfig
13
- import com.twentyfouri.tvbridge.global.BaseApplication
14
-
15
- /**
16
- * Created by gonzapico on 20/09/2017.
17
- *
18
- *
19
- * Custom WebView of 24i with the configuration required to play the videos.
20
- */
21
- class BridgeWebView @JvmOverloads constructor(
22
- context: Context,
23
- attrs: AttributeSet? = null
24
- ) : WebView(context, attrs) {
25
-
26
- var previewKeyEvent: ((KeyEvent) -> Boolean)? = null
27
-
28
- private val config: BridgeConfig?
29
- get() = (context.applicationContext as? BaseApplication)?.component?.configuration
30
-
31
- init {
32
- // Set the background color of the WebView to transparent, so the video player can be shown behind it.
33
- setBackgroundColor(Color.TRANSPARENT)
34
- val webSettings = this.settings
35
- webSettings.javaScriptEnabled = true
36
- webSettings.domStorageEnabled = true
37
- webSettings.useWideViewPort = true
38
- webSettings.loadWithOverviewMode = true
39
- webSettings.mediaPlaybackRequiresUserGesture = false
40
- webSettings.allowFileAccess = true
41
- webSettings.allowContentAccess = true
42
- webSettings.userAgentString = config?.userAgent?.value ?: userAgent
43
-
44
- // Log the settings of the WebView.
45
- if (BuildConfig.DEBUG) {
46
- logWebViewSettings(webSettings)
47
- }
48
- }
49
-
50
- private val userAgent: String?
51
- get() {
52
- try {
53
- val ai = context.packageManager.getApplicationInfo(context.packageName, PackageManager.GET_META_DATA)
54
- val bundle = ai.metaData
55
- return bundle.getString("user-agent")
56
- } catch (e: PackageManager.NameNotFoundException) {
57
- Log.e(LOG, "Failed to load meta-data, NameNotFound: " + e.message)
58
- } catch (e: NullPointerException) {
59
- Log.e(LOG, "Failed to load meta-data, NullPointer: " + e.message)
60
- }
61
- return "unknown"
62
- }
63
-
64
- override fun dispatchKeyEvent(event: KeyEvent): Boolean {
65
- if (previewKeyEvent?.invoke(event) == true) return true
66
- return super.dispatchKeyEvent(event)
67
- }
68
-
69
- companion object {
70
- private const val LOG = "24iWebView"
71
- private fun logWebViewSettings(webSettings: WebSettings) {
72
- Log.v(LOG, "logWebViewSettings")
73
- Log.v(LOG, " * supportZoom: " + webSettings.supportZoom())
74
- Log.v(LOG, " * getBuiltInZoomControls: " + webSettings.builtInZoomControls)
75
- Log.v(LOG, " * getDisplayZoomControls: " + webSettings.displayZoomControls)
76
- Log.v(LOG, " * getLoadWithOverviewMode: " + webSettings.loadWithOverviewMode)
77
- Log.v(LOG, " * getUseWideViewPort: " + webSettings.useWideViewPort)
78
- Log.v(LOG, " * getJavaScriptEnabled: " + webSettings.javaScriptEnabled)
79
- Log.v(LOG, " * getJavaScriptCanOpenWindowsAutomatically: " + webSettings.javaScriptCanOpenWindowsAutomatically)
80
- }
81
- }
82
- }
@@ -1,114 +0,0 @@
1
- package com.twentyfouri.tvbridge.webview.client
2
-
3
- import android.graphics.Bitmap
4
- import android.net.http.SslError
5
- import android.os.Build
6
- import android.os.Message
7
- import android.util.Log
8
- import android.view.InputEvent
9
- import android.view.KeyEvent
10
- import android.webkit.*
11
-
12
- /**
13
- * Created by gonzapico on 21/09/2017.
14
- *
15
- *
16
- * Custom 24i WebViewClient to override the methods required by the app.
17
- */
18
- class BridgeWebViewClient(
19
- private val callback: BridgeWebViewClientCallback
20
- ) : WebViewClient() {
21
-
22
- interface BridgeWebViewClientCallback {
23
- fun onUnhandledKeyEvent(view: WebView, event: KeyEvent)
24
- }
25
-
26
- override fun doUpdateVisitedHistory(view: WebView, url: String, isReload: Boolean) {
27
- //Log.v(LOGTAG, "doUpdateVisitedHistory - " + url);
28
- }
29
-
30
- override fun onFormResubmission(view: WebView, dontResend: Message?, resend: Message?) {
31
- Log.v(LOGTAG, "onFormResubmission")
32
- }
33
-
34
- override fun onLoadResource(view: WebView, url: String?) {
35
- //Log.v(LOGTAG, "onLoadResource - " + url);
36
- }
37
-
38
- override fun onPageFinished(view: WebView, url: String?) {
39
- Log.v(LOGTAG, "onPageFinished - $url")
40
- }
41
-
42
- override fun onPageStarted(view: WebView, url: String?, favicon: Bitmap?) {
43
- Log.v(LOGTAG, "onPageStarted - $url")
44
- }
45
-
46
- // Surpress warnings about deprecation. Also added API level 23 version of method below.
47
- override fun onReceivedError(view: WebView, errorCode: Int, description: String, failingUrl: String) {
48
- Log.v(LOGTAG, "onReceivedError (<=22) - $description")
49
- }
50
-
51
- override fun onReceivedError(view: WebView, request: WebResourceRequest, error: WebResourceError) {
52
- // Log the description on devices at API level 23 (Marshmellow) or higher.
53
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
54
- Log.v(LOGTAG, "onReceivedError (>=23) - " + error.description)
55
- }
56
- }
57
-
58
- override fun onReceivedHttpAuthRequest(view: WebView, handler: HttpAuthHandler, host: String, realm: String) {
59
- Log.v(LOGTAG, "onReceivedHttpAuthRequest - $host")
60
- }
61
-
62
- override fun onReceivedHttpError(view: WebView, request: WebResourceRequest, errorResponse: WebResourceResponse) {
63
- // Log the description on devices at API level 23 (Marshmellow) or higher.
64
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
65
- Log.v(LOGTAG, "onReceivedError (>=23) - " + errorResponse.statusCode + " " + errorResponse.reasonPhrase)
66
- }
67
- }
68
-
69
- override fun onReceivedLoginRequest(view: WebView, realm: String, account: String?, args: String?) {
70
- Log.v(LOGTAG, "onReceivedLoginRequest - $realm")
71
- }
72
-
73
- override fun onReceivedSslError(view: WebView, handler: SslErrorHandler, error: SslError) {
74
- Log.v(LOGTAG, "onReceivedSslError - $error")
75
- }
76
-
77
- override fun onScaleChanged(view: WebView, oldScale: Float, newScale: Float) {
78
- Log.v(LOGTAG, "onScaleChanged - oldScale: $oldScale, newScale: $newScale")
79
- }
80
-
81
- // Surpress warnings about deprecation. Also added API level 21 version of method below.
82
- override fun onUnhandledKeyEvent(view: WebView, event: KeyEvent) {
83
- callback.onUnhandledKeyEvent(view, event)
84
- }
85
-
86
- fun onUnhandledInputEvent(view: WebView?, event: InputEvent) {
87
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
88
- Log.v(LOGTAG, "onUnhandledInputEvent (>=21) - $event")
89
- }
90
- }
91
-
92
- // Surpress warnings about deprecation. Also added API level 21 version of method below.
93
- override fun shouldInterceptRequest(view: WebView, url: String?): WebResourceResponse? {
94
- return null
95
- }
96
-
97
- override fun shouldInterceptRequest(view: WebView, request: WebResourceRequest): WebResourceResponse? {
98
- return null
99
- }
100
-
101
- override fun shouldOverrideKeyEvent(view: WebView, event: KeyEvent): Boolean {
102
- return false
103
- }
104
-
105
- // Handle all clicked links within the WebView.
106
- override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
107
- Log.v(LOGTAG, "shouldOverrideUrlLoading - $url")
108
- return false
109
- }
110
-
111
- companion object {
112
- private const val LOGTAG = "24iWebViewClient"
113
- }
114
- }
@@ -1,10 +0,0 @@
1
- package com.twentyfouri.tvbridge.webview.model
2
-
3
- import com.google.gson.JsonObject
4
-
5
- class AnalyticsPlaybackInfo {
6
- var id: String? = null
7
- var name: String? = null
8
- var userInfo: JsonObject? = null
9
- var contentInfo: JsonObject? = null
10
- }
@@ -1,14 +0,0 @@
1
- package com.twentyfouri.tvbridge.webview.model
2
-
3
- import com.google.gson.annotations.SerializedName
4
-
5
- class ContentModel {
6
- @SerializedName("streamUrl")
7
- var streamUrl: String? = null
8
-
9
- @SerializedName("drmConfig")
10
- var drmModel: DrmModel? = null
11
-
12
- @SerializedName("streamType")
13
- var streamType: String? = null
14
- }
@@ -1,20 +0,0 @@
1
- package com.twentyfouri.tvbridge.webview.model
2
-
3
- import com.google.gson.annotations.SerializedName
4
-
5
- class DrmModel {
6
- @SerializedName("drmSchemeUuid")
7
- var drmSchemeUuid: String? = null
8
-
9
- @SerializedName("drmLicenseUrl")
10
- var drmLicenseUrl: String? = null
11
-
12
- @SerializedName("drmCustomData")
13
- var keyRequestProperties: Map<String, String>? = null
14
-
15
- @SerializedName("overrideDrmCallback")
16
- var overrideDrmCallback: Boolean? = null
17
-
18
- @SerializedName("multiSessionEnabled")
19
- var multiSessionEnabled: Boolean? = null
20
- }
@@ -1,20 +0,0 @@
1
- package com.twentyfouri.tvbridge.webview.model
2
-
3
- /**
4
- * Created by mitchellwit on 10/03/2017.
5
- */
6
- object MediaEventType {
7
- const val TIME_UPDATE = "timeupdate"
8
- const val ERROR = "error"
9
- const val PLAYING = "playing"
10
- const val PAUSE = "pause"
11
- const val PLAY = "pause"
12
- const val ENDED = "ended"
13
- const val WAITING = "waiting"
14
- const val SEEKING = "seeking"
15
- const val SEEKED = "seeked"
16
- const val KEY_PRESS = "keypress"
17
- const val KEY_UP = "keyup"
18
- const val KEY_DOWN = "keydown"
19
- const val TRACKS_CHANGED = "tracksChanged"
20
- }
@@ -1,16 +0,0 @@
1
- package com.twentyfouri.tvbridge.webview.parser
2
-
3
- import com.google.gson.Gson
4
- import com.twentyfouri.tvbridge.webview.model.ContentModel
5
-
6
- object ContentModelParser {
7
- fun stringToJson(json: String?): ContentModel? = when {
8
- json.isNullOrEmpty() -> null
9
- json.startsWith("http://") || json.startsWith("https://") ->
10
- ContentModel().apply {
11
- streamUrl = json
12
- }
13
- else ->
14
- Gson().fromJson(json, ContentModel::class.java)
15
- }
16
- }
@@ -1,22 +0,0 @@
1
- package com.twentyfouri.tvbridge.webview.parser
2
-
3
- import android.os.Build
4
- import org.json.JSONException
5
- import org.json.JSONObject
6
-
7
- object DeviceInfoParser {
8
- // TODO Auto-generated catch block
9
- val deviceInfoParsed: String
10
- get() {
11
- val deviceInfo = JSONObject()
12
- try {
13
- deviceInfo.put("deviceBrand", Build.MANUFACTURER)
14
- deviceInfo.put("deviceModel", Build.MODEL)
15
- deviceInfo.put("osVersion", Build.VERSION.RELEASE)
16
- } catch (e: JSONException) {
17
- // TODO Auto-generated catch block
18
- e.printStackTrace()
19
- }
20
- return deviceInfo.toString()
21
- }
22
- }
@@ -1,10 +0,0 @@
1
- package com.twentyfouri.tvbridge.webview.parser
2
-
3
- import com.google.gson.Gson
4
- import com.twentyfouri.tvbridge.webview.model.AnalyticsPlaybackInfo
5
-
6
- object PlaybackInfoParser {
7
- fun parse(serialized: String?): AnalyticsPlaybackInfo {
8
- return Gson().fromJson(serialized, AnalyticsPlaybackInfo::class.java)
9
- }
10
- }
@@ -1,58 +0,0 @@
1
- package com.twentyfouri.tvbridge.webview.parser
2
-
3
- import com.twentyfouri.player.base.AudioTrack
4
- import com.twentyfouri.player.base.DefaultSourceSerializer
5
- import com.twentyfouri.player.base.TextTrack
6
- import org.json.JSONArray
7
- import org.json.JSONObject
8
- import java.util.*
9
-
10
- object TrackJsonModelParser {
11
-
12
- val serializer = DefaultSourceSerializer()
13
-
14
- fun toJson(audioTracks: List<AudioTrack>?, textTracks: List<TextTrack>?): String {
15
- val jsonArray = JSONArray()
16
- audioTracks?.forEach {
17
- jsonArray.put(toJsonTree(it))
18
- }
19
- textTracks?.forEach {
20
- jsonArray.put(toJsonTree(it))
21
- }
22
- return jsonArray.toString()
23
- }
24
-
25
- fun toJson(trackInfo: AudioTrack?): String {
26
- if (trackInfo == null) return ""
27
- return toJsonTree(trackInfo ?: return "").toString()
28
- }
29
-
30
- fun toJson(trackInfo: TextTrack?): String {
31
- return toJsonTree(trackInfo ?: return "").toString()
32
- }
33
-
34
- private fun toJsonTree(trackInfo: AudioTrack) = serializer.toPersistentMap(trackInfo).also {
35
- it.put("type", "audio")
36
- it.put("name", buildTrackName(trackInfo.language, trackInfo.label))
37
- }
38
-
39
- private fun toJsonTree(trackInfo: TextTrack) = serializer.toPersistentMap(trackInfo).also {
40
- it.put("type", "subtitles")
41
- it.put("name", buildTrackName(trackInfo.language, trackInfo.label))
42
- }
43
-
44
- private fun buildTrackName(language: String?, label: String?): String? {
45
- if (language.isNullOrEmpty()) return label
46
- return Locale(language).displayName
47
- }
48
-
49
- fun audioFromJson(json: String?): AudioTrack? {
50
- if (json.isNullOrEmpty()) return null
51
- return serializer.toAudioTrack(JSONObject(json))
52
- }
53
-
54
- fun textFromJson(json: String?): TextTrack? {
55
- if (json.isNullOrEmpty()) return null
56
- return serializer.toTextTrack(JSONObject(json))
57
- }
58
- }