@bluebillywig/react-native-bb-player 8.45.23 → 8.46.1
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/README.md +2 -2
- package/android/build.gradle +18 -1
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk/0.0.11.8-SNAPSHOT/bbnativeplayersdk-0.0.11.8-SNAPSHOT-javadoc.jar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk/0.0.11.8-SNAPSHOT/bbnativeplayersdk-0.0.11.8-SNAPSHOT-sources.jar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk/0.0.11.8-SNAPSHOT/bbnativeplayersdk-0.0.11.8-SNAPSHOT.aar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk/0.0.11.8-SNAPSHOT/bbnativeplayersdk-0.0.11.8-SNAPSHOT.module +137 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk/0.0.11.8-SNAPSHOT/bbnativeplayersdk-0.0.11.8-SNAPSHOT.pom +35 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk/0.0.11.8-SNAPSHOT/maven-metadata-local.xml +41 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk/maven-metadata-local.xml +12 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk-compose/0.0.11.8-SNAPSHOT/bbnativeplayersdk-compose-0.0.11.8-SNAPSHOT-javadoc.jar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk-compose/0.0.11.8-SNAPSHOT/bbnativeplayersdk-compose-0.0.11.8-SNAPSHOT-sources.jar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk-compose/0.0.11.8-SNAPSHOT/bbnativeplayersdk-compose-0.0.11.8-SNAPSHOT.aar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk-compose/0.0.11.8-SNAPSHOT/bbnativeplayersdk-compose-0.0.11.8-SNAPSHOT.module +167 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk-compose/0.0.11.8-SNAPSHOT/bbnativeplayersdk-compose-0.0.11.8-SNAPSHOT.pom +61 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk-compose/0.0.11.8-SNAPSHOT/maven-metadata-local.xml +41 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk-compose/maven-metadata-local.xml +12 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk-core/0.0.11.8-SNAPSHOT/bbnativeplayersdk-core-0.0.11.8-SNAPSHOT-javadoc.jar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk-core/0.0.11.8-SNAPSHOT/bbnativeplayersdk-core-0.0.11.8-SNAPSHOT-sources.jar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk-core/0.0.11.8-SNAPSHOT/bbnativeplayersdk-core-0.0.11.8-SNAPSHOT.aar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk-core/0.0.11.8-SNAPSHOT/bbnativeplayersdk-core-0.0.11.8-SNAPSHOT.module +264 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk-core/0.0.11.8-SNAPSHOT/bbnativeplayersdk-core-0.0.11.8-SNAPSHOT.pom +149 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk-core/0.0.11.8-SNAPSHOT/maven-metadata-local.xml +41 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeplayersdk-core/maven-metadata-local.xml +12 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared/0.0.11.8-SNAPSHOT/bbnativeshared-0.0.11.8-SNAPSHOT-javadoc.jar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared/0.0.11.8-SNAPSHOT/bbnativeshared-0.0.11.8-SNAPSHOT-kotlin-tooling-metadata.json +28 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared/0.0.11.8-SNAPSHOT/bbnativeshared-0.0.11.8-SNAPSHOT-sources.jar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared/0.0.11.8-SNAPSHOT/bbnativeshared-0.0.11.8-SNAPSHOT.jar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared/0.0.11.8-SNAPSHOT/bbnativeshared-0.0.11.8-SNAPSHOT.module +159 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared/0.0.11.8-SNAPSHOT/bbnativeshared-0.0.11.8-SNAPSHOT.pom +14 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared/0.0.11.8-SNAPSHOT/maven-metadata-local.xml +47 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared/maven-metadata-local.xml +12 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared-android/0.0.11.8-SNAPSHOT/bbnativeshared-android-0.0.11.8-SNAPSHOT-javadoc.jar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared-android/0.0.11.8-SNAPSHOT/bbnativeshared-android-0.0.11.8-SNAPSHOT-sources.jar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared-android/0.0.11.8-SNAPSHOT/bbnativeshared-android-0.0.11.8-SNAPSHOT.aar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared-android/0.0.11.8-SNAPSHOT/bbnativeshared-android-0.0.11.8-SNAPSHOT.module +329 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared-android/0.0.11.8-SNAPSHOT/bbnativeshared-android-0.0.11.8-SNAPSHOT.pom +245 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared-android/0.0.11.8-SNAPSHOT/maven-metadata-local.xml +41 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared-android/maven-metadata-local.xml +12 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared-android-debug/0.0.11.8-SNAPSHOT/bbnativeshared-android-debug-0.0.11.8-SNAPSHOT-javadoc.jar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared-android-debug/0.0.11.8-SNAPSHOT/bbnativeshared-android-debug-0.0.11.8-SNAPSHOT-sources.jar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared-android-debug/0.0.11.8-SNAPSHOT/bbnativeshared-android-debug-0.0.11.8-SNAPSHOT.aar +0 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared-android-debug/0.0.11.8-SNAPSHOT/bbnativeshared-android-debug-0.0.11.8-SNAPSHOT.module +332 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared-android-debug/0.0.11.8-SNAPSHOT/bbnativeshared-android-debug-0.0.11.8-SNAPSHOT.pom +245 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared-android-debug/0.0.11.8-SNAPSHOT/maven-metadata-local.xml +41 -0
- package/android/repo/com/bluebillywig/bbnativeplayersdk/bbnativeshared-android-debug/maven-metadata-local.xml +12 -0
- package/android/src/main/java/com/bluebillywig/bbplayer/BBCastButtonViewManager.kt +40 -0
- package/android/src/main/java/com/bluebillywig/bbplayer/BBCastMiniControlsViewManager.kt +79 -0
- package/android/src/main/java/com/bluebillywig/bbplayer/BBPlayerModule.kt +41 -0
- package/android/src/main/java/com/bluebillywig/bbplayer/BBPlayerPackage.kt +3 -1
- package/android/src/main/java/com/bluebillywig/bbplayer/BBPlayerView.kt +6 -0
- package/android/src/paper/java/com/bluebillywig/bbplayer/NativeBBPlayerModuleSpec.java +6 -0
- package/ios/BBCastButtonView.swift +30 -0
- package/ios/BBCastButtonViewManager.m +7 -0
- package/ios/BBCastButtonViewManager.swift +12 -0
- package/ios/BBCastMiniControlsView.swift +27 -0
- package/ios/BBCastMiniControlsViewManager.m +5 -0
- package/ios/BBCastMiniControlsViewManager.swift +12 -0
- package/ios/BBPlayerModule.mm +4 -0
- package/ios/BBPlayerModule.swift +27 -0
- package/ios/BBPlayerView.swift +4 -0
- package/ios/Frameworks/BBNativePlayerKit.xcframework/Info.plist +5 -5
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64/BBNativePlayerKit.framework/Assets.car +0 -0
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64/BBNativePlayerKit.framework/BBNativePlayerKit +0 -0
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64/BBNativePlayerKit.framework/Headers/BBNativePlayerKit-Swift.h +13 -12
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64/BBNativePlayerKit.framework/Headers/BBNativePlayerKit.h +1 -1
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64/BBNativePlayerKit.framework/Info.plist +0 -0
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64/BBNativePlayerKit.framework/Modules/BBNativePlayerKit.swiftmodule/arm64-apple-ios.abi.json +2169 -1903
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64/BBNativePlayerKit.framework/Modules/BBNativePlayerKit.swiftmodule/arm64-apple-ios.private.swiftinterface +230 -357
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64/BBNativePlayerKit.framework/Modules/BBNativePlayerKit.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64/BBNativePlayerKit.framework/Modules/BBNativePlayerKit.swiftmodule/arm64-apple-ios.swiftinterface +230 -357
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64_x86_64-simulator/BBNativePlayerKit.framework/Assets.car +0 -0
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64_x86_64-simulator/BBNativePlayerKit.framework/BBNativePlayerKit +0 -0
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64_x86_64-simulator/BBNativePlayerKit.framework/Headers/BBNativePlayerKit-Swift.h +26 -24
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64_x86_64-simulator/BBNativePlayerKit.framework/Headers/BBNativePlayerKit.h +1 -1
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64_x86_64-simulator/BBNativePlayerKit.framework/Info.plist +0 -0
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64_x86_64-simulator/BBNativePlayerKit.framework/Modules/BBNativePlayerKit.swiftmodule/arm64-apple-ios-simulator.abi.json +2169 -1903
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64_x86_64-simulator/BBNativePlayerKit.framework/Modules/BBNativePlayerKit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +230 -357
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64_x86_64-simulator/BBNativePlayerKit.framework/Modules/BBNativePlayerKit.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64_x86_64-simulator/BBNativePlayerKit.framework/Modules/BBNativePlayerKit.swiftmodule/arm64-apple-ios-simulator.swiftinterface +230 -357
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64_x86_64-simulator/BBNativePlayerKit.framework/Modules/BBNativePlayerKit.swiftmodule/x86_64-apple-ios-simulator.abi.json +2169 -1903
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64_x86_64-simulator/BBNativePlayerKit.framework/Modules/BBNativePlayerKit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +230 -357
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64_x86_64-simulator/BBNativePlayerKit.framework/Modules/BBNativePlayerKit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
- package/ios/Frameworks/BBNativePlayerKit.xcframework/ios-arm64_x86_64-simulator/BBNativePlayerKit.framework/Modules/BBNativePlayerKit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +230 -357
- package/ios/Frameworks/bbnativeshared.xcframework/ios-arm64/bbnativeshared.framework/Headers/bbnativeshared.h +19 -2
- package/ios/Frameworks/bbnativeshared.xcframework/ios-arm64/bbnativeshared.framework/bbnativeshared +0 -0
- package/ios/Frameworks/bbnativeshared.xcframework/ios-arm64/dSYMs/bbnativeshared.framework.dSYM/Contents/Resources/DWARF/bbnativeshared +0 -0
- package/ios/Frameworks/bbnativeshared.xcframework/ios-arm64/dSYMs/bbnativeshared.framework.dSYM/Contents/Resources/Relocations/aarch64/bbnativeshared.yml +15060 -13519
- package/ios/Frameworks/bbnativeshared.xcframework/ios-arm64_x86_64-simulator/bbnativeshared.framework/Headers/bbnativeshared.h +19 -2
- package/ios/Frameworks/bbnativeshared.xcframework/ios-arm64_x86_64-simulator/bbnativeshared.framework/bbnativeshared +0 -0
- package/ios/Frameworks/bbnativeshared.xcframework/ios-arm64_x86_64-simulator/dSYMs/bbnativeshared.framework.dSYM/Contents/Resources/DWARF/bbnativeshared +0 -0
- package/lib/commonjs/BBCastButton.js +32 -0
- package/lib/commonjs/BBCastButton.js.map +1 -0
- package/lib/commonjs/BBCastMiniControls.js +32 -0
- package/lib/commonjs/BBCastMiniControls.js.map +1 -0
- package/lib/commonjs/BBModalPlayer.js +6 -0
- package/lib/commonjs/BBModalPlayer.js.map +1 -1
- package/lib/commonjs/BBOutstreamView.js +5 -1
- package/lib/commonjs/BBOutstreamView.js.map +1 -1
- package/lib/commonjs/NativeCommands.js +26 -0
- package/lib/commonjs/NativeCommands.js.map +1 -1
- package/lib/commonjs/index.js +45 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/specs/NativeBBPlayerModule.js.map +1 -1
- package/lib/module/BBCastButton.js +27 -0
- package/lib/module/BBCastButton.js.map +1 -0
- package/lib/module/BBCastMiniControls.js +27 -0
- package/lib/module/BBCastMiniControls.js.map +1 -0
- package/lib/module/BBModalPlayer.js +6 -0
- package/lib/module/BBModalPlayer.js.map +1 -1
- package/lib/module/BBOutstreamView.js +5 -1
- package/lib/module/BBOutstreamView.js.map +1 -1
- package/lib/module/NativeCommands.js +26 -0
- package/lib/module/NativeCommands.js.map +1 -1
- package/lib/module/index.js +9 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/specs/NativeBBPlayerModule.js.map +1 -1
- package/lib/typescript/src/BBCastButton.d.ts +24 -0
- package/lib/typescript/src/BBCastButton.d.ts.map +1 -0
- package/lib/typescript/src/BBCastMiniControls.d.ts +19 -0
- package/lib/typescript/src/BBCastMiniControls.d.ts.map +1 -0
- package/lib/typescript/src/BBModalPlayer.d.ts +15 -1
- package/lib/typescript/src/BBModalPlayer.d.ts.map +1 -1
- package/lib/typescript/src/BBOutstreamView.d.ts.map +1 -1
- package/lib/typescript/src/BBPlayer.types.d.ts +9 -1
- package/lib/typescript/src/BBPlayer.types.d.ts.map +1 -1
- package/lib/typescript/src/NativeCommands.d.ts +4 -0
- package/lib/typescript/src/NativeCommands.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +9 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativeBBPlayerModule.d.ts +4 -0
- package/lib/typescript/src/specs/NativeBBPlayerModule.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +1 -1
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-bb-player.podspec +2 -2
- package/src/BBCastButton.tsx +32 -0
- package/src/BBCastMiniControls.tsx +27 -0
- package/src/BBModalPlayer.ts +16 -1
- package/src/BBOutstreamView.tsx +5 -1
- package/src/BBPlayer.types.ts +9 -1
- package/src/NativeCommands.ts +27 -0
- package/src/index.ts +10 -3
- package/src/specs/NativeBBPlayerModule.ts +6 -0
- package/src/types.ts +1 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
package com.bluebillywig.bbplayer
|
|
2
|
+
|
|
3
|
+
import android.widget.FrameLayout
|
|
4
|
+
import androidx.mediarouter.app.MediaRouteButton
|
|
5
|
+
import com.facebook.react.uimanager.SimpleViewManager
|
|
6
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
7
|
+
import com.facebook.react.uimanager.annotations.ReactProp
|
|
8
|
+
|
|
9
|
+
class BBCastButtonViewManager : SimpleViewManager<FrameLayout>() {
|
|
10
|
+
|
|
11
|
+
override fun getName(): String = "BBCastButtonView"
|
|
12
|
+
|
|
13
|
+
override fun createViewInstance(reactContext: ThemedReactContext): FrameLayout {
|
|
14
|
+
val container = FrameLayout(reactContext)
|
|
15
|
+
val castButton = MediaRouteButton(reactContext)
|
|
16
|
+
|
|
17
|
+
try {
|
|
18
|
+
val castButtonFactoryClass = Class.forName("com.google.android.gms.cast.framework.CastButtonFactory")
|
|
19
|
+
castButtonFactoryClass.getMethod("setUpMediaRouteButton", android.content.Context::class.java, MediaRouteButton::class.java)
|
|
20
|
+
.invoke(null, reactContext, castButton)
|
|
21
|
+
} catch (e: Exception) {
|
|
22
|
+
android.util.Log.w("BBCastButton", "Cast button unavailable: ${e.message}")
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
container.addView(
|
|
26
|
+
castButton,
|
|
27
|
+
FrameLayout.LayoutParams(
|
|
28
|
+
FrameLayout.LayoutParams.MATCH_PARENT,
|
|
29
|
+
FrameLayout.LayoutParams.MATCH_PARENT
|
|
30
|
+
)
|
|
31
|
+
)
|
|
32
|
+
return container
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@ReactProp(name = "tintColor", customType = "Color")
|
|
36
|
+
fun setTintColor(view: FrameLayout, color: Int?) {
|
|
37
|
+
// MediaRouteButton tint is controlled via the Cast SDK theme.
|
|
38
|
+
// The tintColor prop is primarily effective on iOS (GCKUICastButton).
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
package com.bluebillywig.bbplayer
|
|
2
|
+
|
|
3
|
+
import android.util.Log
|
|
4
|
+
import android.view.View
|
|
5
|
+
import android.widget.FrameLayout
|
|
6
|
+
import androidx.fragment.app.FragmentActivity
|
|
7
|
+
import com.facebook.react.uimanager.SimpleViewManager
|
|
8
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
9
|
+
|
|
10
|
+
class BBCastMiniControlsViewManager : SimpleViewManager<FrameLayout>() {
|
|
11
|
+
|
|
12
|
+
override fun getName(): String = "BBCastMiniControlsView"
|
|
13
|
+
|
|
14
|
+
override fun createViewInstance(reactContext: ThemedReactContext): FrameLayout {
|
|
15
|
+
val container = FrameLayout(reactContext)
|
|
16
|
+
container.id = View.generateViewId()
|
|
17
|
+
|
|
18
|
+
container.addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener {
|
|
19
|
+
private var attempted = false
|
|
20
|
+
|
|
21
|
+
override fun onViewAttachedToWindow(v: View) {
|
|
22
|
+
if (attempted) return
|
|
23
|
+
attempted = true
|
|
24
|
+
attachMiniController(reactContext, container)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
override fun onViewDetachedFromWindow(v: View) {}
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
return container
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
private fun attachMiniController(reactContext: ThemedReactContext, container: FrameLayout) {
|
|
34
|
+
try {
|
|
35
|
+
val activity = reactContext.currentActivity as? FragmentActivity ?: return
|
|
36
|
+
|
|
37
|
+
// MiniControllerFragment.onCreateView reads button actions from
|
|
38
|
+
// CastContext → CastMediaOptions → NotificationOptions → actions array.
|
|
39
|
+
// When CastContext is not properly initialized, this array is null,
|
|
40
|
+
// causing an NPE inside onCreateView that we cannot catch.
|
|
41
|
+
// Verify this chain is non-null before creating the fragment.
|
|
42
|
+
val castContextClass = Class.forName("com.google.android.gms.cast.framework.CastContext")
|
|
43
|
+
val castContext = castContextClass.getMethod("getSharedInstance", android.content.Context::class.java)
|
|
44
|
+
.invoke(null, reactContext)
|
|
45
|
+
|
|
46
|
+
val mediaOptions = castContextClass.getMethod("getCastMediaOptions").invoke(castContext)
|
|
47
|
+
if (mediaOptions == null) {
|
|
48
|
+
Log.w("BBCastMiniControls", "No CastMediaOptions, skipping mini controls")
|
|
49
|
+
return
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
val mediaOptionsClass = Class.forName("com.google.android.gms.cast.framework.media.CastMediaOptions")
|
|
53
|
+
val notificationOptions = mediaOptionsClass.getMethod("getNotificationOptions").invoke(mediaOptions)
|
|
54
|
+
if (notificationOptions == null) {
|
|
55
|
+
Log.w("BBCastMiniControls", "No NotificationOptions, skipping mini controls")
|
|
56
|
+
return
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
val notifOptionsClass = Class.forName("com.google.android.gms.cast.framework.media.NotificationOptions")
|
|
60
|
+
val actions = notifOptionsClass.getMethod("getActions").invoke(notificationOptions)
|
|
61
|
+
if (actions == null) {
|
|
62
|
+
Log.w("BBCastMiniControls", "No notification actions, skipping mini controls")
|
|
63
|
+
return
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
val fragmentClass = Class.forName(
|
|
67
|
+
"com.google.android.gms.cast.framework.media.widget.MiniControllerFragment"
|
|
68
|
+
)
|
|
69
|
+
val fragment = fragmentClass.getDeclaredConstructor().newInstance() as androidx.fragment.app.Fragment
|
|
70
|
+
|
|
71
|
+
activity.supportFragmentManager
|
|
72
|
+
.beginTransaction()
|
|
73
|
+
.replace(container.id, fragment, "bb_cast_mini_controls_${container.id}")
|
|
74
|
+
.commitAllowingStateLoss()
|
|
75
|
+
} catch (e: Exception) {
|
|
76
|
+
Log.w("BBCastMiniControls", "Cast mini controls unavailable: ${e.message}")
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -555,6 +555,47 @@ class BBPlayerModule(private val reactContext: ReactApplicationContext) :
|
|
|
555
555
|
}
|
|
556
556
|
}
|
|
557
557
|
|
|
558
|
+
@ReactMethod
|
|
559
|
+
override fun setInView(viewTag: Double, inView: Boolean) {
|
|
560
|
+
runOnUiThread(viewTag.toInt()) { it.setInView(inView) }
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
@ReactMethod
|
|
564
|
+
override fun getInView(viewTag: Double, promise: Promise) {
|
|
565
|
+
UiThreadUtil.runOnUiThread {
|
|
566
|
+
val view = findPlayerView(viewTag.toInt())
|
|
567
|
+
if (view != null) {
|
|
568
|
+
promise.resolve(view.getInView())
|
|
569
|
+
} else {
|
|
570
|
+
promise.resolve(null)
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
@ReactMethod
|
|
576
|
+
override fun getAdMediaWidth(viewTag: Double, promise: Promise) {
|
|
577
|
+
UiThreadUtil.runOnUiThread {
|
|
578
|
+
val view = findPlayerView(viewTag.toInt())
|
|
579
|
+
if (view != null) {
|
|
580
|
+
promise.resolve(view.getAdMediaWidth())
|
|
581
|
+
} else {
|
|
582
|
+
promise.resolve(null)
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
@ReactMethod
|
|
588
|
+
override fun getAdMediaHeight(viewTag: Double, promise: Promise) {
|
|
589
|
+
UiThreadUtil.runOnUiThread {
|
|
590
|
+
val view = findPlayerView(viewTag.toInt())
|
|
591
|
+
if (view != null) {
|
|
592
|
+
promise.resolve(view.getAdMediaHeight())
|
|
593
|
+
} else {
|
|
594
|
+
promise.resolve(null)
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
|
|
558
599
|
companion object {
|
|
559
600
|
const val NAME = "BBPlayerModule"
|
|
560
601
|
}
|
|
@@ -34,7 +34,9 @@ class BBPlayerPackage : BaseReactPackage() {
|
|
|
34
34
|
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
|
35
35
|
return listOf(
|
|
36
36
|
BBPlayerViewManager(),
|
|
37
|
-
BBShortsViewManager()
|
|
37
|
+
BBShortsViewManager(),
|
|
38
|
+
BBCastButtonViewManager(),
|
|
39
|
+
BBCastMiniControlsViewManager()
|
|
38
40
|
)
|
|
39
41
|
}
|
|
40
42
|
}
|
|
@@ -571,6 +571,12 @@ class BBPlayerView(private val reactContext: ThemedReactContext) : FrameLayout(r
|
|
|
571
571
|
} else null
|
|
572
572
|
}
|
|
573
573
|
|
|
574
|
+
fun setInView(inView: Boolean) {
|
|
575
|
+
if (::playerView.isInitialized) {
|
|
576
|
+
playerView.setApiProperty(com.bluebillywig.bbnativeshared.enums.ApiProperty.inView, inView)
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
|
|
574
580
|
fun getControls(): Boolean? {
|
|
575
581
|
return if (::playerView.isInitialized) {
|
|
576
582
|
playerView.getApiProperty(com.bluebillywig.bbnativeshared.enums.ApiProperty.controls) as? Boolean
|
|
@@ -57,6 +57,9 @@ public abstract class NativeBBPlayerModuleSpec extends ReactContextBaseJavaModul
|
|
|
57
57
|
public abstract void loadWithProjectJson(int viewTag, String projectJson, String initiator, boolean autoPlay, double seekTo, String contextJson);
|
|
58
58
|
public abstract void loadWithJsonUrl(int viewTag, String jsonUrl, boolean autoPlay, String contextJson);
|
|
59
59
|
|
|
60
|
+
// Viewability control
|
|
61
|
+
public abstract void setInView(int viewTag, boolean inView);
|
|
62
|
+
|
|
60
63
|
// Promise getters
|
|
61
64
|
public abstract void getDuration(int viewTag, Promise promise);
|
|
62
65
|
public abstract void getMuted(int viewTag, Promise promise);
|
|
@@ -67,4 +70,7 @@ public abstract class NativeBBPlayerModuleSpec extends ReactContextBaseJavaModul
|
|
|
67
70
|
public abstract void getClipData(int viewTag, Promise promise);
|
|
68
71
|
public abstract void getProjectData(int viewTag, Promise promise);
|
|
69
72
|
public abstract void getPlayoutData(int viewTag, Promise promise);
|
|
73
|
+
public abstract void getInView(int viewTag, Promise promise);
|
|
74
|
+
public abstract void getAdMediaWidth(int viewTag, Promise promise);
|
|
75
|
+
public abstract void getAdMediaHeight(int viewTag, Promise promise);
|
|
70
76
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import UIKit
|
|
2
|
+
import GoogleCast
|
|
3
|
+
|
|
4
|
+
class BBCastButtonView: UIView {
|
|
5
|
+
private var castButton: GCKUICastButton?
|
|
6
|
+
|
|
7
|
+
override func didMoveToWindow() {
|
|
8
|
+
super.didMoveToWindow()
|
|
9
|
+
guard window != nil, castButton == nil else { return }
|
|
10
|
+
setupCastButton()
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
private func setupCastButton() {
|
|
14
|
+
guard GCKCastContext.isSharedInstanceInitialized() else {
|
|
15
|
+
NSLog("BBCastButtonView: Google Cast SDK not initialized")
|
|
16
|
+
return
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
let button = GCKUICastButton(frame: bounds)
|
|
20
|
+
button.autoresizingMask = [.flexibleWidth, .flexibleHeight]
|
|
21
|
+
button.tintColor = tintColor
|
|
22
|
+
addSubview(button)
|
|
23
|
+
castButton = button
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
override func tintColorDidChange() {
|
|
27
|
+
super.tintColorDidChange()
|
|
28
|
+
castButton?.tintColor = tintColor
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import UIKit
|
|
2
|
+
import GoogleCast
|
|
3
|
+
|
|
4
|
+
class BBCastMiniControlsView: UIView {
|
|
5
|
+
private var miniControlsViewController: GCKUIMiniMediaControlsViewController?
|
|
6
|
+
|
|
7
|
+
override func didMoveToWindow() {
|
|
8
|
+
super.didMoveToWindow()
|
|
9
|
+
guard window != nil, miniControlsViewController == nil else { return }
|
|
10
|
+
setupMiniControls()
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
private func setupMiniControls() {
|
|
14
|
+
guard GCKCastContext.isSharedInstanceInitialized() else {
|
|
15
|
+
NSLog("BBCastMiniControlsView: Google Cast SDK not initialized")
|
|
16
|
+
return
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
let miniController = GCKCastContext.sharedInstance().createMiniMediaControlsViewController()
|
|
20
|
+
miniControlsViewController = miniController
|
|
21
|
+
|
|
22
|
+
let miniView = miniController.view!
|
|
23
|
+
miniView.frame = bounds
|
|
24
|
+
miniView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
|
|
25
|
+
addSubview(miniView)
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React
|
|
2
|
+
|
|
3
|
+
@objc(BBCastMiniControlsViewManager)
|
|
4
|
+
class BBCastMiniControlsViewManager: RCTViewManager {
|
|
5
|
+
override func view() -> UIView! {
|
|
6
|
+
return BBCastMiniControlsView()
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
override static func requiresMainQueueSetup() -> Bool {
|
|
10
|
+
return true
|
|
11
|
+
}
|
|
12
|
+
}
|
package/ios/BBPlayerModule.mm
CHANGED
|
@@ -49,6 +49,10 @@ RCT_EXTERN_METHOD(getMode:(nonnull NSNumber *)viewTag resolver:(RCTPromiseResolv
|
|
|
49
49
|
RCT_EXTERN_METHOD(getClipData:(nonnull NSNumber *)viewTag resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
50
50
|
RCT_EXTERN_METHOD(getProjectData:(nonnull NSNumber *)viewTag resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
51
51
|
RCT_EXTERN_METHOD(getPlayoutData:(nonnull NSNumber *)viewTag resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
52
|
+
RCT_EXTERN_METHOD(setInView:(nonnull NSNumber *)viewTag inView:(BOOL)inView)
|
|
53
|
+
RCT_EXTERN_METHOD(getInView:(nonnull NSNumber *)viewTag resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
54
|
+
RCT_EXTERN_METHOD(getAdMediaWidth:(nonnull NSNumber *)viewTag resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
55
|
+
RCT_EXTERN_METHOD(getAdMediaHeight:(nonnull NSNumber *)viewTag resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
|
|
52
56
|
|
|
53
57
|
// Modal player (module-level)
|
|
54
58
|
RCT_EXTERN_METHOD(presentModalPlayer:(NSString *)jsonUrl optionsJson:(NSString *)optionsJson contextJson:(NSString *)contextJson)
|
package/ios/BBPlayerModule.swift
CHANGED
|
@@ -299,6 +299,33 @@ class BBPlayerModule: RCTEventEmitter {
|
|
|
299
299
|
}
|
|
300
300
|
}
|
|
301
301
|
|
|
302
|
+
@objc func setInView(_ viewTag: NSNumber, inView: Bool) {
|
|
303
|
+
DispatchQueue.main.async {
|
|
304
|
+
self.getView(viewTag)?.setInView(inView)
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
@objc func getInView(_ viewTag: NSNumber, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
|
309
|
+
DispatchQueue.main.async {
|
|
310
|
+
let inView = self.getView(viewTag)?.inView()
|
|
311
|
+
resolver(inView)
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
@objc func getAdMediaWidth(_ viewTag: NSNumber, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
|
316
|
+
DispatchQueue.main.async {
|
|
317
|
+
let width = self.getView(viewTag)?.adMediaWidth()
|
|
318
|
+
resolver(width)
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
@objc func getAdMediaHeight(_ viewTag: NSNumber, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
|
|
323
|
+
DispatchQueue.main.async {
|
|
324
|
+
let height = self.getView(viewTag)?.adMediaHeight()
|
|
325
|
+
resolver(height)
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
302
329
|
// MARK: - Modal Player API
|
|
303
330
|
|
|
304
331
|
@objc func presentModalPlayer(_ jsonUrl: String, optionsJson: String?, contextJson: String?) {
|
package/ios/BBPlayerView.swift
CHANGED
|
@@ -480,6 +480,10 @@ class BBPlayerView: UIView, BBNativePlayerViewDelegate {
|
|
|
480
480
|
return playerView?.player.inView
|
|
481
481
|
}
|
|
482
482
|
|
|
483
|
+
func setInView(_ inView: Bool) {
|
|
484
|
+
playerView?.player.inView = inView
|
|
485
|
+
}
|
|
486
|
+
|
|
483
487
|
func mode() -> String? {
|
|
484
488
|
return playerView?.player.mode
|
|
485
489
|
}
|
|
@@ -8,32 +8,32 @@
|
|
|
8
8
|
<key>BinaryPath</key>
|
|
9
9
|
<string>BBNativePlayerKit.framework/BBNativePlayerKit</string>
|
|
10
10
|
<key>LibraryIdentifier</key>
|
|
11
|
-
<string>ios-
|
|
11
|
+
<string>ios-arm64</string>
|
|
12
12
|
<key>LibraryPath</key>
|
|
13
13
|
<string>BBNativePlayerKit.framework</string>
|
|
14
14
|
<key>SupportedArchitectures</key>
|
|
15
15
|
<array>
|
|
16
16
|
<string>arm64</string>
|
|
17
|
-
<string>x86_64</string>
|
|
18
17
|
</array>
|
|
19
18
|
<key>SupportedPlatform</key>
|
|
20
19
|
<string>ios</string>
|
|
21
|
-
<key>SupportedPlatformVariant</key>
|
|
22
|
-
<string>simulator</string>
|
|
23
20
|
</dict>
|
|
24
21
|
<dict>
|
|
25
22
|
<key>BinaryPath</key>
|
|
26
23
|
<string>BBNativePlayerKit.framework/BBNativePlayerKit</string>
|
|
27
24
|
<key>LibraryIdentifier</key>
|
|
28
|
-
<string>ios-
|
|
25
|
+
<string>ios-arm64_x86_64-simulator</string>
|
|
29
26
|
<key>LibraryPath</key>
|
|
30
27
|
<string>BBNativePlayerKit.framework</string>
|
|
31
28
|
<key>SupportedArchitectures</key>
|
|
32
29
|
<array>
|
|
33
30
|
<string>arm64</string>
|
|
31
|
+
<string>x86_64</string>
|
|
34
32
|
</array>
|
|
35
33
|
<key>SupportedPlatform</key>
|
|
36
34
|
<string>ios</string>
|
|
35
|
+
<key>SupportedPlatformVariant</key>
|
|
36
|
+
<string>simulator</string>
|
|
37
37
|
</dict>
|
|
38
38
|
</array>
|
|
39
39
|
<key>CFBundlePackageType</key>
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#if 0
|
|
2
2
|
#elif defined(__arm64__) && __arm64__
|
|
3
|
-
// Generated by Apple Swift version 6.2
|
|
3
|
+
// Generated by Apple Swift version 6.1.2 (swiftlang-6.1.2.1.2 clang-1700.0.13.5)
|
|
4
4
|
#ifndef BBNATIVEPLAYERKIT_SWIFT_H
|
|
5
5
|
#define BBNATIVEPLAYERKIT_SWIFT_H
|
|
6
6
|
#pragma clang diagnostic push
|
|
@@ -311,13 +311,16 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
|
|
|
311
311
|
|
|
312
312
|
@class CALayer;
|
|
313
313
|
@class NSCoder;
|
|
314
|
+
@class UIGestureRecognizer;
|
|
315
|
+
@class UITouch;
|
|
314
316
|
@class NSString;
|
|
315
317
|
/// PlayerView used to play media from the Blue Billywig OVP
|
|
316
318
|
SWIFT_CLASS("_TtC17BBNativePlayerKit18BBNativePlayerView")
|
|
317
|
-
@interface BBNativePlayerView : UIView
|
|
319
|
+
@interface BBNativePlayerView : UIView <UIGestureRecognizerDelegate>
|
|
318
320
|
- (void)layoutSublayersOfLayer:(CALayer * _Nonnull)layer;
|
|
319
321
|
- (nonnull instancetype)initWithFrame:(CGRect)frame OBJC_DESIGNATED_INITIALIZER;
|
|
320
322
|
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder SWIFT_UNAVAILABLE;
|
|
323
|
+
- (BOOL)gestureRecognizer:(UIGestureRecognizer * _Nonnull)gestureRecognizer shouldReceiveTouch:(UITouch * _Nonnull)touch SWIFT_WARN_UNUSED_RESULT;
|
|
321
324
|
/// :nodoc:
|
|
322
325
|
- (void)observeValueForKeyPath:(NSString * _Nullable)keyPath ofObject:(id _Nullable)object change:(NSDictionary<NSKeyValueChangeKey, id> * _Nullable)change context:(void * _Nullable)context;
|
|
323
326
|
/// :nodoc:
|
|
@@ -355,16 +358,14 @@ SWIFT_CLASS("_TtC17BBNativePlayerKit28BBNativePlayerViewController")
|
|
|
355
358
|
@property (nonatomic, readonly) UIInterfaceOrientationMask supportedInterfaceOrientations;
|
|
356
359
|
@end
|
|
357
360
|
|
|
358
|
-
@interface BBNativePlayerViewController (SWIFT_EXTENSION(BBNativePlayerKit)) <BbnativesharedEventListenerInterface>
|
|
359
|
-
- (void)onEventEventType:(BbnativesharedEventName * _Nonnull)eventType data:(NSDictionary<NSString *, id> * _Nullable)data;
|
|
360
|
-
@end
|
|
361
|
-
|
|
362
361
|
@interface BBNativePlayerViewController (SWIFT_EXTENSION(BBNativePlayerKit)) <GCKDiscoveryManagerListener>
|
|
363
362
|
- (void)didUpdateDeviceList;
|
|
364
363
|
@end
|
|
365
364
|
|
|
366
|
-
@
|
|
367
|
-
|
|
365
|
+
@interface BBNativePlayerViewController (SWIFT_EXTENSION(BBNativePlayerKit)) <BbnativesharedEventListenerInterface>
|
|
366
|
+
- (void)onEventEventType:(BbnativesharedEventName * _Nonnull)eventType data:(NSDictionary<NSString *, id> * _Nullable)data;
|
|
367
|
+
@end
|
|
368
|
+
|
|
368
369
|
@interface BBNativePlayerViewController (SWIFT_EXTENSION(BBNativePlayerKit)) <UIGestureRecognizerDelegate>
|
|
369
370
|
- (BOOL)gestureRecognizer:(UIGestureRecognizer * _Nonnull)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer * _Nonnull)otherGestureRecognizer SWIFT_WARN_UNUSED_RESULT;
|
|
370
371
|
- (BOOL)gestureRecognizer:(UIGestureRecognizer * _Nonnull)gestureRecognizer shouldReceiveTouch:(UITouch * _Nonnull)touch SWIFT_WARN_UNUSED_RESULT;
|
|
@@ -649,14 +650,14 @@ SWIFT_CLASS("_TtC17BBNativePlayerKit18BBNativeShortsView")
|
|
|
649
650
|
- (void)removeFromSuperview;
|
|
650
651
|
@end
|
|
651
652
|
|
|
652
|
-
@interface BBNativeShortsView (SWIFT_EXTENSION(BBNativePlayerKit)) <BBNativePlayerViewDelegate>
|
|
653
|
-
- (void)bbNativePlayerViewWithPlayerView:(BBNativePlayerView * _Nonnull)playerView didSetupWithJsonUrl:(NSString * _Nullable)url;
|
|
654
|
-
@end
|
|
655
|
-
|
|
656
653
|
@interface BBNativeShortsView (SWIFT_EXTENSION(BBNativePlayerKit)) <BbnativesharedEventListenerInterface>
|
|
657
654
|
- (void)onEventEventType:(BbnativesharedEventName * _Nonnull)eventType data:(NSDictionary<NSString *, id> * _Nullable)data;
|
|
658
655
|
@end
|
|
659
656
|
|
|
657
|
+
@interface BBNativeShortsView (SWIFT_EXTENSION(BBNativePlayerKit)) <BBNativePlayerViewDelegate>
|
|
658
|
+
- (void)bbNativePlayerViewWithPlayerView:(BBNativePlayerView * _Nonnull)playerView didSetupWithJsonUrl:(NSString * _Nullable)url;
|
|
659
|
+
@end
|
|
660
|
+
|
|
660
661
|
/// :nodoc:
|
|
661
662
|
SWIFT_CLASS("_TtC17BBNativePlayerKit28BBNativeShortsViewController")
|
|
662
663
|
@interface BBNativeShortsViewController : UIViewController
|
|
@@ -16,4 +16,4 @@ FOUNDATION_EXPORT const unsigned char BBNativePlayerKitVersionString[];
|
|
|
16
16
|
|
|
17
17
|
// In this header, you should import all the public headers of your framework using statements like #import <BBNativePlayerKit/PublicHeader.h>
|
|
18
18
|
|
|
19
|
-
#import
|
|
19
|
+
#import <BBNativePlayerKit/UMPBridge.h>
|