diff --git a/android/build.gradle b/android/build.gradle index b8d3637..68a8d3c 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -44,7 +44,7 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - implementation "com.google.android.gms:play-services-cast-framework:17.1.0" + api "com.google.android.gms:play-services-cast-framework:17.1.0" // Lifecycle implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version" diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index f847278..0a063a0 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -1,9 +1,2 @@ - - - - - + diff --git a/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/cast/DefaultCastOptionsProvider.kt b/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/cast/DefaultCastOptionsProvider.kt new file mode 100644 index 0000000..03c16de --- /dev/null +++ b/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/cast/DefaultCastOptionsProvider.kt @@ -0,0 +1,22 @@ +package com.gianlucaparadise.flutter_cast_framework.cast + +import android.content.Context +import com.google.android.gms.cast.framework.CastOptions +import com.google.android.gms.cast.framework.OptionsProvider +import com.google.android.gms.cast.framework.SessionProvider + + +/** + * This is here to be used as an example + */ +class DefaultCastOptionsProvider : OptionsProvider { + override fun getCastOptions(context: Context): CastOptions { + return CastOptions.Builder() + .setReceiverApplicationId("4F8B3483") + .build() + } + + override fun getAdditionalSessionProviders(context: Context): List? { + return null + } +} \ No newline at end of file diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index 0027022..39d0fb1 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -29,5 +29,10 @@ + + + diff --git a/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/cast/CastOptionsProvider.kt b/example/android/app/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework_example/CastOptionsProvider.kt similarity index 90% rename from android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/cast/CastOptionsProvider.kt rename to example/android/app/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework_example/CastOptionsProvider.kt index ee4a552..6b9170e 100644 --- a/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/cast/CastOptionsProvider.kt +++ b/example/android/app/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework_example/CastOptionsProvider.kt @@ -1,4 +1,4 @@ -package com.gianlucaparadise.flutter_cast_framework.cast +package com.gianlucaparadise.flutter_cast_framework_example import android.content.Context import com.google.android.gms.cast.framework.CastOptions diff --git a/example/lib/main.dart b/example/lib/main.dart index 5f5d81d..3c05932 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -18,9 +18,12 @@ class _MyAppState extends State { final textMessageController = TextEditingController(); + final String castNamespace = 'urn:x-cast:cast-your-instructions'; + @override void initState() { super.initState(); + FlutterCastFramework.namespaces = [castNamespace]; FlutterCastFramework.castContext.state.addListener(_onCastStateChanged); FlutterCastFramework.castContext.sessionManager.state .addListener(_onSessionStateChanged); @@ -60,7 +63,7 @@ class _MyAppState extends State { void _onSendMessage() { String message = this.textMessageController.text; FlutterCastFramework.castContext.sessionManager - .sendMessage('urn:x-cast:cast-your-instructions', message); + .sendMessage(castNamespace, message); } @override @@ -79,7 +82,7 @@ class _MyAppState extends State { style: Theme.of(context).textTheme.title, ), Text('Cast State: $_castState'), - Text('Cast State: $_sessionState'), + Text('Session State: $_sessionState'), Text( 'Message', style: Theme.of(context).textTheme.title, diff --git a/lib/flutter_cast_framework.dart b/lib/flutter_cast_framework.dart index 2340cff..77a174d 100644 --- a/lib/flutter_cast_framework.dart +++ b/lib/flutter_cast_framework.dart @@ -7,6 +7,9 @@ class FlutterCastFramework { static const MethodChannel _channel = const MethodChannel('flutter_cast_framework'); + /// List of namespaces to listen for custom messages + static List namespaces = []; + static bool _isInitiated = false; static _init() { @@ -33,7 +36,7 @@ class FlutterCastFramework { break; case PlatformMethodNames.getSessionMessageNamespaces: - return ["urn:x-cast:cast-your-instructions"]; + return namespaces; case PlatformMethodNames.onMessageReceived: castContext.sessionManager.platformOnMessageReceived(arguments);