Class EditMessageManager
-
- All Implemented Interfaces:
-
io.rong.imkit.conversation.extension.IExtensionModule,io.rong.imkit.feature.mention.IExtensionEventWatcher
public class EditMessageManager implements IExtensionEventWatcher, IExtensionModule
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public enumEditMessageManager.ActiveTypepublic interfaceEditMessageManager.StatusListener
-
Field Summary
Fields Modifier and Type Field Description public final static StringTAGpublic booleanisEmoticonMode
-
Method Summary
Modifier and Type Method Description booleanisEmoticonMode()voidsetEmoticonMode(boolean show)static EditMessageManagergetInstance()voidonInit(Context context, String appKey)SDK 初始化。 用户可以在该方法中注册自定义消息、注册消息模板、初始化自己的模块。 voidonAttachedToExtension(Fragment fragment, RongExtension extension)进入会话后,Extension 加载所有注册的 module。 module 可以持有并使用 Extension. voidonResumeEditModeResult(EditMessageManager.ActiveType type, EditMessageConfig config)处理恢复编辑状态结果,根据不同的类型 ActiveType 处理不同的逻辑 voidonDetachedFromExtension()退出会话,Extension 释放所有已加载的 module。 注意:如果 module 持有 Extension 对象,需要在该回调时释放,否则会有内存泄露。 voidonReceivedMessage(Message message)SDK 接收到消息后,通过此方法路由给对应的模块去处理。 用户可以根据自己注册的消息,有选择性的去处理接收到的消息。 List<IPluginModule>getPluginModules(Conversation.ConversationType conversationType)用户可以根据不同的会话,配置 “+” 号区域插件。 可以配置一个插件,也可以同时配置多个插件。extension 展示所有返回的插件列表。 注意:如果用户没有配置插件,此方法可以不用实现。 List<IEmoticonTab>getEmoticonTabs()在会话中可以配置多个表情 tab,也可以配置单个表情 tab。 配置后,所有的会话中都会显示此 tab。 注意:如果用户没有配置表情,此方法可以不用实现。 voidonDisconnect()SDK 断开连接。 voidactiveEditMode(EditMessageManager.ActiveType type, EditMessageConfig config, boolean showKeyBoard)激活编辑消息模式 voidexitEditMode()退出编辑消息状态,清空编辑消息配置,并获取草稿。 voidonKeyboardHeightChange(int orientation, boolean isOpen, int keyboardHeight)booleanisEditMessageState()是否编辑消息状态 EditMessageConfiggetEditMessageConfig()是否编辑消息状态 voideditMessage(EditText editText, IRongCoreCallback.OperationCallback callback)修改消息 voideditMessage(Message message, String editContent)voidonTextChanged(Context context, Conversation.ConversationType type, String targetId, int cursorPos, int count, String text)输入框文本变化时的回调 voidonSendToggleClick(Message message)Extension 模块点击发送按钮时的预处理,其它模块可以通过此回调设置附加信息到 Extension voidonDeleteClick(Conversation.ConversationType type, String targetId, EditText editText, int cursorPos)voidonDestroy(Conversation.ConversationType type, String targetId)voidonPause()voidonResume()voidaddKeyboardHeightObserver(KeyboardHeightObserver observer)voidremoveKeyboardHeightObserver(KeyboardHeightObserver observer)voidaddMentionBlocks(EditText editText, List<MentionBlock> mentionBlocks)RongMentionManager 重新绑定Edittext对应的MentionList。 MentionBlock:“@人名”对应输入框的起始位置。 在RongExtensionViewModel#setEditTextWidget重新绑定Edittext之后,需要调用此接口重新绑定MentionList。 voidaddStatusListener(EditMessageManager.StatusListener listener)voidremoveStatusListener(EditMessageManager.StatusListener listener)-
-
Method Detail
-
isEmoticonMode
boolean isEmoticonMode()
-
setEmoticonMode
void setEmoticonMode(boolean show)
-
getInstance
static EditMessageManager getInstance()
-
onInit
void onInit(Context context, String appKey)
SDK 初始化。 用户可以在该方法中注册自定义消息、注册消息模板、初始化自己的模块。
- Parameters:
context- 上下文appKey- 应用唯一 key。
-
onAttachedToExtension
void onAttachedToExtension(Fragment fragment, RongExtension extension)
进入会话后,Extension 加载所有注册的 module。 module 可以持有并使用 Extension. 注意:如果 module 持有 Extension 对象,需要在 onDetachedFromExtension 回调时释放,否则会有内存泄露。
- Parameters:
fragment- Extension 对象所在的 fragment.extension- Extension 对象。
-
onResumeEditModeResult
void onResumeEditModeResult(EditMessageManager.ActiveType type, EditMessageConfig config)
处理恢复编辑状态结果,根据不同的类型 ActiveType 处理不同的逻辑
-
onDetachedFromExtension
void onDetachedFromExtension()
退出会话,Extension 释放所有已加载的 module。 注意:如果 module 持有 Extension 对象,需要在该回调时释放,否则会有内存泄露。
-
onReceivedMessage
void onReceivedMessage(Message message)
SDK 接收到消息后,通过此方法路由给对应的模块去处理。 用户可以根据自己注册的消息,有选择性的去处理接收到的消息。
- Parameters:
message- 消息实体。
-
getPluginModules
List<IPluginModule> getPluginModules(Conversation.ConversationType conversationType)
用户可以根据不同的会话,配置 “+” 号区域插件。 可以配置一个插件,也可以同时配置多个插件。extension 展示所有返回的插件列表。 注意:如果用户没有配置插件,此方法可以不用实现。
- Parameters:
conversationType- 会话类型。- Returns:
插件列表。
-
getEmoticonTabs
List<IEmoticonTab> getEmoticonTabs()
在会话中可以配置多个表情 tab,也可以配置单个表情 tab。 配置后,所有的会话中都会显示此 tab。 注意:如果用户没有配置表情,此方法可以不用实现。
- Returns:
表情 tab 列表。
-
onDisconnect
void onDisconnect()
SDK 断开连接。
-
activeEditMode
void activeEditMode(EditMessageManager.ActiveType type, EditMessageConfig config, boolean showKeyBoard)
激活编辑消息模式
- Parameters:
type- 激活类型config- 编辑消息配置showKeyBoard- 是否展示软键盘
-
exitEditMode
void exitEditMode()
退出编辑消息状态,清空编辑消息配置,并获取草稿。
-
onKeyboardHeightChange
void onKeyboardHeightChange(int orientation, boolean isOpen, int keyboardHeight)
-
isEditMessageState
boolean isEditMessageState()
是否编辑消息状态
-
getEditMessageConfig
EditMessageConfig getEditMessageConfig()
是否编辑消息状态
-
editMessage
void editMessage(EditText editText, IRongCoreCallback.OperationCallback callback)
修改消息
-
editMessage
void editMessage(Message message, String editContent)
-
onTextChanged
void onTextChanged(Context context, Conversation.ConversationType type, String targetId, int cursorPos, int count, String text)
输入框文本变化时的回调
-
onSendToggleClick
void onSendToggleClick(Message message)
Extension 模块点击发送按钮时的预处理,其它模块可以通过此回调设置附加信息到 Extension
- Parameters:
message- extension 模块点击发送按钮时构建的初始消息。其它模块可以更改该消息里的配置。
-
onDeleteClick
void onDeleteClick(Conversation.ConversationType type, String targetId, EditText editText, int cursorPos)
-
onPause
void onPause()
-
onResume
void onResume()
-
addKeyboardHeightObserver
void addKeyboardHeightObserver(KeyboardHeightObserver observer)
-
removeKeyboardHeightObserver
void removeKeyboardHeightObserver(KeyboardHeightObserver observer)
-
addMentionBlocks
void addMentionBlocks(EditText editText, List<MentionBlock> mentionBlocks)
RongMentionManager 重新绑定Edittext对应的MentionList。 MentionBlock:“@人名”对应输入框的起始位置。 在RongExtensionViewModel#setEditTextWidget重新绑定Edittext之后,需要调用此接口重新绑定MentionList。
-
addStatusListener
void addStatusListener(EditMessageManager.StatusListener listener)
-
removeStatusListener
void removeStatusListener(EditMessageManager.StatusListener listener)
-
-
-
-