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

Commit

Permalink
Merge pull request #25641 from huchengtw-moz/bug-1090810-use-settings…
Browse files Browse the repository at this point in the history
…-cache

Bug 1090810 - [Stingray] add SettingsCache to smart system, r=rexboy
  • Loading branch information
huchengtw-moz committed Nov 4, 2014
2 parents e920d2d + f2f4ce6 commit b54f50d
Show file tree
Hide file tree
Showing 33 changed files with 272 additions and 139 deletions.
6 changes: 3 additions & 3 deletions tv_apps/smart-system/index.html
Expand Up @@ -18,10 +18,10 @@
<script defer src="shared/js/settings_listener.js"></script>
<script defer src="shared/js/custom_dialog.js"></script>
<script defer src="shared/js/notification_helper.js"></script>
<script defer src="shared/js/async_storage.js"></script>
<script defer src="shared/js/manifest_helper.js"></script>
<!-- We need this before we can show the boot animation -->
<script src="shared/js/settings_helper.js"></script>
<script src="shared/js/async_storage.js"></script>
<script src="js/settings_cache.js"></script>
<script defer src="shared/js/manifest_helper.js"></script>
<script defer src="shared/js/mime_mapper.js"></script>
<script defer src="shared/js/settings_url.js"></script>
<script defer src="shared/js/advanced_timer.js"></script>
Expand Down
4 changes: 2 additions & 2 deletions tv_apps/smart-system/js/accessibility.js
@@ -1,5 +1,5 @@
'use strict';
/* global SettingsListener */
/* global SettingsCache, SettingsListener */

