package com.quickblox.sample.chat.utils.qb; import android.support.design.widget.Snackbar; import android.util.Log; import android.view.View; import com.quickblox.sample.chat.App; import com.quickblox.sample.chat.R; import org.jivesoftware.smack.ConnectionListener; import org.jivesoftware.smack.XMPPConnection; public class VerboseQbChatConnectionListener implements ConnectionListener { private static final String TAG = VerboseQbChatConnectionListener.class.getSimpleName(); private View rootView; private Snackbar snackbar; public VerboseQbChatConnectionListener(View rootView) { this.rootView = rootView; } @Override public void connected(XMPPConnection connection) { Log.i(TAG, "connected()"); } @Override public void authenticated(XMPPConnection connection, boolean authenticated) { Log.i(TAG, "authenticated()"); } @Override public void connectionClosed() { Log.i(TAG, "connectionClosed()"); } @Override public void connectionClosedOnError(final Exception e) { Log.i(TAG, "connectionClosedOnError(): " + e.getLocalizedMessage()); snackbar = Snackbar.make(rootView, App.getInstance().getString(R.string.connection_error), Snackbar.LENGTH_INDEFINITE); snackbar.show(); } @Override public void reconnectingIn(final int seconds) { if (seconds % 5 == 0 && seconds != 0) { Log.i(TAG, "reconnectingIn(): " + seconds); snackbar = Snackbar.make(rootView, App.getInstance().getString(R.string.reconnect_alert, seconds), Snackbar.LENGTH_INDEFINITE); snackbar.show(); } } @Override public void reconnectionSuccessful() { Log.i(TAG, "reconnectionSuccessful()"); if (snackbar != null) { snackbar.dismiss(); } } @Override public void reconnectionFailed(final Exception error) { Log.i(TAG, "reconnectionFailed(): " + error.getLocalizedMessage()); } }