From 316ce130fc30be48e0cc9e53264665b144530a4c Mon Sep 17 00:00:00 2001 From: Zohaib Iqbal Kambrani <> Date: Sun, 14 Feb 2021 17:20:45 +0300 Subject: [PATCH] Android Wifi Attendance Completed... --- .../services/connector/connector.service.ts | 4 +- .../attendance-options.component.ts | 56 +- .../home/wifi-model/wifi-modal.component.html | 8 +- .../home/wifi-model/wifi-modal.component.scss | 7 +- .../home/wifi-model/wifi-modal.component.ts | 107 +- Mohem/src/assets/imgs/wifiConnect.gif | Bin 268337 -> 12072 bytes Mohem/src/assets/imgs/wifi_icon.png | Bin 1133 -> 1322 bytes Mohem/src/assets/localization/i18n.json | 4 + WifiWizard2.java | 1951 +++++++++++++++++ 9 files changed, 2088 insertions(+), 49 deletions(-) create mode 100644 WifiWizard2.java diff --git a/Mohem/src/app/hmg-common/services/connector/connector.service.ts b/Mohem/src/app/hmg-common/services/connector/connector.service.ts index 2857c3b1..acd8ff0e 100644 --- a/Mohem/src/app/hmg-common/services/connector/connector.service.ts +++ b/Mohem/src/app/hmg-common/services/connector/connector.service.ts @@ -24,8 +24,8 @@ export class ConnectorService { public static timeOut = 120 * 1000; // public static host = 'http://10.50.100.113:6060/'; // development service -public static host = 'https://uat.hmgwebservices.com/'; - // public static host = 'https://hmgwebservices.com/'; +// public static host = 'https://uat.hmgwebservices.com/'; + public static host = 'https://hmgwebservices.com/'; // public static host = 'http://10.50.100.198:6060/'; // public static host = 'http://10.50.100.113:6060/'; // development service /* public static host = 'http://10.50.100.198:6060/'; diff --git a/Mohem/src/app/home/attendance-options/attendance-options.component.ts b/Mohem/src/app/home/attendance-options/attendance-options.component.ts index 6de60b72..d17f3521 100644 --- a/Mohem/src/app/home/attendance-options/attendance-options.component.ts +++ b/Mohem/src/app/home/attendance-options/attendance-options.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, NgZone } from "@angular/core"; +import { Component, OnInit, NgZone, VERSION } from "@angular/core"; import { NFC } from "@ionic-native/nfc/ngx"; import { CommonService } from "src/app/hmg-common/services/common/common.service"; import { Platform } from "@ionic/angular"; @@ -13,6 +13,9 @@ import { attendanceSwipeScannerRequest } from "src/app/home/models/attendanceSwi import { Device } from "@ionic-native/device/ngx"; import { AttendanceService } from "src/app/home/services/attendance.services"; import { Response } from "src/app/hmg-common/services/models/response"; +import { WifiWizard2 } from "@ionic-native/wifi-wizard-2/ngx"; +import { OpenNativeSettings } from '@ionic-native/open-native-settings/ngx'; +import { DevicePermissionsService } from 'src/app/hmg-common/services/device-permissions/device-permissions.service'; @@ -41,7 +44,10 @@ export class AttendanceOptionsComponent implements OnInit { public modalController: ModalController, private device: Device, private attendance_service: AttendanceService, - public ngZone: NgZone + public ngZone: NgZone, + private wifiWizard2: WifiWizard2, + private openNativeSettings: OpenNativeSettings, + private devicePermissionsService:DevicePermissionsService ) {} ngOnInit() { @@ -173,21 +179,51 @@ export class AttendanceOptionsComponent implements OnInit { // Wifi Attendance public async startWifi() { + const isAndroid = this.platform.is("android"); + const isIOS = this.platform.is("ios"); + const isWifiEnabled = await this.wifiWizard2.isWifiEnabled(); + + if(isIOS){ + if(!isWifiEnabled){ + this.showWifiNotEnabled(); + return; + } + + }else if(isAndroid){ + let locationPermission = await this.devicePermissionsService.requestLocationAutherization(); + if(!locationPermission){ + return; + } + + if(!isWifiEnabled){ + this.wifiWizard2.setWifiEnabled(true).then(()=>{ + this.startWifi(); + }).catch((err) => { + console.debug(err); + this.showWifiNotEnabled(); + }); + return; + } + } + + // opening wifi dailog if all above conditions are passed (isWifiEnabled == true) let modal = await this.modalController.create({ component: WifiModalComponent, showBackdrop: true, - backdropDismiss: true, + backdropDismiss: false, }); modal.cssClass = "wifi-modal"; await modal.present(); + } + + - // modal = await this.modalController.create({ - // component: NfcModalComponent, - // showBackdrop: true, - // backdropDismiss: true, - // }); - // modal.cssClass = "nfc-modal"; - // await modal.present(); + showWifiNotEnabled(){ + this.common.showErrorMessageDialog(()=>{ + // this.openNativeSettings.open('wifi').then(()=>{}); + }, + this.ts.trPK("general", "ok"), + this.ts.trPK("general","wifi-not-enable-text")); } } diff --git a/Mohem/src/app/home/wifi-model/wifi-modal.component.html b/Mohem/src/app/home/wifi-model/wifi-modal.component.html index f064e06f..5a87fce4 100644 --- a/Mohem/src/app/home/wifi-model/wifi-modal.component.html +++ b/Mohem/src/app/home/wifi-model/wifi-modal.component.html @@ -3,13 +3,13 @@

-
+
- {{ "general, wifi-connect-message" | translate }} +

{{ "general, wifi-connect-message" | translate }}

- - {{ "general, success-attendance" | translate }} + +

{{ "general, success-attendance" | translate }}

\ No newline at end of file diff --git a/Mohem/src/app/home/wifi-model/wifi-modal.component.scss b/Mohem/src/app/home/wifi-model/wifi-modal.component.scss index 9e51eeaf..f56315b0 100644 --- a/Mohem/src/app/home/wifi-model/wifi-modal.component.scss +++ b/Mohem/src/app/home/wifi-model/wifi-modal.component.scss @@ -32,9 +32,14 @@ width: 270px; } } +.wifi-div { + display: block; + text-align: center; + margin-top: 0%; +} .checked-img { display: block; text-align: center; - margin-top: 25%; + margin-top: 10%; } \ No newline at end of file diff --git a/Mohem/src/app/home/wifi-model/wifi-modal.component.ts b/Mohem/src/app/home/wifi-model/wifi-modal.component.ts index 749ce172..2f59b79c 100644 --- a/Mohem/src/app/home/wifi-model/wifi-modal.component.ts +++ b/Mohem/src/app/home/wifi-model/wifi-modal.component.ts @@ -51,56 +51,87 @@ export class WifiModalComponent implements OnInit { const isIOS = this.platform.is("ios"); if (isAndroid) { - this.wifiWizard2.connect(this.ssid, true, this.password, this.algo).then(async (value) =>{ + let isWifiAvailable = await this.isWifiAvailable(this.ssid); + console.debug("isWifiAvailable: " + isWifiAvailable); + if(isWifiAvailable){ + console.debug("Wifi Credientials: " + this.ssid + " | " + this.password); + this.wifiWizard2.connect(this.ssid, true, this.password, this.algo).then(async (value) =>{ + let ssid_ = await this.wifiWizard2.getConnectedSSID(); + if(ssid_ == this.ssid){ + console.debug("Wifi Connected: Verified Access | " + value + " | " + ssid_); + setTimeout(() => { + this.swipeAttendanceWifi(ssid_); + },2000); + }else{ + this.showErrorInvalidWorkspace(); + } + }) + .catch((err) => { + console.debug(err); + this.showErrorForgetWifiConfiguration(); + }); + }else{ + console.debug("Wifi is not available considered your device is not in range"); + this.showErrorInvalidWorkspace(); + } + + } else if (isIOS) { + this.wifiWizard2.iOSConnectNetwork(this.ssid,this.password).then(async (value) => { let ssid_ = await this.wifiWizard2.getConnectedSSID(); - let bssid = await this.wifiWizard2.getConnectedBSSID(); - console.log("Wifi Connected: Verified Access | " + value + " | " + ssid_ + " | " + bssid); - setTimeout(() => { - this.swipeAttendanceWifi(bssid); - },2000); + if(ssid_ == this.ssid){ + console.debug("Wifi Connected: Verified Access | " + value + " | " + ssid_); + setTimeout(() => { + this.swipeAttendanceWifi(ssid_); + },2000); + }else{ + this.showErrorInvalidWorkspace(); + } }) .catch((err) => { + console.debug(err); this.showErrorInvalidWorkspace(); }); - - } else if (isIOS) { if(this.wifiWizard2.isWifiEnabled){ - this.wifiWizard2.iOSConnectNetwork(this.ssid,this.password).then((value) => { - let bssid = this.wifiWizard2.getConnectedBSSID(); - console.log("Wifi Connected: Verified Access | " + value + " | " + bssid); - setTimeout(() => { - this.swipeAttendanceWifi(this.ssid); - },1000); - }) - .catch((err) => { - this.showErrorInvalidWorkspace(); - }); } else{ - this.common.showErrorMessageDialog(()=>{ - this.openNativeSettings.open('wifi').then(()=>{}); - }, - this.ts.trPK("general", "ok"), - this.ts.trPK("general","wifi-not-enable-text")); + this.showWifiNotEnabled(); } } }​ + showWifiNotEnabled(){ + this.common.showErrorMessageDialog(()=>{ + this.openNativeSettings.open('wifi').then(()=>{}); + }, + this.ts.trPK("general", "ok"), + this.ts.trPK("general","wifi-not-enable-text")); + } + showErrorInvalidWorkspace() { this.closeModal(); this.common.showErrorMessageDialog(()=>{ }, this.ts.trPK("general", "ok"), - this.ts.trPK("general","wifi-not-enable-text")); + this.ts.trPK("general","wifi-connection-failed-text")); + this.disconnectWifi(); + } + + showErrorForgetWifiConfiguration() { + this.closeModal(); + this.common.confirmAlertDialog(() => { + this.openNativeSettings.open('wifi').then(()=>{}); + }, this.ts.trPK('general', 'settings'), () => { + }, this.ts.trPK('general', 'cancel'), this.ts.trPK('vacation-rule', 'confirmation'), this.ts.trPK("general","forget-wifi-connection-text")); + this.disconnectWifi(); } - disconnectWifi(){ + async disconnectWifi() { const isAndroid = this.platform.is("android"); const isIOS = this.platform.is("ios"); if(isAndroid){ - this.wifiWizard2.disconnect(this.ssid); - this.wifiWizard2.remove(this.ssid); - console.log("Wifi Removed"); + await this.wifiWizard2.disconnect(this.ssid).catch((error)=>{ console.error(error) }); + await this.wifiWizard2.remove(this.ssid).catch((error)=>{ console.error(error) }); + console.debug("Wifi Removed"); } } @@ -117,7 +148,9 @@ export class WifiModalComponent implements OnInit { this.attendance_service .attendanceSwipeScanner(request, () => { - console.log("Error inside in swipe attendance"); + console.debug("Error inside in swipe attendance"); + this.closeModal(); + this.disconnectWifi(); }) .subscribe((result: Response) => { this.disconnectWifi(); @@ -127,10 +160,10 @@ export class WifiModalComponent implements OnInit { }); setTimeout(() => { this.closeModal(); - this.common.openHome(); - }, 6000); + // this.common.openAttenTrackingpage(); + }, 4000); }else{ - console.log(result); + console.debug(result); this.closeModal(); } }); @@ -140,4 +173,14 @@ export class WifiModalComponent implements OnInit { this.modalController.dismiss(); } + async isWifiAvailable(ssid:string){ + + let avaialble_wifi = await this.wifiWizard2.scan(); + let find_ = avaialble_wifi.find(element => { + return element.SSID == ssid; + }); + console.log("find: " + find_.SSID); + return find_.SSID == ssid; + } + } diff --git a/Mohem/src/assets/imgs/wifiConnect.gif b/Mohem/src/assets/imgs/wifiConnect.gif index 44e153500c99ae9a90783e2217f8980fdb1a8e7c..cdf56666a06f523672c7042cabc54b4877b548c4 100644 GIT binary patch literal 12072 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 U)M&x{#(xmZxoye*b-udyZ*obE$N&HU literal 268337 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

+ * Reconnect to the currently active access point, if we are currently disconnected. This may + * result in the asynchronous delivery of state change events. + */ + private boolean reconnect(CallbackContext callbackContext) { + Log.d(TAG, "WifiWizard2: reconnect entered."); + + if (wifiManager.reconnect()) { + callbackContext.success("Reconnected network"); + return true; + } else { + callbackContext.error("ERROR_RECONNECT"); + return false; + } + } + + /** + * Reassociate Network + *

+ * Reconnect to the currently active access point, even if we are already connected. This may + * result in the asynchronous delivery of state change events. + */ + private boolean reassociate(CallbackContext callbackContext) { + Log.d(TAG, "WifiWizard2: reassociate entered."); + + if (wifiManager.reassociate()) { + callbackContext.success("Reassociated network"); + return true; + } else { + callbackContext.error("ERROR_REASSOCIATE"); + return false; + } + } + + /** + * This method uses the callbackContext.success method to send a JSONArray of the currently + * configured networks. + * + * @param callbackContext A Cordova callback context + * @return true if network disconnected, false if failed + */ + private boolean listNetworks(CallbackContext callbackContext) { + Log.d(TAG, "WifiWizard2: listNetworks entered."); + @SuppressLint("MissingPermission") List wifiList = wifiManager.getConfiguredNetworks(); + + JSONArray returnList = new JSONArray(); + + for (WifiConfiguration wifi : wifiList) { + returnList.put(wifi.SSID); + } + + callbackContext.success(returnList); + + return true; + } + + /** + * This method uses the callbackContext.success method to send a JSONArray of the scanned + * networks. + * + * @param callbackContext A Cordova callback context + * @param data JSONArray with [0] == JSONObject + * @return true + */ + private boolean getScanResults(CallbackContext callbackContext, JSONArray data) { + + if (cordova.hasPermission(ACCESS_FINE_LOCATION)) { + + List scanResults = wifiManager.getScanResults(); + + JSONArray returnList = new JSONArray(); + + Integer numLevels = null; + + if (!validateData(data)) { + callbackContext.error("GET_SCAN_RESULTS_INVALID_DATA"); + Log.d(TAG, "WifiWizard2: getScanResults invalid data"); + return false; + } else if (!data.isNull(0)) { + try { + JSONObject options = data.getJSONObject(0); + + if (options.has("numLevels")) { + Integer levels = options.optInt("numLevels"); + + if (levels > 0) { + numLevels = levels; + } else if (options.optBoolean("numLevels", false)) { + // use previous default for {numLevels: true} + numLevels = 5; + } + } + } catch (JSONException e) { + e.printStackTrace(); + callbackContext.error(e.toString()); + return false; + } + } + + for (ScanResult scan : scanResults) { + /* + * @todo - breaking change, remove this notice when tidying new release and explain changes, e.g.: + * 0.y.z includes a breaking change to WifiWizard2.getScanResults(). + * Earlier versions set scans' level attributes to a number derived from wifiManager.calculateSignalLevel. + * This update returns scans' raw RSSI value as the level, per Android spec / APIs. + * If your application depends on the previous behaviour, we have added an options object that will modify behaviour: + * - if `(n == true || n < 2)`, `*.getScanResults({numLevels: n})` will return data as before, split in 5 levels; + * - if `(n > 1)`, `*.getScanResults({numLevels: n})` will calculate the signal level, split in n levels; + * - if `(n == false)`, `*.getScanResults({numLevels: n})` will use the raw signal level; + */ + + int level; + + if (numLevels == null) { + level = scan.level; + } else { + level = wifiManager.calculateSignalLevel(scan.level, numLevels); + } + + JSONObject lvl = new JSONObject(); + try { + lvl.put("level", level); + lvl.put("SSID", scan.SSID); + lvl.put("BSSID", scan.BSSID); + lvl.put("frequency", scan.frequency); + lvl.put("capabilities", scan.capabilities); + lvl.put("timestamp", scan.timestamp); + + if (API_VERSION >= 23) { // Marshmallow + lvl.put("channelWidth", scan.channelWidth); + lvl.put("centerFreq0", scan.centerFreq0); + lvl.put("centerFreq1", scan.centerFreq1); + } else { + lvl.put("channelWidth", JSONObject.NULL); + lvl.put("centerFreq0", JSONObject.NULL); + lvl.put("centerFreq1", JSONObject.NULL); + } + + returnList.put(lvl); + } catch (JSONException e) { + e.printStackTrace(); + callbackContext.error(e.toString()); + return false; + } + } + + callbackContext.success(returnList); + return true; + + } else { + + requestLocationPermission(SCAN_RESULTS_CODE); + return true; + } + + } + + /** + * This method uses the callbackContext.success method. It starts a wifi scanning + * + * @param callbackContext A Cordova callback context + * @return true if started was successful + */ + private boolean startScan(CallbackContext callbackContext) { + + if (wifiManager.startScan()) { + callbackContext.success(); + return true; + } else { + callbackContext.error("STARTSCAN_FAILED"); + return false; + } + } + + /** + * This method returns the connected WiFi network ID (if connected) + * + * @return -1 if no network connected, or network id if connected + */ + private int getConnectedNetId() { + int networkId = -1; + + WifiInfo info = wifiManager.getConnectionInfo(); + + if (info == null) { + Log.d(TAG, "Unable to read wifi info"); + return networkId; + } + + networkId = info.getNetworkId(); + + if (networkId == -1) { + Log.d(TAG, "NO_CURRENT_NETWORK_FOUND"); + } + + return networkId; + } + + /** + * Get Network ID from SSID + * + * @param callbackContext A Cordova callback context + * @param data JSON Array, with [0] being SSID to connect + * @return true if network connected, false if failed + */ + private boolean getSSIDNetworkID(CallbackContext callbackContext, JSONArray data) { + Log.d(TAG, "WifiWizard2: getSSIDNetworkID entered."); + + if (!validateData(data)) { + callbackContext.error("GET_SSID_INVALID_DATA"); + Log.d(TAG, "WifiWizard2: getSSIDNetworkID invalid data."); + return false; + } + + String ssidToGetNetworkID = ""; + + try { + ssidToGetNetworkID = data.getString(0); + } catch (Exception e) { + callbackContext.error(e.getMessage()); + Log.d(TAG, e.getMessage()); + return false; + } + + int networkIdToConnect = ssidToNetworkId(ssidToGetNetworkID); + callbackContext.success(networkIdToConnect); + + return true; + } + + /** + * This method returns the connected WiFi network ID (if connected) + * + * @param callbackContext A Cordova callback context + * @return -1 if no network connected, or network id if connected + */ + private boolean getConnectedNetworkID(CallbackContext callbackContext) { + int networkId = getConnectedNetId(); + + if (networkId == -1) { + callbackContext.error("GET_CONNECTED_NET_ID_ERROR"); + return false; + } + + callbackContext.success(networkId); + return true; + } + + /** + * This method retrieves the SSID for the currently connected network + * + * @param callbackContext A Cordova callback context + * @return true if SSID found, false if not. + */ + private boolean getConnectedSSID(CallbackContext callbackContext) { + return getWifiServiceInfo(callbackContext, false); + } + + /** + * This method retrieves the BSSID for the currently connected network + * + * @param callbackContext A Cordova callback context + * @return true if SSID found, false if not. + */ + private boolean getConnectedBSSID(CallbackContext callbackContext) { + return getWifiServiceInfo(callbackContext, true); + } + + /** + * This method retrieves the WifiInformation for the (SSID or BSSID) currently connected network. + * + * @param callbackContext A Cordova callback context + * @param basicIdentifier A flag to get BSSID if true or SSID if false. + * @return true if SSID found, false if not. + */ + private boolean getWifiServiceInfo(CallbackContext callbackContext, boolean basicIdentifier) { + if (API_VERSION >= 23 && !cordova.hasPermission(ACCESS_FINE_LOCATION)) { //Android 9 (Pie) or newer + requestLocationPermission(WIFI_SERVICE_INFO_CODE); + bssidRequested = basicIdentifier; + return true; + } else { + WifiInfo info = wifiManager.getConnectionInfo(); + + if (info == null) { + callbackContext.error("UNABLE_TO_READ_WIFI_INFO"); + return false; + } + + // Only return SSID or BSSID when actually connected to a network + SupplicantState state = info.getSupplicantState(); + if (!state.equals(SupplicantState.COMPLETED)) { + callbackContext.error("CONNECTION_NOT_COMPLETED"); + return false; + } + + String serviceInfo; + if (basicIdentifier) { + serviceInfo = info.getBSSID(); + } else { + serviceInfo = info.getSSID(); + } + + if (serviceInfo == null || serviceInfo.isEmpty() || serviceInfo == "0x") { + callbackContext.error("WIFI_INFORMATION_EMPTY"); + return false; + } + + // http://developer.android.com/reference/android/net/wifi/WifiInfo.html#getSSID() + if (serviceInfo.startsWith("\"") && serviceInfo.endsWith("\"")) { + serviceInfo = serviceInfo.substring(1, serviceInfo.length() - 1); + } + + callbackContext.success(serviceInfo); + return true; + } + } + + /** + * This method retrieves the current WiFi status + * + * @param callbackContext A Cordova callback context + * @return true if WiFi is enabled, fail will be called if not. + */ + private boolean isWifiEnabled(CallbackContext callbackContext) { + boolean isEnabled = wifiManager.isWifiEnabled(); + callbackContext.success(isEnabled ? "1" : "0"); + return isEnabled; + } + + /** + * This method takes a given String, searches the current list of configured WiFi networks, and + * returns the networkId for the network if the SSID matches. If not, it returns -1. + */ + private int ssidToNetworkId(String ssid) { + + try { + + int maybeNetId = Integer.parseInt(ssid); + Log.d(TAG, "ssidToNetworkId passed SSID is integer, probably a Network ID: " + ssid); + return maybeNetId; + + } catch (NumberFormatException e) { + + List currentNetworks = wifiManager.getConfiguredNetworks(); + int networkId = -1; + + // For each network in the list, compare the SSID with the given one + for (WifiConfiguration test : currentNetworks) { + if (test.SSID != null && test.SSID.equals(ssid)) { + networkId = test.networkId; + } + } + + return networkId; + + } + } + + /** + * This method enables or disables the wifi + */ + private boolean setWifiEnabled(CallbackContext callbackContext, JSONArray data) { + if (!validateData(data)) { + callbackContext.error("SETWIFIENABLED_INVALID_DATA"); + Log.d(TAG, "WifiWizard2: setWifiEnabled invalid data"); + return false; + } + + String status = ""; + + try { + status = data.getString(0); + } catch (Exception e) { + callbackContext.error(e.getMessage()); + Log.d(TAG, e.getMessage()); + return false; + } + + if (wifiManager.setWifiEnabled(status.equals("true"))) { + callbackContext.success(); + return true; + } else { + callbackContext.error("ERROR_SETWIFIENABLED"); + return false; + } + } + + /** + * This method will check if WiFi is enabled, and enable it if not, waiting up to 10 seconds for + * it to enable + * + * @return True if wifi is enabled, false if unable to enable wifi + */ + private boolean verifyWifiEnabled() { + + Log.d(TAG, "WifiWizard2: verifyWifiEnabled entered."); + + if (!wifiManager.isWifiEnabled()) { + + Log.i(TAG, "Enabling wi-fi..."); + + if (wifiManager.setWifiEnabled(true)) { + Log.i(TAG, "Wi-fi enabled"); + } else { + Log.e(TAG, "VERIFY_ERROR_ENABLE_WIFI"); + return false; + } + + // This happens very quickly, but need to wait for it to enable. A little busy wait? + int count = 0; + + while (!wifiManager.isWifiEnabled()) { + if (count >= 10) { + Log.i(TAG, "Took too long to enable wi-fi, quitting"); + return false; + } + + Log.i(TAG, "Still waiting for wi-fi to enable..."); + + try { + Thread.sleep(1000L); + } catch (InterruptedException ie) { + // continue + } + + count++; + } + + // If we make it this far, wifi should be enabled by now + return true; + + } else { + + return true; + + } + + } + + /** + * Format and return WiFi IPv4 Address + * @return + */ + private String[] getWiFiIPAddress() { + WifiInfo wifiInfo = wifiManager.getConnectionInfo(); + int ip = wifiInfo.getIpAddress(); + + String ipString = formatIP(ip); + String subnet = ""; + + try { + InetAddress inetAddress = InetAddress.getByName(ipString); + subnet = getIPv4Subnet(inetAddress); + } catch (Exception e) { + } + + return new String[]{ipString, subnet}; + } + + /** + * Get WiFi Router IP from DHCP + * @return + */ + private String getWiFiRouterIP() { + DhcpInfo dhcp = wifiManager.getDhcpInfo(); + int ip = dhcp.gateway; + return formatIP(ip); + } + + /** + * Format IPv4 Address + * @param ip + * @return + */ + private String formatIP(int ip) { + return String.format( + "%d.%d.%d.%d", + (ip & 0xff), + (ip >> 8 & 0xff), + (ip >> 16 & 0xff), + (ip >> 24 & 0xff) + ); + } + + /** + * Get IPv4 Subnet + * @param inetAddress + * @return + */ + public static String getIPv4Subnet(InetAddress inetAddress) { + try { + NetworkInterface ni = NetworkInterface.getByInetAddress(inetAddress); + List intAddrs = ni.getInterfaceAddresses(); + for (InterfaceAddress ia : intAddrs) { + if (!ia.getAddress().isLoopbackAddress() && ia.getAddress() instanceof Inet4Address) { + return getIPv4SubnetFromNetPrefixLength(ia.getNetworkPrefixLength()).getHostAddress() + .toString(); + } + } + } catch (Exception e) { + } + return ""; + } + + /** + * Get Subnet from Prefix Length + * @param netPrefixLength + * @return + */ + public static InetAddress getIPv4SubnetFromNetPrefixLength(int netPrefixLength) { + try { + int shift = (1 << 31); + for (int i = netPrefixLength - 1; i > 0; i--) { + shift = (shift >> 1); + } + String subnet = + Integer.toString((shift >> 24) & 255) + "." + Integer.toString((shift >> 16) & 255) + "." + + Integer.toString((shift >> 8) & 255) + "." + Integer.toString(shift & 255); + return InetAddress.getByName(subnet); + } catch (Exception e) { + } + return null; + } + + /** + * Validate JSON data + */ + private boolean validateData(JSONArray data) { + try { + if (data == null || data.get(0) == null) { + callbackContext.error("DATA_IS_NULL"); + return false; + } + return true; + } catch (Exception e) { + callbackContext.error(e.getMessage()); + } + return false; + } + + /** + * Request ACCESS_FINE_LOCATION Permission + * @param requestCode + */ + protected void requestLocationPermission(int requestCode) { + cordova.requestPermission(this, requestCode, ACCESS_FINE_LOCATION); + } + + /** + * Handle Android Permission Requests + */ + public void onRequestPermissionResult(int requestCode, String[] permissions, int[] grantResults) + throws JSONException { + + for (int r : grantResults) { + if (r == PackageManager.PERMISSION_DENIED) { + callbackContext.error( "PERMISSION_DENIED" ); + return; + } + } + + switch (requestCode) { + case SCAN_RESULTS_CODE: + getScanResults(callbackContext, passedData); // Call method again after permissions approved + break; + case SCAN_CODE: + scan(callbackContext, passedData); // Call method again after permissions approved + break; + case LOCATION_REQUEST_CODE: + callbackContext.success("PERMISSION_GRANTED"); + break; + case WIFI_SERVICE_INFO_CODE: + getWifiServiceInfo(callbackContext, bssidRequested); + break; + } + } + + /** + * Figure out what the highest priority network in the network list is and return that priority + */ + private static int getMaxWifiPriority(final WifiManager wifiManager) { + final List configurations = wifiManager.getConfiguredNetworks(); + int maxPriority = 0; + for (WifiConfiguration config : configurations) { + if (config.priority > maxPriority) { + maxPriority = config.priority; + } + } + + Log.d(TAG, "WifiWizard: Found max WiFi priority of " + + maxPriority); + + return maxPriority; + } + + /** + * Check if device is connected to Internet + */ + private boolean canConnectToInternet(CallbackContext callbackContext, boolean doPing) { + + try { + + if ( hasInternetConnection(doPing) ) { + // Send success as 1 to return true from Promise (handled in JS) + callbackContext.success("1"); + return true; + } else { + callbackContext.success("0"); + return false; + } + + } catch (Exception e) { + callbackContext.error(e.getMessage()); + Log.d(TAG, e.getMessage()); + return false; + } + } + + /** + * Check if we can conenct to router via HTTP connection + * + * @param callbackContext + * @param doPing + * @return boolean + */ + private boolean canConnectToRouter(CallbackContext callbackContext, boolean doPing) { + + try { + + if (hasConnectionToRouter(doPing)) { + // Send success as 1 to return true from Promise (handled in JS) + callbackContext.success("1"); + return true; + } else { + callbackContext.success("0"); + return false; + } + + } catch (Exception e) { + callbackContext.error(e.getMessage()); + Log.d(TAG, e.getMessage()); + return false; + } + } + + /** + * Check if The Device Is Connected to Internet + * + * @return true if device connect to Internet or return false if not + */ + public boolean hasInternetConnection(boolean doPing) { + if (connectivityManager != null) { + NetworkInfo info = connectivityManager.getActiveNetworkInfo(); + if (info != null) { + if (info.isConnected()) { + if( doPing ){ + return pingCmd("8.8.8.8"); + } else { + return isHTTPreachable("http://www.google.com/"); + } + } + } + } + return false; + } + + /** + * Check for connection to router by pinging router IP + * @return + */ + public boolean hasConnectionToRouter( boolean doPing ) { + + String ip = getWiFiRouterIP(); + + if ( ip == null || ip.equals("0.0.0.0") || connectivityManager == null) { + + return false; + + } else { + + NetworkInfo info = connectivityManager.getActiveNetworkInfo(); + + if (info != null && info.isConnected()) { + + if( doPing ){ + return pingCmd(ip); + } else { + return isHTTPreachable("http://" + ip + "/"); + } + } else { + return false; + } + + } + + } + + /** + * Check if HTTP connection to URL is reachable + * + * @param checkURL + * @return boolean + */ + public static boolean isHTTPreachable(String checkURL) { + try { + // make a URL to a known source + URL url = new URL(checkURL); + + // open a connection to that source + HttpURLConnection urlConnect = (HttpURLConnection) url.openConnection(); + + // trying to retrieve data from the source. If there + // is no connection, this line will fail + Object objData = urlConnect.getContent(); + + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + return true; + } + + /** + * Method to Ping IP Address + * + * @param addr IP address you want to ping it + * @return true if the IP address is reachable + */ + public boolean pingCmd(String addr) { + + try { + + String ping = "ping -c 1 -W 3 " + addr; + Runtime run = Runtime.getRuntime(); + Process pro = run.exec(ping); + + try { + pro.waitFor(); + } catch (InterruptedException e) { + Log.e(TAG, "InterruptedException error.", e); + } + + int exit = pro.exitValue(); + + Log.d(TAG, "pingCmd exitValue" + exit); + + if (exit == 0) { + return true; + } else { + // ip address is not reachable + return false; + } + } catch (UnknownHostException e) { + Log.d(TAG, "UnknownHostException: " + e.getMessage()); + } catch (Exception e) { + Log.d(TAG, e.getMessage()); + } + + return false; + } + + /** + * Network Changed Broadcast Receiver + */ + private class NetworkChangedReceiver extends BroadcastReceiver { + + @Override + public void onReceive(final Context context, final Intent intent) { + + if (WifiManager.NETWORK_STATE_CHANGED_ACTION.equals(intent.getAction())) { + + Log.d(TAG, "NETWORK_STATE_CHANGED_ACTION"); + + NetworkInfo networkInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); + WifiInfo info = WifiWizard2.this.wifiManager.getConnectionInfo(); + + // Checks that you're connected to the desired network + if (networkInfo.isConnected() && info.getNetworkId() > -1) { + + final String ssid = info.getSSID().replaceAll("\"", ""); + final String bssid = info.getBSSID(); + + Log.d(TAG, "Connected to '" + ssid + "' @ " + bssid); + + // Verify the desired network ID is what we actually connected to + if ( desired != null && info.getNetworkId() == desired.apId ) { + onSuccessfulConnection(); + } else { + Log.e(TAG, "Could not connect to the desired ssid: " + ssid); + } + + } + + } + + } + + } + + /** + * Register Receiver for Network Changed to handle BindALL + * @param netID + */ + private void registerBindALL(int netID){ + + // Bind all requests to WiFi network (only necessary for Lollipop+ - API 21+) + if( API_VERSION > 21 ){ + Log.d(TAG, "registerBindALL: registering net changed receiver"); + desired = new AP(netID,null,null); + cordova.getActivity().getApplicationContext().registerReceiver(networkChangedReceiver, NETWORK_STATE_CHANGED_FILTER); + } else { + Log.d(TAG, "registerBindALL: API older than 21, bindall ignored."); + } + } + + /** + * Maybe reset bind all after disconnect/disable + * + * This method unregisters the network changed receiver, as well as setting null for + * bindProcessToNetwork or setProcessDefaultNetwork to prevent future sockets from application + * being routed through Wifi. + */ + private void maybeResetBindALL(){ + + Log.d(TAG, "maybeResetBindALL"); + + // desired should have a value if receiver is registered + if( desired != null ){ + + if( API_VERSION > 21 ){ + + try { + // Unregister net changed receiver -- should only be registered in API versions > 21 + cordova.getActivity().getApplicationContext().unregisterReceiver(networkChangedReceiver); + } catch (Exception e) {} + + } + + // Lollipop OS or newer + if ( API_VERSION >= 23 ) { + connectivityManager.bindProcessToNetwork(null); + } else if( API_VERSION >= 21 && API_VERSION < 23 ){ + connectivityManager.setProcessDefaultNetwork(null); + } + + if ( API_VERSION > 21 && networkCallback != null) { + + try { + // Same behavior as releaseNetworkRequest + connectivityManager.unregisterNetworkCallback(networkCallback); // Added in API 21 + } catch (Exception e) {} + } + + networkCallback = null; + previous = null; + desired = null; + + } + + } + + /** + * Will un-bind to network (use Cellular network) + * + * @param callbackContext A Cordova callback context + */ + private void resetBindAll(CallbackContext callbackContext) { + Log.d(TAG, "WifiWizard2: resetBindALL"); + + try { + maybeResetBindALL(); + callbackContext.success("Successfully reset BindALL"); + } catch (Exception e) { + Log.e(TAG, "InterruptedException error.", e); + callbackContext.error("ERROR_NO_BIND_ALL"); + } + } + + /** + * Will bind to network (use Wifi network) + * + * @param callbackContext A Cordova callback context + */ + private void setBindAll(CallbackContext callbackContext) { + Log.d(TAG, "WifiWizard2: setBindALL"); + + try { + int networkId = getConnectedNetId(); + registerBindALL(networkId); + callbackContext.success("Successfully bindAll to network"); + } catch (Exception e) { + Log.e(TAG, "InterruptedException error.", e); + callbackContext.error("ERROR_CANT_BIND_ALL"); + } + } + + + /** + * Called after successful connection to WiFi when using BindAll feature + * + * This method is called by the NetworkChangedReceiver after network changed action, and confirming that we are in fact connected to wifi, + * and the wifi we're connected to, is the correct network set in enable, or connect. + */ + private void onSuccessfulConnection() { + // On Lollipop+ the OS routes network requests through mobile data + // when phone is attached to a wifi that doesn't have Internet connection + // We use the ConnectivityManager to force bind all requests from our process + // to the wifi without internet + // see https://android-developers.googleblog.com/2016/07/connecting-your-app-to-wi-fi-device.html + + // Marshmallow OS or newer + if ( API_VERSION >= 23 ) { + + Log.d(TAG, "BindALL onSuccessfulConnection API >= 23"); + + // Marshmallow (API 23+) or newer uses bindProcessToNetwork + final NetworkRequest request = new NetworkRequest.Builder() + .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) + .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) //removeCapability added for hotspots without internet + .build(); + + networkCallback = new ConnectivityManager.NetworkCallback() { + @Override + public void onAvailable(Network network) { + if( connectivityManager.bindProcessToNetwork(network) ){ + Log.d(TAG, "bindProcessToNetwork TRUE onSuccessfulConnection"); + } else { + Log.d(TAG, "bindProcessToNetwork FALSE onSuccessfulConnection"); + } + } + }; + + connectivityManager.requestNetwork(request, networkCallback); + + // Only lollipop (API 21 && 22) use setProcessDefaultNetwork, API < 21 already does this by default + } else if( API_VERSION >= 21 && API_VERSION < 23 ){ + + Log.d(TAG, "BindALL onSuccessfulConnection API >= 21 && < 23"); + + // Lollipop (API 21-22) use setProcessDefaultNetwork (deprecated in API 23 - Marshmallow) + final NetworkRequest request = new NetworkRequest.Builder() + .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) + .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) //removeCapability addded for hotspots without internet + .build(); + + networkCallback = new ConnectivityManager.NetworkCallback() { + @Override + public void onAvailable(Network network) { + connectivityManager.setProcessDefaultNetwork(network); + } + }; + + connectivityManager.requestNetwork(request, networkCallback); + + } else { + // Technically we should never reach this with older API, but just in case + Log.d(TAG, "BindALL onSuccessfulConnection API older than 21, no need to do any binding"); + networkCallback = null; + previous = null; + desired = null; + + } + } + + /** + * Class to store finished boolean in + */ + private class ScanSyncContext { + + public boolean finished = false; + } + + /** + * Used for storing access point information + */ + private static class AP { + final String ssid, bssid; + final int apId; + + AP(int apId, final String ssid, final String bssid) { + this.apId = apId; + this.ssid = ssid; + this.bssid = bssid; + } + + } +} \ No newline at end of file

`6`={A8@eD3X_RVvnJb*kqRBHNp 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 diff --git a/Mohem/src/assets/imgs/wifi_icon.png b/Mohem/src/assets/imgs/wifi_icon.png index dd0d51bc9b8f8c1450add71b028066ad2bd706b1..9d112b8284ce7b0542f7c90c2d44a82f6c86a455 100644 GIT binary patch delta 1281 zcmV+c1^)W&2&xK@Ie*+qL_t(&fxTMGk<&mBZ7A;R3@{O(i;f5fpejrRmeBMld-n9Mf{{Ei&M$y(IBFb=$ z*r$dg5pCJ$w#mz5-*f7PD2PpoXoBly$1V>jWEqKx2&h{>$sZ|3vZ1(q5uPTTehh8_1eb)fYL> zJTfe{%bJW!%zv7^T)X;k5-r-gBBD>qBSWx?S;fA=tZVKt?e9%q&ZCH;v$Z3V8o!u7 zH9?6$yfAJwk#l@N6ehA(Rx4;4jtNbeSQz8t*z@bk{x#P+f$YVlE<`;fqj!-7kZFh9 zx?w^g==-q1O4;29WY0uBBtJHJxr`WS2EXa5h$MC(5q}g4MO&LW{1CSf_ctk(gG&^2nlT~Wrt4~e<|KKR`HL&_X6f-SL_B6 zw2C14waLqcV`5`*K6UzX(bk0B*|N0qK&WFevZAeJJTd+LFvOa?yv!M9&vA~r8j)K> z;&CWHiAm3TI-j0>U5gdi-IYVsEFFh{k2a5PBY!8S$}13D43I|;IEqQr9D{7soSVGN zxL{ZXCi;jZ+ASke!dBFUNYsC&rnw*bq=Dg<;&`K#;IZ%_e$9L@jmF90Q zFu!&wtVe;zBU(<_fQ6m2dQ4*xQmqaYZM}4y95(1YNt`>zccqovCNF17n@gop8~>V` zk$*-~4f9_7+<9Csm-@S7RhJ_;~QEUb_>of6WFg~hfy`v(0+xy$pImjJ1Oon~Wpu4rqsTYpe@ z@}-WKc;}C4;#LRzu1cWCHWy;bVPq+CKl zLsDtfQ{-~NS;N(kV!DJ?%_79KTBY!%7c9sO2aIol{&&7$sNouAG{PWS6<@9CK!0dx zMYIz%^g_Hp#qMg+`a9RKvFQ5!s4Y+*@lEwwc_(zjAkXp79^A6H= delta 1091 zcmV-J1ibsI3hfAxIe#BXL_t(&fz?{=aoaEq1$+HpZ%}U#ZBUP(4XO?55j;Xha5qpV zh_ZpRfigkm3D}eS=r9OKf)shZ@{X6p5lKAa>jAQ{)>7?ZjM))Uhq?29N@F3Si}&+l ztzD|iR0Al0^+a^Q{JL?=S0b7)$11>Apd}L;8lVN+cuqKLSAQ&T_5z|k5uIUbxd3NR zQzh#coV{-b)B~syW+b8$%(zqR-Qn32)@m*x3$O;@4g$muUCsBX0hMvF9nPH-XP-1C zojU9gImnq&HE;>gF>6|7JQM*XqQ?k8)h#vv?5rzf+K+0W*en!D&;J6TAY&|ETqGIa zCAx#DKVgnw=0q<=aNJ;u%u%=i}M-rZQ{P5A+< zI&pxuxgvb+#w^8`b>To4>81jX?#wgFNSM$cX2x1c!;55runPX%hZ{R8L7pOl?co<% zfKR1PdobhlnKM9voqduKNu>#taE^oc8P!TY=#aiJ+dIf+j^5`5e z&3%r{)_+kzP`@$J0(pT?-P;;iw`%<%vhLOOg1o*Ev3^pQIQtpqd8c$}-%N_LSD9z- zz*6TxOx6+Kb()C!Tg0zpW#Pcqgh( zKqYx`!C6D7(8%5^^I$2wivg-4*ihgJrZ;J-`+vG{{@?85pVrzzwZU8ccpo|Sr!i)= zr0?EGSHu8a&o|SI{2Lt=YdQplSn8SajHX-2dA8bJwwP_IA_)bP*o+1<>|12MpR}eU z4AEqaF{^f-i0E6vp6i+??4dqWGd^cL%MTf#<=aps@LwKTaN`iTkRKo;J@Y{x4`#LW znSaqwins%OEW|&f^{H2XN`CCfN{B<(>(n!$G_NG?xh^N|M4DWo8SLTK02=H0CZnOI z76lDV?Vp{yvw(VFLtT8arxR(SEmGt}4=I$A9!m&H@rz&tpM%$8xo`rYtT0HbjOdME zIFhkyaVmZ(oO?5w+Rw?QNdmG-mWCjuGJkG_S@wZ$;^xZdUjXGmj>0pXZ8g(slW(Qa zU;pwqezn%}7fkNC+3PM`t+k= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'))) { + return false; + } + } + return true; + } + + @Override + public void initialize(CordovaInterface cordova, CordovaWebView webView) { + super.initialize(cordova, webView); + this.wifiManager = (WifiManager) cordova.getActivity().getApplicationContext().getSystemService(Context.WIFI_SERVICE); + this.connectivityManager = (ConnectivityManager) cordova.getActivity().getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); + } + + @Override + public boolean execute(String action, JSONArray data, CallbackContext callbackContext) + throws JSONException { + + this.callbackContext = callbackContext; + this.passedData = data; + + // Actions that do not require WiFi to be enabled + if (action.equals(IS_WIFI_ENABLED)) { + this.isWifiEnabled(callbackContext); + return true; + } else if (action.equals(SET_WIFI_ENABLED)) { + this.setWifiEnabled(callbackContext, data); + return true; + } else if (action.equals(REQUEST_FINE_LOCATION)) { + this.requestLocationPermission(LOCATION_REQUEST_CODE); + return true; + } else if (action.equals(GET_WIFI_ROUTER_IP_ADDRESS)) { + + String ip = getWiFiRouterIP(); + + if ( ip == null || ip.equals("0.0.0.0")) { + callbackContext.error("NO_VALID_ROUTER_IP_FOUND"); + return true; + } else { + callbackContext.success(ip); + return true; + } + + } else if (action.equals(GET_WIFI_IP_ADDRESS) || action.equals(GET_WIFI_IP_INFO)) { + String[] ipInfo = getWiFiIPAddress(); + String ip = ipInfo[0]; + String subnet = ipInfo[1]; + if (ip == null || ip.equals("0.0.0.0")) { + callbackContext.error("NO_VALID_IP_IDENTIFIED"); + return true; + } + + // Return only IP address + if( action.equals( GET_WIFI_IP_ADDRESS ) ){ + callbackContext.success(ip); + return true; + } + + // Return Wifi IP Info (subnet and IP as JSON object) + JSONObject result = new JSONObject(); + + result.put("ip", ip); + result.put("subnet", subnet); + + callbackContext.success(result); + return true; + } + + boolean wifiIsEnabled = verifyWifiEnabled(); + if (!wifiIsEnabled) { + callbackContext.error("WIFI_NOT_ENABLED"); + return true; // Even though enable wifi failed, we still return true and handle error in callback + } + + // Actions that DO require WiFi to be enabled + if (action.equals(ADD_NETWORK)) { + this.add(callbackContext, data); + } else if (action.equals(IS_CONNECTED_TO_INTERNET)) { + this.canConnectToInternet(callbackContext, true); + } else if (action.equals(CAN_CONNECT_TO_INTERNET)) { + this.canConnectToInternet(callbackContext, false); + } else if (action.equals(CAN_PING_WIFI_ROUTER)) { + this.canConnectToRouter(callbackContext, true); + } else if (action.equals(CAN_CONNECT_TO_ROUTER)) { + this.canConnectToRouter(callbackContext, false); + } else if (action.equals(ENABLE_NETWORK)) { + this.enable(callbackContext, data); + } else if (action.equals(DISABLE_NETWORK)) { + this.disable(callbackContext, data); + } else if (action.equals(GET_SSID_NET_ID)) { + this.getSSIDNetworkID(callbackContext, data); + } else if (action.equals(REASSOCIATE)) { + this.reassociate(callbackContext); + } else if (action.equals(RECONNECT)) { + this.reconnect(callbackContext); + } else if (action.equals(SCAN)) { + this.scan(callbackContext, data); + } else if (action.equals(REMOVE_NETWORK)) { + this.remove(callbackContext, data); + } else if (action.equals(CONNECT_NETWORK)) { + this.connect(callbackContext, data); + } else if (action.equals(DISCONNECT_NETWORK)) { + this.disconnectNetwork(callbackContext, data); + } else if (action.equals(LIST_NETWORKS)) { + this.listNetworks(callbackContext); + } else if (action.equals(START_SCAN)) { + this.startScan(callbackContext); + } else if (action.equals(GET_SCAN_RESULTS)) { + this.getScanResults(callbackContext, data); + } else if (action.equals(DISCONNECT)) { + this.disconnect(callbackContext); + } else if (action.equals(GET_CONNECTED_SSID)) { + this.getConnectedSSID(callbackContext); + } else if (action.equals(GET_CONNECTED_BSSID)) { + this.getConnectedBSSID(callbackContext); + } else if (action.equals(GET_CONNECTED_NETWORKID)) { + this.getConnectedNetworkID(callbackContext); + } else if (action.equals(RESET_BIND_ALL)) { + this.resetBindAll(callbackContext); + } else if (action.equals(SET_BIND_ALL)) { + this.setBindAll(callbackContext); + } else { + callbackContext.error("Incorrect action parameter: " + action); + // The ONLY time to return FALSE is when action does not exist that was called + // Returning false results in an INVALID_ACTION error, which translates to an error callback invoked on the JavaScript side + // All other errors should be handled with the fail callback (callbackContext.error) + // @see https://cordova.apache.org/docs/en/latest/guide/platforms/android/plugin.html + return false; + } + + return true; + } + + /** + * Scans networks and sends the list back on the success callback + * + * @param callbackContext A Cordova callback context + * @param data JSONArray with [0] == JSONObject + * @return true + */ + private boolean scan(final CallbackContext callbackContext, final JSONArray data) { + Log.v(TAG, "Entering startScan"); + final ScanSyncContext syncContext = new ScanSyncContext(); + + final BroadcastReceiver receiver = new BroadcastReceiver() { + public void onReceive(Context context, Intent intent) { + Log.v(TAG, "Entering onReceive"); + + synchronized (syncContext) { + if (syncContext.finished) { + Log.v(TAG, "In onReceive, already finished"); + return; + } + syncContext.finished = true; + context.unregisterReceiver(this); + } + + Log.v(TAG, "In onReceive, success"); + getScanResults(callbackContext, data); + } + }; + + final Context context = cordova.getActivity().getApplicationContext(); + + Log.v(TAG, "Submitting timeout to threadpool"); + + cordova.getThreadPool().submit(new Runnable() { + + public void run() { + + Log.v(TAG, "Entering timeout"); + + final int TEN_SECONDS = 10000; + + try { + Thread.sleep(TEN_SECONDS); + } catch (InterruptedException e) { + Log.e(TAG, "Received InterruptedException e, " + e); + // keep going into error + } + + Log.v(TAG, "Thread sleep done"); + + synchronized (syncContext) { + if (syncContext.finished) { + Log.v(TAG, "In timeout, already finished"); + return; + } + syncContext.finished = true; + context.unregisterReceiver(receiver); + } + + Log.v(TAG, "In timeout, error"); + callbackContext.error("TIMEOUT_WAITING_FOR_SCAN"); + } + + }); + + Log.v(TAG, "Registering broadcastReceiver"); + context.registerReceiver( + receiver, + new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION) + ); + + if (!wifiManager.startScan()) { + Log.v(TAG, "Scan failed"); + callbackContext.error("SCAN_FAILED"); + return false; + } + + Log.v(TAG, "Starting wifi scan"); + return true; + } + + /** + * This methods adds a network to the list of available WiFi networks. If the network already + * exists, then it updates it. + * + * @return true if add successful, false if add fails + * @params callbackContext A Cordova callback context. + * @params data JSON Array with [0] == SSID, [1] == password + */ + private boolean add(CallbackContext callbackContext, JSONArray data) { + + Log.d(TAG, "WifiWizard2: add entered."); + + // Initialize the WifiConfiguration object + WifiConfiguration wifi = new WifiConfiguration(); + + try { + // data's order for ANY object is + // 0: SSID + // 1: authentication algorithm, + // 2: authentication information + // 3: whether or not the SSID is hidden + String newSSID = data.getString(0); + String newPass = data.getString(2); + String authType = data.getString(1); + boolean isHiddenSSID = data.getBoolean(3); + + wifi.hiddenSSID = this.hiddenSSID; + + if(API_VERSION >= 29){ + // Remove Double Quotes + newSSID = newSSID.replace("\"", ""); + newPass = newPass.replace("\"", ""); + } + + if (authType.equals("WPA") || authType.equals("WPA2")) { + /** + * WPA Data format: + * 0: ssid + * 1: auth + * 2: password + * 3: isHiddenSSID + */ + wifi.SSID = newSSID; + wifi.preSharedKey = newPass; + + wifi.status = WifiConfiguration.Status.ENABLED; + wifi.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); + wifi.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); + wifi.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); + wifi.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); + wifi.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); + wifi.allowedProtocols.set(WifiConfiguration.Protocol.RSN); + wifi.allowedProtocols.set(WifiConfiguration.Protocol.WPA); + + wifi.networkId = ssidToNetworkId(newSSID); + + } else if (authType.equals("WEP")) { + /** + * WEP Data format: + * 0: ssid + * 1: auth + * 2: password + * 3: isHiddenSSID + */ + wifi.SSID = newSSID; + + if (getHexKey(newPass)) { + wifi.wepKeys[0] = newPass; + } else { + wifi.wepKeys[0] = "\"" + newPass + "\""; + } + wifi.wepTxKeyIndex = 0; + + wifi.status = WifiConfiguration.Status.ENABLED; + wifi.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); + wifi.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); + wifi.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); + wifi.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); + wifi.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); + wifi.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); + wifi.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED); + wifi.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); + wifi.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); + wifi.allowedProtocols.set(WifiConfiguration.Protocol.RSN); + wifi.allowedProtocols.set(WifiConfiguration.Protocol.WPA); + + wifi.networkId = ssidToNetworkId(newSSID); + + } else if (authType.equals("NONE")) { + /** + * OPEN Network data format: + * 0: ssid + * 1: auth + * 2: + * 3: isHiddenSSID + */ + wifi.SSID = newSSID; + wifi.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); + wifi.networkId = ssidToNetworkId(newSSID); + + } else { + + Log.d(TAG, "Wifi Authentication Type Not Supported."); + callbackContext.error("AUTH_TYPE_NOT_SUPPORTED"); + return false; + + } + + // Set network to highest priority (deprecated in API >= 26) + if(API_VERSION < 26) { + wifi.priority = getMaxWifiPriority(wifiManager) + 1; + } + + if(API_VERSION >= 29) { + this.networkCallback = new ConnectivityManager.NetworkCallback() { + @Override + public void onAvailable(Network network) { + connectivityManager.bindProcessToNetwork(network); + Log.d(TAG, "onAvailable"); + callbackContext.success("onAvailable"); + } + @Override + public void onUnavailable() { + super.onUnavailable(); + Log.d(TAG, "onUnavailable"); + callbackContext.error("onUnavailable"); + } + }; + + // Connect Wifi using WifiNetworkSpecifier + WifiNetworkSpecifier.Builder builder = new WifiNetworkSpecifier.Builder(); + builder.setIsHiddenSsid(this.hiddenSSID); + + if (newSSID.endsWith("#")) { + newSSID = newSSID.replace("#", ""); + builder.setSsidPattern(new PatternMatcher(newSSID, PatternMatcher.PATTERN_PREFIX)); + }else { + builder.setSsid(newSSID); + } + builder.setWpa2Passphrase(newPass); + + WifiNetworkSpecifier wifiNetworkSpecifier = builder.build(); + + NetworkRequest.Builder networkRequestBuilder1 = new NetworkRequest.Builder(); + networkRequestBuilder1.addTransportType(NetworkCapabilities.TRANSPORT_WIFI); + //removeCapability added for hotspots without internet + networkRequestBuilder1.removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); + networkRequestBuilder1.setNetworkSpecifier(wifiNetworkSpecifier); + + NetworkRequest nr = networkRequestBuilder1.build(); + //timeout add because "No devices found" wasn't handled correct and doesn't throw Unavailable + connectivityManager.requestNetwork(nr, this.networkCallback, 40000); + + } else { + // After processing authentication types, add or update network + if(wifi.networkId == -1) { // -1 means SSID configuration does not exist yet + + int newNetId = wifiManager.addNetwork(wifi); + if( newNetId > -1 ){ + callbackContext.success( newNetId ); + } else { + callbackContext.error( "ERROR_ADDING_NETWORK" ); + } + + } else { + + int updatedNetID = wifiManager.updateNetwork(wifi); + + if(updatedNetID > -1) { + callbackContext.success( updatedNetID ); + } else { + callbackContext.error("ERROR_UPDATING_NETWORK"); + } + + } + } + + // WifiManager configurations are presistent for API 26+ + if(API_VERSION < 26) { + wifiManager.saveConfiguration(); // Call saveConfiguration for older < 26 API + } + + return true; + + + } catch (Exception e) { + callbackContext.error(e.getMessage()); + Log.d(TAG, e.getMessage()); + return false; + } + } + + /** + * This method connects a network. + * + * @param callbackContext A Cordova callback context + * @param data JSON Array, with [0] being SSID to connect + */ + private void enable(CallbackContext callbackContext, JSONArray data) { + Log.d(TAG, "WifiWizard2: enable entered."); + + if (!validateData(data)) { + callbackContext.error("ENABLE_INVALID_DATA"); + Log.d(TAG, "WifiWizard2: enable invalid data."); + return; + } + + String ssidToEnable = ""; + String bindAll = "false"; + String waitForConnection = "false"; + + try { + ssidToEnable = data.getString(0); + bindAll = data.getString(1); + waitForConnection = data.getString(2); + } catch (Exception e) { + callbackContext.error(e.getMessage()); + Log.d(TAG, e.getMessage()); + return; + } + + int networkIdToEnable = ssidToNetworkId(ssidToEnable); + + try { + + if(networkIdToEnable > -1) { + + Log.d(TAG, "Valid networkIdToEnable: attempting connection"); + + // Bind all requests to WiFi network (only necessary for Lollipop+ - API 21+) + if(bindAll.equals("true")) { + registerBindALL(networkIdToEnable); + } + + if(wifiManager.enableNetwork(networkIdToEnable, true)) { + + if( waitForConnection.equals("true") ){ + callbackContext.success("NETWORK_ENABLED"); + return; + } else { + new ConnectAsync().execute(callbackContext, networkIdToEnable); + return; + } + + } else { + callbackContext.error("ERROR_ENABLING_NETWORK"); + return; + } + + } else { + callbackContext.error("UNABLE_TO_ENABLE"); + return; + } + + } catch (Exception e) { + callbackContext.error(e.getMessage()); + Log.d(TAG, e.getMessage()); + return; + } + + } + + /** + * This method disables a network. + * + * @param callbackContext A Cordova callback context + * @param data JSON Array, with [0] being SSID to connect + * @return true if network disconnected, false if failed + */ + private boolean disable(CallbackContext callbackContext, JSONArray data) { + Log.d(TAG, "WifiWizard2: disable entered."); + + if (!validateData(data)) { + callbackContext.error("DISABLE_INVALID_DATA"); + Log.d(TAG, "WifiWizard2: disable invalid data"); + return false; + } + + String ssidToDisable = ""; + + try { + ssidToDisable = data.getString(0); + } catch (Exception e) { + callbackContext.error(e.getMessage()); + Log.d(TAG, e.getMessage()); + return false; + } + + int networkIdToDisconnect = ssidToNetworkId(ssidToDisable); + + try { + + if (networkIdToDisconnect > 0) { + if(wifiManager.disableNetwork(networkIdToDisconnect)){ + maybeResetBindALL(); + callbackContext.success("Network " + ssidToDisable + " disabled!"); + } else { + callbackContext.error("UNABLE_TO_DISABLE"); + } + return true; + } else { + callbackContext.error("DISABLE_NETWORK_NOT_FOUND"); + Log.d(TAG, "WifiWizard2: Network not found to disable."); + return false; + } + + } catch (Exception e) { + + callbackContext.error(e.getMessage()); + Log.d(TAG, e.getMessage()); + return false; + + } + } + + /** + * This method removes a network from the list of configured networks. + * + * @param callbackContext A Cordova callback context + * @param data JSON Array, with [0] being SSID to remove + * @return true if network removed, false if failed + */ + private boolean remove(CallbackContext callbackContext, JSONArray data) { + Log.d(TAG, "WifiWizard2: remove entered."); + + if (!validateData(data)) { + callbackContext.error("REMOVE_INVALID_DATA"); + Log.d(TAG, "WifiWizard2: remove data invalid"); + return false; + } + + // TODO: Verify the type of data! + try { + String ssidToDisconnect = data.getString(0); + + if(API_VERSION >= 29){ + if (networkCallback != null) { + connectivityManager.unregisterNetworkCallback(networkCallback); + networkCallback = null; + } + connectivityManager.releaseNetworkRequest(pending_intent_net_req_received); +// WifiNetworkSuggestion wifiNetworkSuggestion = new WifiNetworkSuggestion.Builder() +// .setSsid(ssidToDisconnect) +// .build(); +// List list = new ArrayList(); +// list.add(wifiNetworkSuggestion); +// wifiManager.removeNetworkSuggestions(list); + callbackContext.success("NETWORK_REMOVED"); + return true; + } + + + int networkIdToRemove = ssidToNetworkId(ssidToDisconnect); + + if (networkIdToRemove > -1) { + + if( wifiManager.removeNetwork(networkIdToRemove) ){ + + // Configurations persist by default in API 26+ + if (API_VERSION < 26) { + wifiManager.saveConfiguration(); + } + + callbackContext.success("NETWORK_REMOVED"); + + } else { + + callbackContext.error( "UNABLE_TO_REMOVE" ); + } + + return true; + } else { + callbackContext.error("REMOVE_NETWORK_NOT_FOUND"); + Log.d(TAG, "WifiWizard2: Network not found, can't remove."); + return false; + } + } catch (Exception e) { + callbackContext.error(e.getMessage()); + Log.d(TAG, e.getMessage()); + return false; + } + } + + /** + * This method connects a network. + * + * @param callbackContext A Cordova callback context + * @param data JSON Array, with [0] being SSID to connect + */ + private void connect(CallbackContext callbackContext, JSONArray data) { + Log.d(TAG, "WifiWizard2: connect entered."); + + if(API_VERSION >= 29){ + // No need to connect, its already connected via WifiNetworkSpecifier at add(...) method + callbackContext.success("NETWORK_CONNECTION_COMPLETED"); + return; + } + + if (!validateData(data)) { + callbackContext.error("CONNECT_INVALID_DATA"); + Log.d(TAG, "WifiWizard2: connect invalid data."); + return; + } + + String ssidToConnect = ""; + String bindAll = "false"; + + try { + ssidToConnect = data.getString(0); + bindAll = data.getString(1); + } catch (Exception e) { + callbackContext.error(e.getMessage()); + Log.d(TAG, e.getMessage()); + return; + } + + int networkIdToConnect = ssidToNetworkId(ssidToConnect); + + if (networkIdToConnect > -1) { + // We disable the network before connecting, because if this was the last connection before + // a disconnect(), this will not reconnect. + + Log.d(TAG, "Valid networkIdToConnect: attempting connection"); + + // Bind all requests to WiFi network (only necessary for Lollipop+ - API 21+) + if( bindAll.equals("true") ){ + registerBindALL(networkIdToConnect); + } + + if (API_VERSION >= 26) { +// wifiManager.disconnect(); + } else { + wifiManager.disableNetwork(networkIdToConnect); + } + + wifiManager.enableNetwork(networkIdToConnect, true); + + if (API_VERSION >= 26) { +// wifiManager.reassociate(); + } + + new ConnectAsync().execute(callbackContext, networkIdToConnect); + return; + + } else { + callbackContext.error("INVALID_NETWORK_ID_TO_CONNECT"); + return; + } + } + + /** + * Wait for connection before returning error or success + * + * This method will wait up to 60 seconds for WiFi connection to specified network ID be in COMPLETED state, otherwise will return error. + * + * @param callbackContext + * @param networkIdToConnect + * @return + */ + private class ConnectAsync extends AsyncTask { + CallbackContext callbackContext; + @Override + protected void onPostExecute(String[] results) { + String error = results[0]; + String success = results[1]; + if (error != null) { + this.callbackContext.error(error); + } else { + this.callbackContext.success(success); + } + } + + @Override + protected String[] doInBackground(Object... params) { + this.callbackContext = (CallbackContext) params[0]; + int networkIdToConnect = (Integer) params[1]; + + final int TIMES_TO_RETRY = 15; + for (int i = 0; i < TIMES_TO_RETRY; i++) { + + WifiInfo info = wifiManager.getConnectionInfo(); + NetworkInfo.DetailedState connectionState = info + .getDetailedStateOf(info.getSupplicantState()); + + boolean isConnected = + // need to ensure we're on correct network because sometimes this code is + // reached before the initial network has disconnected + info.getNetworkId() == networkIdToConnect && ( + connectionState == NetworkInfo.DetailedState.CONNECTED || + // Android seems to sometimes get stuck in OBTAINING_IPADDR after it has received one + (connectionState == NetworkInfo.DetailedState.OBTAINING_IPADDR + && info.getIpAddress() != 0) + ); + + if (isConnected) { + return new String[]{ null, "NETWORK_CONNECTION_COMPLETED" }; + } + + Log.d(TAG, "WifiWizard: Got " + connectionState.name() + " on " + (i + 1) + " out of " + TIMES_TO_RETRY); + final int ONE_SECOND = 1000; + + try { + Thread.sleep(ONE_SECOND); + } catch (InterruptedException e) { + Log.e(TAG, e.getMessage()); + return new String[]{ "INTERRUPT_EXCEPT_WHILE_CONNECTING", null }; + } + } + Log.d(TAG, "WifiWizard: Network failed to finish connecting within the timeout"); + return new String[]{ "CONNECT_FAILED_TIMEOUT", null }; + } + } + + /** + * This method disconnects a network. + * + * @param callbackContext A Cordova callback context + * @param data JSON Array, with [0] being SSID to connect + * @return true if network disconnected, false if failed + */ + private boolean disconnectNetwork(CallbackContext callbackContext, JSONArray data) { + Log.d(TAG, "WifiWizard2: disconnectNetwork entered."); + if (!validateData(data)) { + callbackContext.error("DISCONNECT_NET_INVALID_DATA"); + Log.d(TAG, "WifiWizard2: disconnectNetwork invalid data"); + return false; + } + + String ssidToDisconnect = ""; + + // TODO: Verify type of data here! + try { + ssidToDisconnect = data.getString(0); + } catch (Exception e) { + callbackContext.error(e.getMessage()); + Log.d(TAG, e.getMessage()); + return false; + } + + if(API_VERSION < 29){ + int networkIdToDisconnect = ssidToNetworkId(ssidToDisconnect); + + if(networkIdToDisconnect > 0) { + + if(wifiManager.disableNetwork(networkIdToDisconnect)) { + + maybeResetBindALL(); + + // We also remove the configuration from the device (use "disable" to keep config) + if( wifiManager.removeNetwork(networkIdToDisconnect) ){ + callbackContext.success("Network " + ssidToDisconnect + " disconnected and removed!"); + } else { + callbackContext.error("DISCONNECT_NET_REMOVE_ERROR"); + Log.d(TAG, "WifiWizard2: Unable to remove network!"); + return false; + } + + } else { + callbackContext.error("DISCONNECT_NET_DISABLE_ERROR"); + Log.d(TAG, "WifiWizard2: Unable to disable network!"); + return false; + } + + return true; + } else { + callbackContext.error("DISCONNECT_NET_ID_NOT_FOUND"); + Log.d(TAG, "WifiWizard2: Network not found to disconnect."); + return false; + } + } else { + try{ + ConnectivityManager cm = (ConnectivityManager) cordova.getActivity().getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); + cm.unregisterNetworkCallback(this.networkCallback); + connectivityManager.bindProcessToNetwork(null); + return true; + } + catch(Exception e) { + callbackContext.error(e.getMessage()); + return false; + } + } + } + + /** + * This method disconnects the currently connected network. + * + * @param callbackContext A Cordova callback context + * @return true if network disconnected, false if failed + */ + private boolean disconnect(CallbackContext callbackContext) { + Log.d(TAG, "WifiWizard2: disconnect entered."); + + if (wifiManager.disconnect()) { + maybeResetBindALL(); + callbackContext.success("Disconnected from current network"); + return true; + } else { + callbackContext.error("ERROR_DISCONNECT"); + return false; + } + } + + /** + * Reconnect Network + *