From 5f12802799e2c49cb42d2ebe5e6dfc4d42597cb8 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Tue, 22 Mar 2022 16:34:06 +0100 Subject: [PATCH] fix reconnection event --- .../stream_chat/lib/src/client/client.dart | 11 ++++++---- .../example/android/app/build.gradle | 2 +- .../ios/Runner.xcodeproj/project.pbxproj | 21 ++++++++++++++----- .../src/stream_channel_list_controller.dart | 5 +---- 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/packages/stream_chat/lib/src/client/client.dart b/packages/stream_chat/lib/src/client/client.dart index cab864b9..a3daa653 100644 --- a/packages/stream_chat/lib/src/client/client.dart +++ b/packages/stream_chat/lib/src/client/client.dart @@ -417,6 +417,7 @@ class StreamChatClient { } void _connectionStatusHandler(ConnectionStatus status) async { + final previousState = wsConnectionStatus; final currentState = _wsConnectionStatus = status; handleEvent(Event( @@ -436,10 +437,12 @@ class StreamChatClient { await sync(cids: cids, lastSyncAt: _lastSyncedAt); } } - handleEvent(Event( - type: EventType.connectionRecovered, - online: true, - )); + if (previousState != ConnectionStatus.connected) { + handleEvent(Event( + type: EventType.connectionRecovered, + online: true, + )); + } } } diff --git a/packages/stream_chat_flutter/example/android/app/build.gradle b/packages/stream_chat_flutter/example/android/app/build.gradle index 3974f949..6576512a 100644 --- a/packages/stream_chat_flutter/example/android/app/build.gradle +++ b/packages/stream_chat_flutter/example/android/app/build.gradle @@ -40,7 +40,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.example.example" - minSdkVersion 21 + minSdkVersion 22 targetSdkVersion 31 versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/packages/stream_chat_flutter/example/ios/Runner.xcodeproj/project.pbxproj b/packages/stream_chat_flutter/example/ios/Runner.xcodeproj/project.pbxproj index 4b1a8d5d..2550e7a5 100644 --- a/packages/stream_chat_flutter/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/stream_chat_flutter/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 51; objects = { /* Begin PBXBuildFile section */ @@ -68,7 +68,6 @@ 59062C6EC2CCFE110AC70AB8 /* Pods-Runner.release.xcconfig */, 4684439012E1DB1A82103E26 /* Pods-Runner.profile.xcconfig */, ); - name = Pods; path = Pods; sourceTree = ""; }; @@ -356,13 +355,17 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = EHV7XZLAHA; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", @@ -488,13 +491,17 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = EHV7XZLAHA; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", @@ -515,13 +522,17 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = EHV7XZLAHA; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", diff --git a/packages/stream_chat_flutter_core/lib/src/stream_channel_list_controller.dart b/packages/stream_chat_flutter_core/lib/src/stream_channel_list_controller.dart index 7d3a281f..3b7342e5 100644 --- a/packages/stream_chat_flutter_core/lib/src/stream_channel_list_controller.dart +++ b/packages/stream_chat_flutter_core/lib/src/stream_channel_list_controller.dart @@ -221,6 +221,7 @@ class StreamChannelListController extends PagedValueNotifier { } _channelEventSubscription = client.on().listen((event) { + print('event.type: ${event.type}'); // Returns early if the event is already handled by the listener. if (eventListener?.call(event) ?? false) return; @@ -237,10 +238,6 @@ class StreamChannelListController extends PagedValueNotifier { _eventHandler.onChannelVisible(event, this); } else if (eventType == EventType.connectionRecovered) { _eventHandler.onConnectionRecovered(event, this); - } else if (eventType == EventType.connectionChanged) { - if (event.online != null) { - _eventHandler.onConnectionRecovered(event, this); - } } else if (eventType == EventType.messageNew) { _eventHandler.onMessageNew(event, this); } else if (eventType == EventType.notificationAddedToChannel) {