Mercury-IM/app/src/main/java/org/mercury_im/messenger/AndroidMercuryConnection.java

42 lines
1.3 KiB
Java

package org.mercury_im.messenger;
import androidx.lifecycle.MutableLiveData;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.tcp.XMPPTCPConnection;
import org.mercury_im.messenger.xmpp_core.ConnectionState;
import org.mercury_im.messenger.xmpp_core.MercuryConnection;
public class AndroidMercuryConnection extends MercuryConnection {
private MutableLiveData<ConnectionState> connectionState = new MutableLiveData<>();
public AndroidMercuryConnection(XMPPTCPConnection connection, long accountId) {
super(connection, accountId);
}
@Override
public void connected(XMPPConnection connection) {
super.connected(connection);
connectionState.postValue(ConnectionState.CONNECTED);
}
@Override
public void authenticated(XMPPConnection connection, boolean resumed) {
super.authenticated(connection, resumed);
connectionState.postValue(ConnectionState.CONNECTED);
}
@Override
public void connectionClosed() {
super.connectionClosed();
connectionState.postValue(ConnectionState.DISCONNECTED);
}
@Override
public void connectionClosedOnError(Exception e) {
super.connectionClosedOnError(e);
connectionState.postValue(ConnectionState.WAIRING_FOR_RETRY);
}
}