diff --git a/android/src/main/java/io/ably/flutter/plugin/generated/PlatformConstants.java b/android/src/main/java/io/ably/flutter/plugin/generated/PlatformConstants.java index bf182276e..2d932bea9 100644 --- a/android/src/main/java/io/ably/flutter/plugin/generated/PlatformConstants.java +++ b/android/src/main/java/io/ably/flutter/plugin/generated/PlatformConstants.java @@ -81,6 +81,7 @@ static final public class PlatformMethod { public static final String connectionId = "connectionId"; public static final String connectionKey = "connectionKey"; public static final String connectionRecoveryKey = "connectionRecoveryKey"; + public static final String connectionIdUpdated = "connectionIdUpdated"; public static final String pushActivate = "pushActivate"; public static final String pushDeactivate = "pushDeactivate"; diff --git a/lib/src/generated/platform_constants.dart b/lib/src/generated/platform_constants.dart index 4773cb33f..a59244f61 100644 --- a/lib/src/generated/platform_constants.dart +++ b/lib/src/generated/platform_constants.dart @@ -80,6 +80,7 @@ class PlatformMethod { static const String connectionId = 'connectionId'; static const String connectionKey = 'connectionKey'; static const String connectionRecoveryKey = 'connectionRecoveryKey'; + static const String connectionIdUpdated = 'connectionIdUpdated'; static const String pushActivate = 'pushActivate'; static const String pushDeactivate = 'pushDeactivate'; diff --git a/lib/src/platform/src/method_call_handler.dart b/lib/src/platform/src/method_call_handler.dart index ac05625d8..4f4f56431 100644 --- a/lib/src/platform/src/method_call_handler.dart +++ b/lib/src/platform/src/method_call_handler.dart @@ -1,3 +1,5 @@ +import 'dart:ffi'; + import 'package:ably_flutter/ably_flutter.dart'; import 'package:ably_flutter/src/platform/platform_internal.dart'; import 'package:flutter/services.dart'; @@ -15,6 +17,8 @@ class AblyMethodCallHandler { return onAuthCallback(call.arguments as AblyMessage); case PlatformMethod.realtimeAuthCallback: return onRealtimeAuthCallback(call.arguments as AblyMessage?); + case PlatformMethod.connectionIdUpdated: + return onConnectionIdUpdated(call.arguments as AblyMessage?); case PlatformMethod.pushOnActivate: return _onPushOnActivate(call.arguments as ErrorInfo?); case PlatformMethod.pushOnDeactivate: @@ -68,6 +72,14 @@ class AblyMethodCallHandler { return realtime.options.authCallback!(tokenParams); } + /// @nodoc + /// handles auth callback for realtime instances + Future onConnectionIdUpdated(AblyMessage? message) async { + final updatedConnId = message!.message as String; + final realtime = realtimeInstances[message.handle]; + realtime?.connection.id = updatedConnId; + } + final PushActivationEventsInternal _pushActivationEvents = Push.activationEvents as PushActivationEventsInternal; final PushNotificationEventsInternal _pushNotificationEvents = diff --git a/test/models/client_options.dart b/test/models/client_options.dart index 49a211220..479d4f359 100644 --- a/test/models/client_options.dart +++ b/test/models/client_options.dart @@ -15,7 +15,7 @@ void main() { expect(clientOptions.realtimeHost, isNull); expect(clientOptions.port, isNull); expect(clientOptions.tlsPort, isNull); - expect(clientOptions.autoConnect, isNull); + expect(clientOptions.autcoConnect, isNull); expect(clientOptions.useBinaryProtocol, isNull); expect(clientOptions.queueMessages, isNull); expect(clientOptions.echoMessages, isNull);