package com.avoscloud.leanchatlib.controller; import com.avos.avoscloud.im.v2.AVIMClient; import com.avos.avoscloud.im.v2.AVIMClientEventHandler; import com.avoscloud.leanchatlib.event.ConnectionChangeEvent; import de.greenrobot.event.EventBus; /** * Created by wli on 15/12/16. * 与网络相关的 handler * 注意,此 handler 并不是网络状态通知,而是当前 client 的连接状态 */ public class LeanchatClientEventHandler extends AVIMClientEventHandler { private static LeanchatClientEventHandler eventHandler; public static synchronized LeanchatClientEventHandler getInstance() { if (null == eventHandler) { eventHandler = new LeanchatClientEventHandler(); } return eventHandler; } private LeanchatClientEventHandler() {} private volatile boolean connect = false; /** * 是否连上聊天服务 * * @return */ public boolean isConnect() { return connect; } public void setConnectAndNotify(boolean isConnect) { connect = isConnect; EventBus.getDefault().post(new ConnectionChangeEvent(connect)); } @Override public void onConnectionPaused(AVIMClient avimClient) { setConnectAndNotify(false); } @Override public void onConnectionResume(AVIMClient avimClient) { setConnectAndNotify(true); } @Override public void onClientOffline(AVIMClient avimClient, int i) { } }