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);