Files
NativeScript/connectivity/connectivity.android.ts
Hristo Deshev 77838ae9c6 Change from "classic" TS 1.6 imports to the default resolution scheme.
- Use relative imports in place of most of our absolute ones.
- Add "private" ambient modules for modules that we need to import using
an absolute path (e.g. when app/.../test-something.ts needs to import
ui/styling/style-scope)
2015-09-29 16:25:49 +03:00

50 lines
1.7 KiB
TypeScript

import appModule = require("application");
import common = require("./connectivity-common");
import utils = require("utils/utils");
global.moduleMerge(common, exports);
var WIFI = "WIFI";
var MOBILE = "MOBILE";
// Get Connection Type
function getConnectivityManager(): android.net.ConnectivityManager {
return utils.ad.getApplicationContext().getSystemService(android.content.Context.CONNECTIVITY_SERVICE);
}
function getActiveNetworkInfo(): android.net.NetworkInfo {
var connectivityManager = getConnectivityManager();
if (!connectivityManager) {
return null;
}
return connectivityManager.getActiveNetworkInfo();
}
export function getConnectionType(): number {
var activeNetworkInfo = getActiveNetworkInfo();
if (!activeNetworkInfo || !activeNetworkInfo.isConnected()) {
return common.connectionType.none;
}
var connectionType = activeNetworkInfo.getTypeName();
switch (connectionType) {
case WIFI:
return common.connectionType.wifi;
case MOBILE:
return common.connectionType.mobile;
}
}
export function startMonitoring(connectionTypeChangedCallback: (newConnectionType: number) => void): void {
var onReceiveCallback = function onReceiveCallback(context: android.content.Context, intent: android.content.Intent) {
var newConnectionType = getConnectionType();
connectionTypeChangedCallback(newConnectionType);
}
appModule.android.registerBroadcastReceiver(android.net.ConnectivityManager.CONNECTIVITY_ACTION, onReceiveCallback);
}
export function stopMonitoring(): void {
appModule.android.unregisterBroadcastReceiver(android.net.ConnectivityManager.CONNECTIVITY_ACTION);
}