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

Bug 804966 - Unlock SIM Card Web activity should be trigger by user action #6286

Merged
merged 1 commit into from Nov 15, 2012
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
96 changes: 67 additions & 29 deletions apps/system/index.html
Expand Up @@ -42,6 +42,7 @@
<script defer src="js/storage.js"></script>
<script defer src="js/hardware_buttons.js"></script>
<script defer src="js/system_banner.js"></script>
<script defer src="js/system_dialog.js"></script>

<!-- Battery Manager -->
<link rel="stylesheet" type="text/css" href="style/battery_manager/battery_manager.css">
Expand Down Expand Up @@ -96,6 +97,8 @@

<!-- PIN Unlocking -->
<script defer src="js/sim_lock.js"></script>
<link rel="stylesheet" type="text/css" href="style/simcard.css">
<script defer src="js/simcard_dialog.js"></script>

<!-- Airplane Mode -->
<script defer src="js/airplane_mode.js"></script>
Expand Down Expand Up @@ -330,6 +333,63 @@
</div>

<div id="dialog-overlay" data-z-index-level="dialog-overlay">
<!-- Unlock SIM Pin dialog -->
<div id="simpin-dialog" role="dialog" data-z-index-level="simpin-dialog" hidden>
<section role="region">
<header>
<button type="reset">
<span data-l10n-id="close" class="icon icon-close">Close</span>
</button>
<menu type="toolbar">
<button data-l10n-id="ok" type="submit">Done</button>
</menu>
<h1></h1>
</header>

<div class="container">
<div id="errorMsg" class="error" hidden>
<div id="messageHeader">The PIN was incorrect.</div>
<span id="messageBody">3 tries left.</span>
</div>

<!-- sim pin input field -->
<div id="pinArea" hidden>
<div data-l10n-id="simPin">SIM PIN</div>
<div class="input-wrapper">
<input name="simpin" type="number" size="8" maxlength="8" />
<input name="simpinVis" type="text" size="8" maxlength="8" />
</div>
</div>
<!-- sim puk input field -->
<div id="pukArea" hidden>
<div data-l10n-id="pukCode">PUK Code</div>
<div class="input-wrapper">
<input name="simpuk" type="number" size="8" maxlength="8" />
<input name="simpukVis" type="text" size="8" maxlength="8" />
</div>
</div>
<!-- new sim pin input field -->
<div id="newPinArea" hidden>
<div data-l10n-id="newSimPinMsg">
Create PIN (must contain 4 to 8 digits)
</div>
<div class="input-wrapper">
<input name="newSimpin" type="number" size="8" maxlength="8" />
<input name="newSimpinVis" type="text" size="8" maxlength="8" />
</div>
</div>
<!-- confirm new sim pin input field -->
<div id="confirmPinArea" hidden>
<div>Confirm New PIN</div>
<div class="input-wrapper">
<input name="confirmNewSimpin" type="number" size="8" maxlength="8" />
<input name="confirmNewSimpinVis" type="text" size="8" maxlength="8" />
</div>
</div>
</div>
</section>
</div>

<!-- Crash reporter -->
<form id="crash-dialog" role="dialog" data-type="confirm">
<section>
Expand All @@ -346,6 +406,7 @@ <h1 id="crash-dialog-title"></h1>
<button id="send-report" class="recommend" data-l10n-id="crash-send">Send Report</button>
</menu>
</form>

<div id="popup-container">
<section role="region" class="title-container skin-dark">
<header>
Expand Down Expand Up @@ -403,6 +464,7 @@ <h3 id="authentication-dialog-title"></h3>
</menu>
</div>
</div>

<div id="modal-dialog">
<div id="modal-dialog-alert" role="dialog">
<div class="modal-dialog-message-container inner">
Expand Down Expand Up @@ -465,8 +527,9 @@ <h3 id="modal-dialog-select-one-title"></h3>
<button id="modal-dialog-select-one-cancel" data-l10n-id="cancel">Cancel</button>
</menu>
</div>
</div>
</div>
</div> <!-- end of #modal-dialog -->

</div> <!-- end of #overlay-dialog -->

