IChat.java 3.63 KB
package io.rong.imlib.base;

import android.content.Context;

import java.util.List;

import io.rong.imlib.model.CNMessage;
import io.rong.imlib.model.CNUserInfo;
import io.rong.imlib.model.UserInfo;

/**
 * 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 ERROR_TOKEN_INCORRECT = -100000;
    int SUCCESS_CONNECT = 100001;
    int SUCCESS_JOIN_CHATROOM = 100002;
    int SUCCESS_JOIN_EXIST_CHATROOM = 100003;
    int SUCCESS_QUIT_CHATROOM = 100004;
    int SUCCESS_SEND_MESSAGE = 100005;
    int RECEIVE = 100006;

    String MSG_TOKEN_INCORRECT = "Token错误";
    String MSG_SUCCESS_CONNECT = "连接成功";
    String MSG_SUCCESS_JOIN_CHATROOM = "加入聊天室成功";
    String MSG_SUCCESS_JOIN_EXIST_CHATROOM = "加入已存在聊天室成功";
    String MSG_SUCCESS_QUIT_CHATROOM = "退出聊天室成功";
    String MSG_SUCCESS_SEND_MESSAGE = "发送消息成功";
    String MSG_RECEIVE = "接收消息";

    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, String appKey, String appSecret);

    void connect(CNUserInfo cnUserInfo);

    void connect(String token);

    void disconnect(boolean isReceivePush);

    void joinExistChatRoom(String roomId, int defMessageCount);

    void quitChatRoom();

    void sendChatRoomMessage(String message);

    void sendPrivateMessage(String targetId, String message);

    void setConnectStatusListener(OnConnectStatusListener listener);

    void setOnMessageListener(OnMessageListener 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 setOnLatestMessageListener(OnLatestMessageListener listener);

//    void setCurrentUser(UserInfo user);

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

    interface OnMessageListener {
        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);
    }

}