42 lines
1.3 KiB
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);
|
|
}
|
|
}
|