putFile replace to uploadFile

main
hrxiang 2 years ago
parent 27eb0f78d2
commit c0618458fa
  1. 2
      android/build.gradle
  2. 86
      android/src/main/java/io/openim/flutter_openim_sdk/listener/OnPutFileListener.java
  3. 110
      android/src/main/java/io/openim/flutter_openim_sdk/listener/OnUploadFileListener.java
  4. 8
      android/src/main/java/io/openim/flutter_openim_sdk/manager/IMManager.java
  5. 2
      lib/flutter_openim_sdk.dart
  6. 2
      lib/src/enum/listener_type.dart
  7. 32
      lib/src/listener/put_file_listener.dart
  8. 45
      lib/src/listener/upload_file_listener.dart
  9. 101
      lib/src/manager/im_manager.dart

@ -53,5 +53,5 @@ dependencies {
// aar复制到libs/io/openim/core-sdk/0.0.1/ core-sdk-0.0.1.aar
// implementation 'io.openim:core-sdk:0.0.1@aar'
// api 'io.openim:core-sdk:2.3.5-t44@aar'
implementation 'io.openim:core-sdk:3.0.0-beta09@aar'
implementation 'io.openim:core-sdk:3.0.0-beta11@aar'
}

@ -1,86 +0,0 @@
package io.openim.flutter_openim_sdk.listener;
import android.util.ArrayMap;
import java.util.Map;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.openim.flutter_openim_sdk.util.CommonUtil;
import open_im_sdk_callback.PutFileCallback;
public class OnPutFileListener implements PutFileCallback {
final private MethodChannel.Result result;
final private Object putID;
public OnPutFileListener(MethodChannel.Result result, MethodCall call) {
this.result = result;
this.putID = call.argument("putID");
}
@Override
public void hashComplete(String hash, long total) {
if (null != putID) {
final Map<String, Object> values = new ArrayMap<>();
values.put("putID", putID);
values.put("hash", hash);
values.put("total", total);
CommonUtil.emitEvent("putFileListener", "hashComplete", values);
}
}
@Override
public void hashProgress(long current, long total) {
if (null != putID) {
final Map<String, Object> values = new ArrayMap<>();
values.put("putID", putID);
values.put("current", current);
values.put("total", total);
CommonUtil.emitEvent("putFileListener", "hashProgress", values);
}
}
@Override
public void open(long size) {
if (null != putID) {
final Map<String, Object> values = new ArrayMap<>();
values.put("putID", putID);
values.put("size", size);
CommonUtil.emitEvent("putFileListener", "open", values);
}
}
@Override
public void putComplete(long total, long putType) {
if (null != putID) {
final Map<String, Object> values = new ArrayMap<>();
values.put("putID", putID);
values.put("putType", putType);
values.put("total", total);
CommonUtil.emitEvent("putFileListener", "putComplete", values);
}
}
@Override
public void putProgress(long save, long current, long total) {
if (null != putID) {
final Map<String, Object> values = new ArrayMap<>();
values.put("putID", putID);
values.put("save", save);
values.put("current", current);
values.put("total", total);
CommonUtil.emitEvent("putFileListener", "putProgress", values);
}
}
@Override
public void putStart(long current, long total) {
if (null != putID) {
final Map<String, Object> values = new ArrayMap<>();
values.put("putID", putID);
values.put("current", current);
values.put("total", total);
CommonUtil.emitEvent("putFileListener", "putStart", values);
}
}
}

@ -0,0 +1,110 @@
package io.openim.flutter_openim_sdk.listener;
import android.util.ArrayMap;
import java.util.Map;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.openim.flutter_openim_sdk.util.CommonUtil;
import open_im_sdk_callback.UploadFileCallback;
public class OnUploadFileListener implements UploadFileCallback {
final private MethodChannel.Result result;
final private Object id;
public OnUploadFileListener(MethodChannel.Result result, MethodCall call) {
this.result = result;
this.id = call.argument("id");
}
@Override
public void complete(long size, String url, int type) {
if (null != id) {
final Map<String, Object> values = new ArrayMap<>();
values.put("id", id);
values.put("size", size);
values.put("url", url);
values.put("type", type);
CommonUtil.emitEvent("uploadFileListener", "complete", values);
}
}
@Override
public void hashPartComplete(String partHash, String fileHash) {
if (null != id) {
final Map<String, Object> values = new ArrayMap<>();
values.put("id", id);
values.put("partHash", partHash);
values.put("fileHash", fileHash);
CommonUtil.emitEvent("uploadFileListener", "hashPartComplete", values);
}
}
@Override
public void hashPartProgress(int index, long size, String partHash) {
if (null != id) {
final Map<String, Object> values = new ArrayMap<>();
values.put("id", id);
values.put("index", index);
values.put("size", size);
values.put("partHash", partHash);
CommonUtil.emitEvent("uploadFileListener", "hashPartProgress", values);
}
}
@Override
public void open(long size) {
if (null != id) {
final Map<String, Object> values = new ArrayMap<>();
values.put("id", id);
values.put("size", size);
CommonUtil.emitEvent("uploadFileListener", "open", values);
}
}
@Override
public void partSize(long partSize, int num) {
if (null != id) {
final Map<String, Object> values = new ArrayMap<>();
values.put("id", id);
values.put("partSize", partSize);
values.put("num", num);
CommonUtil.emitEvent("uploadFileListener", "partSize", values);
}
}
@Override
public void uploadComplete(long fileSize, long streamSize, long storageSize) {
if (null != id) {
final Map<String, Object> values = new ArrayMap<>();
values.put("id", id);
values.put("fileSize", fileSize);
values.put("streamSize", streamSize);
values.put("storageSize", storageSize);
CommonUtil.emitEvent("uploadFileListener", "uploadComplete", values);
}
}
@Override
public void uploadID(String uploadID) {
if (null != id) {
final Map<String, Object> values = new ArrayMap<>();
values.put("id", id);
values.put("uploadID", uploadID);
CommonUtil.emitEvent("uploadFileListener", "uploadID", values);
}
}
@Override
public void uploadPartComplete(int index, long partSize, String partHash) {
if (null != id) {
final Map<String, Object> values = new ArrayMap<>();
values.put("id", id);
values.put("index", index);
values.put("partSize", partSize);
values.put("partHash", partHash);
CommonUtil.emitEvent("uploadFileListener", "uploadPartComplete", values);
}
}
}

