Class EditMessageManager
-
- All Implemented Interfaces:
-
ai.nexconn.chatui.channel.extension.IExtensionModule,ai.nexconn.chatui.channel.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 initialization. voidonAttachedToExtension(Fragment fragment, NCExtension extension)After entering a conversation, Extension loads all registered modules. voidonResumeEditModeResult(EditMessageManager.ActiveType type, EditMessageConfig config)Handles resume edit mode result with different logic based on ActiveType. voidonDetachedFromExtension()Called when leaving a conversation; Extension releases all loaded modules. voidonReceivedMessage(Message message)After the SDK receives a message, it routes the message to the corresponding module via this method. List<IPluginModule>getPluginModules(ChannelType channelType)Users can configure plugins in the "+" area based on different conversations. List<IEmoticonTab>getEmoticonTabs()Multiple or single emoticon tabs can be configured in a conversation. voidonDisconnect()SDK disconnected. booleanonMessageLongClickEdit(Context context, UiMessage uiMessage)voidactiveEditMode(EditMessageManager.ActiveType type, EditMessageConfig config, boolean showKeyBoard)Activates edit message mode. voidexitEditMode()Exits edit message state, clears edit message configuration, and retrieves draft. voidonKeyboardHeightChange(int orientation, boolean isOpen, int keyboardHeight)booleanisEditMessageState()Whether currently in edit message state. EditMessageConfiggetEditMessageConfig()Gets the edit message config if in edit message state. voideditMessage(EditText editText, ErrorHandler callback)voideditMessage(Message message, String editContent)voidonTextChanged(Context context, ChannelType type, String targetId, int cursorPos, int count, String text)Callback when input field text changes. voidonSendToggleClick(Message message)Pre-processing when the Extension module's send button is clicked. voidonDeleteClick(ChannelType type, String targetId, EditText editText, int cursorPos)voidonDestroy(ChannelType type, String targetId)voidonPause()voidonResume()booleancanEditByLongClick(UiMessage uiMessage)voidaddKeyboardHeightObserver(KeyboardHeightObserver observer)voidremoveKeyboardHeightObserver(KeyboardHeightObserver observer)voidaddMentionBlocks(EditText editText, List<MentionBlock> mentionBlocks)Rebinds the MentionList for the EditText in NCMentionManager. 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 initialization. Users can register custom messages, message templates, and initialize their own modules in this method.
- Parameters:
context- Context.appKey- Unique application key.
-
onAttachedToExtension
void onAttachedToExtension(Fragment fragment, NCExtension extension)
After entering a conversation, Extension loads all registered modules. Modules can hold and use the Extension. Note: if a module holds an Extension object, it must release it in the onDetachedFromExtension callback to avoid memory leaks.
- Parameters:
fragment- The fragment where the Extension object resides.extension- The Extension object.
-
onResumeEditModeResult
void onResumeEditModeResult(EditMessageManager.ActiveType type, EditMessageConfig config)
Handles resume edit mode result with different logic based on ActiveType.
-
onDetachedFromExtension
void onDetachedFromExtension()
Called when leaving a conversation; Extension releases all loaded modules. Note: if a module holds an Extension object, it must release it in this callback to avoid memory leaks.
-
onReceivedMessage
void onReceivedMessage(Message message)
After the SDK receives a message, it routes the message to the corresponding module via this method. Users can selectively handle received messages based on their registered message types.
- Parameters:
message- The message entity.
-
getPluginModules
List<IPluginModule> getPluginModules(ChannelType channelType)
Users can configure plugins in the "+" area based on different conversations. One or multiple plugins can be configured; the extension displays all returned plugins. Note: if no plugins are configured, this method does not need to be implemented.
- Parameters:
channelType- Channel type.- Returns:
Plugin list.
-
getEmoticonTabs
List<IEmoticonTab> getEmoticonTabs()
Multiple or single emoticon tabs can be configured in a conversation. Once configured, this tab will be displayed in all conversations. Note: if no emoticons are configured, this method does not need to be implemented.
- Returns:
Emoticon tab list.
-
onDisconnect
void onDisconnect()
SDK disconnected.
-
onMessageLongClickEdit
boolean onMessageLongClickEdit(Context context, UiMessage uiMessage)
-
activeEditMode
void activeEditMode(EditMessageManager.ActiveType type, EditMessageConfig config, boolean showKeyBoard)
Activates edit message mode.
- Parameters:
type- activation typeconfig- edit message configurationshowKeyBoard- whether to show the soft keyboard
-
exitEditMode
void exitEditMode()
Exits edit message state, clears edit message configuration, and retrieves draft.
-
onKeyboardHeightChange
void onKeyboardHeightChange(int orientation, boolean isOpen, int keyboardHeight)
-
isEditMessageState
boolean isEditMessageState()
Whether currently in edit message state.
-
getEditMessageConfig
EditMessageConfig getEditMessageConfig()
Gets the edit message config if in edit message state.
-
editMessage
void editMessage(EditText editText, ErrorHandler callback)
-
editMessage
void editMessage(Message message, String editContent)
-
onTextChanged
void onTextChanged(Context context, ChannelType type, String targetId, int cursorPos, int count, String text)
Callback when input field text changes.
- Parameters:
context- contexttype- channel typetargetId- target IDcursorPos- cursor positioncount- text change counttext- text content
-
onSendToggleClick
void onSendToggleClick(Message message)
Pre-processing when the Extension module's send button is clicked. Other modules can set additional information to Extension through this callback.
- Parameters:
message- the initial message built when the Extension module's send button is clicked.
-
onDeleteClick
void onDeleteClick(ChannelType type, String targetId, EditText editText, int cursorPos)
-
onPause
void onPause()
-
onResume
void onResume()
-
canEditByLongClick
boolean canEditByLongClick(UiMessage uiMessage)
-
addKeyboardHeightObserver
void addKeyboardHeightObserver(KeyboardHeightObserver observer)
-
removeKeyboardHeightObserver
void removeKeyboardHeightObserver(KeyboardHeightObserver observer)
-
addMentionBlocks
void addMentionBlocks(EditText editText, List<MentionBlock> mentionBlocks)
Rebinds the MentionList for the EditText in NCMentionManager. MentionBlock: the starting position of "@name" in the input field. Must be called after NCExtensionViewModel#setEditTextWidget rebinds the EditText.
-
addStatusListener
void addStatusListener(EditMessageManager.StatusListener listener)
-
removeStatusListener
void removeStatusListener(EditMessageManager.StatusListener listener)
-
-
-
-