package org.fossasia.openevent.receivers;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import org.fossasia.openevent.OpenEventApp;
import org.fossasia.openevent.events.ConnectionCheckEvent;
import timber.log.Timber;
/**
* User: shivenmian
* Date: 02/01/16
* <p/>
* Network connectivity change receiver to detect changes in network
*/
public class NetworkConnectivityChangeReceiver extends BroadcastReceiver {
public boolean isConnected = false;
@Override
public void onReceive(Context context, Intent intent) {
Timber.i("Network information received %s", intent);
ConnectionCheckEvent event = new ConnectionCheckEvent(isConnected);
if (isNetworkAvailable(context)) {
if (!event.connState()) {
event.isConnected = true;
}
} else {
event.isConnected = false;
}
Timber.i("Network connected %s", event.isConnected);
OpenEventApp.postEventOnUIThread(event);
}
private boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
return (networkInfo != null && networkInfo.isConnected());
}
}