Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
91 lines
2.4 KiB
JavaScript
Executable file
91 lines
2.4 KiB
JavaScript
Executable file
/* global SettingsListener */
|
|
|
|
/**
|
|
* This module display Find My Device's enabled/disabled state on an
|
|
* element.
|
|
*
|
|
* @module panels/root/findmydevice_item
|
|
*/
|
|
define(function(require) {
|
|
'use strict';
|
|
|
|
/**
|
|
* @alias module:panels/root/findmydevice_item
|
|
* @class FindMyDeviceItem
|
|
* @param {HTMLElement} element
|
|
The element displaying Find My Device's enabled state
|
|
* @returns {FindMyDeviceItem}
|
|
*/
|
|
function FindMyDeviceItem(element) {
|
|
this._itemEnabled = false;
|
|
this._FMDEnabled = false;
|
|
this._boundRefreshText = this._refreshText.bind(this, element);
|
|
this._boundFMDEnabledChanged = this._onFMDEnabledChanged.bind(this);
|
|
}
|
|
|
|
FindMyDeviceItem.prototype = {
|
|
/**
|
|
* Refresh the text based on Find My Device's enabled state
|
|
*
|
|
* @access private
|
|
* @memberOf FindMyDeviceItem.prototype
|
|
* @param {HTMLElement} element
|
|
The element showing Find My Device's enabled state
|
|
*/
|
|
_refreshText: function fmd_refresh_text(element) {
|
|
if (!document.l10n) {
|
|
return;
|
|
}
|
|
|
|
element.setAttribute('data-l10n-id',
|
|
this._FMDEnabled ? 'enabled' : 'disabled');
|
|
element.hidden = false;
|
|
},
|
|
|
|
/**
|
|
* Listener for changes in Find My Device's enabled state. Updates the
|
|
* text if this item is enabled.
|
|
*
|
|
* @access private
|
|
* @memberOf FindMyDeviceItem.prototype
|
|
* @param {Boolean} value
|
|
The current enabled state for Find My Device
|
|
*/
|
|
_onFMDEnabledChanged: function fmd_enabled_changed(value) {
|
|
this._FMDEnabled = value;
|
|
if (this._itemEnabled) {
|
|
this._boundRefreshText();
|
|
}
|
|
},
|
|
|
|
/**
|
|
* The value indicates whether the module is responding.
|
|
*
|
|
* @access public
|
|
* @memberOf FindMyDeviceItem.prototype
|
|
* @type {Boolean}
|
|
*/
|
|
get enabled() {
|
|
return this._itemEnabled;
|
|
},
|
|
|
|
set enabled(value) {
|
|
if (this._itemEnabled === value) {
|
|
return;
|
|
}
|
|
|
|
this._itemEnabled = value;
|
|
if (this._itemEnabled) {
|
|
SettingsListener.observe('findmydevice.enabled', false,
|
|
this._boundFMDEnabledChanged);
|
|
} else {
|
|
SettingsListener.unobserve('findmydevice.enabled',
|
|
this._boundFMDEnabledChanged);
|
|
}
|
|
}
|
|
};
|
|
|
|
return function ctor_findMyDeviceItem(element) {
|
|
return new FindMyDeviceItem(element);
|
|
};
|
|
});
|