This commit is contained in:
hrxiang
2022-04-24 12:12:26 +08:00
parent fcc8373560
commit 6edf9b74fa
29 changed files with 545 additions and 27 deletions

View File

@@ -0,0 +1,59 @@
import 'package:flutter/services.dart';
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
class WorkMomentsManager {
MethodChannel _channel;
late OnWorkMomentsListener listener;
WorkMomentsManager(this._channel);
/// Observe work moments changes
Future setWorkMomentsListener(OnWorkMomentsListener listener) {
this.listener = listener;
return _channel.invokeMethod('setWorkMomentsListener', _buildParam({}));
}
/// Get work moments unread count
Future<int> getWorkMomentsUnReadCount({
String? operationID,
}) =>
_channel
.invokeMethod(
'getWorkMomentsUnReadCount',
_buildParam({
'operationID': Utils.checkOperationID(operationID),
}))
.then((value) => Utils.toObj(value, (map) => map['unread_count']));
/// Get work moments notification list
Future<List<WorkMomentsInfo>> getWorkMomentsNotification({
required int offset,
required int count,
String? operationID,
}) =>
_channel
.invokeMethod(
'getWorkMomentsNotification',
_buildParam({
'offset': offset,
'count': count,
'operationID': Utils.checkOperationID(operationID),
}))
.then((value) =>
Utils.toList(value, (map) => WorkMomentsInfo.fromJson(map)));
/// Clear work moments notification
Future clearWorkMomentsNotification({
String? operationID,
}) =>
_channel.invokeMethod(
'clearWorkMomentsNotification',
_buildParam({
'operationID': Utils.checkOperationID(operationID),
}));
static Map _buildParam(Map param) {
param["ManagerName"] = "workMomentsManager";
return param;
}
}