Upgrade
This commit is contained in:
		
							parent
							
								
									57340e52a7
								
							
						
					
					
						commit
						71897bcb4e
					
				
							
								
								
									
										10
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@ -1,3 +1,13 @@
 | 
				
			|||||||
 | 
					## 2.0.0+5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.New oa notification </br>
 | 
				
			||||||
 | 
					2.New method deleteConversationMsgFromLocalAndSvr </br>
 | 
				
			||||||
 | 
					2.New method deleteMessageFromLocalAndSvr </br>
 | 
				
			||||||
 | 
					3.New method deleteAllMsgFromLocal </br>
 | 
				
			||||||
 | 
					3.New method deleteAllMsgFromLocalAndSvr </br>
 | 
				
			||||||
 | 
					3.New method markMessageAsReadByConID </br>
 | 
				
			||||||
 | 
					3.New method wakeUp </br>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 2.0.0+4
 | 
					## 2.0.0+4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
1.New dismiss group </br>
 | 
					1.New dismiss group </br>
 | 
				
			||||||
 | 
				
			|||||||
@ -41,5 +41,5 @@ android {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
dependencies {
 | 
					dependencies {
 | 
				
			||||||
    implementation 'io.openim:client-sdk:2.0.22@aar'
 | 
					    implementation 'io.openim:client-sdk:2.0.27@aar'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -127,4 +127,12 @@ public class ConversationManager extends BaseManager {
 | 
				
			|||||||
                value(methodCall, "isPrivate")
 | 
					                value(methodCall, "isPrivate")
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void deleteConversationMsgFromLocalAndSvr(MethodCall methodCall, MethodChannel.Result result) {
 | 
				
			||||||
 | 
					        Open_im_sdk.deleteConversationMsgFromLocalAndSvr(
 | 
				
			||||||
 | 
					                new OnBaseListener(result),
 | 
				
			||||||
 | 
					                value(methodCall, "operationID"),
 | 
				
			||||||
 | 
					                value(methodCall, "conversationID")
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -36,4 +36,12 @@ public class IMManager extends BaseManager {
 | 
				
			|||||||
    public void getLoginStatus(MethodCall methodCall, MethodChannel.Result result) {
 | 
					    public void getLoginStatus(MethodCall methodCall, MethodChannel.Result result) {
 | 
				
			||||||
        CommonUtil.runMainThreadReturn(result, Open_im_sdk.getLoginStatus());
 | 
					        CommonUtil.runMainThreadReturn(result, Open_im_sdk.getLoginStatus());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void wakeUp(MethodCall methodCall, MethodChannel.Result result) {
 | 
				
			||||||
 | 
					        Open_im_sdk.wakeUp(
 | 
				
			||||||
 | 
					                new OnBaseListener(result),
 | 
				
			||||||
 | 
					                value(methodCall, "operationID")
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -331,4 +331,35 @@ public class MessageManager extends BaseManager {
 | 
				
			|||||||
                jsonValue(methodCall, "filter")
 | 
					                jsonValue(methodCall, "filter")
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void deleteMessageFromLocalAndSvr(MethodCall methodCall, MethodChannel.Result result) {
 | 
				
			||||||
 | 
					        Open_im_sdk.deleteMessageFromLocalAndSvr(
 | 
				
			||||||
 | 
					                new OnBaseListener(result),
 | 
				
			||||||
 | 
					                value(methodCall, "operationID"),
 | 
				
			||||||
 | 
					                jsonValue(methodCall)
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void deleteAllMsgFromLocal(MethodCall methodCall, MethodChannel.Result result) {
 | 
				
			||||||
 | 
					        Open_im_sdk.deleteAllMsgFromLocal(
 | 
				
			||||||
 | 
					                new OnBaseListener(result),
 | 
				
			||||||
 | 
					                value(methodCall, "operationID")
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void deleteAllMsgFromLocalAndSvr(MethodCall methodCall, MethodChannel.Result result) {
 | 
				
			||||||
 | 
					        Open_im_sdk.deleteAllMsgFromLocalAndSvr(
 | 
				
			||||||
 | 
					                new OnBaseListener(result),
 | 
				
			||||||
 | 
					                value(methodCall, "operationID")
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void markMessageAsReadByConID(MethodCall methodCall, MethodChannel.Result result) {
 | 
				
			||||||
 | 
					        Open_im_sdk.markMessageAsReadByConID(
 | 
				
			||||||
 | 
					                new OnBaseListener(result),
 | 
				
			||||||
 | 
					                value(methodCall, "operationID"),
 | 
				
			||||||
 | 
					                value(methodCall, "conversationID"),
 | 
				
			||||||
 | 
					                jsonValue(methodCall, "messageIDList")
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -302,6 +302,7 @@
 | 
				
			|||||||
			isa = XCBuildConfiguration;
 | 
								isa = XCBuildConfiguration;
 | 
				
			||||||
			buildSettings = {
 | 
								buildSettings = {
 | 
				
			||||||
				ALWAYS_SEARCH_USER_PATHS = NO;
 | 
									ALWAYS_SEARCH_USER_PATHS = NO;
 | 
				
			||||||
 | 
									ARCHS = arm64;
 | 
				
			||||||
				CLANG_ANALYZER_NONNULL = YES;
 | 
									CLANG_ANALYZER_NONNULL = YES;
 | 
				
			||||||
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 | 
									CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 | 
				
			||||||
				CLANG_CXX_LIBRARY = "libc++";
 | 
									CLANG_CXX_LIBRARY = "libc++";
 | 
				
			||||||
@ -352,7 +353,7 @@
 | 
				
			|||||||
			isa = XCBuildConfiguration;
 | 
								isa = XCBuildConfiguration;
 | 
				
			||||||
			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
 | 
								baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
 | 
				
			||||||
			buildSettings = {
 | 
								buildSettings = {
 | 
				
			||||||
				ARCHS = "$(ARCHS_STANDARD)";
 | 
									ARCHS = arm64;
 | 
				
			||||||
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 | 
									ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 | 
				
			||||||
				CLANG_ENABLE_MODULES = YES;
 | 
									CLANG_ENABLE_MODULES = YES;
 | 
				
			||||||
				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
 | 
									CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
 | 
				
			||||||
@ -375,6 +376,7 @@
 | 
				
			|||||||
			isa = XCBuildConfiguration;
 | 
								isa = XCBuildConfiguration;
 | 
				
			||||||
			buildSettings = {
 | 
								buildSettings = {
 | 
				
			||||||
				ALWAYS_SEARCH_USER_PATHS = NO;
 | 
									ALWAYS_SEARCH_USER_PATHS = NO;
 | 
				
			||||||
 | 
									ARCHS = arm64;
 | 
				
			||||||
				CLANG_ANALYZER_NONNULL = YES;
 | 
									CLANG_ANALYZER_NONNULL = YES;
 | 
				
			||||||
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 | 
									CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 | 
				
			||||||
				CLANG_CXX_LIBRARY = "libc++";
 | 
									CLANG_CXX_LIBRARY = "libc++";
 | 
				
			||||||
@ -430,6 +432,7 @@
 | 
				
			|||||||
			isa = XCBuildConfiguration;
 | 
								isa = XCBuildConfiguration;
 | 
				
			||||||
			buildSettings = {
 | 
								buildSettings = {
 | 
				
			||||||
				ALWAYS_SEARCH_USER_PATHS = NO;
 | 
									ALWAYS_SEARCH_USER_PATHS = NO;
 | 
				
			||||||
 | 
									ARCHS = arm64;
 | 
				
			||||||
				CLANG_ANALYZER_NONNULL = YES;
 | 
									CLANG_ANALYZER_NONNULL = YES;
 | 
				
			||||||
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 | 
									CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 | 
				
			||||||
				CLANG_CXX_LIBRARY = "libc++";
 | 
									CLANG_CXX_LIBRARY = "libc++";
 | 
				
			||||||
@ -482,7 +485,7 @@
 | 
				
			|||||||
			isa = XCBuildConfiguration;
 | 
								isa = XCBuildConfiguration;
 | 
				
			||||||
			baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
 | 
								baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
 | 
				
			||||||
			buildSettings = {
 | 
								buildSettings = {
 | 
				
			||||||
				ARCHS = "$(ARCHS_STANDARD)";
 | 
									ARCHS = arm64;
 | 
				
			||||||
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 | 
									ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 | 
				
			||||||
				CLANG_ENABLE_MODULES = YES;
 | 
									CLANG_ENABLE_MODULES = YES;
 | 
				
			||||||
				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
 | 
									CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
 | 
				
			||||||
@ -506,7 +509,7 @@
 | 
				
			|||||||
			isa = XCBuildConfiguration;
 | 
								isa = XCBuildConfiguration;
 | 
				
			||||||
			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
 | 
								baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
 | 
				
			||||||
			buildSettings = {
 | 
								buildSettings = {
 | 
				
			||||||
				ARCHS = "$(ARCHS_STANDARD)";
 | 
									ARCHS = arm64;
 | 
				
			||||||
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 | 
									ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 | 
				
			||||||
				CLANG_ENABLE_MODULES = YES;
 | 
									CLANG_ENABLE_MODULES = YES;
 | 
				
			||||||
				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
 | 
									CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
 | 
				
			||||||
 | 
				
			|||||||
@ -20,6 +20,7 @@ public class ConversationManager: BaseServiceManager {
 | 
				
			|||||||
        self["setConversationRecvMessageOpt"] = setConversationRecvMessageOpt
 | 
					        self["setConversationRecvMessageOpt"] = setConversationRecvMessageOpt
 | 
				
			||||||
        self["getConversationRecvMessageOpt"] = getConversationRecvMessageOpt
 | 
					        self["getConversationRecvMessageOpt"] = getConversationRecvMessageOpt
 | 
				
			||||||
        self["setOneConversationPrivateChat"] = setOneConversationPrivateChat
 | 
					        self["setOneConversationPrivateChat"] = setOneConversationPrivateChat
 | 
				
			||||||
 | 
					        self["deleteConversationMsgFromLocalAndSvr"] = deleteConversationMsgFromLocalAndSvr
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    func setConversationListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
 | 
					    func setConversationListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
 | 
				
			||||||
@ -83,6 +84,10 @@ public class ConversationManager: BaseServiceManager {
 | 
				
			|||||||
    func setOneConversationPrivateChat(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
 | 
					    func setOneConversationPrivateChat(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
 | 
				
			||||||
        Open_im_sdkSetOneConversationPrivateChat(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"],methodCall[bool: "isPrivate"])
 | 
					        Open_im_sdkSetOneConversationPrivateChat(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"],methodCall[bool: "isPrivate"])
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    func deleteConversationMsgFromLocalAndSvr(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
 | 
				
			||||||
 | 
					        Open_im_sdkDeleteConversationMsgFromLocalAndSvr(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"])
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -9,12 +9,7 @@ public class IMMananger: BaseServiceManager {
 | 
				
			|||||||
        self["login"] = login
 | 
					        self["login"] = login
 | 
				
			||||||
        self["logout"] = logout
 | 
					        self["logout"] = logout
 | 
				
			||||||
        self["getLoginStatus"] = getLoginStatus
 | 
					        self["getLoginStatus"] = getLoginStatus
 | 
				
			||||||
//        self["getLoginUid"] = getLoginUid
 | 
					        self["wakeUp"] = wakeUp
 | 
				
			||||||
        // self["getUsersInfo"] = getUsersInfo
 | 
					 | 
				
			||||||
        // self["setSelfInfo"] = setSelfInfo
 | 
					 | 
				
			||||||
        // self["forceSyncLoginUerInfo"] = forceSyncLoginUerInfo
 | 
					 | 
				
			||||||
//        self["forceReConn"] = forceReConn
 | 
					 | 
				
			||||||
        // self["setSdkLog"] = setSdkLog
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    func initSDK(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
 | 
					    func initSDK(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
 | 
				
			||||||
@ -34,30 +29,10 @@ public class IMMananger: BaseServiceManager {
 | 
				
			|||||||
        callBack(result, Open_im_sdkGetLoginStatus())
 | 
					        callBack(result, Open_im_sdkGetLoginStatus())
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
//     func getLoginUid(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
 | 
					    func wakeUp(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
 | 
				
			||||||
//         callBack(result, Open_im_sdkGetLoginUser())
 | 
					        Open_im_sdkWakeUp(BaseCallback(result: result), methodCall[string: "operationID"])
 | 
				
			||||||
//     }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    // func getUsersInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
 | 
					 | 
				
			||||||
    //     Open_im_sdkGetUsersInfo(methodCall[jsonString: "uidList"], BaseCallback(result: result))
 | 
					 | 
				
			||||||
    // }
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    // func setSelfInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
 | 
					 | 
				
			||||||
    //     Open_im_sdkSetSelfInfo(methodCall.toJsonString(), BaseCallback(result: result))
 | 
					 | 
				
			||||||
    // }
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    // func forceSyncLoginUerInfo(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
 | 
					 | 
				
			||||||
    //     Open_im_sdkForceSyncLoginUerInfo()
 | 
					 | 
				
			||||||
    //     callBack(result)
 | 
					 | 
				
			||||||
    // }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // func setSdkLog(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
 | 
					 | 
				
			||||||
    //      Open_im_sdkSetSdkLog(methodCall[int32: "sdkLog"])
 | 
					 | 
				
			||||||
    // }
 | 
					 | 
				
			||||||
//     func forceReConn(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
 | 
					 | 
				
			||||||
//         Open_im_sdkForceReConn()
 | 
					 | 
				
			||||||
//         callBack(result)
 | 
					 | 
				
			||||||
//     }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class ConnListener: NSObject, Open_im_sdk_callbackOnConnListenerProtocol {
 | 
					public class ConnListener: NSObject, Open_im_sdk_callbackOnConnListenerProtocol {
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,6 @@ public class MessageManager: BaseServiceManager {
 | 
				
			|||||||
        self["getHistoryMessageList"] = getHistoryMessageList
 | 
					        self["getHistoryMessageList"] = getHistoryMessageList
 | 
				
			||||||
        self["revokeMessage"] = revokeMessage
 | 
					        self["revokeMessage"] = revokeMessage
 | 
				
			||||||
        self["deleteMessageFromLocalStorage"] = deleteMessageFromLocalStorage
 | 
					        self["deleteMessageFromLocalStorage"] = deleteMessageFromLocalStorage
 | 
				
			||||||
        self["deleteMessages"] = deleteMessages
 | 
					 | 
				
			||||||
        self["insertSingleMessageToLocalStorage"] = insertSingleMessageToLocalStorage
 | 
					        self["insertSingleMessageToLocalStorage"] = insertSingleMessageToLocalStorage
 | 
				
			||||||
        self["insertGroupMessageToLocalStorage"] = insertGroupMessageToLocalStorage
 | 
					        self["insertGroupMessageToLocalStorage"] = insertGroupMessageToLocalStorage
 | 
				
			||||||
        self["markC2CMessageAsRead"] = markC2CMessageAsRead
 | 
					        self["markC2CMessageAsRead"] = markC2CMessageAsRead
 | 
				
			||||||
@ -38,6 +37,10 @@ public class MessageManager: BaseServiceManager {
 | 
				
			|||||||
        self["clearC2CHistoryMessage"] = clearC2CHistoryMessage
 | 
					        self["clearC2CHistoryMessage"] = clearC2CHistoryMessage
 | 
				
			||||||
        self["clearGroupHistoryMessage"] = clearGroupHistoryMessage
 | 
					        self["clearGroupHistoryMessage"] = clearGroupHistoryMessage
 | 
				
			||||||
        self["searchLocalMessages"] = searchLocalMessages
 | 
					        self["searchLocalMessages"] = searchLocalMessages
 | 
				
			||||||
 | 
					        self["deleteMessageFromLocalAndSvr"] = deleteMessageFromLocalAndSvr
 | 
				
			||||||
 | 
					        self["deleteAllMsgFromLocal"] = deleteAllMsgFromLocal
 | 
				
			||||||
 | 
					        self["deleteAllMsgFromLocalAndSvr"] = deleteAllMsgFromLocalAndSvr
 | 
				
			||||||
 | 
					        self["markMessageAsReadByConID"] = markMessageAsReadByConID
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    func setAdvancedMsgListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
 | 
					    func setAdvancedMsgListener(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
 | 
				
			||||||
@ -65,9 +68,6 @@ public class MessageManager: BaseServiceManager {
 | 
				
			|||||||
        Open_im_sdkDeleteMessageFromLocalStorage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString())
 | 
					        Open_im_sdkDeleteMessageFromLocalStorage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString())
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    // deprecated
 | 
					 | 
				
			||||||
    func deleteMessages(methodCall: FlutterMethodCall, result: FlutterResult){
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    func insertSingleMessageToLocalStorage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
 | 
					    func insertSingleMessageToLocalStorage(methodCall: FlutterMethodCall, result: @escaping FlutterResult){
 | 
				
			||||||
        Open_im_sdkInsertSingleMessageToLocalStorage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "message"],
 | 
					        Open_im_sdkInsertSingleMessageToLocalStorage(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "message"],
 | 
				
			||||||
@ -182,6 +182,22 @@ public class MessageManager: BaseServiceManager {
 | 
				
			|||||||
        Open_im_sdkSearchLocalMessages(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "filter"])
 | 
					        Open_im_sdkSearchLocalMessages(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[jsonString: "filter"])
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    func deleteMessageFromLocalAndSvr(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
 | 
				
			||||||
 | 
					        Open_im_sdkDeleteMessageFromLocalAndSvr(BaseCallback(result: result), methodCall[string: "operationID"], methodCall.toJsonString())
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    func deleteAllMsgFromLocal(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
 | 
				
			||||||
 | 
					        Open_im_sdkDeleteAllMsgFromLocal(BaseCallback(result: result), methodCall[string: "operationID"])
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    func deleteAllMsgFromLocalAndSvr(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
 | 
				
			||||||
 | 
					        Open_im_sdkDeleteAllMsgFromLocalAndSvr(BaseCallback(result: result), methodCall[string: "operationID"])
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    func markMessageAsReadByConID(methodCall: FlutterMethodCall, result: @escaping FlutterResult) {
 | 
				
			||||||
 | 
					        Open_im_sdkMarkMessageAsReadByConID(BaseCallback(result: result), methodCall[string: "operationID"], methodCall[string: "conversationID"], methodCall[jsonString: "messageIDList"])
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    public class SendMsgProgressListener: NSObject, Open_im_sdk_callbackSendMsgCallBackProtocol {
 | 
					    public class SendMsgProgressListener: NSObject, Open_im_sdk_callbackSendMsgCallBackProtocol {
 | 
				
			||||||
        private let channel: FlutterMethodChannel
 | 
					        private let channel: FlutterMethodChannel
 | 
				
			||||||
        private let result: FlutterResult
 | 
					        private let result: FlutterResult
 | 
				
			||||||
 | 
				
			|||||||
@ -86,6 +86,10 @@ FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkCreateVideoMessageByURL(NSString
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkCreateVideoMessageFromFullPath(NSString* _Nullable operationID, NSString* _Nullable videoFullPath, NSString* _Nullable videoType, int64_t duration, NSString* _Nullable snapshotFullPath);
 | 
					FOUNDATION_EXPORT NSString* _Nonnull Open_im_sdkCreateVideoMessageFromFullPath(NSString* _Nullable operationID, NSString* _Nullable videoFullPath, NSString* _Nullable videoType, int64_t duration, NSString* _Nullable snapshotFullPath);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FOUNDATION_EXPORT void Open_im_sdkDeleteAllMsgFromLocal(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FOUNDATION_EXPORT void Open_im_sdkDeleteAllMsgFromLocalAndSvr(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FOUNDATION_EXPORT void Open_im_sdkDeleteConversation(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID);
 | 
					FOUNDATION_EXPORT void Open_im_sdkDeleteConversation(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FOUNDATION_EXPORT void Open_im_sdkDeleteConversationMsgFromLocalAndSvr(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID);
 | 
					FOUNDATION_EXPORT void Open_im_sdkDeleteConversationMsgFromLocalAndSvr(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID);
 | 
				
			||||||
@ -178,6 +182,8 @@ FOUNDATION_EXPORT void Open_im_sdkMarkGroupMessageAsRead(id<Open_im_sdk_callback
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
FOUNDATION_EXPORT void Open_im_sdkMarkGroupMessageHasRead(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable groupID);
 | 
					FOUNDATION_EXPORT void Open_im_sdkMarkGroupMessageHasRead(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable groupID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FOUNDATION_EXPORT void Open_im_sdkMarkMessageAsReadByConID(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, NSString* _Nullable msgIDList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FOUNDATION_EXPORT void Open_im_sdkPinConversation(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, BOOL isPinned);
 | 
					FOUNDATION_EXPORT void Open_im_sdkPinConversation(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, BOOL isPinned);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FOUNDATION_EXPORT void Open_im_sdkQuitGroup(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable groupID);
 | 
					FOUNDATION_EXPORT void Open_im_sdkQuitGroup(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable groupID);
 | 
				
			||||||
@ -217,6 +223,8 @@ FOUNDATION_EXPORT void Open_im_sdkSetGroupInfo(id<Open_im_sdk_callbackBase> _Nul
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
FOUNDATION_EXPORT void Open_im_sdkSetGroupListener(id<Open_im_sdk_callbackOnGroupListener> _Nullable callback);
 | 
					FOUNDATION_EXPORT void Open_im_sdkSetGroupListener(id<Open_im_sdk_callbackOnGroupListener> _Nullable callback);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FOUNDATION_EXPORT void Open_im_sdkSetHeartbeatInterval(long heartbeatInterval);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FOUNDATION_EXPORT void Open_im_sdkSetOneConversationPrivateChat(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, BOOL isPrivate);
 | 
					FOUNDATION_EXPORT void Open_im_sdkSetOneConversationPrivateChat(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, BOOL isPrivate);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FOUNDATION_EXPORT void Open_im_sdkSetOneConversationRecvMessageOpt(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, long opt);
 | 
					FOUNDATION_EXPORT void Open_im_sdkSetOneConversationRecvMessageOpt(id<Open_im_sdk_callbackBase> _Nullable callback, NSString* _Nullable operationID, NSString* _Nullable conversationID, long opt);
 | 
				
			||||||
 | 
				
			|||||||
										
											Binary file not shown.
										
									
								
							@ -25,6 +25,7 @@ export 'src/manager/im_user_manager.dart';
 | 
				
			|||||||
export 'src/models/conversation_info.dart';
 | 
					export 'src/models/conversation_info.dart';
 | 
				
			||||||
export 'src/models/group_info.dart';
 | 
					export 'src/models/group_info.dart';
 | 
				
			||||||
export 'src/models/message.dart';
 | 
					export 'src/models/message.dart';
 | 
				
			||||||
 | 
					export 'src/models/notification_info.dart';
 | 
				
			||||||
export 'src/models/search_info.dart';
 | 
					export 'src/models/search_info.dart';
 | 
				
			||||||
export 'src/models/signaling_info.dart';
 | 
					export 'src/models/signaling_info.dart';
 | 
				
			||||||
export 'src/models/user_info.dart';
 | 
					export 'src/models/user_info.dart';
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,5 @@
 | 
				
			|||||||
class ConversationType {
 | 
					class ConversationType {
 | 
				
			||||||
  static const single = 1;
 | 
					  static const single = 1;
 | 
				
			||||||
  static const group = 2;
 | 
					  static const group = 2;
 | 
				
			||||||
 | 
					  static const notification = 4;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -36,6 +36,8 @@ class MessageType {
 | 
				
			|||||||
  static const userInfoUpdatedNotification = 1303;
 | 
					  static const userInfoUpdatedNotification = 1303;
 | 
				
			||||||
  static const userNotificationEnd = 1399;
 | 
					  static const userNotificationEnd = 1399;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  static const oaNotification = 1400;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static const groupNotificationBegin = 1500;
 | 
					  static const groupNotificationBegin = 1500;
 | 
				
			||||||
  static const groupCreatedNotification = 1501;
 | 
					  static const groupCreatedNotification = 1501;
 | 
				
			||||||
  static const groupInfoSetNotification = 1502;
 | 
					  static const groupInfoSetNotification = 1502;
 | 
				
			||||||
 | 
				
			|||||||
@ -219,6 +219,19 @@ class ConversationManager {
 | 
				
			|||||||
            "operationID": Utils.checkOperationID(operationID),
 | 
					            "operationID": Utils.checkOperationID(operationID),
 | 
				
			||||||
          }));
 | 
					          }));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Delete conversation from local and service
 | 
				
			||||||
 | 
					  /// 删除会话
 | 
				
			||||||
 | 
					  Future<dynamic> deleteConversationMsgFromLocalAndSvr({
 | 
				
			||||||
 | 
					    required String conversationID,
 | 
				
			||||||
 | 
					    String? operationID,
 | 
				
			||||||
 | 
					  }) =>
 | 
				
			||||||
 | 
					      _channel.invokeMethod(
 | 
				
			||||||
 | 
					          'deleteConversationMsgFromLocalAndSvr',
 | 
				
			||||||
 | 
					          _buildParam({
 | 
				
			||||||
 | 
					            "conversationID": conversationID,
 | 
				
			||||||
 | 
					            "operationID": Utils.checkOperationID(operationID),
 | 
				
			||||||
 | 
					          }));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Custom sort for conversation list
 | 
					  /// Custom sort for conversation list
 | 
				
			||||||
  /// 会话列表自定义排序规则。
 | 
					  /// 会话列表自定义排序规则。
 | 
				
			||||||
  List<ConversationInfo> simpleSort(List<ConversationInfo> list) => list
 | 
					  List<ConversationInfo> simpleSort(List<ConversationInfo> list) => list
 | 
				
			||||||
 | 
				
			|||||||
@ -355,6 +355,13 @@ class IMManager {
 | 
				
			|||||||
  /// 获取当前登录用户信息
 | 
					  /// 获取当前登录用户信息
 | 
				
			||||||
  Future<UserInfo> getLoginUserInfo() async => uInfo;
 | 
					  Future<UserInfo> getLoginUserInfo() async => uInfo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// wakeup
 | 
				
			||||||
 | 
					  Future wakeUp({String? operationID}) => _channel.invokeMethod(
 | 
				
			||||||
 | 
					      'wakeUp',
 | 
				
			||||||
 | 
					      _buildParam({
 | 
				
			||||||
 | 
					        'operationID': Utils.checkOperationID(operationID),
 | 
				
			||||||
 | 
					      }));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static Map _buildParam(Map param) {
 | 
					  static Map _buildParam(Map param) {
 | 
				
			||||||
    param["ManagerName"] = "imManager";
 | 
					    param["ManagerName"] = "imManager";
 | 
				
			||||||
    return param;
 | 
					    return param;
 | 
				
			||||||
 | 
				
			|||||||
@ -56,10 +56,12 @@ class MessageManager {
 | 
				
			|||||||
  /// Find all history message
 | 
					  /// Find all history message
 | 
				
			||||||
  /// 获取聊天记录
 | 
					  /// 获取聊天记录
 | 
				
			||||||
  /// [userID]接收消息的用户id
 | 
					  /// [userID]接收消息的用户id
 | 
				
			||||||
 | 
					  /// [conversationID] 会话id,查询通知是可用
 | 
				
			||||||
  /// [groupID]接收消息的组id
 | 
					  /// [groupID]接收消息的组id
 | 
				
			||||||
  Future<List<Message>> getHistoryMessageList({
 | 
					  Future<List<Message>> getHistoryMessageList({
 | 
				
			||||||
    String? userID,
 | 
					    String? userID,
 | 
				
			||||||
    String? groupID,
 | 
					    String? groupID,
 | 
				
			||||||
 | 
					    String? conversationID,
 | 
				
			||||||
    Message? startMsg,
 | 
					    Message? startMsg,
 | 
				
			||||||
    int? count,
 | 
					    int? count,
 | 
				
			||||||
    String? operationID,
 | 
					    String? operationID,
 | 
				
			||||||
@ -70,6 +72,7 @@ class MessageManager {
 | 
				
			|||||||
              _buildParam({
 | 
					              _buildParam({
 | 
				
			||||||
                'userID': userID ?? '',
 | 
					                'userID': userID ?? '',
 | 
				
			||||||
                'groupID': groupID ?? '',
 | 
					                'groupID': groupID ?? '',
 | 
				
			||||||
 | 
					                'conversationID': conversationID ?? '',
 | 
				
			||||||
                'startClientMsgID': startMsg?.clientMsgID ?? '',
 | 
					                'startClientMsgID': startMsg?.clientMsgID ?? '',
 | 
				
			||||||
                'count': count ?? 10,
 | 
					                'count': count ?? 10,
 | 
				
			||||||
                'operationID': Utils.checkOperationID(operationID),
 | 
					                'operationID': Utils.checkOperationID(operationID),
 | 
				
			||||||
@ -566,6 +569,56 @@ class MessageManager {
 | 
				
			|||||||
          .then((value) =>
 | 
					          .then((value) =>
 | 
				
			||||||
              Utils.toObj(value, (map) => SearchResult.fromJson(map)));
 | 
					              Utils.toObj(value, (map) => SearchResult.fromJson(map)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Delete message from local and service
 | 
				
			||||||
 | 
					  /// 删除消息
 | 
				
			||||||
 | 
					  Future<dynamic> deleteMessageFromLocalAndSvr({
 | 
				
			||||||
 | 
					    required Message message,
 | 
				
			||||||
 | 
					    String? operationID,
 | 
				
			||||||
 | 
					  }) =>
 | 
				
			||||||
 | 
					      _channel.invokeMethod(
 | 
				
			||||||
 | 
					          'deleteMessageFromLocalAndSvr',
 | 
				
			||||||
 | 
					          _buildParam(message.toJson()
 | 
				
			||||||
 | 
					            ..addAll({
 | 
				
			||||||
 | 
					              "operationID": Utils.checkOperationID(operationID),
 | 
				
			||||||
 | 
					            })));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Delete all message from local
 | 
				
			||||||
 | 
					  /// 删除所有消息
 | 
				
			||||||
 | 
					  Future<dynamic> deleteAllMsgFromLocal({
 | 
				
			||||||
 | 
					    String? operationID,
 | 
				
			||||||
 | 
					  }) =>
 | 
				
			||||||
 | 
					      _channel.invokeMethod(
 | 
				
			||||||
 | 
					          'deleteAllMsgFromLocal',
 | 
				
			||||||
 | 
					          _buildParam({
 | 
				
			||||||
 | 
					            "operationID": Utils.checkOperationID(operationID),
 | 
				
			||||||
 | 
					          }));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Delete all message from service
 | 
				
			||||||
 | 
					  /// 删除所有消息
 | 
				
			||||||
 | 
					  Future<dynamic> deleteAllMsgFromLocalAndSvr({
 | 
				
			||||||
 | 
					    String? operationID,
 | 
				
			||||||
 | 
					  }) =>
 | 
				
			||||||
 | 
					      _channel.invokeMethod(
 | 
				
			||||||
 | 
					          'deleteAllMsgFromLocalAndSvr',
 | 
				
			||||||
 | 
					          _buildParam({
 | 
				
			||||||
 | 
					            "operationID": Utils.checkOperationID(operationID),
 | 
				
			||||||
 | 
					          }));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Mark conversation message as read
 | 
				
			||||||
 | 
					  /// 标记消息已读
 | 
				
			||||||
 | 
					  Future markMessageAsReadByConID({
 | 
				
			||||||
 | 
					    required String conversationID,
 | 
				
			||||||
 | 
					    required List<String> messageIDList,
 | 
				
			||||||
 | 
					    String? operationID,
 | 
				
			||||||
 | 
					  }) =>
 | 
				
			||||||
 | 
					      _channel.invokeMethod(
 | 
				
			||||||
 | 
					          'markMessageAsReadByConID',
 | 
				
			||||||
 | 
					          _buildParam({
 | 
				
			||||||
 | 
					            "messageIDList": messageIDList,
 | 
				
			||||||
 | 
					            "conversationID": conversationID,
 | 
				
			||||||
 | 
					            "operationID": Utils.checkOperationID(operationID),
 | 
				
			||||||
 | 
					          }));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  static Map _buildParam(Map param) {
 | 
					  static Map _buildParam(Map param) {
 | 
				
			||||||
    param["ManagerName"] = "messageManager";
 | 
					    param["ManagerName"] = "messageManager";
 | 
				
			||||||
    return param;
 | 
					    return param;
 | 
				
			||||||
 | 
				
			|||||||
@ -19,6 +19,7 @@ class Message {
 | 
				
			|||||||
  String? content;
 | 
					  String? content;
 | 
				
			||||||
  int? seq;
 | 
					  int? seq;
 | 
				
			||||||
  bool? isRead;
 | 
					  bool? isRead;
 | 
				
			||||||
 | 
					  int? hasReadTime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// [MessageStatus]
 | 
					  /// [MessageStatus]
 | 
				
			||||||
  int? status;
 | 
					  int? status;
 | 
				
			||||||
@ -56,6 +57,7 @@ class Message {
 | 
				
			|||||||
    this.content,
 | 
					    this.content,
 | 
				
			||||||
    this.seq,
 | 
					    this.seq,
 | 
				
			||||||
    this.isRead,
 | 
					    this.isRead,
 | 
				
			||||||
 | 
					    this.hasReadTime,
 | 
				
			||||||
    this.status,
 | 
					    this.status,
 | 
				
			||||||
    this.offlinePush,
 | 
					    this.offlinePush,
 | 
				
			||||||
    this.attachedInfo,
 | 
					    this.attachedInfo,
 | 
				
			||||||
@ -132,6 +134,7 @@ class Message {
 | 
				
			|||||||
    attachedInfoElem = json['attachedInfoElem'] != null
 | 
					    attachedInfoElem = json['attachedInfoElem'] != null
 | 
				
			||||||
        ? AttachedInfoElem.fromJson(json['attachedInfoElem'])
 | 
					        ? AttachedInfoElem.fromJson(json['attachedInfoElem'])
 | 
				
			||||||
        : null;
 | 
					        : null;
 | 
				
			||||||
 | 
					    hasReadTime = json['hasReadTime'] ?? attachedInfoElem?.hasReadTime;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Map<String, dynamic> toJson() {
 | 
					  Map<String, dynamic> toJson() {
 | 
				
			||||||
@ -151,6 +154,7 @@ class Message {
 | 
				
			|||||||
    data['content'] = this.content;
 | 
					    data['content'] = this.content;
 | 
				
			||||||
    data['seq'] = this.seq;
 | 
					    data['seq'] = this.seq;
 | 
				
			||||||
    data['isRead'] = this.isRead;
 | 
					    data['isRead'] = this.isRead;
 | 
				
			||||||
 | 
					    data['hasReadTime'] = this.hasReadTime;
 | 
				
			||||||
    data['status'] = this.status;
 | 
					    data['status'] = this.status;
 | 
				
			||||||
    data['offlinePush'] = this.offlinePush?.toJson();
 | 
					    data['offlinePush'] = this.offlinePush?.toJson();
 | 
				
			||||||
    data['attachedInfo'] = this.attachedInfo;
 | 
					    data['attachedInfo'] = this.attachedInfo;
 | 
				
			||||||
@ -198,6 +202,7 @@ class Message {
 | 
				
			|||||||
    content = message.content;
 | 
					    content = message.content;
 | 
				
			||||||
    seq = message.seq;
 | 
					    seq = message.seq;
 | 
				
			||||||
    isRead = message.isRead;
 | 
					    isRead = message.isRead;
 | 
				
			||||||
 | 
					    hasReadTime = message.hasReadTime;
 | 
				
			||||||
    status = message.status;
 | 
					    status = message.status;
 | 
				
			||||||
    offlinePush = message.offlinePush;
 | 
					    offlinePush = message.offlinePush;
 | 
				
			||||||
    attachedInfo = message.attachedInfo;
 | 
					    attachedInfo = message.attachedInfo;
 | 
				
			||||||
@ -581,21 +586,30 @@ class FaceElem {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
class AttachedInfoElem {
 | 
					class AttachedInfoElem {
 | 
				
			||||||
  GroupHasReadInfo? groupHasReadInfo;
 | 
					  GroupHasReadInfo? groupHasReadInfo;
 | 
				
			||||||
  bool? isPrivateChat;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  AttachedInfoElem({this.groupHasReadInfo, this.isPrivateChat});
 | 
					  /// 单聊有效
 | 
				
			||||||
 | 
					  bool? isPrivateChat;
 | 
				
			||||||
 | 
					  int? hasReadTime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  AttachedInfoElem({
 | 
				
			||||||
 | 
					    this.groupHasReadInfo,
 | 
				
			||||||
 | 
					    this.isPrivateChat,
 | 
				
			||||||
 | 
					    this.hasReadTime,
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  AttachedInfoElem.fromJson(Map<String, dynamic> json) {
 | 
					  AttachedInfoElem.fromJson(Map<String, dynamic> json) {
 | 
				
			||||||
    groupHasReadInfo = json['groupHasReadInfo'] == null
 | 
					    groupHasReadInfo = json['groupHasReadInfo'] == null
 | 
				
			||||||
        ? null
 | 
					        ? null
 | 
				
			||||||
        : GroupHasReadInfo.fromJson(json['groupHasReadInfo']);
 | 
					        : GroupHasReadInfo.fromJson(json['groupHasReadInfo']);
 | 
				
			||||||
    isPrivateChat = json['isPrivateChat'];
 | 
					    isPrivateChat = json['isPrivateChat'];
 | 
				
			||||||
 | 
					    hasReadTime = json['hasReadTime'];
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Map<String, dynamic> toJson() {
 | 
					  Map<String, dynamic> toJson() {
 | 
				
			||||||
    final data = Map<String, dynamic>();
 | 
					    final data = Map<String, dynamic>();
 | 
				
			||||||
    data['groupHasReadInfo'] = this.groupHasReadInfo?.toJson();
 | 
					    data['groupHasReadInfo'] = this.groupHasReadInfo?.toJson();
 | 
				
			||||||
    data['isPrivateChat'] = this.isPrivateChat;
 | 
					    data['isPrivateChat'] = this.isPrivateChat;
 | 
				
			||||||
 | 
					    data['hasReadTime'] = this.hasReadTime;
 | 
				
			||||||
    return data;
 | 
					    return data;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										81
									
								
								lib/src/models/notification_info.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								lib/src/models/notification_info.dart
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,81 @@
 | 
				
			|||||||
 | 
					import '../../flutter_openim_sdk.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// OA notification
 | 
				
			||||||
 | 
					class OANotification {
 | 
				
			||||||
 | 
					  String? notificationName;
 | 
				
			||||||
 | 
					  String? notificationFaceURL;
 | 
				
			||||||
 | 
					  int? notificationType;
 | 
				
			||||||
 | 
					  String? text;
 | 
				
			||||||
 | 
					  String? externalUrl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Notification Mix Type
 | 
				
			||||||
 | 
					  /// 0: Plain text notification
 | 
				
			||||||
 | 
					  /// 1: Text+picture notification
 | 
				
			||||||
 | 
					  /// 2: Text+video notification
 | 
				
			||||||
 | 
					  /// 3: Text+file notification
 | 
				
			||||||
 | 
					  /// 0:纯文字通知 1:文字+图片通知 2:文字+视频通知 3:文字+文件通知
 | 
				
			||||||
 | 
					  int? mixType;
 | 
				
			||||||
 | 
					  PictureElem? pictureElem;
 | 
				
			||||||
 | 
					  SoundElem? soundElem;
 | 
				
			||||||
 | 
					  VideoElem? videoElem;
 | 
				
			||||||
 | 
					  FileElem? fileElem;
 | 
				
			||||||
 | 
					  String? ex;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  OANotification(
 | 
				
			||||||
 | 
					      {this.notificationName,
 | 
				
			||||||
 | 
					      this.notificationFaceURL,
 | 
				
			||||||
 | 
					      this.notificationType,
 | 
				
			||||||
 | 
					      this.text,
 | 
				
			||||||
 | 
					      this.externalUrl,
 | 
				
			||||||
 | 
					      this.mixType,
 | 
				
			||||||
 | 
					      this.pictureElem,
 | 
				
			||||||
 | 
					      this.soundElem,
 | 
				
			||||||
 | 
					      this.videoElem,
 | 
				
			||||||
 | 
					      this.fileElem,
 | 
				
			||||||
 | 
					      this.ex});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  OANotification.fromJson(Map<String, dynamic> json) {
 | 
				
			||||||
 | 
					    notificationName = json['notificationName'];
 | 
				
			||||||
 | 
					    notificationFaceURL = json['notificationFaceURL'];
 | 
				
			||||||
 | 
					    notificationType = json['notificationType'];
 | 
				
			||||||
 | 
					    text = json['text'];
 | 
				
			||||||
 | 
					    externalUrl = json['externalUrl'];
 | 
				
			||||||
 | 
					    mixType = json['mixType'];
 | 
				
			||||||
 | 
					    pictureElem = json['pictureElem'] != null
 | 
				
			||||||
 | 
					        ? PictureElem.fromJson(json['pictureElem'])
 | 
				
			||||||
 | 
					        : null;
 | 
				
			||||||
 | 
					    soundElem = json['soundElem'] != null
 | 
				
			||||||
 | 
					        ? SoundElem.fromJson(json['soundElem'])
 | 
				
			||||||
 | 
					        : null;
 | 
				
			||||||
 | 
					    videoElem = json['videoElem'] != null
 | 
				
			||||||
 | 
					        ? VideoElem.fromJson(json['videoElem'])
 | 
				
			||||||
 | 
					        : null;
 | 
				
			||||||
 | 
					    fileElem =
 | 
				
			||||||
 | 
					        json['fileElem'] != null ? FileElem.fromJson(json['fileElem']) : null;
 | 
				
			||||||
 | 
					    ex = json['ex'];
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Map<String, dynamic> toJson() {
 | 
				
			||||||
 | 
					    final data = Map<String, dynamic>();
 | 
				
			||||||
 | 
					    data['notificationName'] = this.notificationName;
 | 
				
			||||||
 | 
					    data['notificationFaceURL'] = this.notificationFaceURL;
 | 
				
			||||||
 | 
					    data['notificationType'] = this.notificationType;
 | 
				
			||||||
 | 
					    data['text'] = this.text;
 | 
				
			||||||
 | 
					    data['externalUrl'] = this.externalUrl;
 | 
				
			||||||
 | 
					    data['mixType'] = this.mixType;
 | 
				
			||||||
 | 
					    if (this.pictureElem != null) {
 | 
				
			||||||
 | 
					      data['pictureElem'] = this.pictureElem!.toJson();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (this.soundElem != null) {
 | 
				
			||||||
 | 
					      data['soundElem'] = this.soundElem!.toJson();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (this.videoElem != null) {
 | 
				
			||||||
 | 
					      data['videoElem'] = this.videoElem!.toJson();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (this.fileElem != null) {
 | 
				
			||||||
 | 
					      data['fileElem'] = this.fileElem!.toJson();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    data['ex'] = this.ex;
 | 
				
			||||||
 | 
					    return data;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
name: flutter_openim_sdk
 | 
					name: flutter_openim_sdk
 | 
				
			||||||
description: An instant messaging plug-in that supports Android and IOS. And the server is also all open source.
 | 
					description: An instant messaging plug-in that supports Android and IOS. And the server is also all open source.
 | 
				
			||||||
version: 2.0.0+4
 | 
					version: 2.0.0+5
 | 
				
			||||||
homepage: https://www.rentsoft.cn
 | 
					homepage: https://www.rentsoft.cn
 | 
				
			||||||
repository: https://github.com/OpenIMSDK/Open-IM-SDK-Flutter
 | 
					repository: https://github.com/OpenIMSDK/Open-IM-SDK-Flutter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user