blob: 12fc57a22ac99daf44dd825acc25159b55dd6935 [file] [log] [blame]
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*
*/
function Network() {
/*
* The last known Network status.
*/
this.lastReachability = null;
};
Network.prototype.isReachable = function(hostName, successCallback, options) {
this.request = navigator.service.Request('palm://com.palm.connectionmanager', {
method: 'getstatus',
parameters: {},
onSuccess: function(result) {
var status = NetworkStatus.NOT_REACHABLE;
if (result.isInternetConnectionAvailable == true) {
if (result.wan.state == "connected") {
status = NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK;
}
if (result.wifi.state == "connected") {
status = NetworkStatus.REACHABLE_VIA_WIFI_NETWORK;
}
}
successCallback(status);
},
onFailure: function() {}
});
};
Network.prototype.connection = function(hostName, successCallback, options) {
this.request = navigator.service.Request('palm://com.palm.connectionmanager', {
method: 'getstatus',
parameters: {},
onSuccess: function(result) {
successCallback(result);
},
onFailure: function() {}
});
};
Network.prototype.connection.type = function(hostName, successCallback, options) {
navigator.network.isReachable(hostName,successCallback, options);
};
function Connection() {
this.code = null;
this.message = "";
};
Connection.UNKNOWN = 'unknown';
Connection.ETHERNET = 'ethernet';
Connection.WIFI = 'wifi';
Connection.CELL_2G = '2g';
Connection.CELL_3G = '3g';
Connection.CELL_4G = '4g';
Connection.NONE = 'none';
/*
* This class contains information about any NetworkStatus.
* @constructor
*/
function NetworkStatus() {
this.code = null;
this.message = "";
};
NetworkStatus.NOT_REACHABLE = 0;
NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK = 1;
NetworkStatus.REACHABLE_VIA_WIFI_NETWORK = 2;
if (typeof navigator.network == "undefined") navigator.network = new Network();