@24i/smartapps-bigscreen-rnv-build-engine 0.17.2-alpha.2154 → 0.17.2-alpha.2155

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 (279) hide show
  1. package/dist/templates/platforms/androidtv/project/README.md +198 -0
  2. package/dist/templates/platforms/androidtv/project/amazoniap/build.gradle +39 -0
  3. package/dist/templates/platforms/androidtv/project/amazoniap/consumer-rules.pro +0 -0
  4. package/dist/templates/platforms/androidtv/project/amazoniap/libs/in-app-purchasing-2.0.76.jar +0 -0
  5. package/dist/templates/platforms/androidtv/project/amazoniap/proguard-rules.pro +21 -0
  6. package/dist/templates/platforms/androidtv/project/amazoniap/src/main/AndroidManifest.xml +4 -0
  7. package/dist/templates/platforms/androidtv/project/amazoniap/src/main/java/com/twentyfouri/bridgetv/amazoniap/AmazonIapSevice.kt +106 -0
  8. package/dist/templates/platforms/androidtv/project/app/build.gradle +371 -0
  9. package/dist/templates/platforms/androidtv/project/app/proguard-rules.pro +32 -0
  10. package/dist/templates/platforms/androidtv/project/app/src/alhurra/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  11. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/drawable/banner.png +0 -0
  12. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-hdpi/ic_launcher.png +0 -0
  13. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-mdpi/ic_launcher.png +0 -0
  14. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-xhdpi/ic_launcher.png +0 -0
  15. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  16. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  17. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/raw/configuration.json +7 -0
  18. package/dist/templates/platforms/androidtv/project/app/src/androidTest/assets/getStatusSuccesfulResponse.json +9 -0
  19. package/dist/templates/platforms/androidtv/project/app/src/androidTest/assets/tokenFromPassword_200.json +7 -0
  20. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/ngsn/tv/RestServiceTestHelper.java +34 -0
  21. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/ngsn/tv/WebViewActivityTest.java +104 -0
  22. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/SignTest.kt +54 -0
  23. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/amazonIAP/AmazonIAPManagerTest.java +74 -0
  24. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/amazonIAP/SinclairTestRunner.java +22 -0
  25. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/webview/ui/model/BridgeWebViewTest.java +50 -0
  26. package/dist/templates/platforms/androidtv/project/app/src/bbg/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  27. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/drawable/banner.png +0 -0
  28. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-hdpi/ic_launcher.png +0 -0
  29. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-mdpi/ic_launcher.png +0 -0
  30. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-xhdpi/ic_launcher.png +0 -0
  31. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  32. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  33. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/raw/configuration.json +7 -0
  34. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  35. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/drawable/banner.png +0 -0
  36. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-hdpi/ic_launcher.png +0 -0
  37. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-mdpi/ic_launcher.png +0 -0
  38. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-xhdpi/ic_launcher.png +0 -0
  39. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  40. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  41. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/raw/configuration.json +6 -0
  42. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/java/com/twentyfouri/tvbridge/Flavor.kt +9 -0
  43. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/drawable/banner.png +0 -0
  44. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-hdpi/ic_launcher.png +0 -0
  45. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-mdpi/ic_launcher.png +0 -0
  46. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-xhdpi/ic_launcher.png +0 -0
  47. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  48. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/raw/configuration.json +16 -0
  49. package/dist/templates/platforms/androidtv/project/app/src/cineClick/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  50. package/dist/templates/platforms/androidtv/project/app/src/cineClick/res/raw/configuration.json +6 -0
  51. package/dist/templates/platforms/androidtv/project/app/src/entel/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  52. package/dist/templates/platforms/androidtv/project/app/src/entel/res/raw/configuration.json +6 -0
  53. package/dist/templates/platforms/androidtv/project/app/src/fuboTV/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  54. package/dist/templates/platforms/androidtv/project/app/src/fuboTV/res/raw/configuration.json +6 -0
  55. package/dist/templates/platforms/androidtv/project/app/src/fuse/AndroidManifest.xml +12 -0
  56. package/dist/templates/platforms/androidtv/project/app/src/fuse/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  57. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/drawable/banner.png +0 -0
  58. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-hdpi/ic_launcher.png +0 -0
  59. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-mdpi/ic_launcher.png +0 -0
  60. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-xhdpi/ic_launcher.png +0 -0
  61. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  62. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  63. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/raw/configuration.json +9 -0
  64. package/dist/templates/platforms/androidtv/project/app/src/gsn/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  65. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/drawable/banner.png +0 -0
  66. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-hdpi/ic_launcher.png +0 -0
  67. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-mdpi/ic_launcher.png +0 -0
  68. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-xhdpi/ic_launcher.png +0 -0
  69. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  70. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/raw/configuration.json +8 -0
  71. package/dist/templates/platforms/androidtv/project/app/src/heremedia/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  72. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/drawable/banner.png +0 -0
  73. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-hdpi/ic_launcher.png +0 -0
  74. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-mdpi/ic_launcher.png +0 -0
  75. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-xhdpi/ic_launcher.png +0 -0
  76. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  77. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  78. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/raw/configuration.json +6 -0
  79. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  80. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-hdpi/ic_launcher.png +0 -0
  81. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-mdpi/ic_launcher.png +0 -0
  82. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-xhdpi/ic_launcher.png +0 -0
  83. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  84. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  85. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/raw/configuration.json +6 -0
  86. package/dist/templates/platforms/androidtv/project/app/src/kijk/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  87. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/drawable/banner.png +0 -0
  88. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-hdpi/ic_launcher.png +0 -0
  89. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-mdpi/ic_launcher.png +0 -0
  90. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-xhdpi/ic_launcher.png +0 -0
  91. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  92. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  93. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/raw/configuration.json +6 -0
  94. package/dist/templates/platforms/androidtv/project/app/src/kpn/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  95. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/drawable/banner.png +0 -0
  96. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-hdpi/ic_launcher.png +0 -0
  97. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-mdpi/ic_launcher.png +0 -0
  98. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-xhdpi/ic_launcher.png +0 -0
  99. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  100. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  101. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/raw/configuration.json +6 -0
  102. package/dist/templates/platforms/androidtv/project/app/src/main/AndroidManifest.xml +47 -0
  103. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/FlavorBase.kt +12 -0
  104. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeFromJavaScript.kt +379 -0
  105. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeToJavaScript.kt +65 -0
  106. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/BridgeConfig.kt +9 -0
  107. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/ConfigCallback.kt +6 -0
  108. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/ConfigProvider.kt +27 -0
  109. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/Drm.kt +10 -0
  110. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/UserAgent.kt +6 -0
  111. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/BaseApplication.kt +73 -0
  112. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityComponent.kt +13 -0
  113. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityModule.kt +19 -0
  114. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ApplicationComponent.kt +24 -0
  115. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ApplicationModule.kt +43 -0
  116. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/PerActivity.kt +26 -0
  117. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/HttpMediaDrmCallback.kt +184 -0
  118. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/LocalStorage.kt +30 -0
  119. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/LoggingDrmCallback.kt +46 -0
  120. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/SimpleActivityLifecycleCallback.kt +32 -0
  121. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/jump/JumpAnalytics.kt +209 -0
  122. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/sound/TouchPlayer.kt +86 -0
  123. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/client/BridgeWebView.kt +80 -0
  124. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/client/BridgeWebViewClient.kt +114 -0
  125. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/AnalyticsPlaybackInfo.kt +10 -0
  126. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/ContentModel.kt +14 -0
  127. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/DrmModel.kt +20 -0
  128. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/MediaEventType.kt +17 -0
  129. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/ContentModelParser.kt +16 -0
  130. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/DeviceInfoParser.kt +22 -0
  131. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/PlaybackInfoParser.kt +10 -0
  132. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/TrackJsonModelParser.kt +76 -0
  133. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/Mainview.kt +22 -0
  134. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/PlayerCache.kt +15 -0
  135. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/WebViewActivity.kt +279 -0
  136. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/viewmodel/WebViewModel.kt +569 -0
  137. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/banner.png +0 -0
  138. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_focus.xml +10 -0
  139. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_normal.xml +7 -0
  140. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_pressed.xml +7 -0
  141. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_focus.xml +8 -0
  142. package/dist/templates/platforms/androidtv/project/app/src/main/res/layout/activity_web_view.xml +78 -0
  143. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  144. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  145. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  146. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  147. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  148. package/dist/templates/platforms/androidtv/project/app/src/main/res/raw/click.ogg +0 -0
  149. package/dist/templates/platforms/androidtv/project/app/src/main/res/raw/fiddle_root_michal_konecny.cer +0 -0
  150. package/dist/templates/platforms/androidtv/project/app/src/main/res/raw/proxy_milanwilczak.pem +26 -0
  151. package/dist/templates/platforms/androidtv/project/app/src/main/res/values/styles.xml +11 -0
  152. package/dist/templates/platforms/androidtv/project/app/src/main/res/xml/network_security_config.xml +12 -0
  153. package/dist/templates/platforms/androidtv/project/app/src/marti/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  154. package/dist/templates/platforms/androidtv/project/app/src/marti/res/drawable/banner.png +0 -0
  155. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-hdpi/ic_launcher.png +0 -0
  156. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-mdpi/ic_launcher.png +0 -0
  157. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-xhdpi/ic_launcher.png +0 -0
  158. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  159. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  160. package/dist/templates/platforms/androidtv/project/app/src/marti/res/raw/configuration.json +8 -0
  161. package/dist/templates/platforms/androidtv/project/app/src/newsmax/AndroidManifest.xml +43 -0
  162. package/dist/templates/platforms/androidtv/project/app/src/newsmax/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  163. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/drawable/banner.png +0 -0
  164. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-hdpi/ic_launcher.png +0 -0
  165. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-mdpi/ic_launcher.png +0 -0
  166. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-xhdpi/ic_launcher.png +0 -0
  167. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  168. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  169. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/raw/configuration.json +7 -0
  170. package/dist/templates/platforms/androidtv/project/app/src/portal/java/com/twentyfouri/tvbridge/Flavor.kt +10 -0
  171. package/dist/templates/platforms/androidtv/project/app/src/portal/res/raw/configuration.json +7 -0
  172. package/dist/templates/platforms/androidtv/project/app/src/portalDrm/java/com/twentyfouri/tvbridge/Flavor.kt +10 -0
  173. package/dist/templates/platforms/androidtv/project/app/src/portalDrm/res/drawable/banner.png +0 -0
  174. package/dist/templates/platforms/androidtv/project/app/src/portalDrm/res/raw/configuration.json +6 -0
  175. package/dist/templates/platforms/androidtv/project/app/src/pureflix/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  176. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/drawable/banner.png +0 -0
  177. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-hdpi/ic_launcher.png +0 -0
  178. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-mdpi/ic_launcher.png +0 -0
  179. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-xhdpi/ic_launcher.png +0 -0
  180. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  181. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  182. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/raw/configuration.json +6 -0
  183. package/dist/templates/platforms/androidtv/project/app/src/rfa/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  184. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/drawable/banner.png +0 -0
  185. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-hdpi/ic_launcher.png +0 -0
  186. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-mdpi/ic_launcher.png +0 -0
  187. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-xhdpi/ic_launcher.png +0 -0
  188. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  189. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  190. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/raw/configuration.json +7 -0
  191. package/dist/templates/platforms/androidtv/project/app/src/rfe/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  192. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/drawable/banner.png +0 -0
  193. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-hdpi/ic_launcher.png +0 -0
  194. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-mdpi/ic_launcher.png +0 -0
  195. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-xhdpi/ic_launcher.png +0 -0
  196. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  197. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  198. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/raw/configuration.json +6 -0
  199. package/dist/templates/platforms/androidtv/project/app/src/rte/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  200. package/dist/templates/platforms/androidtv/project/app/src/rte/res/drawable/banner.png +0 -0
  201. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-hdpi/ic_launcher.png +0 -0
  202. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-mdpi/ic_launcher.png +0 -0
  203. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-xhdpi/ic_launcher.png +0 -0
  204. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  205. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  206. package/dist/templates/platforms/androidtv/project/app/src/rte/res/raw/configuration.json +9 -0
  207. package/dist/templates/platforms/androidtv/project/app/src/sentai/google-services.json +191 -0
  208. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-hdpi/ic_launcher.png +0 -0
  209. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-mdpi/ic_launcher.png +0 -0
  210. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-xhdpi/ic_launcher.png +0 -0
  211. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  212. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  213. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/raw/configuration.json +15 -0
  214. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/google-services.json +191 -0
  215. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/java/com/twentyfouri/tvbridge/Flavor.kt +54 -0
  216. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/java/com/twentyfouri/tvbridge/SentaiRequestData.kt +13 -0
  217. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/drawable/banner.png +0 -0
  218. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-hdpi/ic_launcher.png +0 -0
  219. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-mdpi/ic_launcher.png +0 -0
  220. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-xhdpi/ic_launcher.png +0 -0
  221. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  222. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  223. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/raw/configuration.json +14 -0
  224. package/dist/templates/platforms/androidtv/project/app/src/smartott/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  225. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-hdpi/ic_launcher.png +0 -0
  226. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-mdpi/ic_launcher.png +0 -0
  227. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-xhdpi/ic_launcher.png +0 -0
  228. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  229. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/raw/configuration.json +6 -0
  230. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/java/com/twentyfouri/tvbridge/Flavor.kt +9 -0
  231. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-hdpi/ic_launcher.png +0 -0
  232. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-mdpi/ic_launcher.png +0 -0
  233. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-xhdpi/ic_launcher.png +0 -0
  234. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  235. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  236. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/raw/configuration.json +6 -0
  237. package/dist/templates/platforms/androidtv/project/app/src/topic/java/com/twentyfouri/tvbridge/Flavor.kt +9 -0
  238. package/dist/templates/platforms/androidtv/project/app/src/topic/res/drawable/banner.png +0 -0
  239. package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-hdpi/ic_launcher.png +0 -0
  240. package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-mdpi/ic_launcher.png +0 -0
  241. package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-xhdpi/ic_launcher.png +0 -0
  242. package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  243. package/dist/templates/platforms/androidtv/project/app/src/topic/res/raw/configuration.json +9 -0
  244. package/dist/templates/platforms/androidtv/project/app/src/voa/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  245. package/dist/templates/platforms/androidtv/project/app/src/voa/res/drawable/banner.png +0 -0
  246. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-hdpi/ic_launcher.png +0 -0
  247. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-mdpi/ic_launcher.png +0 -0
  248. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-xhdpi/ic_launcher.png +0 -0
  249. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  250. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  251. package/dist/templates/platforms/androidtv/project/app/src/voa/res/raw/configuration.json +7 -0
  252. package/dist/templates/platforms/androidtv/project/app/src/voa365/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  253. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/drawable/banner.png +0 -0
  254. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-hdpi/ic_launcher.png +0 -0
  255. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-mdpi/ic_launcher.png +0 -0
  256. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-xhdpi/ic_launcher.png +0 -0
  257. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  258. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  259. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/raw/configuration.json +7 -0
  260. package/dist/templates/platforms/androidtv/project/app/src/youFone/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  261. package/dist/templates/platforms/androidtv/project/app/src/youFone/res/raw/configuration.json +6 -0
  262. package/dist/templates/platforms/androidtv/project/build.gradle +52 -0
  263. package/dist/templates/platforms/androidtv/project/common/build.gradle +38 -0
  264. package/dist/templates/platforms/androidtv/project/common/consumer-rules.pro +0 -0
  265. package/dist/templates/platforms/androidtv/project/common/proguard-rules.pro +21 -0
  266. package/dist/templates/platforms/androidtv/project/common/src/main/AndroidManifest.xml +4 -0
  267. package/dist/templates/platforms/androidtv/project/common/src/main/java/com/twentyfouri/tvbridge/common/IapService.kt +114 -0
  268. package/dist/templates/platforms/androidtv/project/googleiap/build.gradle +40 -0
  269. package/dist/templates/platforms/androidtv/project/googleiap/consumer-rules.pro +0 -0
  270. package/dist/templates/platforms/androidtv/project/googleiap/proguard-rules.pro +21 -0
  271. package/dist/templates/platforms/androidtv/project/googleiap/src/main/AndroidManifest.xml +6 -0
  272. package/dist/templates/platforms/androidtv/project/googleiap/src/main/java/com/twentyfouri/tvbridge/googleiap/GoogleIapService.kt +29 -0
  273. package/dist/templates/platforms/androidtv/project/gradle/wrapper/gradle-wrapper.jar +0 -0
  274. package/dist/templates/platforms/androidtv/project/gradle/wrapper/gradle-wrapper.properties +6 -0
  275. package/dist/templates/platforms/androidtv/project/gradle.properties +5 -0
  276. package/dist/templates/platforms/androidtv/project/keystore/debug_madrid.jks +0 -0
  277. package/dist/templates/platforms/androidtv/project/proguard-rules.pro +42 -0
  278. package/dist/templates/platforms/androidtv/project/settings.gradle +4 -0
  279. package/package.json +3 -2
