private void OnConnectionStateChanged(object sender, NetworkAccess e)
        {
            Console.WriteLine("network state" + e);
            switch (e)
            {
            case NetworkAccess.Internet:
                buttonReceiveMessage.Visibility = ViewStates.Visible;
                buttonWifiScanner.Visibility    = ViewStates.Invisible;
                connectButton.Visibility        = ViewStates.Invisible;
                try
                {
                    UnregisterReceiver(wifiReceiver);
                    wifiReceiver = null;
                }
                catch (IllegalArgumentException ex)
                {
                    Console.WriteLine("Most like receiver was null" + ex.Message);
                }
                break;

            default:
                buttonReceiveMessage.Visibility = ViewStates.Invisible;
                buttonWifiScanner.Visibility    = ViewStates.Visible;
                connectButton.Visibility        = ViewStates.Invisible;
                break;
            }
        }
        public void OnAvailableWifiButtonClick(object sender, System.EventArgs e)
        {
            if (!Utils.HasPermission(ApplicationContext, Utils.ePermission.WifiPermission))
            {
                Toast.MakeText(ApplicationContext, "Application requires permission to Wi-Fi.", ToastLength.Long).Show();
                RequestPermissions(Utils.RequiredWifiPermissions, 0);
            }
            else
            {
                if (!wifiManager.IsWifiEnabled)
                {
                    Toast.MakeText(ApplicationContext, "Turning WiFi ON...", ToastLength.Long).Show();
                    wifiManager.SetWifiEnabled(true);
                }
                if (!Utils.HasPermission(ApplicationContext, Utils.ePermission.LocationPermission))
                {
                    var GetPermissions = Utils.GetPermissions();
                }
                else
                {
                    if (wifiReceiver == null)
                    {
                        wifiReceiver = new WifiReceiver(wifiManager, wifiList, ApplicationContext, passwordText, connectButton);
                    }
                    textMessage.Visibility = ViewStates.Invisible;
                    Toast.MakeText(ApplicationContext, "Searching for Wi-fi...", ToastLength.Long).Show();
                    RegisterReceiver(wifiReceiver, new IntentFilter(WifiManager.ScanResultsAvailableAction));

                    wifiManager.StartScan();
                }
            }
        }
 void AttachCallbacksAndGetIDs()
 {
     passwordText                = FindViewById <EditText>(Resource.Id.passwordText);
     connectButton               = FindViewById <Button>(Resource.Id.wifiConnect);
     textMessage                 = FindViewById <TextView>(Resource.Id.message);
     wifiList                    = FindViewById <ListView>(Resource.Id.wifiList);
     buttonWifiScanner           = FindViewById <Button>(Resource.Id.scanBtn);
     buttonReceiveMessage        = FindViewById <Button>(Resource.Id.ReceiveMessageButton);
     navigation                  = FindViewById <BottomNavigationView>(Resource.Id.navigation);
     wifiManager                 = (WifiManager)ApplicationContext.GetSystemService(Context.WifiService);
     wifiReceiver                = new WifiReceiver(wifiManager, wifiList, ApplicationContext, passwordText, connectButton);
     wifiReceiver.StateChange   += OnConnectionStateChanged;
     buttonWifiScanner.Click    += OnAvailableWifiButtonClick;
     buttonReceiveMessage.Click += OnStartListeningButtonClick;
 }
 void DettachCallbacks()
 {
     if (buttonWifiScanner != null)
     {
         buttonWifiScanner.Click -= OnAvailableWifiButtonClick;
     }
     if (buttonReceiveMessage != null)
     {
         buttonReceiveMessage.Click -= OnStartListeningButtonClick;
     }
     if (wifiReceiver != null)
     {
         wifiReceiver.StateChange -= OnConnectionStateChanged;
     }
     try
     {
         UnregisterReceiver(wifiReceiver);
         wifiReceiver = null;
     }
     catch (IllegalArgumentException ex)
     {
         Console.WriteLine("Most likely receiver was null" + ex.Message);
     }
 }