* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
-// Get the best-available indexedDB object.
+// Get the best-available objects for indexedDB and requestAnimationFrame.
window.indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
-var mainDB;
+window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
+var mainDB;
+var gAppInitDone = false;
var gUIHideCountdown = 0;
var gWaitCounter = 0;
var gAction, gActionLabel;
gAction.removeEventListener(aEvent.type, postInit, false);
console.log("init done, draw map.");
gMapPrefsLoaded = true;
- gMap.resizeAndDraw();
+ gAppInitDone = true;
+ //gMap.resizeAndDraw(); <-- HACK: This triggers bug 1001853, work around with a delay.
+ window.setTimeout(gMap.resizeAndDraw, 100);
gActionLabel.textContent = "";
gAction.style.display = "none";
setTracking(document.getElementById("trackCheckbox"));
function maybeHideUI() {
gUIHideCountdown--;
+ if (!document.getElementById("trackArea").classList.contains("hidden")) {
+ // If track area is visible, update track data.
+ document.getElementById("trackLength").textContent = calcTrackLength().toFixed(1);
+ document.getElementById("trackDuration").textContent = Math.round(calcTrackDuration()/60);
+ }
if (gUIHideCountdown <= 0) {
var areas = document.getElementsByClassName('overlayArea');
for (var i = 0; i <= areas.length - 1; i++) {
function toggleTrackArea() {
var fs = document.getElementById("trackArea");
- if (fs.style.display != "block") {
- fs.style.display = "block";
+ if (fs.classList.contains("hidden")) {
+ fs.classList.remove("hidden");
showUI();
}
else {
- fs.style.display = "none";
+ fs.classList.add("hidden");
}
}
function toggleSettings() {
var fs = document.getElementById("settingsArea");
- if (fs.style.display != "block") {
- fs.style.display = "block";
+ if (fs.classList.contains("hidden")) {
+ fs.classList.remove("hidden");
showUI();
}
else {
- fs.style.display = "none";
+ fs.classList.add("hidden");
}
}