package it.fdev.unisaconnect.wifilogin; import it.fdev.unisaconnect.data.SharedPrefDataManager; import it.fdev.utils.Utils; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.util.Log; public class NetworkStateChanged extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { SharedPrefDataManager mDataManager = new SharedPrefDataManager(context); // Check preference if (!mDataManager.isLoginAutomatica()) { // Disable the BroadcastReceiver so it isn't called in the future Log.d(Utils.TAG, "Autologin is disabled, disabling broadcast"); setEnableBroadcastReceiver(context, false); return; } if(AsyncLogin.isLoginRunning) return; Log.v(Utils.TAG, "Autologin is enabled"); Intent i = new Intent(context, LoginManager.class); context.startService(i); } public static void setEnableBroadcastReceiver(Context context, boolean enabled) { Log.v(Utils.TAG, "Setting BroadcastReceiver status to: " + enabled); ComponentName receiver = new ComponentName(context, NetworkStateChanged.class); int state = enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED; context.getPackageManager().setComponentEnabledSetting(receiver, state, PackageManager.DONT_KILL_APP); } }