@@ -0,0 +1,80 @@
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.userAgentString = config?.userAgent?.value ?: userAgent
41
+
42
+ // Log the settings of the WebView.
43
+ if (BuildConfig.DEBUG) {
44
+ logWebViewSettings(webSettings)
45
+ }
46
+ }
47
+
48
+ private val userAgent: String?
49
+ get() {
50
+ try {
51
+ val ai = context.packageManager.getApplicationInfo(context.packageName, PackageManager.GET_META_DATA)
52
+ val bundle = ai.metaData
53
+ return bundle.getString("user-agent")
54
+ } catch (e: PackageManager.NameNotFoundException) {
55
+ Log.e(LOG, "Failed to load meta-data, NameNotFound: " + e.message)
56
+ } catch (e: NullPointerException) {
57
+ Log.e(LOG, "Failed to load meta-data, NullPointer: " + e.message)
58
+ }
59
+ return "unknown"
60
+ }
61
+
62
+ override fun dispatchKeyEvent(event: KeyEvent): Boolean {
63
+ if (previewKeyEvent?.invoke(event) == true) return true
64
+ return super.dispatchKeyEvent(event)
65
+ }
66
+
67
+ companion object {
68
+ private const val LOG = "24iWebView"
69
+ private fun logWebViewSettings(webSettings: WebSettings) {
70
+ Log.v(LOG, "logWebViewSettings")
71
+ Log.v(LOG, " * supportZoom: " + webSettings.supportZoom())
72
+ Log.v(LOG, " * getBuiltInZoomControls: " + webSettings.builtInZoomControls)
73
+ Log.v(LOG, " * getDisplayZoomControls: " + webSettings.displayZoomControls)
74
+ Log.v(LOG, " * getLoadWithOverviewMode: " + webSettings.loadWithOverviewMode)
75
+ Log.v(LOG, " * getUseWideViewPort: " + webSettings.useWideViewPort)
76
+ Log.v(LOG, " * getJavaScriptEnabled: " + webSettings.javaScriptEnabled)
77
+ Log.v(LOG, " * getJavaScriptCanOpenWindowsAutomatically: " + webSettings.javaScriptCanOpenWindowsAutomatically)
78
+ }
79
+ }
80
+ }
@@ -0,0 +1,114 @@
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
+ }
@@ -0,0 +1,10 @@
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
+ }
@@ -0,0 +1,14 @@
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
+ }
@@ -0,0 +1,20 @@
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
+ }
@@ -0,0 +1,17 @@
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 ENDED = "ended"
11
+ const val WAITING = "waiting"
12
+ const val SEEKED = "seeked"
13
+ const val KEY_PRESS = "keypress"
14
+ const val KEY_UP = "keyup"
15
+ const val KEY_DOWN = "keydown"
16
+ const val TRACKS_CHANGED = "tracksChanged"
17
+ }
@@ -0,0 +1,16 @@
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
+ }
@@ -0,0 +1,22 @@
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
+ }
@@ -0,0 +1,10 @@
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
+ }
@@ -0,0 +1,76 @@
1
+ package com.twentyfouri.tvbridge.webview.parser
2
+
3
+ import com.google.android.exoplayer2.Format
4
+ import com.google.android.exoplayer2.drm.DrmInitData
5
+ import com.google.gson.*
6
+ import com.twentyfouri.smartexoplayer.tracks.TrackInfo
7
+ import com.twentyfouri.smartexoplayer.tracks.TrackPreference
8
+ import com.google.android.exoplayer2.metadata.Metadata as ExoPlayerMetadata
9
+
10
+ /**
11
+ * Created by mitchellwit on 12/01/2018.
12
+ */
13
+ object TrackJsonModelParser {
14
+
15
+ fun toJson(tracksInfo: List<TrackInfo>?): String {
16
+ val jsonArray = JsonArray()
17
+ tracksInfo?.forEach {
18
+ jsonArray.add(toJsonTree(it))
19
+ }
20
+ return jsonArray.toString()
21
+ }
22
+
23
+ fun toJson(trackInfo: TrackInfo?): String {
24
+ return toJsonTree(trackInfo ?: return "").toString()
25
+ }
26
+
27
+ private fun toJsonTree(trackInfo: TrackInfo) = JsonObject().apply {
28
+ addProperty("type", trackInfo.type)
29
+ addProperty("language", trackInfo.language)
30
+ addProperty("name", trackInfo.name)
31
+ add("format", gson.toJsonTree(trackInfo.format))
32
+ }
33
+
34
+ fun fromJson(json: String?): TrackPreference? {
35
+ if (json.isNullOrEmpty()) return null
36
+ val jsonTree =
37
+ gson.fromJson(json, JsonElement::class.java) as? JsonObject ?: return null
38
+ val type = jsonTree.getString("type") ?: return null
39
+ val language = jsonTree.getString("language")
40
+ val name = jsonTree.getString("name")
41
+ val format = gson.fromJson(jsonTree.get("format") ?: JsonNull.INSTANCE, Format::class.java)
42
+
43
+ return when {
44
+ format != null && name != null ->
45
+ TrackPreference.forTrackInfo(TrackInfo(type, name, format, true))
46
+ name != null ->
47
+ TrackPreference.forName(name)
48
+ language != null ->
49
+ TrackPreference.forLanguage(language)
50
+ else ->
51
+ null
52
+ }
53
+ }
54
+
55
+ private fun JsonObject.getString(property: String): String? {
56
+ return when (val element = get(property)) {
57
+ is JsonPrimitive -> element.asString
58
+ else -> null
59
+ }
60
+ }
61
+
62
+ private val gson: Gson = GsonBuilder()
63
+ .setExclusionStrategies(object : ExclusionStrategy {
64
+ override fun shouldSkipField(f: FieldAttributes): Boolean =
65
+ false
66
+
67
+ override fun shouldSkipClass(clazz: Class<*>): Boolean = when {
68
+ clazz == Class::class.java -> true
69
+ clazz == DrmInitData::class.java -> true
70
+ clazz == ExoPlayerMetadata::class.java -> true
71
+ else -> false
72
+ }
73
+
74
+ })
75
+ .create()
76
+ }
@@ -0,0 +1,22 @@
1
+ package com.twentyfouri.tvbridge.webview.view
2
+
3
+ import com.twentyfouri.smartexoplayer.SmartPlayer
4
+
5
+ /**
6
+ * Created by destivar on 15/02/16.
7
+ */
8
+ interface Mainview {
9
+ fun loadUrl(url: String?)
10
+ fun goFullscreen()
11
+ fun exitFullscreen(width: Int, height: Int, left: Int, top: Int)
12
+ fun setUrlToView(urlString: String?)
13
+ fun setSubtitlesVisibility(subtitlesEnabled: Boolean)
14
+ fun setBlackCurtainVisibility(visibility: Int)
15
+ fun showMessage(message: String?)
16
+ fun requestAudioFocus(): Int
17
+ fun abandonAudioFocus()
18
+ fun onBackPressed()
19
+ fun launchIapPurchase(sku: String)
20
+ fun hideKeyboard()
21
+ fun assignPlayer(player: SmartPlayer?)
22
+ }
@@ -0,0 +1,15 @@
1
+ package com.twentyfouri.tvbridge.webview.view
2
+
3
+ import com.twentyfouri.tvbridge.webview.model.ContentModel
4
+
5
+ class PlayerCache {
6
+ enum class PlayerState {
7
+ PLAYING, PAUSED
8
+ }
9
+
10
+ var loadFromCache = false
11
+ var savedPlayerPosition: Long = 0
12
+ var savedPlayerDuration: Long = 0
13
+ var savedPlayerState: PlayerState? = null
14
+ var savedContentModel: ContentModel? = null
15
+ }