im::floo::floolib::BMXChatServiceListener

Chat listener

Public Functions

Name
synchronized void delete()
void swigReleaseOwnership()
void swigTakeOwnership()
void onStatusChanged(BMXMessage msg, [BMXErrorCode] error)
Message state changed
void onAttachmentUploadProgressChanged(BMXMessage msg, int percent)
Attachment upload state changed
void onRecallStatusChanged(BMXMessage msg, [BMXErrorCode] error)
Message recall state changed
void onReceive(BMXMessageList list)
Messages received
void onReceiveCommandMessages(BMXMessageList list)
Command received
void onReceiveSystemMessages(BMXMessageList list)
System notification messages received
void onReceiveReadAcks(BMXMessageList list)
Read acknowledgement of messages received
void onReceiveDeliverAcks(BMXMessageList list)
Acknowledgement of message delivered received
void onReceiveRecallMessages(BMXMessageList list)
Canceled messages received
void onReceiveReadCancels(BMXMessageList list)
Message re-unread received (cross-device synchronization for changing message status into unread)
void onReceiveReadAllMessages(BMXMessageList list)
All received messages are read (all messages are set to read before cross-device synchronization)
void onReceiveDeleteMessages(BMXMessageList list)
Message deletions received (delete messages cross devices synchronously)
void onReceivePlayAcks(BMXMessageList list)
Acknowledgement of message played received
void onAttachmentStatusChanged(BMXMessage msg, [BMXErrorCode] error, int percent)
Attachment download state changed
void onAttachmentDownloadByUrlStatusChanged(long msgId, [BMXErrorCode] error, int percent)
Attachment download state changed
void onRetrieveHistoryMessages(BMXConversation conversation)
Pull message history
void onLoadAllConversation()
List of unread conversations has been loaded
void onConversationCreate(BMXConversation conversation, BMXMessage msg)
Create a new conversation locally
void onConversationDelete(long conversationId, [BMXErrorCode] error)
Delete a conversation
void onTotalUnreadCountChanged(int unreadCount)
Update total number of unread messages
BMXChatServiceListener()
void registerChatService(BMXChatService service)

Protected Functions

Name
BMXChatServiceListener(long cPtr, boolean cMemoryOwn)
void finalize()
void swigDirectorDisconnect()
long getCPtr(BMXChatServiceListener obj)

Protected Attributes

Name
transient boolean swigCMemOwn

Public Functions Documentation

function delete

inline synchronized void delete()

Example:

function swigReleaseOwnership

inline void swigReleaseOwnership()

Example:

function swigTakeOwnership

inline void swigTakeOwnership()

Example:

function onStatusChanged

inline void onStatusChanged(
    BMXMessage msg,
    BMXErrorCode error
)

Message state changed

Parameters:

  • msg Message with state changed
  • error State error code

Example:

public void onStatusChanged(BMXMessage msg, BMXErrorCode error) {
    // 发送状态更新页面
    if (msg != null && isCurrentSession(msg)) {
        mView.updateChatMessage(msg);
        // 如果失败判断弹出提示
        if (error != null && error.swigValue() != BMXErrorCode.NoError.swigValue()) {
            String errorMsg = error.name();
            ((Activity)mView.getContext())
                    .runOnUiThread(() -> ToastUtil.showTextViewPrompt(errorMsg));
        }
    }
}
public void onStatusChanged(BMXMessage msg, BMXErrorCode error) {
}
public void onStatusChanged(BMXMessage msg, BMXErrorCode error) {
    super.onStatusChanged(msg, error);
    for (BMXChatServiceListener listener : mListener) {
        listener.onStatusChanged(msg, error);
    }
}

function onAttachmentUploadProgressChanged

inline void onAttachmentUploadProgressChanged(
    BMXMessage msg,
    int percent
)

Attachment upload state changed

Parameters:

  • msg Message for uploading attachment
  • percent Progress of attachment uploading

Example:

