Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
parent
93e3a48004
commit
b38dea0597
25901 changed files with 9982925 additions and 369 deletions
173
gaia/dev_apps/uitest/js/HW/radio.js
Executable file
173
gaia/dev_apps/uitest/js/HW/radio.js
Executable file
|
|
@ -0,0 +1,173 @@
|
|||
'use strict';
|
||||
|
||||
function IMEI(serviceId) {
|
||||
var IMEIText = document.getElementById('IMEI');
|
||||
|
||||
navigator.mozTelephony.dial('*#06#', serviceId).then(function(call) {
|
||||
return call.result.then(function getIMEI(message) {
|
||||
if (message && (message.serviceCode === 'scImei') &&
|
||||
message.statusMessage) {
|
||||
IMEIText.textContent = message.statusMessage;
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// SIM card information such as ICCID, MSISDN
|
||||
function iccInfo(mozIcc, parentContainer)
|
||||
{
|
||||
var messageText = parentContainer.querySelector('[data-type="icc-message"]');
|
||||
var ICCIDText = parentContainer.querySelector('[data-type="ICCID"]');
|
||||
var MSISDNText = parentContainer.querySelector('[data-type="MSISDN"]');
|
||||
var container = parentContainer.querySelector('[data-type="icc-container"]');
|
||||
|
||||
mozIcc.addEventListener('cardstatechange', update_icc);
|
||||
update_icc();
|
||||
|
||||
function update_icc() {
|
||||
if (mozIcc.cardState == null ||
|
||||
!mozIcc.iccInfo) {
|
||||
container.hidden = true;
|
||||
messageText.textContent = 'Airplane mode on';
|
||||
}
|
||||
else {
|
||||
ICCIDText.textContent = mozIcc.iccInfo.iccid;
|
||||
MSISDNText.textContent = mozIcc.iccInfo.msisdn || 'Unknown';
|
||||
container.hidden = false;
|
||||
messageText.textContent = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// data & voice network information
|
||||
function mobileConnectionInfo(conn, parentContainer)
|
||||
{
|
||||
conn.addEventListener('datachange', update_data_network);
|
||||
conn.addEventListener('voicechange', update_voice_network);
|
||||
update_data_network();
|
||||
update_voice_network();
|
||||
|
||||
function update_data_network() {
|
||||
var container = parentContainer.
|
||||
querySelector('[data-type="data-container"]');
|
||||
var message = parentContainer.
|
||||
querySelector('[data-type="data-message"]');
|
||||
var result = update_network(conn.data, container, message);
|
||||
}
|
||||
function update_voice_network() {
|
||||
var container = parentContainer.
|
||||
querySelector('[data-type="voice-container"]');
|
||||
var message = parentContainer.
|
||||
querySelector('[data-type="voice-message"]');
|
||||
var result = update_network(conn.voice, container, message);
|
||||
}
|
||||
function update_network(network, container, message) {
|
||||
if (!conn || conn.radioState != 'enabled' ||
|
||||
!network || !network.connected || network.emergencyCallsOnly) {
|
||||
container.hidden = true;
|
||||
message.textContent = 'Disconnect';
|
||||
}
|
||||
else {
|
||||
container.querySelector('[data-type="network"]').textContent =
|
||||
network.network.shortName;
|
||||
container.querySelector('[data-type="LAC"]').textContent =
|
||||
network.cell.gsmCellId;
|
||||
container.querySelector('[data-type="CID"]').textContent =
|
||||
network.cell.gsmLocationAreaCode;
|
||||
container.querySelector('[data-type="strength"]').textContent =
|
||||
network.relSignalStrength;
|
||||
container.querySelector('[data-type="type"]').textContent =
|
||||
network.type;
|
||||
container.querySelector('[data-type="roaming"]').textContent =
|
||||
network.roaming;
|
||||
container.hidden = false;
|
||||
message.textContent = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function radioTest() {
|
||||
var iccIdIndex = [];
|
||||
var icc_num = 0;
|
||||
|
||||
if (('mozIccManager' in navigator) &&
|
||||
navigator.mozIccManager &&
|
||||
('mozMobileConnections' in navigator) &&
|
||||
navigator.mozMobileConnections.length > 0) {
|
||||
var iccManager = navigator.mozIccManager;
|
||||
|
||||
// IMEI should be the same no matter which connection is used
|
||||
IMEI(0);
|
||||
|
||||
var template = document.getElementById('connection-template');
|
||||
template.hidden = true;
|
||||
|
||||
if (iccManager.iccIds.length > 0) {
|
||||
for (var i = 0; i < iccManager.iccIds.length; i++) {
|
||||
addIcc(iccManager.iccIds[i], i);
|
||||
showInfo(iccManager.iccIds[i]);
|
||||
}
|
||||
} else {
|
||||
document.getElementById('global-message').textContent =
|
||||
'SIM card not found, insert SIM and turn off airplane mode';
|
||||
}
|
||||
|
||||
iccManager.addEventListener('iccdetected', function(evt) {
|
||||
document.getElementById('global-message').textContent = '';
|
||||
addIcc(evt.iccId);
|
||||
showInfo(evt.iccId);
|
||||
});
|
||||
iccManager.addEventListener('iccundetected', function(evt) {
|
||||
removeIcc(evt.iccId);
|
||||
});
|
||||
}
|
||||
else {
|
||||
alert('navigator.mozIccManager or navigator.mozMobileConnections ' +
|
||||
'not supported');
|
||||
}
|
||||
|
||||
function showInfo(iccId) {
|
||||
var i = iccIdIndex[iccId];
|
||||
var connectionContainer = document.getElementById('connection#' + i);
|
||||
|
||||
// show ICC#
|
||||
connectionContainer.querySelector('[data-type="SIM-number"]')
|
||||
.textContent = i;
|
||||
|
||||
iccInfo(navigator.mozIccManager.getIccById(iccId), connectionContainer);
|
||||
|
||||
mobileConnectionInfo(navigator.mozMobileConnections[i],
|
||||
connectionContainer);
|
||||
}
|
||||
|
||||
function addIcc(iccId) {
|
||||
var connectionContainer = document.getElementById('connection#' + icc_num);
|
||||
if (!connectionContainer) {
|
||||
// copy connection-template then modify it.
|
||||
connectionContainer = template.cloneNode(true);
|
||||
connectionContainer.id = 'connection#' + icc_num;
|
||||
connectionContainer.hidden = false;
|
||||
|
||||
document.getElementById('content').appendChild(connectionContainer);
|
||||
}
|
||||
|
||||
iccIdIndex[iccId] = icc_num;
|
||||
icc_num++;
|
||||
}
|
||||
|
||||
function removeIcc(iccId) {
|
||||
var i = iccIdIndex[iccId];
|
||||
if (i != null) {
|
||||
iccIdIndex[iccId] = null;
|
||||
// re-organize index
|
||||
for (var key in iccIdIndex) {
|
||||
if (iccIdIndex[key] >= i) {
|
||||
iccIdIndex[key]--;
|
||||
}
|
||||
}
|
||||
icc_num--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener('load', radioTest);
|
||||
Loading…
Reference in a new issue