@24i/smartapps-bigscreen-rnv-build-engine 0.17.2-alpha.2153 → 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 (280) hide show
  1. package/dist/src/sdks/index.js +3 -1
  2. package/dist/templates/platforms/androidtv/project/README.md +198 -0
  3. package/dist/templates/platforms/androidtv/project/amazoniap/build.gradle +39 -0
  4. package/dist/templates/platforms/androidtv/project/amazoniap/consumer-rules.pro +0 -0
  5. package/dist/templates/platforms/androidtv/project/amazoniap/libs/in-app-purchasing-2.0.76.jar +0 -0
  6. package/dist/templates/platforms/androidtv/project/amazoniap/proguard-rules.pro +21 -0
  7. package/dist/templates/platforms/androidtv/project/amazoniap/src/main/AndroidManifest.xml +4 -0
  8. package/dist/templates/platforms/androidtv/project/amazoniap/src/main/java/com/twentyfouri/bridgetv/amazoniap/AmazonIapSevice.kt +106 -0
  9. package/dist/templates/platforms/androidtv/project/app/build.gradle +371 -0
  10. package/dist/templates/platforms/androidtv/project/app/proguard-rules.pro +32 -0
  11. package/dist/templates/platforms/androidtv/project/app/src/alhurra/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  12. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/drawable/banner.png +0 -0
  13. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-hdpi/ic_launcher.png +0 -0
  14. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-mdpi/ic_launcher.png +0 -0
  15. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-xhdpi/ic_launcher.png +0 -0
  16. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  17. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  18. package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/raw/configuration.json +7 -0
  19. package/dist/templates/platforms/androidtv/project/app/src/androidTest/assets/getStatusSuccesfulResponse.json +9 -0
  20. package/dist/templates/platforms/androidtv/project/app/src/androidTest/assets/tokenFromPassword_200.json +7 -0
  21. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/ngsn/tv/RestServiceTestHelper.java +34 -0
  22. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/ngsn/tv/WebViewActivityTest.java +104 -0
  23. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/SignTest.kt +54 -0
  24. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/amazonIAP/AmazonIAPManagerTest.java +74 -0
  25. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/amazonIAP/SinclairTestRunner.java +22 -0
  26. package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/webview/ui/model/BridgeWebViewTest.java +50 -0
  27. package/dist/templates/platforms/androidtv/project/app/src/bbg/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  28. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/drawable/banner.png +0 -0
  29. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-hdpi/ic_launcher.png +0 -0
  30. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-mdpi/ic_launcher.png +0 -0
  31. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-xhdpi/ic_launcher.png +0 -0
  32. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  33. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  34. package/dist/templates/platforms/androidtv/project/app/src/bbg/res/raw/configuration.json +7 -0
  35. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  36. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/drawable/banner.png +0 -0
  37. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-hdpi/ic_launcher.png +0 -0
  38. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-mdpi/ic_launcher.png +0 -0
  39. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-xhdpi/ic_launcher.png +0 -0
  40. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  41. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  42. package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/raw/configuration.json +6 -0
  43. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/java/com/twentyfouri/tvbridge/Flavor.kt +9 -0
  44. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/drawable/banner.png +0 -0
  45. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-hdpi/ic_launcher.png +0 -0
  46. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-mdpi/ic_launcher.png +0 -0
  47. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-xhdpi/ic_launcher.png +0 -0
  48. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  49. package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/raw/configuration.json +16 -0
  50. package/dist/templates/platforms/androidtv/project/app/src/cineClick/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  51. package/dist/templates/platforms/androidtv/project/app/src/cineClick/res/raw/configuration.json +6 -0
  52. package/dist/templates/platforms/androidtv/project/app/src/entel/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  53. package/dist/templates/platforms/androidtv/project/app/src/entel/res/raw/configuration.json +6 -0
  54. package/dist/templates/platforms/androidtv/project/app/src/fuboTV/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  55. package/dist/templates/platforms/androidtv/project/app/src/fuboTV/res/raw/configuration.json +6 -0
  56. package/dist/templates/platforms/androidtv/project/app/src/fuse/AndroidManifest.xml +12 -0
  57. package/dist/templates/platforms/androidtv/project/app/src/fuse/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  58. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/drawable/banner.png +0 -0
  59. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-hdpi/ic_launcher.png +0 -0
  60. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-mdpi/ic_launcher.png +0 -0
  61. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-xhdpi/ic_launcher.png +0 -0
  62. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  63. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  64. package/dist/templates/platforms/androidtv/project/app/src/fuse/res/raw/configuration.json +9 -0
  65. package/dist/templates/platforms/androidtv/project/app/src/gsn/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  66. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/drawable/banner.png +0 -0
  67. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-hdpi/ic_launcher.png +0 -0
  68. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-mdpi/ic_launcher.png +0 -0
  69. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-xhdpi/ic_launcher.png +0 -0
  70. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  71. package/dist/templates/platforms/androidtv/project/app/src/gsn/res/raw/configuration.json +8 -0
  72. package/dist/templates/platforms/androidtv/project/app/src/heremedia/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  73. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/drawable/banner.png +0 -0
  74. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-hdpi/ic_launcher.png +0 -0
  75. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-mdpi/ic_launcher.png +0 -0
  76. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-xhdpi/ic_launcher.png +0 -0
  77. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  78. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  79. package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/raw/configuration.json +6 -0
  80. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  81. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-hdpi/ic_launcher.png +0 -0
  82. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-mdpi/ic_launcher.png +0 -0
  83. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-xhdpi/ic_launcher.png +0 -0
  84. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  85. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  86. package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/raw/configuration.json +6 -0
  87. package/dist/templates/platforms/androidtv/project/app/src/kijk/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  88. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/drawable/banner.png +0 -0
  89. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-hdpi/ic_launcher.png +0 -0
  90. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-mdpi/ic_launcher.png +0 -0
  91. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-xhdpi/ic_launcher.png +0 -0
  92. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  93. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  94. package/dist/templates/platforms/androidtv/project/app/src/kijk/res/raw/configuration.json +6 -0
  95. package/dist/templates/platforms/androidtv/project/app/src/kpn/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  96. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/drawable/banner.png +0 -0
  97. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-hdpi/ic_launcher.png +0 -0
  98. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-mdpi/ic_launcher.png +0 -0
  99. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-xhdpi/ic_launcher.png +0 -0
  100. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  101. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  102. package/dist/templates/platforms/androidtv/project/app/src/kpn/res/raw/configuration.json +6 -0
  103. package/dist/templates/platforms/androidtv/project/app/src/main/AndroidManifest.xml +47 -0
  104. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/FlavorBase.kt +12 -0
  105. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeFromJavaScript.kt +379 -0
  106. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeToJavaScript.kt +65 -0
  107. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/BridgeConfig.kt +9 -0
  108. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/ConfigCallback.kt +6 -0
  109. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/ConfigProvider.kt +27 -0
  110. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/Drm.kt +10 -0
  111. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/UserAgent.kt +6 -0
  112. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/BaseApplication.kt +73 -0
  113. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityComponent.kt +13 -0
  114. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityModule.kt +19 -0
  115. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ApplicationComponent.kt +24 -0
  116. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ApplicationModule.kt +43 -0
  117. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/PerActivity.kt +26 -0
  118. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/HttpMediaDrmCallback.kt +184 -0
  119. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/LocalStorage.kt +30 -0
  120. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/LoggingDrmCallback.kt +46 -0
  121. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/SimpleActivityLifecycleCallback.kt +32 -0
  122. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/jump/JumpAnalytics.kt +209 -0
  123. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/sound/TouchPlayer.kt +86 -0
  124. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/client/BridgeWebView.kt +80 -0
  125. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/client/BridgeWebViewClient.kt +114 -0
  126. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/AnalyticsPlaybackInfo.kt +10 -0
  127. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/ContentModel.kt +14 -0
  128. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/DrmModel.kt +20 -0
  129. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/MediaEventType.kt +17 -0
  130. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/ContentModelParser.kt +16 -0
  131. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/DeviceInfoParser.kt +22 -0
  132. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/PlaybackInfoParser.kt +10 -0
  133. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/TrackJsonModelParser.kt +76 -0
  134. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/Mainview.kt +22 -0
  135. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/PlayerCache.kt +15 -0
  136. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/WebViewActivity.kt +279 -0
  137. package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/viewmodel/WebViewModel.kt +569 -0
  138. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/banner.png +0 -0
  139. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_focus.xml +10 -0
  140. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_normal.xml +7 -0
  141. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_pressed.xml +7 -0
  142. package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_focus.xml +8 -0
  143. package/dist/templates/platforms/androidtv/project/app/src/main/res/layout/activity_web_view.xml +78 -0
  144. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  145. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  146. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  147. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  148. package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  149. package/dist/templates/platforms/androidtv/project/app/src/main/res/raw/click.ogg +0 -0
  150. package/dist/templates/platforms/androidtv/project/app/src/main/res/raw/fiddle_root_michal_konecny.cer +0 -0
  151. package/dist/templates/platforms/androidtv/project/app/src/main/res/raw/proxy_milanwilczak.pem +26 -0
  152. package/dist/templates/platforms/androidtv/project/app/src/main/res/values/styles.xml +11 -0
  153. package/dist/templates/platforms/androidtv/project/app/src/main/res/xml/network_security_config.xml +12 -0
  154. package/dist/templates/platforms/androidtv/project/app/src/marti/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  155. package/dist/templates/platforms/androidtv/project/app/src/marti/res/drawable/banner.png +0 -0
  156. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-hdpi/ic_launcher.png +0 -0
  157. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-mdpi/ic_launcher.png +0 -0
  158. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-xhdpi/ic_launcher.png +0 -0
  159. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  160. package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  161. package/dist/templates/platforms/androidtv/project/app/src/marti/res/raw/configuration.json +8 -0
  162. package/dist/templates/platforms/androidtv/project/app/src/newsmax/AndroidManifest.xml +43 -0
  163. package/dist/templates/platforms/androidtv/project/app/src/newsmax/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  164. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/drawable/banner.png +0 -0
  165. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-hdpi/ic_launcher.png +0 -0
  166. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-mdpi/ic_launcher.png +0 -0
  167. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-xhdpi/ic_launcher.png +0 -0
  168. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  169. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  170. package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/raw/configuration.json +7 -0
  171. package/dist/templates/platforms/androidtv/project/app/src/portal/java/com/twentyfouri/tvbridge/Flavor.kt +10 -0
  172. package/dist/templates/platforms/androidtv/project/app/src/portal/res/raw/configuration.json +7 -0
  173. package/dist/templates/platforms/androidtv/project/app/src/portalDrm/java/com/twentyfouri/tvbridge/Flavor.kt +10 -0
  174. package/dist/templates/platforms/androidtv/project/app/src/portalDrm/res/drawable/banner.png +0 -0
  175. package/dist/templates/platforms/androidtv/project/app/src/portalDrm/res/raw/configuration.json +6 -0
  176. package/dist/templates/platforms/androidtv/project/app/src/pureflix/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  177. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/drawable/banner.png +0 -0
  178. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-hdpi/ic_launcher.png +0 -0
  179. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-mdpi/ic_launcher.png +0 -0
  180. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-xhdpi/ic_launcher.png +0 -0
  181. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  182. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  183. package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/raw/configuration.json +6 -0
  184. package/dist/templates/platforms/androidtv/project/app/src/rfa/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  185. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/drawable/banner.png +0 -0
  186. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-hdpi/ic_launcher.png +0 -0
  187. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-mdpi/ic_launcher.png +0 -0
  188. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-xhdpi/ic_launcher.png +0 -0
  189. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  190. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  191. package/dist/templates/platforms/androidtv/project/app/src/rfa/res/raw/configuration.json +7 -0
  192. package/dist/templates/platforms/androidtv/project/app/src/rfe/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  193. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/drawable/banner.png +0 -0
  194. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-hdpi/ic_launcher.png +0 -0
  195. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-mdpi/ic_launcher.png +0 -0
  196. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-xhdpi/ic_launcher.png +0 -0
  197. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  198. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  199. package/dist/templates/platforms/androidtv/project/app/src/rfe/res/raw/configuration.json +6 -0
  200. package/dist/templates/platforms/androidtv/project/app/src/rte/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  201. package/dist/templates/platforms/androidtv/project/app/src/rte/res/drawable/banner.png +0 -0
  202. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-hdpi/ic_launcher.png +0 -0
  203. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-mdpi/ic_launcher.png +0 -0
  204. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-xhdpi/ic_launcher.png +0 -0
  205. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  206. package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  207. package/dist/templates/platforms/androidtv/project/app/src/rte/res/raw/configuration.json +9 -0
  208. package/dist/templates/platforms/androidtv/project/app/src/sentai/google-services.json +191 -0
  209. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-hdpi/ic_launcher.png +0 -0
  210. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-mdpi/ic_launcher.png +0 -0
  211. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-xhdpi/ic_launcher.png +0 -0
  212. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  213. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  214. package/dist/templates/platforms/androidtv/project/app/src/sentai/res/raw/configuration.json +15 -0
  215. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/google-services.json +191 -0
  216. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/java/com/twentyfouri/tvbridge/Flavor.kt +54 -0
  217. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/java/com/twentyfouri/tvbridge/SentaiRequestData.kt +13 -0
  218. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/drawable/banner.png +0 -0
  219. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-hdpi/ic_launcher.png +0 -0
  220. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-mdpi/ic_launcher.png +0 -0
  221. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-xhdpi/ic_launcher.png +0 -0
  222. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  223. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  224. package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/raw/configuration.json +14 -0
  225. package/dist/templates/platforms/androidtv/project/app/src/smartott/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  226. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-hdpi/ic_launcher.png +0 -0
  227. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-mdpi/ic_launcher.png +0 -0
  228. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-xhdpi/ic_launcher.png +0 -0
  229. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  230. package/dist/templates/platforms/androidtv/project/app/src/smartott/res/raw/configuration.json +6 -0
  231. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/java/com/twentyfouri/tvbridge/Flavor.kt +9 -0
  232. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-hdpi/ic_launcher.png +0 -0
  233. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-mdpi/ic_launcher.png +0 -0
  234. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-xhdpi/ic_launcher.png +0 -0
  235. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  236. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  237. package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/raw/configuration.json +6 -0
  238. package/dist/templates/platforms/androidtv/project/app/src/topic/java/com/twentyfouri/tvbridge/Flavor.kt +9 -0
  239. package/dist/templates/platforms/androidtv/project/app/src/topic/res/drawable/banner.png +0 -0
  240. package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-hdpi/ic_launcher.png +0 -0
  241. package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-mdpi/ic_launcher.png +0 -0
  242. package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-xhdpi/ic_launcher.png +0 -0
  243. package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  244. package/dist/templates/platforms/androidtv/project/app/src/topic/res/raw/configuration.json +9 -0
  245. package/dist/templates/platforms/androidtv/project/app/src/voa/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  246. package/dist/templates/platforms/androidtv/project/app/src/voa/res/drawable/banner.png +0 -0
  247. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-hdpi/ic_launcher.png +0 -0
  248. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-mdpi/ic_launcher.png +0 -0
  249. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-xhdpi/ic_launcher.png +0 -0
  250. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  251. package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  252. package/dist/templates/platforms/androidtv/project/app/src/voa/res/raw/configuration.json +7 -0
  253. package/dist/templates/platforms/androidtv/project/app/src/voa365/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  254. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/drawable/banner.png +0 -0
  255. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-hdpi/ic_launcher.png +0 -0
  256. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-mdpi/ic_launcher.png +0 -0
  257. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-xhdpi/ic_launcher.png +0 -0
  258. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  259. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  260. package/dist/templates/platforms/androidtv/project/app/src/voa365/res/raw/configuration.json +7 -0
  261. package/dist/templates/platforms/androidtv/project/app/src/youFone/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
  262. package/dist/templates/platforms/androidtv/project/app/src/youFone/res/raw/configuration.json +6 -0
  263. package/dist/templates/platforms/androidtv/project/build.gradle +52 -0
  264. package/dist/templates/platforms/androidtv/project/common/build.gradle +38 -0
  265. package/dist/templates/platforms/androidtv/project/common/consumer-rules.pro +0 -0
  266. package/dist/templates/platforms/androidtv/project/common/proguard-rules.pro +21 -0
  267. package/dist/templates/platforms/androidtv/project/common/src/main/AndroidManifest.xml +4 -0
  268. package/dist/templates/platforms/androidtv/project/common/src/main/java/com/twentyfouri/tvbridge/common/IapService.kt +114 -0
  269. package/dist/templates/platforms/androidtv/project/googleiap/build.gradle +40 -0
  270. package/dist/templates/platforms/androidtv/project/googleiap/consumer-rules.pro +0 -0
  271. package/dist/templates/platforms/androidtv/project/googleiap/proguard-rules.pro +21 -0
  272. package/dist/templates/platforms/androidtv/project/googleiap/src/main/AndroidManifest.xml +6 -0
  273. package/dist/templates/platforms/androidtv/project/googleiap/src/main/java/com/twentyfouri/tvbridge/googleiap/GoogleIapService.kt +29 -0
  274. package/dist/templates/platforms/androidtv/project/gradle/wrapper/gradle-wrapper.jar +0 -0
  275. package/dist/templates/platforms/androidtv/project/gradle/wrapper/gradle-wrapper.properties +6 -0
  276. package/dist/templates/platforms/androidtv/project/gradle.properties +5 -0
  277. package/dist/templates/platforms/androidtv/project/keystore/debug_madrid.jks +0 -0
  278. package/dist/templates/platforms/androidtv/project/proguard-rules.pro +42 -0
  279. package/dist/templates/platforms/androidtv/project/settings.gradle +4 -0
  280. package/package.json +3 -2
