diff --git a/packages/core/connectivity/index.android.ts b/packages/core/connectivity/index.android.ts index c4f8342ac7..13ffbcc9eb 100644 --- a/packages/core/connectivity/index.android.ts +++ b/packages/core/connectivity/index.android.ts @@ -1,4 +1,5 @@ -import { android as androidApp, getNativeApplication } from '../application'; +import {android as androidApp, getNativeApplication} from '../application'; + export enum connectionType { none = 0, wifi = 1, @@ -20,7 +21,7 @@ function getConnectivityManager(): android.net.ConnectivityManager { } function getActiveNetworkInfo(): android.net.NetworkInfo { - let connectivityManager = getConnectivityManager(); + const connectivityManager = getConnectivityManager(); if (!connectivityManager) { return null; } @@ -29,13 +30,17 @@ function getActiveNetworkInfo(): android.net.NetworkInfo { } function getNetworkCapabilities() { - const connectivityManager = getConnectivityManager() as any; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + const connectivityManager: any = getConnectivityManager(); const network = connectivityManager.getActiveNetwork(); const capabilities = connectivityManager.getNetworkCapabilities(network); if (capabilities == null) { return connectionType.none; } + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore const NetworkCapabilities = (android as any).net.NetworkCapabilities; if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) { @@ -65,12 +70,12 @@ export function getConnectionType(): number { if (android.os.Build.VERSION.SDK_INT >= 28) { return getNetworkCapabilities(); } else { - let activeNetworkInfo = getActiveNetworkInfo(); + const activeNetworkInfo = getActiveNetworkInfo(); if (!activeNetworkInfo || !activeNetworkInfo.isConnected()) { return connectionType.none; } - let type = activeNetworkInfo.getTypeName().toLowerCase(); + const type = activeNetworkInfo.getTypeName().toLowerCase(); if (type.indexOf(wifi) !== -1) { return connectionType.wifi; } @@ -96,43 +101,62 @@ export function getConnectionType(): number { } function startMonitoringLegacy(connectionTypeChangedCallback) { - let onReceiveCallback = function onReceiveCallback(context: android.content.Context, intent: android.content.Intent) { - let newConnectionType = getConnectionType(); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const onReceiveCallback = function onReceiveCallback(context: android.content.Context, intent: android.content.Intent) { + const newConnectionType = getConnectionType(); connectionTypeChangedCallback(newConnectionType); }; - let zoneCallback = zonedCallback(onReceiveCallback); + const zoneCallback = zonedCallback(onReceiveCallback); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore androidApp.registerBroadcastReceiver(android.net.ConnectivityManager.CONNECTIVITY_ACTION, zoneCallback); } let callback; let networkCallback; let notifyCallback; + export function startMonitoring(connectionTypeChangedCallback: (newConnectionType: number) => void): void { if (android.os.Build.VERSION.SDK_INT >= 28) { const manager = getConnectivityManager(); if (manager) { notifyCallback = () => { - let newConnectionType = getConnectionType(); - let zoneCallback = zonedCallback(connectionTypeChangedCallback); + const newConnectionType = getConnectionType(); + const zoneCallback = zonedCallback(connectionTypeChangedCallback); zoneCallback(newConnectionType); }; const ConnectivityManager = android.net.ConnectivityManager; if (!networkCallback) { @NativeClass class NetworkCallbackImpl extends ConnectivityManager.NetworkCallback { + // eslint-disable-next-line @typescript-eslint/no-unused-vars onAvailable(network: android.net.Network) { - notifyCallback(); + if (notifyCallback) { + notifyCallback(); + } } + + // eslint-disable-next-line @typescript-eslint/no-unused-vars onCapabilitiesChanged(network: android.net.Network, networkCapabilities: android.net.NetworkCapabilities) { - notifyCallback(); + if (notifyCallback) { + notifyCallback(); + } } + + // eslint-disable-next-line @typescript-eslint/no-unused-vars onLost(network) { - notifyCallback(); + if (notifyCallback) { + notifyCallback(); + } } + onUnavailable() { - notifyCallback(); + if (notifyCallback) { + notifyCallback(); + } } } + networkCallback = NetworkCallbackImpl; } callback = new networkCallback(); @@ -145,7 +169,9 @@ export function startMonitoring(connectionTypeChangedCallback: (newConnectionTyp export function stopMonitoring(): void { if (android.os.Build.VERSION.SDK_INT >= 28) { - const manager = getConnectivityManager() as any; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + const manager = getConnectivityManager(); if (manager && callback) { manager.unregisterNetworkCallback(callback); notifyCallback = null;