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
192
gaia/apps/sms/views/shared/js/startup.js
Executable file
192
gaia/apps/sms/views/shared/js/startup.js
Executable file
|
|
@ -0,0 +1,192 @@
|
|||
/* -*- Mode: js; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /
|
||||
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
|
||||
|
||||
'use strict';
|
||||
|
||||
/*global ActivityHandler,
|
||||
App,
|
||||
ConversationView,
|
||||
Drafts,
|
||||
InboxView,
|
||||
Information,
|
||||
InterInstanceEventDispatcher,
|
||||
LazyLoader,
|
||||
LocalizationHelper,
|
||||
MessageManager,
|
||||
MessagingClient,
|
||||
MozMobileConnectionsClient,
|
||||
Navigation,
|
||||
Settings,
|
||||
SilentSms,
|
||||
SystemMessageHandler,
|
||||
TimeHeaders,
|
||||
Utils
|
||||
*/
|
||||
|
||||
(function(exports) {
|
||||
/**
|
||||
* @function
|
||||
* The debug function translates to console.log in debug mode.
|
||||
*
|
||||
* @param {String} arg1 The first value to be displayed to the console.
|
||||
* @param {...*} args The other values to be displayed to the console, or the
|
||||
* parameters to the first string.
|
||||
*/
|
||||
var debug = 0 ?
|
||||
(arg1, ...args) => console.log('[Startup] ' + arg1, ...args) :
|
||||
() => {};
|
||||
|
||||
var Startup = exports.Startup = {
|
||||
_lazyLoadScripts: [
|
||||
'/shared/js/settings_listener.js',
|
||||
'/shared/js/mime_mapper.js',
|
||||
'/shared/js/notification_helper.js',
|
||||
'/shared/js/option_menu.js',
|
||||
'/shared/js/gesture_detector.js',
|
||||
'/shared/js/settings_url.js',
|
||||
'/shared/js/mobile_operator.js',
|
||||
'/shared/js/multi_sim_action_button.js',
|
||||
'/shared/js/image_utils.js',
|
||||
'/shared/elements/gaia_sim_picker/script.js',
|
||||
'/views/shared/js/waiting_screen.js',
|
||||
'/views/shared/js/errors.js',
|
||||
'/views/shared/js/dialog.js',
|
||||
'/views/shared/js/error_dialog.js',
|
||||
'/views/conversation/js/link_helper.js',
|
||||
'/views/conversation/js/link_action_handler.js',
|
||||
'/views/shared/js/contact_renderer.js',
|
||||
'/views/shared/js/activity_picker.js',
|
||||
'/views/conversation/js/information.js',
|
||||
'/views/shared/js/shared_components.js',
|
||||
'/views/shared/js/task_runner.js',
|
||||
'/views/shared/js/silent_sms.js',
|
||||
'/views/conversation/js/recipients.js',
|
||||
'/views/conversation/js/attachment.js',
|
||||
'/views/conversation/js/attachment_renderer.js',
|
||||
'/views/conversation/js/conversation.js',
|
||||
'/views/conversation/js/subject_composer.js',
|
||||
'/views/conversation/js/compose.js',
|
||||
'/views/shared/js/wbmp.js',
|
||||
'/views/shared/js/smil.js',
|
||||
'/views/shared/js/notify.js',
|
||||
'/views/shared/js/activity_handler.js',
|
||||
'/views/shared/js/system_message_handler.js',
|
||||
'/views/shared/js/localization_helper.js',
|
||||
'/lib/bridge/client.js',
|
||||
'/services/js/activity/activity_client.js',
|
||||
'/services/js/messaging/messaging_client.js',
|
||||
'/services/js/moz_mobile_connections/moz_mobile_connections_client.js'
|
||||
],
|
||||
|
||||
_lazyLoadStyles: [
|
||||
'/shared/style/confirm.css',
|
||||
'/shared/style/status.css',
|
||||
'/shared/style/input_areas.css',
|
||||
'/shared/style/progress_activity.css',
|
||||
'/views/shared/style/composer.css',
|
||||
'/views/conversation/style/message.css',
|
||||
'/views/conversation/style/report_view.css',
|
||||
'/views/conversation/style/attachment.css',
|
||||
'/views/conversation/style/conversation.css',
|
||||
'/views/new_message/style/new_message.css',
|
||||
'/views/new_message/style/recipients.css'
|
||||
],
|
||||
|
||||
_lazyLoadInit: function() {
|
||||
var lazyLoadPromise = LazyLoader.load(
|
||||
[...this._lazyLoadScripts, ...this._lazyLoadStyles]).then(() => {
|
||||
|
||||
LocalizationHelper.init();
|
||||
|
||||
InterInstanceEventDispatcher.connect();
|
||||
|
||||
// dispatch contentInteractive when all the modules initialized
|
||||
SilentSms.init();
|
||||
|
||||
// When app is run as inline activity we don't want to handle any other
|
||||
// system messages other than "activity" system message.
|
||||
if (navigator.mozHasPendingMessage('activity')) {
|
||||
ActivityHandler.init();
|
||||
} else {
|
||||
SystemMessageHandler.init();
|
||||
}
|
||||
|
||||
// Init UI Managers
|
||||
TimeHeaders.init();
|
||||
ConversationView.init();
|
||||
MessagingClient.init(App.instanceId);
|
||||
MozMobileConnectionsClient.init(App.instanceId);
|
||||
Information.initDefaultViews();
|
||||
|
||||
Navigation.setReady();
|
||||
|
||||
window.performance.mark('contentInteractive');
|
||||
|
||||
// Fetch mmsSizeLimitation and max concat
|
||||
Settings.init();
|
||||
|
||||
window.performance.mark('objectsInitEnd');
|
||||
});
|
||||
return lazyLoadPromise;
|
||||
},
|
||||
|
||||
/**
|
||||
* We wait for the DOMContentLoaded event in the event sequence. After we
|
||||
* loaded the first panel of threads, we lazy load all non-critical JS files.
|
||||
* As a result, if the 'load' event was not sent yet, this will delay it even
|
||||
* more until all these non-critical JS files are loaded. This is fine.
|
||||
*/
|
||||
init: function() {
|
||||
var loaded = function() {
|
||||
window.removeEventListener('DOMContentLoaded', loaded);
|
||||
|
||||
window.performance.mark('navigationLoaded');
|
||||
|
||||
Utils.initializeShimHost(App.instanceId);
|
||||
|
||||
MessageManager.init();
|
||||
Drafts.init();
|
||||
InboxView.init();
|
||||
Navigation.init();
|
||||
|
||||
InboxView.once('fully-loaded', () => {
|
||||
window.performance.mark('fullyLoaded');
|
||||
|
||||
App.setReady();
|
||||
});
|
||||
|
||||
InboxView.once('visually-loaded', () => {
|
||||
window.performance.mark('visuallyLoaded');
|
||||
});
|
||||
|
||||
// If initial panel is default one and app isn't run from notification,
|
||||
// then just navigate to it, otherwise we can delay default panel
|
||||
// initialization until we navigate to requested non-default panel.
|
||||
if (Navigation.isDefaultPanel() &&
|
||||
!navigator.mozHasPendingMessage('notification') &&
|
||||
!navigator.mozHasPendingMessage('activity')) {
|
||||
debug('Rendering threads now.');
|
||||
|
||||
InboxView.once('visually-loaded', () => {
|
||||
this._lazyLoadInit();
|
||||
});
|
||||
|
||||
InboxView.renderThreads();
|
||||
} else {
|
||||
debug('Not using default panel, waiting for navigated event');
|
||||
Navigation.once('navigated', () => InboxView.renderThreads());
|
||||
|
||||
this._lazyLoadInit();
|
||||
}
|
||||
|
||||
// dispatch navigationInteractive when thread list related modules
|
||||
// initialized
|
||||
window.performance.mark('navigationInteractive');
|
||||
}.bind(this);
|
||||
|
||||
window.addEventListener('DOMContentLoaded', loaded);
|
||||
}
|
||||
};
|
||||
|
||||
Startup.init();
|
||||
})(window);
|
||||
Loading…
Reference in a new issue