main
hrxiang 4 years ago
parent 0a7613005e
commit 78278ec8fe
  1. 1
      .idea/flutter_openim_sdk.iml
  2. 196
      .idea/libraries/Dart_Packages.xml
  3. 4
      .idea/libraries/Flutter_Plugins.xml
  4. 6
      CHANGELOG.md
  5. 1740
      README.zh-cn.md
  6. 18
      lib/src/manager/im_conversation_manager.dart
  7. 10
      lib/src/manager/im_friendship_manager.dart
  8. 25
      lib/src/manager/im_group_manager.dart
  9. 24
      lib/src/manager/im_message_manager.dart
  10. 6
      test/flutter_openim_sdk_test.dart

@ -20,6 +20,5 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Dart SDK" level="project" />
<orderEntry type="library" name="Flutter Plugins" level="project" />
<orderEntry type="library" name="Dart Packages" level="project" />
</component>
</module>

@ -1,196 +0,0 @@
<component name="libraryTable">
<library name="Dart Packages" type="DartPackagesLibraryType">
<properties>
<option name="packageNameToDirsMap">
<entry key="async">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/async-2.6.1/lib" />
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/async-2.8.1/lib" />
</list>
</value>
</entry>
<entry key="boolean_selector">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/boolean_selector-2.1.0/lib" />
</list>
</value>
</entry>
<entry key="characters">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/characters-1.1.0/lib" />
</list>
</value>
</entry>
<entry key="charcode">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/charcode-1.2.0/lib" />
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/charcode-1.3.1/lib" />
</list>
</value>
</entry>
<entry key="clock">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/clock-1.1.0/lib" />
</list>
</value>
</entry>
<entry key="collection">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/collection-1.15.0/lib" />
</list>
</value>
</entry>
<entry key="cupertino_icons">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/cupertino_icons-1.0.3/lib" />
</list>
</value>
</entry>
<entry key="fake_async">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/fake_async-1.2.0/lib" />
</list>
</value>
</entry>
<entry key="flutter">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/packages/flutter/lib" />
</list>
</value>
</entry>
<entry key="flutter_test">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/packages/flutter_test/lib" />
</list>
</value>
</entry>
<entry key="matcher">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/matcher-0.12.10/lib" />
</list>
</value>
</entry>
<entry key="meta">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/meta-1.3.0/lib" />
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/meta-1.7.0/lib" />
</list>
</value>
</entry>
<entry key="path">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/path-1.8.0/lib" />
</list>
</value>
</entry>
<entry key="sky_engine">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/bin/cache/pkg/sky_engine/lib" />
</list>
</value>
</entry>
<entry key="source_span">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/source_span-1.8.1/lib" />
</list>
</value>
</entry>
<entry key="stack_trace">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/stack_trace-1.10.0/lib" />
</list>
</value>
</entry>
<entry key="stream_channel">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/stream_channel-2.1.0/lib" />
</list>
</value>
</entry>
<entry key="string_scanner">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/string_scanner-1.1.0/lib" />
</list>
</value>
</entry>
<entry key="term_glyph">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/term_glyph-1.2.0/lib" />
</list>
</value>
</entry>
<entry key="test_api">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/test_api-0.3.0/lib" />
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/test_api-0.4.2/lib" />
</list>
</value>
</entry>
<entry key="typed_data">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/typed_data-1.3.0/lib" />
</list>
</value>
</entry>
<entry key="vector_math">
<value>
<list>
<option value="$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/vector_math-2.1.0/lib" />
</list>
</value>
</entry>
</option>
</properties>
<CLASSES>
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/async-2.6.1/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/async-2.8.1/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/boolean_selector-2.1.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/characters-1.1.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/charcode-1.2.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/charcode-1.3.1/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/clock-1.1.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/collection-1.15.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/cupertino_icons-1.0.3/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/fake_async-1.2.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/matcher-0.12.10/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/meta-1.3.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/meta-1.7.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/path-1.8.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/source_span-1.8.1/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/stack_trace-1.10.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/stream_channel-2.1.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/string_scanner-1.1.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/term_glyph-1.2.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/test_api-0.3.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/test_api-0.4.2/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/typed_data-1.3.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/.pub-cache/hosted/pub.flutter-io.cn/vector_math-2.1.0/lib" />
<root url="file://$USER_HOME$/Development/flutter/bin/cache/pkg/sky_engine/lib" />
<root url="file://$USER_HOME$/Development/flutter/packages/flutter/lib" />
<root url="file://$USER_HOME$/Development/flutter/packages/flutter_test/lib" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

@ -1,6 +1,8 @@
<component name="libraryTable">
<library name="Flutter Plugins" type="FlutterPluginsLibraryType">
<CLASSES />
<CLASSES>
<root url="file://$PROJECT_DIR$" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>