@ -5,7 +5,7 @@ import io.flutter.plugin.common.MethodChannel;
import io.openim.flutter_openim_sdk.FlutterOpenimSdkPlugin;
import io.openim.flutter_openim_sdk.listener.OnBaseListener;
import io.openim.flutter_openim_sdk.listener.OnConnListener;
import io.openim.flutter_openim_sdk.listener.OnPutFileListener;
import io.openim.flutter_openim_sdk.listener.OnUploadFileListener;
import io.openim.flutter_openim_sdk.util.CommonUtil;
import open_im_sdk.Open_im_sdk;
@ -40,12 +40,12 @@ public class IMManager extends BaseManager {
CommonUtil.runMainThreadReturn(result, Open_im_sdk.getLoginStatus(value(methodCall, "operationID")));
}
public void putFile(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.putFile(
public void uploadFile(MethodCall methodCall, MethodChannel.Result result) {
Open_im_sdk.uploadFile(
new OnBaseListener(result, methodCall),
value(methodCall, "operationID"),
jsonValue(methodCall),
new OnPutFileListener(result, methodCall)
new OnUploadFileListener(result, methodCall)
);
}

@ -20,7 +20,7 @@ export 'src/listener/group_listener.dart';
export 'src/listener/listener_for_service.dart';
export 'src/listener/message_kv_info_listener.dart';
export 'src/listener/msg_send_progress_listener.dart';
export 'src/listener/put_file_listener.dart';
export 'src/listener/upload_file_listener.dart';
export 'src/listener/user_listener.dart';
export 'src/manager/im_conversation_manager.dart';
export 'src/manager/im_friendship_manager.dart';

@ -14,5 +14,5 @@ class ListenerType {
static const customBusinessListener = "customBusinessListener";
static const messageKvInfoListener = "messageKvInfoListener";
static const listenerForService = "listenerForService";
static const putFileListener = "putFileListener";
static const uploadFileListener = "uploadFileListener";
}

@ -1,32 +0,0 @@
class OnPutFileListener {
Function(String putID, String hash, int total)? onHashComplete;
Function(String putID, int current, int total)? onHashProgress;
Function(String putID, int size)? onOpen;
Function(String putID, int total, int putType)? onPutComplete;
Function(String putID, int save, int current, int total)? onPutProgress;
Function(String putID, int current, int total)? onPutStart;
void hashComplete(String putID, String hash, int total) {
onHashComplete?.call(putID, hash, total);
}
void hashProgress(String putID, int current, int total) {
onHashProgress?.call(putID, current, total);
}
void open(String putID, int size) {
onOpen?.call(putID, size);
}
void putComplete(String putID, int total, int putType) {
onPutComplete?.call(putID, total, putType);
}
void putProgress(String putID, int save, int current, int total) {
onPutProgress?.call(putID, save, current, total);
}
void putStart(String putID, int current, int total) {
onPutStart?.call(putID, current, total);
}
}

@ -0,0 +1,45 @@
class OnUploadFileListener {
Function(String id, int size, String url, int type)? onComplete;
Function(String id, String partHash, String fileHash)? onHashPartComplete;
Function(String id, int index, int size, String partHash)? onHashPartProgress;
Function(String id, int size)? onOpen;
Function(String id, int partSize, int num)? onPartSize;
Function(String id, int fileSize, int streamSize, int storageSize)?
onUploadComplete;
Function(String id, String uploadID)? onUploadID;
Function(String id, int index, int partSize, String partHash)?
onUploadPartComplete;
void complete(String id, int size, String url, int type) {
onComplete?.call(id, size, url, type);
}
void hashPartComplete(String id, String partHash, String fileHash) {
onHashPartComplete?.call(id, partHash, fileHash);
}
void hashPartProgress(String id, int index, int size, String partHash) {
onHashPartProgress?.call(id, index, size, partHash);
}
void open(String id, int size) {
onOpen?.call(id, size);
}
void partSize(String id, int partSize, int num) {
onPartSize?.call(id, partSize, num);
}
void uploadComplete(
String id, int fileSize, int streamSize, int storageSize) {
onUploadComplete?.call(id, fileSize, streamSize, storageSize);
}
void uploadID(String id, String uploadID) {
onUploadID?.call(id, uploadID);
}
void uploadPartComplete(String id, int index, int partSize, String partHash) {
onUploadPartComplete?.call(id, index, partSize, partHash);
}
}

@ -3,6 +3,7 @@ import 'dart:io';
import 'package:flutter/services.dart';
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
import 'package:flutter_openim_sdk/src/listener/upload_file_listener.dart';
import 'package:flutter_openim_sdk/src/logger.dart';
class IMManager {
@ -15,7 +16,7 @@ class IMManager {
late OnConnectListener _connectListener;
OnListenerForService? _listenerForService;
OnPutFileListener? _putFileListener;
OnUploadFileListener? _uploadFileListener;
late String userID;
late UserInfo userInfo;
bool isLogined = false;
@ -316,45 +317,61 @@ class IMManager {
_listenerForService?.recvNewMessage(msg);
break;
}
} else if (call.method == ListenerType.putFileListener) {
} else if (call.method == ListenerType.uploadFileListener) {
String type = call.arguments['type'];
dynamic data = call.arguments['data'];
switch (type) {
case 'hashComplete':
String putID = data['putID'];
String hash = data['hash'];
int total = data['total'];
_putFileListener?.hashComplete(putID, hash, total);
break;
case 'hashProgress':
String putID = data['putID'];
int current = data['current'];
int total = data['total'];
_putFileListener?.hashProgress(putID, current, total);
case 'complete':
String id = data['id'];
int size = data['size'];
String url = data['url'];
int type = data['type'];
_uploadFileListener?.complete(id, size, url, type);
break;
case 'hashPartComplete':
String id = data['id'];
String partHash = data['partHash'];
String fileHash = data['fileHash'];
_uploadFileListener?.hashPartComplete(id, partHash, fileHash);
break;
case 'hashPartProgress':
String id = data['id'];
int index = data['index'];
int size = data['size'];
String partHash = data['partHash'];
_uploadFileListener?.hashPartProgress(id, index, size, partHash);
break;
case 'open':
String putID = data['putID'];
String id = data['id'];
int size = data['size'];
_putFileListener?.open(putID, size);
break;
case 'putComplete':
String putID = data['putID'];
int putType = data['putType'];
int total = data['total'];
_putFileListener?.putComplete(putID, putType, total);
break;
case 'putProgress':
String putID = data['putID'];
int save = data['save'];
int current = data['current'];
int total = data['total'];
_putFileListener?.putProgress(putID, save, current, total);
break;
case 'putStart':
String putID = data['putID'];
int current = data['current'];
int total = data['total'];
_putFileListener?.putStart(putID, current, total);
_uploadFileListener?.open(id, size);
break;
case 'partSize':
String id = data['id'];
int partSize = data['partSize'];
int num = data['num'];
_uploadFileListener?.partSize(id, partSize, num);
break;
case 'uploadComplete':
String id = data['id'];
int fileSize = data['fileSize'];
int streamSize = data['streamSize'];
int storageSize = data['storageSize'];
_uploadFileListener?.uploadComplete(
id, fileSize, streamSize, storageSize);
break;
case 'uploadID':
String id = data['id'];
String uploadID = data['uploadID'];
_uploadFileListener?.uploadID(id, uploadID);
break;
case 'uploadPartComplete':
String id = data['id'];
int index = data['index'];
int partSize = data['partSize'];
String partHash = data['partHash'];
_uploadFileListener?.uploadPartComplete(
id, index, partSize, partHash);
break;
}
}
@ -485,18 +502,22 @@ class IMManager {
Future<UserInfo> getLoginUserInfo() async => userInfo;
///
Future putFile({
required String putID,
Future uploadFile({
required String id,
required String filePath,
required String fileName,
String? contentType,
String? cause,
String? operationID,
}) =>
_channel.invokeMethod(
'putFile',
'uploadFile',
_buildParam({
'putID': putID,
'id': id,
'filePath': filePath,
'name': fileName,
'contentType': contentType,
'cause': cause,
'operationID': Utils.checkOperationID(operationID),
}));
@ -535,8 +556,8 @@ class IMManager {
// 'operationID': Utils.checkOperationID(operationID),
// }));
void setPutFileListener(OnPutFileListener listener) {
_putFileListener = listener;
void setUploadFileListener(OnUploadFileListener listener) {
_uploadFileListener = listener;
}
///

Loading…
Cancel
Save