IChat.java 4.85 KB
package com.cnlive.libs.chat.base;

import android.content.Context;

import com.cnlive.libs.chat.model.CNMessage;
import com.cnlive.libs.chat.model.CNUserInfo;
import com.cnlive.libs.chat.model.ConnectionStatus;

import java.util.List;


/**
 * Created by Lynn on 2/9/2017.
 */

public interface IChat {
    int NETWORK_UNAVAILABLE = -1;
    int CONNECTED = 0;
    int CONNECTING = 1;
    int DISCONNECTED = 2;
    int KICKED_OFFLINE_BY_OTHER_CLIENT = 3;
    int TOKEN_INCORRECT = 4;
    int SERVER_INVALID = 5;

    int SUCCESS_GET_TOKEN = 10000;
    int ERROR_GET_TOKEN = -100000;
    int ERROR_GET_TOKEN_NETWORK = -10001;
    int ERROR_GET_TOKEN_OTHER = -10002;
    int SUCCESS_JOIN_CHATROOM = 100002;
    int SUCCESS_JOIN_EXIST_CHATROOM = 100003;
    int SUCCESS_QUIT_CHATROOM = 100004;
    int SUCCESS_CHECK_AUTH = 100005;
    int ERROR_CHECK_AUTH_NETWORK = -10005;
    int ERROR_CHECK_AUTH_OTHER = -10006;
    int ERROR_CHECK_AUTH = -10007;

    String PRIVATE = "private";
    String CHATROOM = "chatRoom";

    String MSG_GET_TOKEN_NETWORK = "获取token时网络连接错误";
    String MSG_GET_TOKEN_OTHER = "获取token时内部错误";
    String MSG_GET_TOKEN = "获取Token失败";
    String MSG_CHECK_AUTH_NETWORK = "鉴权时网络连接错误";
    String MSG_CHECK_AUTH_OTHER = "鉴权时内部错误";
    String MSG_CHECK_AUTH = "鉴权失败";
    String MSG_SUCCESS_JOIN_CHATROOM = "加入聊天室成功";
    String MSG_SUCCESS_JOIN_EXIST_CHATROOM = "加入已存在聊天室成功";
    String MSG_SUCCESS_QUIT_CHATROOM = "退出聊天室成功";

    String STATUS_NETWORK_UNAVAILABLE = "Network is unavailable.";
    String STATUS_CONNECTED = "Connect Success.";
    String STATUS_CONNECTING = "Connecting";
    String STATUS_DISCONNECTED = "Disconnected";
    String STATUS_KICKED_OFFLINE_BY_OTHER_CLIENT = "Login on the other device, and be kicked offline.";
    String STATUS_TOKEN_INCORRECT = "Token incorrect.";
    String STATUS_SERVER_INVALID = "Server invalid.";

    //初始化
    void init(Context context);

    //连接服务器
    void connect(CNUserInfo cnUserInfo);

    //断开连接
    void disconnect(boolean isReceivePush);

    //加入已经存在的聊天室
    void joinExistChatRoom(String roomId, int defMessageCount);

    //退书聊天室
    void quitChatRoom(String roomId);

    //发送消息
    void sendMessage(String conversationType, String targetId, String message);

    //更新用户信息
    void modifyUser(String userName, String headUrl);

    //切换账户
    void exchangeUser(CNUserInfo userInfo);

    ConnectionStatus getCurrentConnectionStatus();

    //连接状态监听
    void setConnectStatusListener(OnConnectStatusListener listener);

    //接收消息监听
    void setOnReceiveMessageListener(OnReceiveMessageListener listener);

    //聊天室操作
    void setOnChatRoomActionListener(OnChatRoomActionListener listener);

    //发送消息监听
    void setOnSendMessageListener(OnSendMessageListener listener);

    //设置连接监听
    void setOnConnectionListener(OnConnectListener listener);

    //加入与退出聊天室监听
    void setOnOperationListener(OnOperationListener listener);

    //发送消息结果
    void setOnResultListener(OnResultListener listener);

    //从本地获取私聊历史消息
    void getLatestMessages(String targetId, int count);

    void setOnCNChatListener(OnCNChatListener listener);

//    void setOnInfoListener(OnInfoListener listener);

    //获取历史消息监听
    void setOnLatestMessageListener(OnLatestMessageListener listener);

    interface OnConnectStatusListener {
        void onConnectStatus(int what, String extra);
    }

    interface OnReceiveMessageListener {
        void processMessage(CNMessage message);
    }

    interface OnChatRoomActionListener {
        void onJoining(String s);

        void onJoined(String s);

        void onQuited(String s);

        void onError(String s, int errorCode, String errorMessage);
    }

    interface OnSendMessageListener {
        void onSuccess(Integer integer);

        void onError(Integer integer, int what, String extra);
    }

    interface OnConnectListener {
        void onTokenIncorrect();

        void onSuccess(String s);

        void onError(int what, String extra);
    }

    interface OnOperationListener {
        void onSuccess(int what, String extra);

        void onError(int what, String extra);
    }

    interface OnResultListener {
        void onSuccess(CNMessage message);

        void onError(int what, String extra);
    }

    interface OnLatestMessageListener {
        void onSuccess(List<CNMessage> messages);

        void onError(int what, String extra);
    }

    interface OnCNChatListener {
        void onError(int what, String extra);

        void onInfo(int what, String extra);
    }

//    interface OnInfoListener {
//        void onInfo(int what, String extra);
//    }

}