package com.zone.lib.utils.system_hardware_software_receiver_shell.software.wifi;

import com.zone.lib.utils.system_hardware_software_receiver_shell.software.wifi.NetManager.NetStatue;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class NetStatusReceiver extends BroadcastReceiver {
    private NetWorkListener listener;

    public NetStatusReceiver(NetWorkListener listener) {
        this.listener = listener;
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
            ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo info = connectivityManager.getActiveNetworkInfo();
            NetStatue status = NetStatue.NO_WORK;
            if (info != null && info.isAvailable()) {
                if (NetManager.Net_MOBILE.equals(info.getTypeName())) {
                    status = NetStatue.MOBILE;
                } else if (NetManager.Net_WIFI.equals(info.getTypeName())) {
                    status = NetStatue.WIFI;
                }
            }
            if (listener != null) {
                listener.netWorkChange(status);
            }
        }
    }

    public void setNetListener(NetWorkListener listener) {
        this.listener = listener;
    }

    public interface NetWorkListener {
        public abstract void netWorkChange(NetStatue status);
    }
}