From c1a019ee5b23c0950067a15dd26fba65e4a0fd4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=A1=E8=89=B2?= Date: Mon, 14 Oct 2024 21:21:28 +0700 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9F=90=E4=BA=9B?= =?UTF-8?q?=E6=9C=BA=E5=9E=8B=E4=BC=9A=E5=AF=BC=E8=87=B4=E7=94=9F=E5=91=BD?= =?UTF-8?q?=E5=91=A8=E6=9C=9F=E4=B8=A2=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 相关 ISSUES #136 --- .../FlutterOpenimSdkPlugin.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/android/src/main/java/io/openim/flutter_openim_sdk/FlutterOpenimSdkPlugin.java b/android/src/main/java/io/openim/flutter_openim_sdk/FlutterOpenimSdkPlugin.java index 10b60e98..d01564f7 100644 --- a/android/src/main/java/io/openim/flutter_openim_sdk/FlutterOpenimSdkPlugin.java +++ b/android/src/main/java/io/openim/flutter_openim_sdk/FlutterOpenimSdkPlugin.java @@ -47,6 +47,7 @@ public class FlutterOpenimSdkPlugin implements FlutterPlugin, MethodCallHandler, private ConnectivityListener connectivityListener; private VisibilityListener visibilityListener; public static boolean isInitialized; + private FlutterPluginBinding flutterPluginBinding; public FlutterOpenimSdkPlugin() { FlutterOpenimSdkPlugin.imManager = new IMManager(); @@ -60,14 +61,23 @@ public FlutterOpenimSdkPlugin() { @Override public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) { - channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), CHANNEL_NAME); + this.flutterPluginBinding = flutterPluginBinding; + context = flutterPluginBinding.getApplicationContext(); - channel.setMethodCallHandler(this); connectivityListener = new ConnectivityListener(context); visibilityListener = new VisibilityListener(); connectivityListener.register(); } + private void registerMethodChannel() { + channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), CHANNEL_NAME); + channel.setMethodCallHandler(this); + } + + private void unregisterMethodChannel() { + channel.setMethodCallHandler(null); + } + @Override public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) { parse(call, result); @@ -75,29 +85,36 @@ public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) { @Override public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { - FlutterOpenimSdkPlugin.channel.setMethodCallHandler(null); connectivityListener.unregisterReceiver(); } @Override public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) { + registerMethodChannel(); + visibilityListener.register(activity = binding.getActivity()); } @Override public void onDetachedFromActivityForConfigChanges() { + unregisterMethodChannel(); + visibilityListener.unregisterReceiver(activity); activity = null; } @Override public void onReattachedToActivityForConfigChanges(@NonNull ActivityPluginBinding binding) { + registerMethodChannel(); + visibilityListener.register(activity = binding.getActivity()); } @Override public void onDetachedFromActivity() { + unregisterMethodChannel(); + visibilityListener.unregisterReceiver(activity); activity = null; } From f50089428eeebe42af02197e513ac6272dccf09d Mon Sep 17 00:00:00 2001 From: cipchk Date: Sun, 22 Dec 2024 11:02:45 +0800 Subject: [PATCH 2/4] fix:fix optional parameter of `offlinePushInfo` in `sendMessage` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 文档中这是一个可选参数 --- lib/src/manager/im_message_manager.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/src/manager/im_message_manager.dart b/lib/src/manager/im_message_manager.dart index eb04f9d3..c8e05384 100644 --- a/lib/src/manager/im_message_manager.dart +++ b/lib/src/manager/im_message_manager.dart @@ -33,7 +33,7 @@ class MessageManager { /// [offlinePushInfo] Offline message display content Future sendMessage({ required Message message, - required OfflinePushInfo offlinePushInfo, + OfflinePushInfo? offlinePushInfo = null, String? userID, String? groupID, bool isOnlineOnly = false, @@ -44,7 +44,7 @@ class MessageManager { 'sendMessage', _buildParam({ 'message': message.toJson(), - 'offlinePushInfo': offlinePushInfo.toJson(), + 'offlinePushInfo': offlinePushInfo?.toJson(), 'userID': userID ?? '', 'groupID': groupID ?? '', 'isOnlineOnly': isOnlineOnly, From de41ebcadf3251e1a2a309ea6302b3e615314cd2 Mon Sep 17 00:00:00 2001 From: cipchk Date: Sun, 22 Dec 2024 11:09:10 +0800 Subject: [PATCH 3/4] fix:fix optional parameter of `offlinePushInfo` in `sendMessageNotOss` --- lib/src/manager/im_message_manager.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/src/manager/im_message_manager.dart b/lib/src/manager/im_message_manager.dart index c8e05384..ca95f154 100644 --- a/lib/src/manager/im_message_manager.dart +++ b/lib/src/manager/im_message_manager.dart @@ -671,7 +671,7 @@ class MessageManager { /// [offlinePushInfo] Offline message display content Future sendMessageNotOss({ required Message message, - required OfflinePushInfo offlinePushInfo, + OfflinePushInfo? offlinePushInfo = null, String? userID, String? groupID, bool isOnlineOnly = false, @@ -682,7 +682,7 @@ class MessageManager { 'sendMessageNotOss', _buildParam({ 'message': message.toJson(), - 'offlinePushInfo': offlinePushInfo.toJson(), + 'offlinePushInfo': offlinePushInfo?.toJson(), 'userID': userID ?? '', 'groupID': groupID ?? '', 'isOnlineOnly': isOnlineOnly, From 6f5db15dd8263173322fe82260bd644019e4c01c Mon Sep 17 00:00:00 2001 From: cipchk Date: Sat, 4 Jan 2025 18:53:54 +0800 Subject: [PATCH 4/4] chore: android add namespace --- android/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/android/build.gradle b/android/build.gradle index 2fd13ed5..1665f436 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -38,6 +38,7 @@ rootProject.allprojects { apply plugin: 'com.android.library' android { + namespace = "io.openim.flutter_openim_sdk" compileSdkVersion 34 defaultConfig {