@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.
- package/dist/templates/platforms/androidtv/project/README.md +198 -0
- package/dist/templates/platforms/androidtv/project/amazoniap/build.gradle +39 -0
- package/dist/templates/platforms/androidtv/project/amazoniap/consumer-rules.pro +0 -0
- package/dist/templates/platforms/androidtv/project/amazoniap/libs/in-app-purchasing-2.0.76.jar +0 -0
- package/dist/templates/platforms/androidtv/project/amazoniap/proguard-rules.pro +21 -0
- package/dist/templates/platforms/androidtv/project/amazoniap/src/main/AndroidManifest.xml +4 -0
- package/dist/templates/platforms/androidtv/project/amazoniap/src/main/java/com/twentyfouri/bridgetv/amazoniap/AmazonIapSevice.kt +106 -0
- package/dist/templates/platforms/androidtv/project/app/build.gradle +371 -0
- package/dist/templates/platforms/androidtv/project/app/proguard-rules.pro +32 -0
- package/dist/templates/platforms/androidtv/project/app/src/alhurra/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/alhurra/res/raw/configuration.json +7 -0
- package/dist/templates/platforms/androidtv/project/app/src/androidTest/assets/getStatusSuccesfulResponse.json +9 -0
- package/dist/templates/platforms/androidtv/project/app/src/androidTest/assets/tokenFromPassword_200.json +7 -0
- package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/ngsn/tv/RestServiceTestHelper.java +34 -0
- package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/ngsn/tv/WebViewActivityTest.java +104 -0
- package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/SignTest.kt +54 -0
- package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/amazonIAP/AmazonIAPManagerTest.java +74 -0
- package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/amazonIAP/SinclairTestRunner.java +22 -0
- package/dist/templates/platforms/androidtv/project/app/src/androidTest/java/com/twentyfouri/tvbridge/webview/ui/model/BridgeWebViewTest.java +50 -0
- package/dist/templates/platforms/androidtv/project/app/src/bbg/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/bbg/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/bbg/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/bbg/res/raw/configuration.json +7 -0
- package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/bigscreenAppstage/res/raw/configuration.json +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/java/com/twentyfouri/tvbridge/Flavor.kt +9 -0
- package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/broadwayhd/res/raw/configuration.json +16 -0
- package/dist/templates/platforms/androidtv/project/app/src/cineClick/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/cineClick/res/raw/configuration.json +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/entel/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/entel/res/raw/configuration.json +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/fuboTV/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/fuboTV/res/raw/configuration.json +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/fuse/AndroidManifest.xml +12 -0
- package/dist/templates/platforms/androidtv/project/app/src/fuse/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/fuse/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/fuse/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/fuse/res/raw/configuration.json +9 -0
- package/dist/templates/platforms/androidtv/project/app/src/gsn/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/gsn/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/gsn/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/gsn/res/raw/configuration.json +8 -0
- package/dist/templates/platforms/androidtv/project/app/src/heremedia/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/heremedia/res/raw/configuration.json +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/hummingbird/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/hummingbird/res/raw/configuration.json +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/kijk/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/kijk/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/kijk/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/kijk/res/raw/configuration.json +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/kpn/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/kpn/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/kpn/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/kpn/res/raw/configuration.json +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/AndroidManifest.xml +47 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/FlavorBase.kt +12 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeFromJavaScript.kt +379 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/bridge/BridgeToJavaScript.kt +65 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/BridgeConfig.kt +9 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/ConfigCallback.kt +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/ConfigProvider.kt +27 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/Drm.kt +10 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/configuration/UserAgent.kt +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/BaseApplication.kt +73 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityComponent.kt +13 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ActivityModule.kt +19 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ApplicationComponent.kt +24 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/ApplicationModule.kt +43 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/di/PerActivity.kt +26 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/HttpMediaDrmCallback.kt +184 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/LocalStorage.kt +30 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/LoggingDrmCallback.kt +46 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/global/utils/SimpleActivityLifecycleCallback.kt +32 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/jump/JumpAnalytics.kt +209 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/sound/TouchPlayer.kt +86 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/client/BridgeWebView.kt +80 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/client/BridgeWebViewClient.kt +114 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/AnalyticsPlaybackInfo.kt +10 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/ContentModel.kt +14 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/DrmModel.kt +20 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/model/MediaEventType.kt +17 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/ContentModelParser.kt +16 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/DeviceInfoParser.kt +22 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/PlaybackInfoParser.kt +10 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/parser/TrackJsonModelParser.kt +76 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/Mainview.kt +22 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/PlayerCache.kt +15 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/view/WebViewActivity.kt +279 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/java/com/twentyfouri/tvbridge/webview/viewmodel/WebViewModel.kt +569 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_focus.xml +10 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_normal.xml +7 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_background_pressed.xml +7 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/drawable/button_focus.xml +8 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/layout/activity_web_view.xml +78 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/raw/click.ogg +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/raw/fiddle_root_michal_konecny.cer +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/raw/proxy_milanwilczak.pem +26 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/values/styles.xml +11 -0
- package/dist/templates/platforms/androidtv/project/app/src/main/res/xml/network_security_config.xml +12 -0
- package/dist/templates/platforms/androidtv/project/app/src/marti/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/marti/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/marti/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/marti/res/raw/configuration.json +8 -0
- package/dist/templates/platforms/androidtv/project/app/src/newsmax/AndroidManifest.xml +43 -0
- package/dist/templates/platforms/androidtv/project/app/src/newsmax/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/newsmax/res/raw/configuration.json +7 -0
- package/dist/templates/platforms/androidtv/project/app/src/portal/java/com/twentyfouri/tvbridge/Flavor.kt +10 -0
- package/dist/templates/platforms/androidtv/project/app/src/portal/res/raw/configuration.json +7 -0
- package/dist/templates/platforms/androidtv/project/app/src/portalDrm/java/com/twentyfouri/tvbridge/Flavor.kt +10 -0
- package/dist/templates/platforms/androidtv/project/app/src/portalDrm/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/portalDrm/res/raw/configuration.json +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/pureflix/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/pureflix/res/raw/configuration.json +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfa/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfa/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfa/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfa/res/raw/configuration.json +7 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfe/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfe/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfe/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rfe/res/raw/configuration.json +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/rte/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/rte/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rte/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/rte/res/raw/configuration.json +9 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentai/google-services.json +191 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentai/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentai/res/raw/configuration.json +15 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/google-services.json +191 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/java/com/twentyfouri/tvbridge/Flavor.kt +54 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/java/com/twentyfouri/tvbridge/SentaiRequestData.kt +13 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/sentaiandroidtv/res/raw/configuration.json +14 -0
- package/dist/templates/platforms/androidtv/project/app/src/smartott/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/smartott/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/smartott/res/raw/configuration.json +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/java/com/twentyfouri/tvbridge/Flavor.kt +9 -0
- package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/tennisChannel/res/raw/configuration.json +6 -0
- package/dist/templates/platforms/androidtv/project/app/src/topic/java/com/twentyfouri/tvbridge/Flavor.kt +9 -0
- package/dist/templates/platforms/androidtv/project/app/src/topic/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/topic/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/topic/res/raw/configuration.json +9 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa/res/raw/configuration.json +7 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa365/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa365/res/drawable/banner.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa365/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/dist/templates/platforms/androidtv/project/app/src/voa365/res/raw/configuration.json +7 -0
- package/dist/templates/platforms/androidtv/project/app/src/youFone/java/com/twentyfouri/tvbridge/Flavor.kt +5 -0
- package/dist/templates/platforms/androidtv/project/app/src/youFone/res/raw/configuration.json +6 -0
- package/dist/templates/platforms/androidtv/project/build.gradle +52 -0
- package/dist/templates/platforms/androidtv/project/common/build.gradle +38 -0
- package/dist/templates/platforms/androidtv/project/common/consumer-rules.pro +0 -0
- package/dist/templates/platforms/androidtv/project/common/proguard-rules.pro +21 -0
- package/dist/templates/platforms/androidtv/project/common/src/main/AndroidManifest.xml +4 -0
- package/dist/templates/platforms/androidtv/project/common/src/main/java/com/twentyfouri/tvbridge/common/IapService.kt +114 -0
- package/dist/templates/platforms/androidtv/project/googleiap/build.gradle +40 -0
- package/dist/templates/platforms/androidtv/project/googleiap/consumer-rules.pro +0 -0
- package/dist/templates/platforms/androidtv/project/googleiap/proguard-rules.pro +21 -0
- package/dist/templates/platforms/androidtv/project/googleiap/src/main/AndroidManifest.xml +6 -0
- package/dist/templates/platforms/androidtv/project/googleiap/src/main/java/com/twentyfouri/tvbridge/googleiap/GoogleIapService.kt +29 -0
- package/dist/templates/platforms/androidtv/project/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/dist/templates/platforms/androidtv/project/gradle/wrapper/gradle-wrapper.properties +6 -0
- package/dist/templates/platforms/androidtv/project/gradle.properties +5 -0
- package/dist/templates/platforms/androidtv/project/keystore/debug_madrid.jks +0 -0
- package/dist/templates/platforms/androidtv/project/proguard-rules.pro +42 -0
- package/dist/templates/platforms/androidtv/project/settings.gradle +4 -0
- 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,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
|
+
}
|