package com.tomclaw.mandarin.core;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import com.tomclaw.mandarin.util.Logger;
/**
* Created by solkin on 20/03/14.
*/
public class ConnectivityReceiver extends BroadcastReceiver {
public static final String EXTRA_NETWORK_EVENT = "network_available";
public static final String EXTRA_CONNECTIVITY_STATUS = "connectivity_status";
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnected();
Logger.log("connected: " + isConnected);
sendEventToService(context, isConnected);
}
public static void sendEventToService(Context context, boolean isConnected) {
Intent serviceIntent = new Intent(context, CoreService.class)
.putExtra(EXTRA_NETWORK_EVENT, true)
.putExtra(EXTRA_CONNECTIVITY_STATUS, isConnected);
context.startService(serviceIntent);
}
public IntentFilter getIntentFilter() {
IntentFilter filter = new IntentFilter();
filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
return filter;
}
}