From ebca893d47583625a77c14874d7ba7c7fe374603 Mon Sep 17 00:00:00 2001 From: Doug Sherk Date: Mon, 22 Sep 2014 18:25:12 -0400 Subject: [PATCH] Bug 1045820 - Port SimPicker implementation in MSAB and comms apps to GaiaSimPicker. r=Rik, r=julienw, r=francisco, r=yurenju --- apps/communications/contacts/index.html | 14 +- apps/communications/contacts/js/contacts.js | 3 - .../test/unit/mock_details_dom.js.html | 3 +- apps/communications/dialer/index.html | 15 +- apps/communications/dialer/js/dialer.js | 9 +- .../dialer/test/unit/dialer_test.js | 27 ++- .../dialer/test/unit/keypad_test.js | 27 ++- .../dialer/test/unit/mock_dialer_index.html | 1 + .../dialer/test/unit/sim_picker_test.js | 201 ------------------ apps/communications/test/unit/setup.js | 3 +- apps/emergency-call/index.html | 11 +- apps/emergency-call/js/dialer.js | 13 +- apps/emergency-call/test/unit/dialer_test.js | 38 +++- apps/emergency-call/test/unit/setup.js | 1 + .../test/unit/multi_sim_action_button_test.js | 60 ++++-- apps/sharedtest/test/unit/setup.js | 1 + apps/sms/index.html | 16 +- apps/sms/js/startup.js | 2 +- apps/sms/js/thread_ui.js | 4 +- apps/sms/test/unit/dialog_test.js | 8 +- apps/sms/test/unit/thread_ui_test.js | 6 - build/test/integration/build.test.js | 14 -- shared/elements/sim_picker.html | 15 -- shared/js/dialer/keypad.js | 21 +- shared/js/multi_sim_action_button.js | 19 +- shared/js/sim_picker.js | 101 --------- .../sim_picker/sim_picker.ar.properties | 5 - .../sim_picker/sim_picker.en-US.properties | 5 - .../sim_picker/sim_picker.fr.properties | 5 - .../sim_picker/sim_picker.zh-TW.properties | 6 - shared/style/contacts/contacts_buttons.css | 2 +- shared/style/dialer/keypad.css | 2 +- shared/style/sim_picker.css | 9 - .../sim_picker/images/long-tap-indicator.png | Bin 76 -> 0 bytes .../images/long-tap-indicator@1.5x.png | Bin 81 -> 0 bytes .../images/long-tap-indicator@2x.png | Bin 88 -> 0 bytes shared/test/unit/mocks/mock_sim_picker.js | 8 - 37 files changed, 201 insertions(+), 474 deletions(-) delete mode 100644 apps/communications/dialer/test/unit/sim_picker_test.js delete mode 100644 shared/elements/sim_picker.html delete mode 100644 shared/js/sim_picker.js delete mode 100644 shared/locales/sim_picker/sim_picker.ar.properties delete mode 100644 shared/locales/sim_picker/sim_picker.en-US.properties delete mode 100644 shared/locales/sim_picker/sim_picker.fr.properties delete mode 100644 shared/locales/sim_picker/sim_picker.zh-TW.properties delete mode 100644 shared/style/sim_picker.css delete mode 100644 shared/style/sim_picker/images/long-tap-indicator.png delete mode 100644 shared/style/sim_picker/images/long-tap-indicator@1.5x.png delete mode 100644 shared/style/sim_picker/images/long-tap-indicator@2x.png delete mode 100644 shared/test/unit/mocks/mock_sim_picker.js diff --git a/apps/communications/contacts/index.html b/apps/communications/contacts/index.html index 283802c8d1e1..cd0cd0a0fd0f 100644 --- a/apps/communications/contacts/index.html +++ b/apps/communications/contacts/index.html @@ -16,7 +16,6 @@ - @@ -67,6 +66,14 @@ + + + + + @@ -84,7 +91,6 @@ - @@ -98,7 +104,6 @@ - @@ -124,7 +129,6 @@ - @@ -28,7 +29,6 @@ - @@ -63,14 +63,18 @@ + + + + + - @@ -103,7 +107,6 @@ - @@ -240,7 +243,9 @@