@@ -23,8 +23,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.handlePlatformSdk = exports.SDKXbox = exports.SDKWebpack = exports.SDKTizen = exports.SDKWebos = void 0;
26
+ exports.handlePlatformSdk = exports.SDKXbox = exports.SDKWebpack = exports.SDKTizen = exports.SDKWebos = exports.SDKAndroidtv = void 0;
27
27
  const constants_1 = require("../constants");
28
+ const SDKAndroidtv = __importStar(require("./sdk-androidtv"));
29
+ exports.SDKAndroidtv = SDKAndroidtv;
28
30
  const SDKWebos = __importStar(require("./sdk-webos"));
29
31
  exports.SDKWebos = SDKWebos;
30
32
  const SDKTizen = __importStar(require("./sdk-tizen"));
@@ -0,0 +1,198 @@
1
+ # Android TV Bridge
2
+
3
+ > Readme updated for the androidVersionCode 2
4
+
5
+ ## Requirements
6
+ * Android Studio (https://developer.android.com/studio/index.html)
7
+
8
+ ## Getting started
9
+
10
+ #### Repository
11
+ Clone the repository `git clone git@bitbucket.org:24imedia/androidtvbridge.git`
12
+
13
+ #### Editor
14
+ Open the project by opening Android Studio and selecting `Open an existing Android Studio project`. Select the folder in which you've cloned the repository.
15
+
16
+ #### Installation
17
+ Make sure you have ADB (Android Debug Bridge) install in order to run the app on a device through Android Studio or via "command line" (https://developer.android.com/studio/command-line/adb.html#wireless)
18
+
19
+ #### Launch
20
+ * Android Studio
21
+ * Once you've connected a device you can press `Run` in Android Studio and it will take care of building and running the app. You will be prompted with a dialog box asking where to run the application, select the device and the application will be started.
22
+ * Command line
23
+ * adb connect `<IP of the TV>`
24
+ * adb install `<apk file>`
25
+
26
+ ## Changing the default URL
27
+
28
+ The application by default has a front-loading page where you can enter the URL you want to load. You can adjust this default by modifying the following values:
29
+
30
+ **app/build.gradle**
31
+
32
+ This file determines which URL is loaded.
33
+
34
+
35
+ productFlavors {
36
+ flavourName {
37
+ resValue "string", "app_name", "24i Bridge"
38
+ resValue "string", "url_base", "http://smart-template-sinclair-appcore.feature1.24i-dev.com/build/amazon-firetv_stb-default/index.html"
39
+ }
40
+ ...
41
+ }
42
+
43
+
44
+ #### Adding new environments
45
+ Add a new flavour to let Android Studio generate a new version pointing to the new url.
46
+
47
+ ### JS Methods
48
+
49
+ #### void bridgeAndroidToJavaScript_KeyEvent(int keyCode, String keyEvent)
50
+ Fires a JS key event
51
+ Possible events:
52
+ * keypress
53
+ * keyup
54
+ * keydown
55
+
56
+ Where keycode is the keycode that is send
57
+
58
+ #### void bridgeAndroidToJavaScript_MediaEvent(String mediaEvent)
59
+ Fires a JS MediaEvent
60
+ Possible mediaEvents:
61
+ * timeupdate
62
+ * error
63
+ * playing
64
+ * ended
65
+ * waiting
66
+ * seeked
67
+
68
+ #### void bridgeJavaScriptToAndroid_Message(String messageString)
69
+ Send a message/Toast to Android app
70
+
71
+ #### void bridgeJavaScriptToAndroid_SetVideoPath(final String jsonString)
72
+ Sets the content to the player. Can be only a stream Url exmaple `http://www.stream.nl?lsadlk.m3u8`
73
+ Or:
74
+ Json string expected format:
75
+ ```json
76
+ {
77
+ "streamUrl": "http://www.stream.nl?lsadlk.m3u8",
78
+ "drmConfig": {
79
+ "drmSchemeUuid": "widevine",
80
+ "drmLicenseUrl": "http://licenseurl.com",
81
+ "drmCustomData": {
82
+ "custom": "data",
83
+ "data": "custom"
84
+ }
85
+ }
86
+ }
87
+ ```
88
+ drmConfig is nullable
89
+
90
+ * streamUrl: the stream url
91
+ * drmSchemeUuid: widevine, playready, clearkey or custom UUID
92
+ * drmLicenseUrl: the license server url
93
+ * drmCustomData: key value pairs of custom data
94
+
95
+ #### void bridgeJavaScriptToAndroid_PlayVideo()
96
+ Plays the current stream
97
+
98
+ #### bridgeJavaScriptToAndroid_PauseVideo()
99
+ Pauses the current stream
100
+
101
+ #### bridgeJavaScriptToAndroid_StopVideo()
102
+ Stops the current stream
103
+
104
+ #### int bridgeJavaScriptToAndroid_GetCurrentTime()
105
+ Gets the current time from player
106
+
107
+ #### float bridgeJavaScriptToAndroid_GetCurrentTimeFloat()
108
+ Gets the current time float from player
109
+
110
+ #### void bridgeJavaScriptToAndroid_setNativeSubtitlesEnabled(boolean subtitlesEnabled)
111
+ Enable or disable subtitles in the player
112
+
113
+ #### int bridgeJavaScriptToAndroid_GetTotalTime()
114
+ Gets the duration of the stream
115
+
116
+ #### void bridgeJavaScriptToAndroid_SeekTo(int seconds)
117
+ Seek to a specific position in the stream
118
+
119
+ #### boolean bridgeJavaScriptToAndroid_IsPlaying()
120
+ Return true if the player is playing, otherwise false
121
+
122
+ #### void bridgeJavaScriptToAndroid_FullScreenVideo()
123
+ Sets the player to full screen mode
124
+
125
+ #### void bridgeJavaScriptToAndroid_SetVideoLayout(int width, int height, int left, int top)
126
+ Resize the player
127
+
128
+ #### void bridgeJavaScriptToAndroid_Back()
129
+ Simulate a native Android back press
130
+
131
+ #### void bridgeAndroidToJavaScript_MediaTrackEvent(String mediaEvent, List<TrackInfo> tracks)
132
+ Send event to JS
133
+ Possible event:
134
+ tracksChanged
135
+
136
+ TrackInfo list:
137
+ ```json
138
+ [
139
+ {
140
+ "type": "",
141
+ "language": "",
142
+ "name": ""
143
+ },
144
+ {
145
+ "type": "",
146
+ "language": "",
147
+ "name": ""
148
+ }
149
+ ]
150
+ ```
151
+
152
+ #### void bridgeJavaScriptToAndroid_SetTrack(String trackJson)
153
+ Change the track thats currently playing
154
+ Returns void
155
+ trackJson format:
156
+ ```json
157
+ {
158
+ "type": "",
159
+ "language": "",
160
+ "name": ""
161
+ }
162
+ ```
163
+ * type: audio or subtitles
164
+ * language: the language String example: `en`
165
+ * name: the name of language(display name) example: `English`
166
+ Disable the tracks again. Set `off` in language
167
+
168
+ #### void bridgeJavaScriptToAndroid_SaveToLocalStorage(String key, String value)
169
+ Save an string to Android localstorage
170
+ * key: a constant set in JS app to save/get the saved value
171
+ * value: the value you want to save(can be a json string)
172
+
173
+ #### void bridgeJavaScriptToAndroid_RemoveFromLocalStorage(String key)
174
+ * key: a constant set in JS app to remove the saved value
175
+
176
+ #### String bridgeJavaScriptToAndroid_GetFromLocalStorage(String key)
177
+ * key: a constant set in JS app to get the saved value
178
+
179
+ #### void bridgeReceiptAmazonIAPValidation(String sku, String token, String urlReceiptValidation, String urlGetStatus)
180
+ Validate that the in app purchase is accepted by Amazon
181
+ * sku: id of the product
182
+ * token: token of the sell
183
+ * urlReceiptValidation: url where to validate the receipt
184
+ * urlGetStatus: url to get the status of the purchase
185
+ #### void bridgeReceiptAmazonIAPValidated(String receiptId)
186
+ In app purchase validation of a receipt by Amazon
187
+ * receiptId: id of the receipt
188
+ #### String bridgeGetHistoricPurchases()
189
+ Get the history of the purchases by Amazon of the current user
190
+ #### String bridgeJavaScriptToAndroid_GetDeviceInfo()
191
+ Returns a Json string with the information about the device brand, model and Android version.
192
+ Json format example:
193
+ ```json
194
+ { "deviceBrand": "Sony",
195
+ "deviceModel": "BRAVIA 4K 2015",
196
+ "osVersion": "7.0"
197
+ }
198
+ ```
@@ -0,0 +1,39 @@
1
+ apply plugin: 'com.android.library'
2
+ apply plugin: 'kotlin-android'
3
+ apply plugin: 'kotlin-android-extensions'
4
+
5
+ android {
6
+ compileSdkVersion 30
7
+ buildToolsVersion "30.0.2"
8
+
9
+ compileOptions {
10
+ sourceCompatibility JavaVersion.VERSION_1_8
11
+ targetCompatibility JavaVersion.VERSION_1_8
12
+ }
13
+
14
+ defaultConfig {
15
+ minSdkVersion 21
16
+ targetSdkVersion 30
17
+
18
+ versionCode 1
19
+ versionName "1.0"
20
+
21
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
22
+ consumerProguardFiles "consumer-rules.pro"
23
+ }
24
+
25
+ buildTypes {
26
+ release {
27
+ minifyEnabled false
28
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
29
+ }
30
+ }
31
+ }
32
+
33
+ dependencies {
34
+ api fileTree(dir: "libs", include: ["*.jar"])
35
+ implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
36
+ implementation 'androidx.core:core-ktx:1.3.2'
37
+ implementation 'androidx.appcompat:appcompat:1.2.0'
38
+ implementation project(':common')
39
+ }
@@ -0,0 +1,21 @@
1
+ # Add project specific ProGuard rules here.
2
+ # You can control the set of applied configuration files using the
3
+ # proguardFiles setting in build.gradle.
4
+ #
5
+ # For more details, see
6
+ # http://developer.android.com/guide/developing/tools/proguard.html
7
+
8
+ # If your project uses WebView with JS, uncomment the following
9
+ # and specify the fully qualified class name to the JavaScript interface
10
+ # class:
11
+ #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12
+ # public *;
13
+ #}
14
+
15
+ # Uncomment this to preserve the line number information for
16
+ # debugging stack traces.
17
+ #-keepattributes SourceFile,LineNumberTable
18
+
19
+ # If you keep the line number information, uncomment this to
20
+ # hide the original source file name.
21
+ #-renamesourcefileattribute SourceFile
@@ -0,0 +1,4 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2
+ package="com.twentyfouri.androidtv.amazoniap">
3
+
4
+ </manifest>
@@ -0,0 +1,106 @@
1
+ package com.twentyfouri.bridgetv.amazoniap
2
+
3
+ import android.app.Activity
4
+ import android.content.Context
5
+ import android.os.Build
6
+ import androidx.core.content.ContextCompat
7
+ import com.amazon.device.iap.PurchasingListener
8
+ import com.amazon.device.iap.PurchasingService
9
+ import com.amazon.device.iap.model.*
10
+ import com.twentyfouri.tvbridge.common.*
11
+
12
+ object AmazonIapServiceFactory : IapServiceFactory {
13
+ override fun detectSupport(context: Context): Boolean {
14
+ val installer = context.installerPackageName
15
+ return when {
16
+ installer == "com.android.vending" -> false
17
+ installer == "com.amazon.venezia" -> true
18
+ Build.MANUFACTURER == "Amazon" -> true
19
+ else -> false
20
+ }
21
+ }
22
+
23
+ override fun build(context: Context): IapService =
24
+ AmazonIapService(context)
25
+ }
26
+
27
+ class AmazonIapService(
28
+ private val context: Context
29
+ ) : IapService, PurchasingListener {
30
+
31
+ private var callback: IapCallback? = null
32
+
33
+ override fun initialize() {
34
+ PurchasingService.registerListener(context, this)
35
+ }
36
+
37
+ override fun destroy() {
38
+ }
39
+
40
+ override fun setCallback(callback: IapCallback?) {
41
+ this.callback = callback
42
+ }
43
+
44
+ override fun onUserDataResponse(result: UserDataResponse) {
45
+ // not called
46
+ }
47
+
48
+ override fun checkNewPurchases() {
49
+ PurchasingService.getPurchaseUpdates(true)
50
+ }
51
+
52
+ override fun onPurchaseUpdatesResponse(result: PurchaseUpdatesResponse) {
53
+ if (result.requestStatus == PurchaseUpdatesResponse.RequestStatus.SUCCESSFUL) {
54
+ val iapPurchases = result.receipts.map { receipt ->
55
+ IapPurchase(receipt.sku, result.userData.userId, receipt.receiptId)
56
+ }
57
+ callback?.checkNewPurchasesFinished(iapPurchases)
58
+ } else {
59
+ callback?.checkNewPurchasesFinished(IapException(result.requestStatus.name))
60
+ }
61
+ }
62
+
63
+ override fun purchase(activity: Activity, sku: String) {
64
+ PurchasingService.purchase(sku)
65
+ }
66
+
67
+ override fun onPurchaseResponse(result: PurchaseResponse) {
68
+ if (result.requestStatus == PurchaseResponse.RequestStatus.SUCCESSFUL) {
69
+ callback?.purchaseFinished(IapPurchase(
70
+ result.receipt.sku,
71
+ result.userData.userId,
72
+ result.receipt.receiptId
73
+ ))
74
+ } else {
75
+ callback?.purchaseFinished(IapException(result.requestStatus.name))
76
+ }
77
+ }
78
+
79
+ override fun getProducts(skus: List<String>) {
80
+ PurchasingService.getProductData(skus.toSet())
81
+ }
82
+
83
+ override fun onProductDataResponse(result: ProductDataResponse) {
84
+ if (result.requestStatus == ProductDataResponse.RequestStatus.SUCCESSFUL) {
85
+ callback?.getProductsFinished(
86
+ result.productData.values.map {
87
+ IapProduct(
88
+ title = it.title ?: "",
89
+ description = it.description ?: "",
90
+ price = it.price ?: "",
91
+ icon = it.smallIconUrl ?: "",
92
+ type = it.productType.name,
93
+ sku = it.sku
94
+ )
95
+ },
96
+ result.unavailableSkus.toList()
97
+ )
98
+ } else {
99
+ callback?.getProductsFinished(IapException(result.requestStatus.name))
100
+ }
101
+ }
102
+
103
+ override fun acknowledgeReceipt(receipt: String) {
104
+ PurchasingService.notifyFulfillment(receipt, FulfillmentResult.FULFILLED)
105
+ }
106
+ }