public void onAttachmentUploadProgressChanged(BMXMessage msg, int percent) {
    // 附件消息上传进度
    ChatAttachmentManager.getInstance().onProgressCallback(msg, percent);
    Log.d("progressChanged", percent + "");
}
public void onAttachmentUploadProgressChanged(BMXMessage msg, int percent) {
}
public void onAttachmentUploadProgressChanged(BMXMessage msg, int percent) {
    super.onAttachmentUploadProgressChanged(msg, percent);
    for (BMXChatServiceListener listener : mListener) {
        listener.onAttachmentUploadProgressChanged(msg, percent);
    }
}

function onRecallStatusChanged

inline void onRecallStatusChanged(
    BMXMessage msg,
    BMXErrorCode error
)

Message recall state changed

Parameters:

  • msg Message with state change canceled
  • error State error code

Example:

public void onRecallStatusChanged(BMXMessage msg, BMXErrorCode error) {
    if (msg == null) {
        return;
    }
    boolean success = error != null
            && error.swigValue() == BMXErrorCode.NoError.swigValue();
    String errorMsg = error != null && !TextUtils.isEmpty(error.name()) ? error.name()
            : "撤回失败";
    if (success) {
        // 撤回成功需要删除原始消息
        if (mView != null) {
            mView.deleteChatMessage(msg);
        }
    } else {
        // 原始消息不为空 则没有撤回成功
        ((Activity)mView.getContext())
                .runOnUiThread(() -> ToastUtil.showTextViewPrompt(errorMsg));
    }
}
public void onRecallStatusChanged(BMXMessage msg, BMXErrorCode error) {
}
public void onRecallStatusChanged(BMXMessage msg, BMXErrorCode error) {
    super.onRecallStatusChanged(msg, error);
    for (BMXChatServiceListener listener : mListener) {
        listener.onRecallStatusChanged(msg, error);
    }
}

function onReceive

inline void onReceive(
    BMXMessageList list
)

Messages received

Parameters:

  • list List of received messages

Example:

public void onReceive(BMXMessageList list) {
    // 收到消息
    if (list != null && !list.isEmpty()) {
        List<BMXMessage> messages = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            BMXMessage message = list.get(i);
            if (message != null && isCurrentSession(message) && filterMessage(message)) {
                ((MaxIMApplication) getApplication()).typeWriterMsgId = message.msgId();
                // 当前会话
                messages.add(message);
            }
        }
        mView.receiveChatMessage(messages);
    }
}
public void onReceive(BMXMessageList list) {
    // 收到消息
    loadSession();
}
public void onReceive(BMXMessageList list) {
    super.onReceive(list);
    if (list != null && !list.isEmpty()) {
        notifyNotification(list.get(0));
    }
    for (BMXChatServiceListener listener : mListener) {
        listener.onReceive(list);
    }
}
public void onReceive(BMXMessageList list) {
    super.onReceive(list);
    // 收到消息
    if (list != null && !list.isEmpty()) {
        for (int i = 0; i < list.size(); i++) {
            BMXMessage message = list.get(i);
        }
    }
}
public void onReceive(BMXMessageList list) {
    super.onReceive(list);
    // 收到消息
    if (list != null && !list.isEmpty()) {
        for (int i = 0; i < list.size(); i++) {
            BMXMessage message = list.get(i);
            handleRTCMessage(message);
        }
    }
}

function onReceiveCommandMessages

inline void onReceiveCommandMessages(
    BMXMessageList list
)

Command received

Parameters:

  • list List of received messages

Example:

public void onReceiveCommandMessages(BMXMessageList list) {
}

function onReceiveSystemMessages

inline void onReceiveSystemMessages(
    BMXMessageList list
)

System notification messages received

Parameters:

  • list List of received system messages

Example:

public void onReceiveSystemMessages(BMXMessageList list) {
    // 收到系统消息
    if (list != null && !list.isEmpty()) {
        List<BMXMessage> messages = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            BMXMessage message = list.get(i);
            if (message != null && isCurrentSession(message) && filterMessage(message)) {
                // 当前会话
                messages.add(message);
            }
        }
        mView.receiveChatMessage(messages);
    }
}
public void onReceiveSystemMessages(BMXMessageList list) {
    // 收到系统消息
    loadSession();
}
public void onReceiveSystemMessages(BMXMessageList list) {
    super.onReceiveSystemMessages(list);
    for (BMXChatServiceListener listener : mListener) {
        listener.onReceiveSystemMessages(list);
    }
}