(function(exports) {

Expand Down Expand Up @@ -121,7 +121,7 @@

// Attach all observers.
Object.keys(this.settings).forEach(function attach(settingKey) {
SettingsListener.observe(settingKey, this.settings[settingKey],
SettingsCache.observe(settingKey, this.settings[settingKey],
function observe(aValue) {
this.settings[settingKey] = aValue;
switch (settingKey) {
Expand Down
16 changes: 8 additions & 8 deletions tv_apps/smart-system/js/airplane_mode.js
@@ -1,4 +1,4 @@
/* global SettingsListener, AirplaneMode */
/* global SettingsCache, SettingsListener, AirplaneMode */
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */

Expand All @@ -14,21 +14,21 @@
var settingSuspendedID = settingID + '.suspended';
// forget the mozSetting states when user toggle 'xyz' on manually,
// e.g. set 'xyz'.suspend = false when 'xyz'.enabled === true
window.navigator.mozSettings.addObserver(
settingEnabledID,
function(e) {
if (e.settingValue) {
SettingsCache.observe(settingEnabledID,
'',
function(value) {
if (value) {
self._unsuspend(settingSuspendedID);
}
});
// init and observe the corresponding mozSettings
// for Bluetooth, Wifi, and GPS.
SettingsListener.observe(settingEnabledID, false,
SettingsCache.observe(settingEnabledID, false,
function(value) {
self._settings[settingEnabledID] = value;
});
// remember the mozSetting states before the airplane mode disables them
SettingsListener.observe(settingSuspendedID, false,
SettingsCache.observe(settingSuspendedID, false,
function(value) {
self._settings[settingSuspendedID] = value;
});
Expand Down Expand Up @@ -319,7 +319,7 @@
this._serviceHelper.init();

// monitor airplaneMode communication key change
SettingsListener.observe('airplaneMode.enabled', false, function(value) {
SettingsCache.observe('airplaneMode.enabled', false, function(value) {
self.enabled = value;
});
}
Expand Down
4 changes: 2 additions & 2 deletions tv_apps/smart-system/js/app_chrome.js
Expand Up @@ -3,7 +3,7 @@
/* global LazyLoader */
/* global ModalDialog */
/* global MozActivity */
/* global SettingsListener */
/* global SettingsCache */
/* global System */

'use strict';
Expand All @@ -13,7 +13,7 @@
var _ = navigator.mozL10n.get;

var newTabManifestURL = null;
SettingsListener.observe('rocketbar.newTabAppURL', '',
SettingsCache.observe('rocketbar.newTabAppURL', '',
function(url) {
// The application list in applications.js is not yet ready, so we store
// only the manifestURL for now and we look up the application whenever
Expand Down
7 changes: 3 additions & 4 deletions tv_apps/smart-system/js/app_transition_controller.js
@@ -1,4 +1,4 @@
/* global SettingsListener, System, SimPinDialog */
/* global SettingsCache, System, SimPinDialog */
'use strict';

(function(exports) {
Expand All @@ -14,9 +14,8 @@
};

var appTransitionSetting = 'app-transition.enabled';
var transitionEnabled =
SettingsListener.getSettingsLock().get(appTransitionSetting);
SettingsListener.observe(appTransitionSetting, true, function(value) {
var transitionEnabled = true;
SettingsCache.observe(appTransitionSetting, true, function(value) {
transitionEnabled = value;
});

Expand Down
4 changes: 2 additions & 2 deletions tv_apps/smart-system/js/app_window.js
Expand Up @@ -4,7 +4,7 @@
/* global ManifestHelper */
/* global OrientationManager */
/* global ScreenLayout */
/* global SettingsListener */
/* global SettingsCache */
/* global System */
'use strict';

Expand Down Expand Up @@ -74,7 +74,7 @@
* @type {Boolean}
*/
AppWindow.SUSPENDING_ENABLED = false;
SettingsListener.observe('app-suspending.enabled', false, function(value) {
SettingsCache.observe('app-suspending.enabled', false, function(value) {
AppWindow.SUSPENDING_ENABLED = !!value;
});

Expand Down
4 changes: 2 additions & 2 deletions tv_apps/smart-system/js/app_window_manager.js
@@ -1,5 +1,5 @@
/* global SettingsListener, homescreenWindowManager, KeyboardManager,
layoutManager, System */
layoutManager, System, SettingsCache */
'use strict';

(function(exports) {
Expand Down Expand Up @@ -317,7 +317,7 @@
};

for (var name in this._settingsObserveHandler) {
SettingsListener.observe(
SettingsCache.observe(
name,
this._settingsObserveHandler[name].defaultValue,
this._settingsObserveHandler[name].callback
Expand Down
2 changes: 1 addition & 1 deletion tv_apps/smart-system/js/attention_window_manager.js
@@ -1,5 +1,5 @@
/* globals System, AppWindowManager, homescreenLauncher, SettingsListener,
AttentionIndicator */
SettingsCache, AttentionIndicator */
'use strict';

(function(exports) {
Expand Down
6 changes: 3 additions & 3 deletions tv_apps/smart-system/js/battery_manager.js
Expand Up @@ -142,7 +142,7 @@ var PowerSaveHandler = (function PowerSaveHandler() {
var _powerSaveEnabledLock = false;

function init() {
SettingsListener.observe('powersave.enabled', false,
SettingsCache.observe('powersave.enabled', false,
function sl_getPowerSave(value) {
var enabled = value;
if (enabled) {
Expand All @@ -155,7 +155,7 @@ var PowerSaveHandler = (function PowerSaveHandler() {

// Monitor the states of various modules
for (var j in _states) {
SettingsListener.observe(j, true, function getState(state, value) {
SettingsCache.observe(j, true, function getState(state, value) {
_states[state] = value;
}.bind(null, j));
}
Expand Down Expand Up @@ -234,7 +234,7 @@ var PowerSaveHandler = (function PowerSaveHandler() {
return;
}

SettingsListener.observe('powersave.threshold', -1,
SettingsCache.observe('powersave.threshold', -1,
function getThreshold(value) {
// If 'turn on automatically' is set to 'never', don't change the
// power saving state
Expand Down
3 changes: 1 addition & 2 deletions tv_apps/smart-system/js/bluetooth.js
Expand Up @@ -65,10 +65,9 @@ var Bluetooth = {
return;

var bluetooth = window.navigator.mozBluetooth;
var settings = window.navigator.mozSettings;
var self = this;

SettingsListener.observe('bluetooth.enabled', true, function(value) {
SettingsCache.observe('bluetooth.enabled', true, function(value) {
if (!bluetooth) {
// roll back the setting value to notify the UIs
// that Bluetooth interface is not available
Expand Down
4 changes: 2 additions & 2 deletions tv_apps/smart-system/js/child_window_factory.js
@@ -1,10 +1,10 @@
'use strict';
/* global AppWindow, PopupWindow, ActivityWindow, SettingsListener,
/* global AppWindow, PopupWindow, ActivityWindow, SettingsCache,
AttentionWindow, MozActivity */

(function(exports) {
var ENABLE_IN_APP_SHEET = false;
SettingsListener.observe('in-app-sheet.enabled', false, function(value) {
SettingsCache.observe('in-app-sheet.enabled', false, function(value) {
ENABLE_IN_APP_SHEET = value;
});
/**
Expand Down
22 changes: 11 additions & 11 deletions tv_apps/smart-system/js/crash_reporter.js
Expand Up @@ -19,7 +19,7 @@ var CrashReporter = (function() {

// Only show the "Report" button if the user hasn't set a preference to
// always/never report crashes.
SettingsListener.observe('app.reportCrashes', 'ask',
SettingsCache.observe('app.reportCrashes', 'ask',
function handleCrashSetting(value) {
showReportButton = (value != 'always' && value != 'never');
});
Expand Down Expand Up @@ -121,16 +121,16 @@ var CrashReporter = (function() {
// - If the user hasn't set a pref, add a "Report" button to the banner.
function handleCrash(crashID, isChrome) {
// Check to see if we should show a dialog.
var dialogReq = settings.createLock().get('crashReporter.dialogShown');
dialogReq.onsuccess = function dialogShownSuccess() {
var dialogShown = dialogReq.result['crashReporter.dialogShown'];
if (!dialogShown) {
settings.createLock().set({'crashReporter.dialogShown': true});
showDialog(crashID, isChrome);
} else {
showBanner(crashID, isChrome);
}
};
SettingsCache.get('crashReporter.dialogShown',
function dialogShownSuccess(value) {
var dialogShown = value;
if (!dialogShown) {
settings.createLock().set({'crashReporter.dialogShown': true});
showDialog(crashID, isChrome);
} else {
showBanner(crashID, isChrome);
}
});
}

// We depend on window_manager.js calling this function before
Expand Down
4 changes: 2 additions & 2 deletions tv_apps/smart-system/js/devtools/developer_hud.js
@@ -1,4 +1,4 @@
/* global SettingsListener */
/* global SettingsCache */

(function(exports) {
'use strict';
Expand All @@ -8,7 +8,7 @@
* @class DeveloperHUD
*/
function DeveloperHUD() {
SettingsListener.observe('devtools.overlay.system',
SettingsCache.observe('devtools.overlay.system',
false, this.toggleSystemHUD.bind(this));
}

Expand Down
11 changes: 3 additions & 8 deletions tv_apps/smart-system/js/ftu_launcher.js
Expand Up @@ -130,9 +130,8 @@ var FtuLauncher = {
launch: function fl_launch() {
var self = this;

var req = navigator.mozSettings.createLock().get('ftu.manifestURL');
req.onsuccess = function() {
var manifestURL = req.result['ftu.manifestURL'];
SettingsCache.get('ftu.manifestURL', function(value) {
var manifestURL = value;

self._ftuManifestURL = manifestURL;
if (!manifestURL) {
Expand All @@ -152,11 +151,7 @@ var FtuLauncher = {
self._ftuOrigin = ftu.origin;
// Open FTU
ftu.launch();
};
req.onerror = function() {
dump('Couldn\'t get the ftu manifestURL.\n');
self.skip();
};
});
},

skip: function fl_skip() {
Expand Down
24 changes: 12 additions & 12 deletions tv_apps/smart-system/js/ftu_ping.js
Expand Up @@ -139,14 +139,15 @@
self._maxNetworkFails = settings[FTU_PING_MAX_NETWORK_FAILS] ||
self._maxNetworkFails;

var mozSettings = window.navigator.mozSettings;
if (!self._settingObserver) {
self._settingObserver = self.onSettingChanged.bind(self);
}

OBSERVE_SETTINGS.forEach(function(observeSetting) {
self._pingData[observeSetting] = settings[observeSetting];
mozSettings.addObserver(observeSetting, self._settingObserver);
SettingsCache.observe(observeSetting, null, function(value) {
self._settingObserver(observeSetting, value);
});
});

if (callback) {
Expand Down Expand Up @@ -175,24 +176,22 @@
var settings = {};
var lock = window.navigator.mozSettings.createLock();
settingKeys.forEach(function(key) {
var request = lock.get(key);
request.onsuccess = function(evt) {
var value = request.result[key];
SettingsCache.get(key, function(value) {
settingsLeft--;
settings[key] = value;
if (settingsLeft === 0 && callback) {
callback(settings);
}
};
});
});
},

ensurePing: function fp_ensurePing() {
this.initSettings(this.startPing.bind(this));
},

onSettingChanged: function fp_onSettingChanged(evt) {
this._pingData[evt.settingName] = evt.settingValue;
onSettingChanged: function fp_onSettingChanged(key, value) {
this._pingData[key] = value;
},

startPing: function fp_startPing() {
Expand Down Expand Up @@ -290,11 +289,12 @@

this._pingEnabled = false;
window.asyncStorage.setItem(FTU_PING_ENABLED, false);
// XXX: we don't have unobserve

var settings = window.navigator.mozSettings;
OBSERVE_SETTINGS.forEach(function(setting) {
settings.removeObserver(setting, this._settingObserver);
}, this);
// var settings = window.navigator.mozSettings;
// OBSERVE_SETTINGS.forEach(function(setting) {
// settings.removeObserver(setting, this._settingObserver);
// }, this);

clearInterval(this._pingTimer);
},
Expand Down
4 changes: 2 additions & 2 deletions tv_apps/smart-system/js/hardware_buttons.js
@@ -1,6 +1,6 @@
'use strict';

/* global ScreenManager, SettingsListener */
/* global ScreenManager, SettingsCache */

(function(exports) {

Expand Down Expand Up @@ -126,7 +126,7 @@

window.addEventListener('softwareButtonEvent', this);

SettingsListener.observe('software-button.enabled', false, function(value) {
SettingsCache.observe('software-button.enabled', false, function(value) {
this._softwareHome = value;
}.bind(this));
};
Expand Down
3 changes: 2 additions & 1 deletion tv_apps/smart-system/js/home_gesture.js
@@ -1,6 +1,7 @@
'use strict';
/* global ScreenLayout */
/* global SettingsListener */
/* global SettingsCache */

(function(exports) {

Expand Down Expand Up @@ -77,7 +78,7 @@
// as default
this.toggle(true);
} else {
SettingsListener.observe('homegesture.enabled', false,
SettingsCache.observe('homegesture.enabled', false,
function onObserve(value) {
this.toggle(value);
}.bind(this));
Expand Down

0 comments on commit b54f50d

Please sign in to comment.