diff --git a/plugin.xml b/plugin.xml index 65421b9..c880552 100644 --- a/plugin.xml +++ b/plugin.xml @@ -57,7 +57,7 @@ - + @@ -72,7 +72,7 @@ - + diff --git a/src/wp8/NetworkStatus.cs b/src/wp/NetworkStatus.cs similarity index 100% rename from src/wp8/NetworkStatus.cs rename to src/wp/NetworkStatus.cs diff --git a/src/wp7/NetworkStatus.cs b/src/wp7/NetworkStatus.cs deleted file mode 100644 index b016f5a..0000000 --- a/src/wp7/NetworkStatus.cs +++ /dev/null @@ -1,129 +0,0 @@ -/* - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -using System; -using System.Diagnostics; -using System.Net; -using System.Net.NetworkInformation; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Documents; -using System.Windows.Ink; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Animation; -using System.Windows.Shapes; -using Microsoft.Phone.Net.NetworkInformation; - -namespace WPCordovaClassLib.Cordova.Commands -{ - - // http://msdn.microsoft.com/en-us/library/microsoft.phone.net.networkinformation(v=VS.92).aspx - // http://msdn.microsoft.com/en-us/library/microsoft.phone.net.networkinformation.devicenetworkinformation(v=VS.92).aspx - - public class NetworkStatus : BaseCommand - { - const string UNKNOWN = "unknown"; - const string ETHERNET = "ethernet"; - const string WIFI = "wifi"; - const string CELL_2G = "2g"; - const string CELL_3G = "3g"; - const string CELL_4G = "4g"; - const string NONE = "none"; - const string CELL = "cellular"; - - private bool HasCallback = false; - - public NetworkStatus() - { - DeviceNetworkInformation.NetworkAvailabilityChanged += new EventHandler(ChangeDetected); - } - - public override void OnResume(object sender, Microsoft.Phone.Shell.ActivatedEventArgs e) - { - this.getConnectionInfo(""); - } - - public void getConnectionInfo(string empty) - { - HasCallback = true; - updateConnectionType(checkConnectionType()); - } - - private string checkConnectionType() - { - if (DeviceNetworkInformation.IsNetworkAvailable) - { - if (DeviceNetworkInformation.IsWiFiEnabled) - { - return WIFI; - } - else - { - return DeviceNetworkInformation.IsCellularDataEnabled ? CELL : UNKNOWN; - } - } - return NONE; - } - - private string checkConnectionType(NetworkInterfaceSubType type) - { - switch (type) - { - case NetworkInterfaceSubType.Cellular_1XRTT: //cell - case NetworkInterfaceSubType.Cellular_GPRS: //cell - return CELL; - case NetworkInterfaceSubType.Cellular_EDGE: //2 - return CELL_2G; - case NetworkInterfaceSubType.Cellular_3G: - case NetworkInterfaceSubType.Cellular_EVDO: //3 - case NetworkInterfaceSubType.Cellular_EVDV: //3 - case NetworkInterfaceSubType.Cellular_HSPA: //3 - return CELL_3G; - case NetworkInterfaceSubType.WiFi: - return WIFI; - case NetworkInterfaceSubType.Unknown: - case NetworkInterfaceSubType.Desktop_PassThru: - default: - return UNKNOWN; - } - } - - void ChangeDetected(object sender, NetworkNotificationEventArgs e) - { - switch (e.NotificationType) - { - case NetworkNotificationType.InterfaceConnected: - updateConnectionType(checkConnectionType(e.NetworkInterface.InterfaceSubtype)); - break; - case NetworkNotificationType.InterfaceDisconnected: - updateConnectionType(NONE); - break; - default: - break; - } - } - - private void updateConnectionType(string type) - { - // This should also implicitly fire offline/online events as that is handled on the JS side - if (this.HasCallback) - { - PluginResult result = new PluginResult(PluginResult.Status.OK, type); - result.KeepCallback = true; - DispatchCommandResult(result); - } - } - } -}