function onReceiveReadAcks

inline void onReceiveReadAcks(
    BMXMessageList list
)

Read acknowledgement of messages received

Parameters:

  • list List of received messages with read acknowledgement

Example:

public void onReceiveReadAcks(BMXMessageList list) {
    // 收到已读回执
    if (list != null && !list.isEmpty()) {
        for (int i = 0; i < list.size(); i++) {
            BMXMessage message = list.get(i);
            if (message != null) {
                // 当前会话
                if (mView != null) {
                    mView.updateChatMessage(message);
                }
            }
        }
    }
}
public void onReceiveReadAcks(BMXMessageList list) {
    loadSession();
}
public void onReceiveReadAcks(BMXMessageList list) {
    super.onReceiveReadAcks(list);
    for (BMXChatServiceListener listener : mListener) {
        listener.onReceiveReadAcks(list);
    }
}

function onReceiveDeliverAcks

inline void onReceiveDeliverAcks(
    BMXMessageList list
)

Acknowledgement of message delivered received

Parameters:

  • list List of received messages with delivered acknowledgement

Example:

public void onReceiveDeliverAcks(BMXMessageList list) {
}
public void onReceiveDeliverAcks(BMXMessageList list) {
}
public void onReceiveDeliverAcks(BMXMessageList list) {
    super.onReceiveDeliverAcks(list);
    for (BMXChatServiceListener listener : mListener) {
        listener.onReceiveDeliverAcks(list);
    }
}

function onReceiveRecallMessages

inline void onReceiveRecallMessages(
    BMXMessageList list
)

Canceled messages received

Parameters:

  • list List of canceled messages received

Example:

public void onReceiveRecallMessages(BMXMessageList list) {
    // 收到撤回消息
    if (list != null && !list.isEmpty()) {
        for (int i = 0; i < list.size(); i++) {
            BMXMessage message = list.get(i);
            if (message != null && isCurrentSession(message)) {
                // 当前会话
                if (mView != null) {
                    ((Activity)mView.getContext())
                            .runOnUiThread(() -> ToastUtil.showTextViewPrompt("对方撤回一条消息"));
                    mView.deleteChatMessage(message);
                }
            }
        }
    }
}
public void onReceiveRecallMessages(BMXMessageList list) {
    // 收到撤回消息
    loadSession();
}
public void onReceiveRecallMessages(BMXMessageList list) {
    super.onReceiveRecallMessages(list);
    for (BMXChatServiceListener listener : mListener) {
        listener.onReceiveRecallMessages(list);
    }
}

function onReceiveReadCancels

inline void onReceiveReadCancels(
    BMXMessageList list
)

Message re-unread received (cross-device synchronization for changing message status into unread)

Parameters:

  • list List of received messages with re-unread acknowledgement

Example:

function onReceiveReadAllMessages

inline void onReceiveReadAllMessages(
    BMXMessageList list
)

All received messages are read (all messages are set to read before cross-device synchronization)

Parameters:

  • list List of received messages with all-read acknowledgement

Example:

function onReceiveDeleteMessages

inline void onReceiveDeleteMessages(
    BMXMessageList list
)

Message deletions received (delete messages cross devices synchronously)

Parameters:

  • list List of deleted messages received

Example:

function onReceivePlayAcks

inline void onReceivePlayAcks(
    BMXMessageList list
)

Acknowledgement of message played received

Parameters:

  • list List of received messages with read acknowledgement

Example:

function onAttachmentStatusChanged

inline void onAttachmentStatusChanged(
    BMXMessage msg,
    BMXErrorCode error,
    int percent
)

Attachment download state changed

Parameters:

  • msg Message with downloading state changed
  • error State error code
  • percent Progress of attachment downloading

Example:

