main
hrxiang 2 years ago
parent 9df556b837
commit 4d8ba65f9b
  1. 42
      android/src/main/java/io/openim/flutter_openim_sdk/FlutterOpenimSdkPlugin.java
  2. 4
      lib/src/enum/sdk_error_code.dart
  3. 2
      lib/src/openim.dart

@ -1,5 +1,6 @@
package io.openim.flutter_openim_sdk; package io.openim.flutter_openim_sdk;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@ -9,6 +10,8 @@ import java.lang.reflect.Method;
import io.flutter.Log; import io.flutter.Log;
import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.embedding.engine.plugins.activity.ActivityAware;
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding;
import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel; import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler; import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
@ -27,12 +30,12 @@ import io.openim.flutter_openim_sdk.manager.WorkMomentsManager;
/** /**
* FlutterOpenimSdkPlugin * FlutterOpenimSdkPlugin
*/ */
public class FlutterOpenimSdkPlugin implements FlutterPlugin, MethodCallHandler { public class FlutterOpenimSdkPlugin implements FlutterPlugin, MethodCallHandler, ActivityAware {
/// The MethodChannel that will the communication between Flutter and native Android /// The MethodChannel that will the communication between Flutter and native Android
/// ///
/// This local reference serves to register the plugin with the Flutter Engine and unregister it /// This local reference serves to register the plugin with the Flutter Engine and unregister it
/// when the Flutter Engine is detached from the Activity /// when the Flutter Engine is detached from the Activity
private static final String CHANNEL_NAME = "flutter_openim_sdk";
public static MethodChannel channel; public static MethodChannel channel;
private static IMManager imManager; private static IMManager imManager;
private static UserManager userManager; private static UserManager userManager;
@ -43,11 +46,11 @@ public class FlutterOpenimSdkPlugin implements FlutterPlugin, MethodCallHandler
private static SignalingManager signalingManager; private static SignalingManager signalingManager;
private static WorkMomentsManager workMomentsManager; private static WorkMomentsManager workMomentsManager;
private static OrganizationManager organizationManager; private static OrganizationManager organizationManager;
private static Activity activity;
private static Context context;
public FlutterOpenimSdkPlugin() {
}
private FlutterOpenimSdkPlugin(Context context) { public FlutterOpenimSdkPlugin() {
FlutterOpenimSdkPlugin.imManager = new IMManager(); FlutterOpenimSdkPlugin.imManager = new IMManager();
FlutterOpenimSdkPlugin.userManager = new UserManager(); FlutterOpenimSdkPlugin.userManager = new UserManager();
FlutterOpenimSdkPlugin.friendshipManager = new FriendshipManager(); FlutterOpenimSdkPlugin.friendshipManager = new FriendshipManager();
@ -59,11 +62,12 @@ public class FlutterOpenimSdkPlugin implements FlutterPlugin, MethodCallHandler
FlutterOpenimSdkPlugin.organizationManager = new OrganizationManager(); FlutterOpenimSdkPlugin.organizationManager = new OrganizationManager();
} }
@Override @Override
public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) { public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) {
FlutterOpenimSdkPlugin.channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), "flutter_openim_sdk"); channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), CHANNEL_NAME);
FlutterOpenimSdkPlugin.channel.setMethodCallHandler(new FlutterOpenimSdkPlugin(flutterPluginBinding.getApplicationContext())); context = flutterPluginBinding.getApplicationContext();
// channel.setMethodCallHandler(this); channel.setMethodCallHandler(this);
} }
@Override @Override
@ -76,6 +80,28 @@ public class FlutterOpenimSdkPlugin implements FlutterPlugin, MethodCallHandler
FlutterOpenimSdkPlugin.channel.setMethodCallHandler(null); FlutterOpenimSdkPlugin.channel.setMethodCallHandler(null);
} }
@Override
public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) {
activity = binding.getActivity();
}
@Override
public void onDetachedFromActivityForConfigChanges() {
activity = null;
}
@Override
public void onReattachedToActivityForConfigChanges(@NonNull ActivityPluginBinding binding) {
activity = binding.getActivity();
}
@Override
public void onDetachedFromActivity() {
activity = null;
}
void parse(@NonNull MethodCall call, @NonNull Result result) { void parse(@NonNull MethodCall call, @NonNull Result result) {
try { try {
String managerName = call.argument("ManagerName"); String managerName = call.argument("ManagerName");

@ -5,6 +5,10 @@ class MessageFailedCode {
/// ///
static const int deletedByFriend = 601; static const int deletedByFriend = 601;
/// /
static const int notInGroup = 302;
} }
/// ///

@ -2,7 +2,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
class OpenIM { class OpenIM {
static const version = '2.3.5+3'; static const version = '2.3.5+4';
static const _channel = const MethodChannel('flutter_openim_sdk'); static const _channel = const MethodChannel('flutter_openim_sdk');

Loading…
Cancel
Save