Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/apps/system/js/bootstrap.js
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2013-02-06 13:49:14 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2013-02-06 13:49:14 (GMT)
commit821413607a0718156f9d25d895e89b1c3d37aa8b (patch)
tree01c285af734ed5bba64b73b489e1e0226a94a262 /apps/system/js/bootstrap.js
parentc110fb485b3af0066c6df7aeac8c055e9d767efa (diff)
Copy various bits from gaia
Diffstat (limited to 'apps/system/js/bootstrap.js')
-rw-r--r--apps/system/js/bootstrap.js82
1 files changed, 82 insertions, 0 deletions
diff --git a/apps/system/js/bootstrap.js b/apps/system/js/bootstrap.js
new file mode 100644
index 0000000..21e2238
--- /dev/null
+++ b/apps/system/js/bootstrap.js
@@ -0,0 +1,82 @@
+/* -*- Mode: js; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /
+/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
+
+'use strict';
+
+window.addEventListener('load', function startup() {
+ function safelyLaunchFTU() {
+ WindowManager.retrieveHomescreen(WindowManager.retrieveFTU);
+ }
+
+ if (Applications.ready) {
+ safelyLaunchFTU();
+ } else {
+ window.addEventListener('applicationready', function appListReady(event) {
+ window.removeEventListener('applicationready', appListReady);
+ safelyLaunchFTU();
+ });
+ }
+
+ window.addEventListener('ftudone', function doneWithFTU() {
+ window.removeEventListener('ftudone', doneWithFTU);
+
+ var lock = window.navigator.mozSettings.createLock();
+ lock.set({
+ 'gaia.system.checkForUpdates': true
+ });
+ });
+
+ SourceView.init();
+ Shortcuts.init();
+ ScreenManager.turnScreenOn();
+
+ // We need to be sure to get the focus in order to wake up the screen
+ // if the phone goes to sleep before any user interaction.
+ // Apparently it works because no other window has the focus at this point.
+ window.focus();
+
+ // This is code copied from
+ // http://dl.dropbox.com/u/8727858/physical-events/index.html
+ // It appears to workaround the Nexus S bug where we're not
+ // getting orientation data. See:
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=753245
+ // It seems it needs to be in both window_manager.js and bootstrap.js.
+ function dumbListener2(event) {}
+ window.addEventListener('devicemotion', dumbListener2);
+
+ window.setTimeout(function() {
+ window.removeEventListener('devicemotion', dumbListener2);
+ }, 2000);
+});
+
+/* === Shortcuts === */
+/* For hardware key handling that doesn't belong to anywhere */
+var Shortcuts = {
+ init: function rm_init() {
+ window.addEventListener('keyup', this);
+ },
+
+ handleEvent: function rm_handleEvent(evt) {
+ if (!ScreenManager.screenEnabled || evt.keyCode !== evt.DOM_VK_F6)
+ return;
+
+ document.location.reload();
+ }
+};
+
+/* === Localization === */
+/* set the 'lang' and 'dir' attributes to <html> when the page is translated */
+window.addEventListener('localized', function onlocalized() {
+ document.documentElement.lang = navigator.mozL10n.language.code;
+ document.documentElement.dir = navigator.mozL10n.language.direction;
+});
+
+// Define the default background to use for all homescreens
+SettingsListener.observe(
+ 'wallpaper.image',
+ 'resources/images/backgrounds/default.png',
+ function setWallpaper(value) {
+ document.getElementById('screen').style.backgroundImage =
+ 'url(' + value + ')';
+ }
+);