package com.stxnext.management.android.receivers;
import android.app.Application;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import com.stxnext.management.android.AppIntranet;
import com.stxnext.management.android.web.api.IntranetApi;
public class NetworkStateChangeReceiver extends BroadcastReceiver {
Application app;
IntranetApi api;
public NetworkStateChangeReceiver() {
app = AppIntranet.getApp();
api = IntranetApi.getInstance(app);
}
@Override
public void onReceive(Context context, Intent intent) {
if (intent != null) {
boolean noConnectivity = intent.getBooleanExtra(
ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
boolean currentState = !noConnectivity;
boolean previousState = api.getPreviousConnectionState();
api.setCurrentConnectionState(currentState);
boolean sendOffline = (previousState & !currentState);
boolean sendOnline = (!previousState & currentState);
if (sendOffline) {
Intent i = new Intent(CommandReceiver.ACTION_ACTIVITY_COMMAND);
i.putExtra(CommandReceiver.EXTRA_EVENT_TYPE,
CommandReceiver.EVENT_OFFLINE);
app.sendBroadcast(i);
}
else if (sendOnline) {
Intent i = new Intent(CommandReceiver.ACTION_ACTIVITY_COMMAND);
i.putExtra(CommandReceiver.EXTRA_EVENT_TYPE,
CommandReceiver.EVENT_ONLINE);
app.sendBroadcast(i);
}
}
}
}