<!-- value selector -->
<div id="value-selector" hidden data-z-index-level="value-selector">
Expand Down Expand Up @@ -540,7 +603,6 @@ <h1 id="current-month"></h1>
<button class="value-option-confirm affirmative" data-type="ok" data-l10n-id="ok">Ok</button>
</menu>
</section>

</div>

<div id="permission-screen" data-z-index-level="permission-screen">
Expand Down Expand Up @@ -665,31 +727,6 @@ <h2 id="lockscreen-passcode-status" data-l10n-id="enter-security-code">Enter Sec
</div>
</div>

<div id="pinkeypadscreen" data-z-index-level="pinkeypadscreen" hidden>
<div id="pinkeypadscreen-container">
<p id="pinkeypadscreen-desc"><span data-l10n-id="enterPIN">Enter PIN</span></p>
<p id="pinkeypadscreen-code">
<span id="pinkeypadscreen-display"></span>
</p>
<div id="pinkeypadscreen-pad">
<a href="#" data-key="1">1</a>
<a href="#" data-key="2">2</a>
<a href="#" data-key="3">3</a>
<a href="#" data-key="4">4</a>
<a href="#" data-key="5">5</a>
<a href="#" data-key="6">6</a>
<a href="#" data-key="7">7</a>
<a href="#" data-key="8">8</a>
<a href="#" data-key="9">9</a>
<a href="#" data-key="o" class="pinkeypadscreen-pad-func" data-l10n-id="ok">OK</a>
<a href="#" data-key="0">0</a>
<a href="#" data-key="b" class="pinkeypadscreen-pad-func" data-l10n-id="back">Back</a>
<a href="#" data-key="e" class="pinkeypadscreen-pad-func-full"
data-l10n-id="emergency-call-button">Emergency Call</a>
</div>
</div>
</div>

<div id="attention-screen" data-z-index-level="attention-screen">
<div id="attention-bar"></div>
</div>
Expand Down Expand Up @@ -763,6 +800,7 @@ <h3 data-l10n-id="deviceMenu">Device menu</h3>
<span class="volume"></span>
</div>
</div>
</div>

</div> <!-- end of #screen -->
</body>
</html>
42 changes: 11 additions & 31 deletions apps/system/js/sim_lock.js
Expand Up @@ -5,30 +5,16 @@

var SimLock = {
init: function sl_init() {
// Listen to the first appwillopen event, where homescreen launches
window.addEventListener('appwillopen', this);

// Listen to appopen event
window.addEventListener('appopen', this);

// Do not do anything if we can't have access to MobileConnection API
var conn = window.navigator.mozMobileConnection;
if (!conn)
return;
conn.addEventListener('cardstatechange', this);

// Watch for apps that need a mobile connection
window.addEventListener('appopen', this);
},
handleEvent: function sl_handleEvent(evt) {
switch (evt.type) {
case 'cardstatechange':
this.showIfLocked();

break;

case 'appwillopen':
window.removeEventListener('appwillopen', this);
this.showIfLocked();

break;

case 'appopen':
// if an app needs telephony or sms permission,
// we will launch the unlock screen if needed.
Expand All @@ -39,14 +25,19 @@ var SimLock = {
if (!app || !app.manifest.permissions)
return;

// Ignore first time usage app which already ask for SIM code
if (evt.target.classList.contains('ftu'))
return;

if (!('telephony' in app.manifest.permissions ||
'sms' in app.manifest.permissions))
'sms' in app.manifest.permissions))
return;

this.showIfLocked();
break;
}
},

showIfLocked: function sl_showIfLocked() {
var conn = window.navigator.mozMobileConnection;
if (!conn)
Expand All @@ -55,18 +46,7 @@ var SimLock = {
switch (conn.cardState) {
case 'pukRequired':
case 'pinRequired':
var activity = new MozActivity({
name: 'unlock',
data: {
target: 'sim'
}
});
activity.onsuccess = function sl_unlockSuccess() {
// Go back to the current displayed app
// XXX: this should be removed when bug 798445 is fixed
// and bug 799039 actually works.
WindowManager.launch(WindowManager.getDisplayedApp());
};
SimPinDialog.show('unlock');
break;
case 'ready':
default:
Expand Down