@ -1,3 +1,9 @@
## 0.0.1
* TODO: Describe initial release.
### 0.0.2
1,将 markSingleMessageHasRead、markGroupMessageHasRead和getTotalUnreadMsgCount方法从类MessageManager移动到类ConversationManager。
2,修改setFriendInfo方法的参数。
3,修改createGroup和setGroupInfo方法的参数。

File diff suppressed because it is too large Load Diff

@ -96,6 +96,24 @@ class ConversationManager {
}))
.then((value) => _printValue(value));
///
/// @params userID: receiver's userID
Future<dynamic> markSingleMessageHasRead({required String userID}) {
return _channel.invokeMethod(
'markSingleMessageHasRead', _buildParam({'userID': userID}));
}
///
Future<dynamic> markGroupMessageHasRead({required String groupID}) {
return _channel.invokeMethod(
'markGroupMessageHasRead', _buildParam({'groupID': groupID}));
}
///
Future<dynamic> getTotalUnreadMsgCount() {
return _channel.invokeMethod('getTotalUnreadMsgCount', _buildParam({}));
}
static Map _buildParam(Map param) {
param["ManagerName"] = "conversationManager";
return param;

@ -55,8 +55,14 @@ class FriendshipManager {
/// modify friend information, only [comment] can be modified
///
Future<dynamic> setFriendInfo({required UserInfo info}) {
return _channel.invokeMethod('setFriendInfo', _buildParam(info.toJson()));
Future<dynamic> setFriendInfo(
{required String uid, required String comment}) {
return _channel.invokeMethod(
'setFriendInfo',
_buildParam({
'uid': uid,
'comment': comment,
}));
}
/// add to blacklist

@ -130,16 +130,23 @@ class GroupManager {
}
/// create a group
/// @params groupInfo: Group information
/// @params list[List<GroupMemberRole>]: Group members you invited
Future<dynamic> createGroup({
GroupInfo? groupInfo,
String? groupName,
String? notification,
String? introduction,
String? faceUrl,
required List<GroupMemberRole> list,
}) {
return _channel.invokeMethod(
'createGroup',
_buildParam({
'gInfo': groupInfo?.toJson(),
'gInfo': {
"groupName": groupName,
"notification": notification,
"introduction": introduction,
"faceUrl": faceUrl,
},
'memberList': list.map((e) => e.toJson()).toList()
}));
/*.then((value) => _formatJson(value)['groupID'])*/
@ -147,12 +154,20 @@ class GroupManager {
/// Edit group information
Future<dynamic> setGroupInfo({
required GroupInfo groupInfo,
String? groupName,
String? notification,
String? introduction,
String? faceUrl,
}) {
return _channel.invokeMethod(
'setGroupInfo',
_buildParam({
'gInfo': groupInfo.toJson(),
'gInfo': {
"groupName": groupName,
"notification": notification,
"introduction": introduction,
"faceUrl": faceUrl,
},
}));
}

@ -98,14 +98,14 @@ class MessageManager {
/// @params userID: receiver's user ID
/// @params sender: current user ID
Future insertSingleMessageToLocalStorage({
String? userID,
Message? message,
String? receiver,
String? sender,
Message? message,
}) {
return _channel.invokeMethod(
'insertSingleMessageToLocalStorage',
_buildParam({
"userID": userID,
"userID": receiver,
"message": message?.toJson(),
"sender": sender,
}));
@ -120,19 +120,6 @@ class MessageManager {
}));
}
///
/// @params userID: receiver's userID
Future<dynamic> markSingleMessageHasRead({required String userID}) {
return _channel.invokeMethod(
'markSingleMessageHasRead', _buildParam({'userID': userID}));
}
///
Future<dynamic> markGroupMessageHasRead({required String groupID}) {
return _channel.invokeMethod(
'markGroupMessageHasRead', _buildParam({'groupID': groupID}));
}
///
/// @params userID: receiver's user ID
Future markC2CMessageAsRead({
@ -373,11 +360,6 @@ class MessageManager {
.then((value) => _toObj(value));
}
///
Future<dynamic> getTotalUnreadMsgCount() {
return _channel.invokeMethod('getTotalUnreadMsgCount', _buildParam({}));
}
///
void forceSyncMsg() {
_channel.invokeMethod('forceSyncMsg', _buildParam({}));

@ -1,6 +1,7 @@
import 'dart:convert';
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
import 'package:flutter_openim_sdk/src/openim.dart';
void main() {
/* const MethodChannel channel = MethodChannel('flutter_openim_sdk');
@ -41,4 +42,7 @@ void main() {
// print('${now.millisecond}');
// print('${now.microsecondsSinceEpoch}');
// print('${now.millisecondsSinceEpoch}');
}

Loading…
Cancel
Save