- + + + diff --git a/apps/communications/dialer/js/dialer.js b/apps/communications/dialer/js/dialer.js index 4122f203d695..4d6969bbe0ba 100644 --- a/apps/communications/dialer/js/dialer.js +++ b/apps/communications/dialer/js/dialer.js @@ -2,7 +2,7 @@ /* global AccessibilityHelper, CallLog, CallLogDBManager, Contacts, KeypadManager,LazyL10n, LazyLoader, MmiManager, Notification, - NotificationHelper, SettingsListener, SimPicker, SimSettingsHelper, + NotificationHelper, SettingsListener, SimSettingsHelper, SuggestionBar, TelephonyHelper, TonePlayer, Utils, Voicemail */ var NavbarManager = { @@ -374,8 +374,11 @@ var CallHandler = (function callHandler() { SimSettingsHelper.getCardIndexFrom('outgoingCall', function(defaultCardIndex) { if (defaultCardIndex === SimSettingsHelper.ALWAYS_ASK_OPTION_VALUE) { - LazyLoader.load(['/shared/js/sim_picker.js'], function() { - SimPicker.getOrPick(defaultCardIndex, phoneNumber, function(ci) { + LazyLoader.load(['/shared/js/component_utils.js', + '/shared/elements/gaia_sim_picker/script.js'], + function() { + var simPicker = document.getElementById('sim-picker'); + simPicker.getOrPick(defaultCardIndex, phoneNumber, function(ci) { CallHandler.call(phoneNumber, ci); }); // Show the dialer so the user can select the SIM. diff --git a/apps/communications/dialer/test/unit/dialer_test.js b/apps/communications/dialer/test/unit/dialer_test.js index c37d315b0a66..e42bd6ff2883 100644 --- a/apps/communications/dialer/test/unit/dialer_test.js +++ b/apps/communications/dialer/test/unit/dialer_test.js @@ -5,7 +5,7 @@ NavbarManager, Notification, MockKeypadManager, MockVoicemail, MockCallLog, MockCallLogDBManager, MockNavigatorWakeLock, MockMmiManager, MockSuggestionBar, LazyLoader, AccessibilityHelper, MockSimSettingsHelper, - MockSimPicker, MockTelephonyHelper */ + MockTelephonyHelper, CustomElementsHelper */ require( '/shared/test/unit/mocks/mock_navigator_moz_set_message_handler.js' @@ -24,7 +24,6 @@ require('/shared/test/unit/mocks/mock_navigator_moz_icc_manager.js'); require('/shared/test/unit/mocks/mock_notification.js'); require('/shared/test/unit/mocks/mock_notification_helper.js'); require('/shared/test/unit/mocks/mock_settings_listener.js'); -require('/shared/test/unit/mocks/mock_sim_picker.js'); require('/shared/test/unit/mocks/mock_sim_settings_helper.js'); require('/shared/test/unit/mocks/dialer/mock_contacts.js'); require('/shared/test/unit/mocks/dialer/mock_lazy_l10n.js'); @@ -32,6 +31,8 @@ require('/shared/test/unit/mocks/dialer/mock_keypad.js'); require('/shared/test/unit/mocks/dialer/mock_telephony_helper.js'); require('/shared/test/unit/mocks/dialer/mock_tone_player.js'); require('/shared/test/unit/mocks/dialer/mock_utils.js'); +require( + '/shared/test/unit/mocks/elements/gaia_sim_picker/mock_gaia_sim_picker.js'); require('/dialer/js/dialer.js'); @@ -41,6 +42,7 @@ var mocksHelperForDialer = new MocksHelper([ 'Contacts', 'CallLog', 'CallLogDBManager', + 'GaiaSimPicker', 'LazyL10n', 'LazyLoader', 'KeypadManager', @@ -48,7 +50,6 @@ var mocksHelperForDialer = new MocksHelper([ 'Notification', 'NotificationHelper', 'SettingsListener', - 'SimPicker', 'SimSettingsHelper', 'SuggestionBar', 'Utils', @@ -56,6 +57,10 @@ var mocksHelperForDialer = new MocksHelper([ 'Voicemail' ]).init(); +var customElementsForNavbarManager = new CustomElementsHelper([ + 'GaiaSimPicker' +]); + suite('navigation bar', function() { var domContactsIframe; var domOptionRecents; @@ -107,6 +112,8 @@ suite('navigation bar', function() { CallHandler.init(); NavbarManager.init(); + + customElementsForNavbarManager.resolve(); }); teardown(function() { @@ -531,11 +538,21 @@ suite('navigation bar', function() { var getGroupAtPositionStub; var callSpy; + var simPicker; setup(function() { getGroupAtPositionStub = this.sinon.stub(MockCallLogDBManager, 'getGroupAtPosition'); callSpy = this.sinon.stub(CallHandler, 'call'); + + simPicker = document.createElement('gaia-sim-picker'); + simPicker.id = 'sim-picker'; + document.body.appendChild(simPicker); + customElementsForNavbarManager.resolve(); + }); + + teardown(function() { + document.body.removeChild(simPicker); }); [0, 1].forEach(function(serviceId) { @@ -557,9 +574,9 @@ suite('navigation bar', function() { }); test('should show SIM picker', function() { - this.sinon.spy(MockSimPicker, 'getOrPick'); + this.sinon.spy(simPicker, 'getOrPick'); sendCommand('ATD12345'); - sinon.assert.calledWith(MockSimPicker.getOrPick, serviceId, '12345'); + sinon.assert.calledWith(simPicker.getOrPick, serviceId, '12345'); }); test('should show/foreground the dialer', function() { diff --git a/apps/communications/dialer/test/unit/keypad_test.js b/apps/communications/dialer/test/unit/keypad_test.js index a82f53a3523c..da29cf82d182 100644 --- a/apps/communications/dialer/test/unit/keypad_test.js +++ b/apps/communications/dialer/test/unit/keypad_test.js @@ -1,9 +1,9 @@ /* globals CallHandler, CallLogDBManager, FontSizeManager, gTonesFrequencies, KeypadManager, MockCall, MockCallsHandler, MockDialerIndexHtml, MockIccManager, MockNavigatorMozTelephony, MockNavigatorSettings, - MockSettingsListener, MocksHelper, MockTonePlayer, SimPicker, - telephonyAddCall, MockMultiSimActionButtonSingleton, MockMozL10n, - CustomDialog, MockMozActivity + MockSettingsListener, MocksHelper, MockTonePlayer, telephonyAddCall, + MockMultiSimActionButtonSingleton, MockMozL10n, CustomDialog, + MockMozActivity, CustomElementsHelper */ 'use strict'; @@ -18,7 +18,6 @@ require('/shared/test/unit/mocks/mock_iccmanager.js'); require('/shared/test/unit/mocks/mock_navigator_moz_settings.js'); require('/shared/test/unit/mocks/mock_navigator_moz_telephony.js'); require('/shared/test/unit/mocks/mock_settings_listener.js'); -require('/shared/test/unit/mocks/mock_sim_picker.js'); require('/shared/test/unit/mocks/mock_multi_sim_action_button.js'); require('/shared/test/unit/mocks/dialer/mock_handled_call.js'); require('/shared/test/unit/mocks/dialer/mock_call.js'); @@ -29,6 +28,8 @@ require('/shared/test/unit/mocks/dialer/mock_tone_player.js'); require('/shared/test/unit/mocks/mock_custom_dialog.js'); require('/shared/test/unit/mocks/mock_moz_activity.js'); require('/shared/test/unit/mocks/dialer/mock_font_size_manager.js'); +require( + '/shared/test/unit/mocks/elements/gaia_sim_picker/mock_gaia_sim_picker.js'); require('/dialer/test/unit/mock_dialer_index.html.js'); var mocksHelperForKeypad = new MocksHelper([ @@ -41,13 +42,17 @@ var mocksHelperForKeypad = new MocksHelper([ 'CallLogDBManager', 'HandledCall', 'SettingsListener', - 'SimPicker', + 'GaiaSimPicker', 'TonePlayer', 'CustomDialog', 'MozActivity', 'FontSizeManager' ]).init(); +var customElementsHelperForKeypad = new CustomElementsHelper([ + 'GaiaSimPicker' +]); + suite('dialer/keypad', function() { var subject; var previousBody; @@ -77,6 +82,8 @@ suite('dialer/keypad', function() { document.body.innerHTML = MockDialerIndexHtml; subject = KeypadManager; subject.init(false); + + customElementsHelperForKeypad.resolve(); }); suiteTeardown(function() { @@ -594,6 +601,7 @@ suite('dialer/keypad', function() { suite('DualSIM', function() { var fakeVoicemail2 = '666'; + var simPicker; setup(function() { navigator.mozIccManager.iccIds[0] = 0; @@ -603,24 +611,25 @@ suite('dialer/keypad', function() { fakeVoicemail, fakeVoicemail2]; MockNavigatorSettings.mSettings['ril.voicemail.defaultServiceId'] = 1; - this.sinon.spy(SimPicker, 'getOrPick'); + simPicker = document.getElementById('sim-picker'); + this.sinon.spy(simPicker, 'getOrPick'); doLongPress.bind(this)(); MockNavigatorSettings.mReplyToRequests(); }); test('should show the SIM picker for favorite SIM', function() { - sinon.assert.calledWith(SimPicker.getOrPick, 1, 'voiceMail'); + sinon.assert.calledWith(simPicker.getOrPick, 1, 'voiceMail'); }); test('should call voicemail for SIM1', function() { - SimPicker.getOrPick.yield(0); + simPicker.getOrPick.yield(0); MockNavigatorSettings.mReplyToRequests(); sinon.assert.calledWith(CallHandler.call, fakeVoicemail, 0); }); test('should call voicemail for SIM2', function() { - SimPicker.getOrPick.yield(1); + simPicker.getOrPick.yield(1); MockNavigatorSettings.mReplyToRequests(); sinon.assert.calledWith(CallHandler.call, fakeVoicemail2, 1); }); diff --git a/apps/communications/dialer/test/unit/mock_dialer_index.html b/apps/communications/dialer/test/unit/mock_dialer_index.html index 5a553306d410..be2f16eb6351 100644 --- a/apps/communications/dialer/test/unit/mock_dialer_index.html +++ b/apps/communications/dialer/test/unit/mock_dialer_index.html @@ -85,4 +85,5 @@ + diff --git a/apps/communications/dialer/test/unit/sim_picker_test.js b/apps/communications/dialer/test/unit/sim_picker_test.js deleted file mode 100644 index f979a8c803c6..000000000000 --- a/apps/communications/dialer/test/unit/sim_picker_test.js +++ /dev/null @@ -1,201 +0,0 @@ -/* globals SimPicker, MocksHelper, MockMozL10n, MockNavigatorMozIccManager, - MockTelephonyHelper */ - -'use strict'; - -require('/dialer/test/unit/mock_lazy_loader.js'); -require('/shared/test/unit/mocks/mock_navigator_moz_icc_manager.js'); -require('/shared/test/unit/mocks/mock_navigator_moz_telephony.js'); -require('/shared/test/unit/mocks/dialer/mock_lazy_l10n.js'); -require('/shared/test/unit/mocks/dialer/mock_telephony_helper.js'); - -require('/shared/js/sim_picker.js'); - -var mocksHelperForSimPicker = new MocksHelper([ - 'LazyLoader', - 'LazyL10n' -]).init(); - -suite('SIM picker', function() { - var subject; - var realMozIccManager; - var realMozL10n; - var realTelephonyHelper; - var menu; - var header; - - mocksHelperForSimPicker.attachTestHelpers(); - - var loadBody = function() { - loadBodyHTML('/shared/elements/sim_picker.html'); - document.body.innerHTML = document.body.querySelector('template').innerHTML; - }; - - suiteSetup(function() { - subject = SimPicker; - - realMozIccManager = navigator.mozIccManager; - navigator.mozIccManager = MockNavigatorMozIccManager; - navigator.mozIccManager.mTeardown(); - - realMozL10n = navigator.mozL10n; - navigator.mozL10n = MockMozL10n; - - realTelephonyHelper = window.TelephonyHelper; - window.TelephonyHelper = null; - }); - - suiteTeardown(function() { - navigator.mozIccManager = realMozIccManager; - navigator.mozL10n = realMozL10n; - - window.TelephonyHelper = realTelephonyHelper; - }); - - setup(function() { - subject._domBuilt = false; - - navigator.mozIccManager.addIcc(0, {}); - navigator.mozIccManager.addIcc(1, {}); - - loadBody(); - - subject.getOrPick(0, '1111', function() {}); - - menu = document.querySelector('menu'); - header = document.getElementById('sim-picker-dial-via'); - }); - - teardown(function() { - navigator.mozIccManager.mTeardown(); - }); - - suite('getOrPick/getInUseSim', function() { - test('header should contain phone number when getter provided', function() { - var setAttributesSpy = this.sinon.spy(MockMozL10n, 'setAttributes'); - subject.getOrPick(0, '1111', function() {}); - sinon.assert.calledWith(setAttributesSpy, - header, - 'sim-picker-dial-via-with-number', - {phoneNumber: '1111'}); - }); - - test('header should not contain phone number when getter not provided', - function() { - subject.getOrPick(0, null, function() {}); - assert.equal(header.getAttribute('data-l10n-id'), - 'sim-picker-select-sim'); - }); - - test('show the menu twice with different args', function() { - var setAttributesSpy = this.sinon.spy(MockMozL10n, 'setAttributes'); - - subject.getOrPick(0, '1111', function() {}); - sinon.assert.calledWith(setAttributesSpy, - header, - 'sim-picker-dial-via-with-number', - {phoneNumber: '1111'}); - assert.equal(menu.children.length, 3); - - subject.getOrPick(0, '2222', function() {}); - sinon.assert.calledWith(setAttributesSpy, - header, - 'sim-picker-dial-via-with-number', - {phoneNumber: '2222'}); - assert.equal(menu.children.length, 3); - }); - - test('should show the menu', function() { - assert.equal(document.getElementById('sim-picker').hidden, false); - }); - - test('should focus on the menu', function() { - var simPickerElt = document.getElementById('sim-picker'); - - var focusSpy = this.sinon.spy(simPickerElt, 'focus'); - subject.getOrPick(0, '1111', function() {}); - - sinon.assert.calledOnce(focusSpy); - }); - }); - - suite('buttons', function() { - test('should have 2 option buttons', function() { - var buttonNum = 0; - for (var i = 0; i < menu.children.length; i++) { - if (menu.children[i].dataset.l10nId !== 'cancel') { - buttonNum++; - } - } - assert.equal(buttonNum, 2); - }); - - test('should have 3 buttons in total', function() { - assert.equal(menu.children.length, 3); - }); - - test('should mark default SIM', function() { - for (var i = 0; i < menu.children.length; i++) { - assert.equal( - menu.children[i].classList.contains('is-default'), i === 0); - } - }); - - test('should not mark default SIM when none is set', function() { - subject.getOrPick(undefined, '2222', function() {}); - for (var i = 0; i < menu.children.length; i++) { - assert.isFalse(menu.children[i].classList.contains('is-default')); - } - }); - }); - - suite('callbacks and functions', function() { - setup(function() { - loadBody(); - }); - - test('should fire callback when a SIM is selected', function() { - var callbackStub = this.sinon.stub(); - subject.getOrPick(0, '1111', callbackStub); - - menu.children[0].click(); - - sinon.assert.calledOnce(callbackStub); - assert.equal(document.getElementById('sim-picker').hidden, true); - }); - - test('should close menu when pressing cancel button', function() { - var callbackStub = this.sinon.stub(); - subject.getOrPick(0, '1111', callbackStub); - - menu.children[2].click(); - - sinon.assert.notCalled(callbackStub); - assert.equal(document.getElementById('sim-picker').hidden, true); - }); - }); - - suite('with a call in progress', function() { - suiteSetup(function() { - window.TelephonyHelper = MockTelephonyHelper; - }); - - suiteTeardown(function() { - window.TelephonyHelper = null; - }); - - setup(function() { - MockTelephonyHelper.mInUseSim = 1; - }); - - teardown(function() { - MockTelephonyHelper.mTeardown(); - }); - - test('should callback with in use serviceId', function() { - var callbackStub = this.sinon.stub(); - subject.getOrPick(0, '1111', callbackStub); - sinon.assert.calledWith(callbackStub, 1); - }); - }); -}); diff --git a/apps/communications/test/unit/setup.js b/apps/communications/test/unit/setup.js index 06548cf1678d..bf059ad516e9 100644 --- a/apps/communications/test/unit/setup.js +++ b/apps/communications/test/unit/setup.js @@ -1,5 +1,6 @@ 'use strict'; -requireApp('communications/shared/test/unit/mocks/mocks_helper.js'); +require('/shared/test/unit/mocks/elements/custom_elements_helper.js'); +require('/shared/test/unit/mocks/mocks_helper.js'); require('/shared/test/unit/load_body_html_helper.js'); diff --git a/apps/emergency-call/index.html b/apps/emergency-call/index.html index b136e8694eaf..7e416986eba0 100644 --- a/apps/emergency-call/index.html +++ b/apps/emergency-call/index.html @@ -10,7 +10,8 @@ - + + @@ -31,16 +32,16 @@ -

- +
diff --git a/apps/sms/js/startup.js b/apps/sms/js/startup.js index cadf54f750df..e5d21e097ac1 100644 --- a/apps/sms/js/startup.js +++ b/apps/sms/js/startup.js @@ -12,7 +12,6 @@ var Startup = { _lazyLoadScripts: [ '/shared/js/settings_listener.js', - '/shared/js/sim_picker.js', '/shared/js/mime_mapper.js', '/shared/js/notification_helper.js', '/shared/js/option_menu.js', @@ -21,6 +20,7 @@ var Startup = { '/shared/js/mobile_operator.js', '/shared/js/multi_sim_action_button.js', '/shared/js/image_utils.js', + '/shared/elements/gaia_sim_picker/script.js', 'js/waiting_screen.js', 'js/errors.js', 'js/dialog.js', diff --git a/apps/sms/js/thread_ui.js b/apps/sms/js/thread_ui.js index a046d32608f1..2263472b9878 100755 --- a/apps/sms/js/thread_ui.js +++ b/apps/sms/js/thread_ui.js @@ -6,7 +6,7 @@ ActivityPicker, ThreadListUI, OptionMenu, Threads, Contacts, Attachment, WaitingScreen, MozActivity, LinkActionHandler, ActivityHandler, TimeHeaders, ContactRenderer, Draft, Drafts, - Thread, MultiSimActionButton, LazyLoader, Navigation, Promise, + Thread, MultiSimActionButton, Navigation, Promise, Dialog, SharedComponents, Errors, EventDispatcher @@ -594,8 +594,6 @@ var ThreadUI = { Settings.SERVICE_ID_KEYS.smsServiceId ); - var simPickerElt = document.getElementById('sim-picker'); - LazyLoader.load([simPickerElt]); this.initSentAudio(); } diff --git a/apps/sms/test/unit/dialog_test.js b/apps/sms/test/unit/dialog_test.js index d3e8b4eaacd5..1178b03c8b1f 100755 --- a/apps/sms/test/unit/dialog_test.js +++ b/apps/sms/test/unit/dialog_test.js @@ -54,8 +54,7 @@ suite('Dialog', function() { // - "loading" // - "attachment" // - "threads-edit-form" - // - "sim-picker" - assert.equal(previouslyDefinedForms, 6); + assert.equal(previouslyDefinedForms, 5); // Now we create the new element var dialog = new Dialog(params); // We check if the object is appended to the DOM @@ -63,12 +62,15 @@ suite('Dialog', function() { // Is appended properly? var currentlyDefinedForms = document.getElementsByTagName('form'); var currentlyDefinedFormsLength = currentlyDefinedForms.length; - assert.equal(currentlyDefinedFormsLength, 7); + assert.equal(currentlyDefinedFormsLength, 6); // We check the type var dialogForm = currentlyDefinedForms[currentlyDefinedFormsLength - 1]; assert.equal(dialogForm.dataset.type, 'confirm'); }); + test('Has GaiaSimPicker', function() { + assert.ok(document.getElementById('sim-picker')); + }); test('Focus', function() { var dialog = new Dialog(params); diff --git a/apps/sms/test/unit/thread_ui_test.js b/apps/sms/test/unit/thread_ui_test.js index c1af1d2aa007..7f37f4b168c1 100755 --- a/apps/sms/test/unit/thread_ui_test.js +++ b/apps/sms/test/unit/thread_ui_test.js @@ -5999,12 +5999,6 @@ suite('thread_ui.js >', function() { assert.isTrue(Recipients.View.isFocusable); }); - test('loads and translates SIM picker', function() { - var simPickerElt = document.getElementById('sim-picker'); - - sinon.assert.calledWith(MockLazyLoader.load, [simPickerElt]); - }); - test('loads the audio played when a message is sent', function() { var sentAudio = ThreadUI.sentAudio; diff --git a/build/test/integration/build.test.js b/build/test/integration/build.test.js index bec88913f41f..de87e68b75cc 100644 --- a/build/test/integration/build.test.js +++ b/build/test/integration/build.test.js @@ -742,20 +742,6 @@ suite('Build Integration tests', function() { }); }); - suite('Build file inclusion tests', function() { - test('build includes elements folder and sim_picker', function(done) { - helper.exec('make', function(error, stdout, stderr) { - var pathInZip = 'shared/elements/sim_picker.html'; - var zipPath = path.join(process.cwd(), 'profile', 'webapps', - 'communications.gaiamobile.org', 'application.zip'); - var expectedSimPickerPath = path.join(process.cwd(), - 'shared', 'elements', 'sim_picker.html'); - helper.checkFileInZip(zipPath, pathInZip, expectedSimPickerPath); - done(); - }); - }); - }); - suite('Pseudolocalizations', function() { test('build with GAIA_CONCAT_LOCALES=0 doesn\'t include pseudolocales', function(done) { helper.exec('GAIA_CONCAT_LOCALES=0 make', function(error, stdout, stderr) { diff --git a/shared/elements/sim_picker.html b/shared/elements/sim_picker.html deleted file mode 100644 index 902dc236051a..000000000000 --- a/shared/elements/sim_picker.html +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/shared/js/dialer/keypad.js b/shared/js/dialer/keypad.js index 7d9c6c608b9f..b0cf69b6e401 100644 --- a/shared/js/dialer/keypad.js +++ b/shared/js/dialer/keypad.js @@ -2,7 +2,7 @@ /* globals AddContactMenu, CallHandler, CallLogDBManager, CallsHandler, CallScreen, CustomDialog, FontSizeManager, LazyLoader, LazyL10n, - MultiSimActionButton, SimPicker, SettingsListener, TonePlayer */ + MultiSimActionButton, SettingsListener, TonePlayer */ 'use strict'; @@ -158,6 +158,8 @@ var KeypadManager = { this._phoneNumber = ''; var keyHandler = this.keyHandler.bind(this); + this.keypad.addEventListener('contextmenu', keyHandler); + this.keypad.addEventListener('touchstart', keyHandler, true); this.keypad.addEventListener('touchmove', keyHandler, true); this.keypad.addEventListener('touchend', keyHandler, true); @@ -487,6 +489,14 @@ var KeypadManager = { keyHandler: function kh_keyHandler(event) { + // When long pressing on the voicemail button, if a menu pops up on top of + // the 1 button, a click will go through and target that button unless we + // preventDefault the contextmenu event. + if (event.type == 'contextmenu') { + event.preventDefault(); + return; + } + var key = event.target.dataset.value; // We could receive this event from an element that @@ -623,10 +633,13 @@ var KeypadManager = { var key = 'ril.voicemail.defaultServiceId'; var req = navigator.mozSettings.createLock().get(key); req.onsuccess = function() { - LazyLoader.load(['/shared/js/sim_picker.js'], function() { + LazyLoader.load(['/shared/js/component_utils.js', + '/shared/elements/gaia_sim_picker/script.js'], + function() { LazyL10n.get(function(_) { - SimPicker.getOrPick(req.result[key], _('voiceMail'), - self._callVoicemailForSim); + var simPicker = document.getElementById('sim-picker'); + simPicker.getOrPick(req.result[key], _('voiceMail'), + self._callVoicemailForSim.bind(self)); }); }); }; diff --git a/shared/js/multi_sim_action_button.js b/shared/js/multi_sim_action_button.js index ecf6078c0148..16663171bd81 100644 --- a/shared/js/multi_sim_action_button.js +++ b/shared/js/multi_sim_action_button.js @@ -1,4 +1,4 @@ -/* globals LazyLoader, SettingsListener, SimPicker */ +/* globals LazyLoader, SettingsListener */ /* exported MultiSimActionButton */ 'use strict'; @@ -12,6 +12,7 @@ var MultiSimActionButton = function MultiSimActionButton( this._callCallback = callCallback; this._settingsKey = settingsKey; this._phoneNumberGetter = phoneNumberGetter; + this._simPicker = null; this._button.addEventListener('click', this._click.bind(this)); @@ -91,9 +92,10 @@ MultiSimActionButton.prototype._click = function(event) { // The user has requested that we ask them every time for this key, // so we prompt them to pick a SIM even when they only click. var self = this; - LazyLoader.load(['/shared/js/sim_picker.js'], function() { - SimPicker.getOrPick(cardIndex, phoneNumber, - self.performAction.bind(self)); + LazyLoader.load(['/shared/elements/gaia_sim_picker/script.js'], function() { + self._simPicker = document.getElementById('sim-picker'); + self._simPicker.getOrPick(cardIndex, phoneNumber, + self.performAction.bind(self)); }); } else { this.performAction(cardIndex); @@ -109,7 +111,7 @@ MultiSimActionButton.prototype._updateUI = function() { if (this._simIndication) { var self = this; var l10nId = this._simIndication.dataset.l10nId || - 'sim-picker-button'; + 'gaia-sim-picker-button'; navigator.mozL10n.ready(function() { navigator.mozL10n.setAttributes(self._simIndication, l10nId, @@ -149,9 +151,10 @@ MultiSimActionButton.prototype._contextmenu = function(event) { } var self = this; - LazyLoader.load(['/shared/js/sim_picker.js'], function() { - SimPicker.getOrPick(self._getCardIndexIfLoaded(), phoneNumber, - self.performAction.bind(self)); + LazyLoader.load(['/shared/elements/gaia_sim_picker/script.js'], function() { + self._simPicker = document.getElementById('sim-picker'); + self._simPicker.getOrPick(self._getCardIndexIfLoaded(), phoneNumber, + self.performAction.bind(self)); }); }; diff --git a/shared/js/sim_picker.js b/shared/js/sim_picker.js deleted file mode 100644 index 1e527cf15b87..000000000000 --- a/shared/js/sim_picker.js +++ /dev/null @@ -1,101 +0,0 @@ -/* exported SimPicker */ - -'use strict'; - -(function(exports) { - /** - * SimPicker is a helper for dynamically generating menus for selecting SIM - * cards when making calls, sending SMS, etc. It also returns any currently - * in-use SIMs if there is an active call, but only when an app has - * mozTelephony permissions. - */ - var SimPicker = { - _domBuilt: false, - _simPickerElt: null, - - getOrPick: function hk_getOrPick(defaultCardIndex, - phoneNumber, - simSelectedCallback) { - this._simSelectedCallback = simSelectedCallback; - this._simPickerElt = document.getElementById('sim-picker'); - - if (window.TelephonyHelper) { - var inUseSim = window.TelephonyHelper.getInUseSim(); - if (inUseSim !== null) { - simSelectedCallback(inUseSim); - return; - } - } - - var dialViaElt = document.getElementById('sim-picker-dial-via'); - if (phoneNumber) { - navigator.mozL10n.setAttributes(dialViaElt, - 'sim-picker-dial-via-with-number', - {phoneNumber: phoneNumber}); - } else { - dialViaElt.setAttribute('data-l10n-id', 'sim-picker-select-sim'); - } - - this._buildDom(); - - var simButtons = this._simPickerElt.querySelectorAll( - 'button[data-card-index]'); - - for (var i = 0; i < simButtons.length; i++) { - if (simButtons[i].dataset.cardIndex == defaultCardIndex) { - simButtons[i].classList.add('is-default'); - } else { - simButtons[i].classList.remove('is-default'); - } - } - - // we want to wait for l10n to happen before we display the UI - navigator.mozL10n.once(function() { - this._simPickerElt.hidden = false; - this._simPickerElt.focus(); - }.bind(this)); - }, - - _buildDom: function() { - if (this._domBuilt) { - return; - } - - this._domBuilt = true; - - var templateNode = document.getElementById( - 'sim-picker-button-template'); - - for (var i = 0; i < navigator.mozIccManager.iccIds.length; i++) { - var clonedNode = templateNode.cloneNode(true); - clonedNode.dataset.cardIndex = i; - - var button = clonedNode.querySelector('.js-sim-picker-button'); - navigator.mozL10n.setAttributes(button, - 'sim-picker-button', - {n: i + 1}); - templateNode.parentNode.insertBefore(clonedNode, templateNode); - } - templateNode.remove(); - - this._simPickerElt.addEventListener('click', this); - }, - - handleEvent: function(e) { - if (e) { - e.preventDefault(); - } - if (e.target.nodeName !== 'BUTTON') { - return; - } - - if (e.target.dataset.cardIndex) { - this._simSelectedCallback(e.target.dataset.cardIndex); - } - document.getElementById('sim-picker').hidden = true; - } - }; - - exports.SimPicker = SimPicker; - -})(window); diff --git a/shared/locales/sim_picker/sim_picker.ar.properties b/shared/locales/sim_picker/sim_picker.ar.properties deleted file mode 100644 index 6cd537c5ca35..000000000000 --- a/shared/locales/sim_picker/sim_picker.ar.properties +++ /dev/null @@ -1,5 +0,0 @@ -# SIM list -sim-picker-dial-via-with-number=إتصل بـ {{phoneNumber}} بواسطة -sim-picker-select-sim=اختر SIM -sim-picker-button=SIM{{ n }} -sim-picker-button-default=(الافتراضي) diff --git a/shared/locales/sim_picker/sim_picker.en-US.properties b/shared/locales/sim_picker/sim_picker.en-US.properties deleted file mode 100644 index a26a6638bb48..000000000000 --- a/shared/locales/sim_picker/sim_picker.en-US.properties +++ /dev/null @@ -1,5 +0,0 @@ -# SIM list -sim-picker-dial-via-with-number=Dial {{ phoneNumber }} via -sim-picker-select-sim=Select SIM -sim-picker-button=SIM{{ n }} -sim-picker-button-default=(default) diff --git a/shared/locales/sim_picker/sim_picker.fr.properties b/shared/locales/sim_picker/sim_picker.fr.properties deleted file mode 100644 index 205244c3d02b..000000000000 --- a/shared/locales/sim_picker/sim_picker.fr.properties +++ /dev/null @@ -1,5 +0,0 @@ -# SIM list -sim-picker-dial-via-with-number=Composer le {{ phoneNumber }} avec -sim-picker-select-sim=Choisir une SIM -sim-picker-button=SIM {{ n }} -sim-picker-button-default=(par défaut) diff --git a/shared/locales/sim_picker/sim_picker.zh-TW.properties b/shared/locales/sim_picker/sim_picker.zh-TW.properties deleted file mode 100644 index b0bfe2353bd3..000000000000 --- a/shared/locales/sim_picker/sim_picker.zh-TW.properties +++ /dev/null @@ -1,6 +0,0 @@ -# SIM list -sim-picker-dial-via-with-number=撥打 {{ phoneNumber }} 經由 -sim-picker-select-sim=選擇 SIM -sim-picker-button=SIM{{ n }} -sim-picker-button-default=(預設) - diff --git a/shared/style/contacts/contacts_buttons.css b/shared/style/contacts/contacts_buttons.css index 65edc52a380a..c0ea2d0418da 100644 --- a/shared/style/contacts/contacts_buttons.css +++ b/shared/style/contacts/contacts_buttons.css @@ -40,7 +40,7 @@ li button.icon-email:before { top: 0; margin: 0; position: absolute; - background: url("/shared/style/sim_picker/images/long-tap-indicator.png") no-repeat right bottom 0.2rem / 1.4rem 1rem; + background: url("/shared/elements/gaia_sim_picker/images/long-tap-indicator.png") no-repeat right bottom 0.2rem / 1.4rem 1rem; } .has-preferred-sim .call-action .js-sim-indication { diff --git a/shared/style/dialer/keypad.css b/shared/style/dialer/keypad.css index 563cc674c740..09388179a822 100644 --- a/shared/style/dialer/keypad.css +++ b/shared/style/dialer/keypad.css @@ -272,7 +272,7 @@ height: 1rem; bottom: 0; right: 1.7rem; - background-image: url("/shared/style/sim_picker/images/long-tap-indicator.png"); + background-image: url("/shared/elements/gaia_sim_picker/images/long-tap-indicator.png"); background-repeat: no-repeat; background-size: 1.4rem 1rem; } diff --git a/shared/style/sim_picker.css b/shared/style/sim_picker.css deleted file mode 100644 index b4ba167735fe..000000000000 --- a/shared/style/sim_picker.css +++ /dev/null @@ -1,9 +0,0 @@ -.sim-default { - display: none; - margin-left: 2px; - font-style: italic; -} - -.is-default .sim-default { - display: initial; -} diff --git a/shared/style/sim_picker/images/long-tap-indicator.png b/shared/style/sim_picker/images/long-tap-indicator.png deleted file mode 100644 index c09fab3914bfb9e1109b70d9241511ac79e18058..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76 zcmeAS@N?(olHy`uVBq!ia0vp^d_c^_!2%@pE-d!}Qo^1tjv*C{$r1(+xLYDJ)Y=@` Z7!+L@FB*tDMgpZ7JYD@<);T3K0Ra504|xCp diff --git a/shared/style/sim_picker/images/long-tap-indicator@1.5x.png b/shared/style/sim_picker/images/long-tap-indicator@1.5x.png deleted file mode 100644 index b6b4160681dbcc24db37309864c2994e8e6dd17b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81 zcmeAS@N?(olHy`uVBq!ia0vp^qCm{g!2%=~2Kzh!QWBmnjv*C{$qh|`54f9t-1Ipz f!+F!CKn8}#XPI{Gy*hs}Pz{5ptDnm{r-UW|`{@_Q diff --git a/shared/style/sim_picker/images/long-tap-indicator@2x.png b/shared/style/sim_picker/images/long-tap-indicator@2x.png deleted file mode 100644 index 4df12a1dbe667c386115976337aa81ffdf84d591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZC!2%>r!lxDiDS1y9$B+ufWC^hZ5radK`vR(r m3v1Lay