package com.atomjack.vcfp;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class NetworkMonitor {
private boolean connected;
private int currentState;
private Context mContext;
public NetworkMonitor(Context context) {
mContext = context;
register();
}
public void unregister() {
try {
mContext.unregisterReceiver(networkChangeReceiver);
} catch (Exception e) {}
}
public void register() {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
mContext.registerReceiver(networkChangeReceiver, intentFilter);
}
private BroadcastReceiver networkChangeReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction() != null && intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if(activeNetwork == null) {
if(connected != false) {
connected = false;
VoiceControlForPlexApplication.getInstance().onNetworkDisconnected();
}
} else {
int type = activeNetwork.getType();
if (type != currentState || !connected) {
currentState = type;
VoiceControlForPlexApplication.getInstance().onNetworkConnected(currentState);
}
connected = true;
}
/*
if (type == ConnectivityManager.TYPE_WIFI) {
if (!wifiConnected) {
wifiConnected = true;
Logger.d("Wifi Connected");
}
} else if (type == ConnectivityManager.TYPE_MOBILE) {
if (wifiConnected) {
wifiConnected = false;
Logger.d("Wifi Disconnected");
}
}
*/
}
}
};
}