Skip to content
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.

Commit

Permalink
Merge pull request #10735 from EdgarChen/bug_874769_iccHelper
Browse files Browse the repository at this point in the history
Bug 874769 - [Gaia] Use new WebAPI to access card state related attribute/event
  • Loading branch information
crh0716 committed Jul 8, 2013
2 parents 97d72fd + 01649f9 commit 2f49c77
Show file tree
Hide file tree
Showing 44 changed files with 311 additions and 219 deletions.
3 changes: 3 additions & 0 deletions apps/communications/contacts/index.html
Expand Up @@ -42,6 +42,9 @@
<!-- Loading FB indexedDB related stuff -->
<script defer type="text/javascript" src="/contacts/js/fixed_header.js"></script>

<!-- IccHelper -->
<script defer type="text/javascript" src="/shared/js/icc_helper.js"></script>

</head>

<body role="application" class="app-contacts">
Expand Down
11 changes: 4 additions & 7 deletions apps/communications/contacts/js/contacts_settings.js
Expand Up @@ -31,9 +31,8 @@ contacts.Settings = (function() {
// Initialise the settings screen (components, listeners ...)
var init = function initialize() {
// To listen to card state changes is needed for enabling import from SIM
var mobileConn = navigator.mozMobileConnection;
if (mobileConn) {
mobileConn.oncardstatechange = Contacts.cardStateChanged;
if (IccHelper.enabled) {
IccHelper.oncardstatechange = Contacts.cardStateChanged;
}
fb.init(function onFbInit() {
initContainers();
Expand Down Expand Up @@ -119,14 +118,12 @@ contacts.Settings = (function() {
};

var checkSIMCard = function checkSIMCard() {
var conn = window.navigator.mozMobileConnection;

if (!conn) {
if (!IccHelper.enabled) {
enableSIMImport(false);
return;
}

enableSIMImport(conn.cardState);
enableSIMImport(IccHelper.cardState);
};

// Disables/Enables the actions over the sim import functionality
Expand Down
11 changes: 4 additions & 7 deletions apps/communications/contacts/test/unit/contacts_settings_test.js
Expand Up @@ -3,6 +3,7 @@ requireApp('communications/contacts/test/unit/mock_contacts.js');
requireApp('communications/contacts/test/unit/mock_asyncstorage.js');
requireApp('communications/contacts/test/unit/mock_fb.js');
requireApp('communications/contacts/test/unit/mock_sdcard.js');
requireApp('communications/contacts/test/unit/mock_icc_helper.js');
requireApp('communications/dialer/test/unit/mock_confirm_dialog.js');
requireApp('communications/contacts/test/unit/mock_vcard_parser.js');
requireApp('communications/contacts/js/import_utils.js');
Expand All @@ -18,12 +19,12 @@ if (!window.Rest) {
window.self = null;

var mocksHelperForContactSettings = new MocksHelper([
'Contacts', 'asyncStorage', 'fb', 'ConfirmDialog', 'VCFReader'
'Contacts', 'asyncStorage', 'fb', 'ConfirmDialog', 'VCFReader', 'IccHelper'
]);
mocksHelperForContactSettings.init();

suite('Contacts settings', function() {
var checkForCard, real_, realNavigatorConn;
var checkForCard, real_;
var mocksHelper = mocksHelperForContactSettings;

function stub(additionalCode, ret) {
Expand Down Expand Up @@ -147,9 +148,6 @@ suite('Contacts settings', function() {
setup(function() {
document.body.innerHTML = dom;

realNavigatorConn = window.navigator.mozMobileConnection;
navigator.mozMobileConnection = { cardState: 'ready' };

contacts.Settings.init();
checkForCard = utils.sdcard.checkStorageCard;
mocksHelper.setup();
Expand Down Expand Up @@ -194,8 +192,7 @@ suite('Contacts settings', function() {

teardown(function() {
document.body.innerHTML = '';
window.navigator.mozMobileConnection = realNavigatorConn;
utils.sdcard.checkStorageCard = checkForCard;
utils.sdcard.checkStorageCard = checkForCard;
mocksHelper.teardown();
MockasyncStorage.clear();
});
Expand Down
17 changes: 17 additions & 0 deletions apps/communications/contacts/test/unit/mock_icc_helper.js
@@ -0,0 +1,17 @@
'use strict';

var MockIccHelper = {
mSetup: function icch_mSetup() {},

mTeardown: function icch_mTeardown() {},

addEventListener: function icch_addEventListener(event, handler) {},

get enabled() {
return true;
},

get cardState() {
return 'ready';
}
};
3 changes: 3 additions & 0 deletions apps/communications/dialer/index.html
Expand Up @@ -30,6 +30,9 @@
<!-- for perf-measurement related utilities -->
<script defer src='/shared/js/performance_testing_helper.js'></script>

<!-- IccHelper -->
<script defer src='/shared/js/icc_helper.js'></script>

<!-- Lazy load all the things:
<link rel="stylesheet" type="text/css" href="/shared/style/action_menu.css">
<link rel="stylesheet" type="text/css" href="/shared/style/confirm.css">
Expand Down
2 changes: 1 addition & 1 deletion apps/communications/dialer/js/telephony_helper.js
Expand Up @@ -21,7 +21,7 @@ var TelephonyHelper = (function() {
var telephony = navigator.mozTelephony;
if (telephony) {
var conn = window.navigator.mozMobileConnection;
var cardState = conn.cardState;
var cardState = IccHelper.cardState;
var emergencyOnly = conn.voice.emergencyCallsOnly;
var call;

Expand Down
11 changes: 11 additions & 0 deletions apps/communications/dialer/test/unit/mock_icc_helper.js
@@ -0,0 +1,11 @@
var MockIccHelper = {
addEventListener: function icch_addEventListener(event, handler) {},

get enabled() {
return true;
},

get cardState() {
return 'ready';
}
};
10 changes: 10 additions & 0 deletions apps/communications/dialer/test/unit/telephony_helper_test.js
Expand Up @@ -3,6 +3,7 @@ requireApp('communications/dialer/test/unit/mock_moztelephony.js');
requireApp('communications/dialer/test/unit/mock_confirm_dialog.js');
requireApp('communications/dialer/test/unit/mock_l10n.js');
requireApp('communications/dialer/test/unit/mock_mozMobileConnection.js');
requireApp('communications/dialer/test/unit/mock_icc_helper.js');


if (!this.ConfirmDialog) {
Expand All @@ -17,13 +18,18 @@ if (!this.LazyL10n) {
this.LazyL10n = null;
}

if (!this.IccHelper) {
this.IccHelper = null;
}

suite('telephony helper', function() {
var subject;
var realMozTelephony;
var realL10n;
var realLazyL10n;
var realConfirmDialog;
var realMozMobileConnection;
var realIccHelper;
var real_;

suiteSetup(function() {
Expand All @@ -43,6 +49,9 @@ suite('telephony helper', function() {

realConfirmDialog = window.ConfirmDialog;
window.ConfirmDialog = window.MockConfirmDialog;

realIccHelper = window.IccHelper;
window.IccHelper = MockIccHelper;
});

test('dial another call when there\'s a connected call', function(done) {
Expand All @@ -65,6 +74,7 @@ suite('telephony helper', function() {
window.LazyL10n = realLazyL10n;
window.ConfirmDialog = realConfirmDialog;
navigator.mozMobileConnection = realMozMobileConnection;
window.IccHelper = realIccHelper;
_ = real_;
});
});
20 changes: 10 additions & 10 deletions apps/communications/ftu/js/sim_manager.js
Expand Up @@ -16,9 +16,9 @@ var SimManager = {
_ = navigator.mozL10n.get;

IccHelper.addEventListener('icccardlockerror',
this.handleUnlockError.bind(this));
this.mobConn.addEventListener('cardstatechange',
this.handleCardState.bind(this));
this.handleUnlockError.bind(this));
IccHelper.addEventListener('cardstatechange',
this.handleCardState.bind(this));

this.alreadyImported = false;

Expand Down Expand Up @@ -79,9 +79,9 @@ var SimManager = {
},

available: function sm_available() {
if (!this.mobConn)
if (!IccHelper.enabled)
return false;
return (this.mobConn.cardState === 'ready');
return (IccHelper.cardState === 'ready');
},

/**
Expand All @@ -99,7 +99,7 @@ var SimManager = {
handleCardState: function sm_handleCardState(callback) {
SimManager.checkSIMButton();
this.accessCallback = (typeof callback === 'function') ? callback : null;
switch (this.mobConn.cardState) {
switch (IccHelper.cardState) {
case 'pinRequired':
this.showPinScreen();
break;
Expand All @@ -113,7 +113,7 @@ var SimManager = {
break;
default:
if (this.accessCallback) {
this.accessCallback(this.mobConn.cardState === 'ready');
this.accessCallback(IccHelper.cardState === 'ready');
}
break;
}
Expand Down Expand Up @@ -191,7 +191,7 @@ var SimManager = {
UIManager.pukcodeScreen.classList.remove('show');
UIManager.xckcodeScreen.classList.add('show');

switch (this.mobConn.cardState) {
switch (IccHelper.cardState) {
case 'networkLocked':
UIManager.unlockSimHeader.textContent = _('nckcode');
UIManager.xckLabel.textContent = _('type_nck');
Expand Down Expand Up @@ -226,7 +226,7 @@ var SimManager = {
unlock: function sm_unlock() {
this._unlocked = false;

switch (this.mobConn.cardState) {
switch (IccHelper.cardState) {
case 'pinRequired':
this.unlockPin();
break;
Expand Down Expand Up @@ -315,7 +315,7 @@ var SimManager = {
unlockXck: function sm_unlockXck() {
var xck = UIManager.xckInput.value;
var lockType;
switch (this.mobConn.cardState) {
switch (IccHelper.cardState) {
case 'networkLocked':
lockType = 'nck';
break;
Expand Down
10 changes: 10 additions & 0 deletions apps/communications/ftu/test/unit/mock_icc_helper.js
@@ -1,6 +1,12 @@
'use strict';

var MockIccHelper = {
mProps: {'cardState': null},

setProperty: function _setProperty(property, newState) {
this.mProps[property] = newState;
},

mSetup: function icch_mSetup() {},

mTeardown: function icch_mTeardown() {},
Expand All @@ -11,6 +17,10 @@ var MockIccHelper = {
return true;
},

get cardState() {
return this.mProps['cardState'];
},

unlockCardLock: function() {
var settingsRequest = {
result: {},
Expand Down

This file was deleted.

Expand Up @@ -2,7 +2,7 @@

(function() {

var props = ['voice', 'cardState', 'iccInfo', 'data', 'retryCount'];
var props = ['voice', 'iccInfo', 'data', 'retryCount'];
var listeners;

function _init() {
Expand Down

0 comments on commit 2f49c77

Please sign in to comment.