public void onAttachmentStatusChanged(BMXMessage msg, BMXErrorCode error, int percent) {
    // 附件消息下载进度
    ChatAttachmentManager.getInstance().onProgressCallback(msg, percent);
    Log.d("statusChanged", percent + "");
}
public void onAttachmentStatusChanged(BMXMessage msg, BMXErrorCode error, int percent) {
}
public void onAttachmentStatusChanged(BMXMessage msg, BMXErrorCode error, int percent) {
    super.onAttachmentStatusChanged(msg, error, percent);
    for (BMXChatServiceListener listener : mListener) {
        listener.onAttachmentStatusChanged(msg, error, percent);
    }
}

function onAttachmentDownloadByUrlStatusChanged

inline void onAttachmentDownloadByUrlStatusChanged(
    long msgId,
    BMXErrorCode error,
    int percent
)

Attachment download state changed

Parameters:

  • msgId Message ID with download state changed
  • error State error code
  • percent Progress of attachment downloading

Example:

function onRetrieveHistoryMessages

inline void onRetrieveHistoryMessages(
    BMXConversation conversation
)

Pull message history

Parameters:

  • conversation Conversation for which a specific message history was pulled

Example:

function onLoadAllConversation

inline void onLoadAllConversation()

List of unread conversations has been loaded

Example:

function onConversationCreate

inline void onConversationCreate(
    BMXConversation conversation,
    BMXMessage msg
)

Create a new conversation locally

Parameters:

  • conversation Newly created local conversation
  • msg Latest message for conversation, return for existing, empty for no existing

Example:

function onConversationDelete

inline void onConversationDelete(
    long conversationId,
    BMXErrorCode error
)

Delete a conversation

Parameters:

  • conversationId Deleted local conversation id
  • error State error code

Example:

function onTotalUnreadCountChanged

inline void onTotalUnreadCountChanged(
    int unreadCount
)

Update total number of unread messages

Parameters:

  • unreadCount Total number of local unread conversations

Example:

function BMXChatServiceListener

inline BMXChatServiceListener()

Example:

private BMXChatServiceListener mChatListener = new BMXChatServiceListener() {

    @Override
    public void onStatusChanged(BMXMessage msg, BMXErrorCode error) {
        super.onStatusChanged(msg, error);
        for (BMXChatServiceListener listener : mListener) {
            listener.onStatusChanged(msg, error);
        }
    }

    @Override
    public void onAttachmentStatusChanged(BMXMessage msg, BMXErrorCode error, int percent) {
        super.onAttachmentStatusChanged(msg, error, percent);
        for (BMXChatServiceListener listener : mListener) {
            listener.onAttachmentStatusChanged(msg, error, percent);
        }
    }

    @Override
    public void onRecallStatusChanged(BMXMessage msg, BMXErrorCode error) {

function registerChatService

inline void registerChatService(
    BMXChatService service
)

Protected Functions Documentation

Example:

function BMXChatServiceListener

inline BMXChatServiceListener(
    long cPtr,
    boolean cMemoryOwn
)

Example:

private BMXChatServiceListener mChatListener = new BMXChatServiceListener() {

    @Override
    public void onStatusChanged(BMXMessage msg, BMXErrorCode error) {
        super.onStatusChanged(msg, error);
        for (BMXChatServiceListener listener : mListener) {
            listener.onStatusChanged(msg, error);
        }
    }

    @Override
    public void onAttachmentStatusChanged(BMXMessage msg, BMXErrorCode error, int percent) {
        super.onAttachmentStatusChanged(msg, error, percent);
        for (BMXChatServiceListener listener : mListener) {
            listener.onAttachmentStatusChanged(msg, error, percent);
        }
    }

    @Override
    public void onRecallStatusChanged(BMXMessage msg, BMXErrorCode error) {

function finalize

inline void finalize()

Example:

function swigDirectorDisconnect

inline void swigDirectorDisconnect()

Example:

function getCPtr

static inline long getCPtr(
    BMXChatServiceListener obj
)

Protected Attributes Documentation

variable swigCMemOwn

transient boolean swigCMemOwn;

Example:


Updated on 2022-01-26 at 17:18:31 +0800

© 2019-2023 MaximTop | Homepage Last modified time: 2023-08-09 14:48:15

results matching ""

    No results matching ""