Paramètres

L'application Paramètres permet aux utilisateurs de configurer les paramètres de leur appareil et répond aux activités entrantes qui autorisent les développeurs à afficher des vues spécifiques de paramètres (par exemple afficher le panneau des paramètres wifi si aucune connexion réseau n'est disponible). Cet article explique comment cela fonctionne.

mozSettings API et association de données

Techniquement, l'application Paramètres est l'interface utilisateur qui leur fournit l'accès certifié à l'API window.navigator.mozSettings.

L'application Paramètres gère automatiquement les opérations de paramétrage basique comme les champs d'association de données et les valeurs mozSettings — toutes les opérations basiques comme basculer un paramètre ou changer une valeur d'entrée vont aussi modifier la valeur mozSettings associée.

L'API window.navigator.mozSettings accède depuis Gecko aux données paramètres. L'utilisation ressemble à ceci pour mettre à jour les données :

navigator.mozSettings.createLock().set(values);

Note: Il faut utiliser createLock() pour verrouiller les paramètres avant de lire ou écrire des valeurs mozSettings.

Pour récupérer les données, il est possible d'utiliser un appel de fonction get et set pour effectuer des opérations sur les données :

var reqTimerGoBack =
window.navigator.mozSettings.createLock().get('icc.goBackTimeout');
reqTimerGoBack.onsuccess = function icc_getTimerGoBackSuccess() {
  goBackTimer.timeout = reqTimerGoBack.result['icc.goBackTimeout'];
    ...
};

La donnée est stockée dans un emplacement instance.result.

Depuis Firefox OS 2.0, une seule instance mozSettings peut être réutilisée via js/modules/settings_cache.js :

var SettingsCache = require('modules/settings_cache');

SettingsCache.getSettings(function(result){
  var onlineSupportTitle = result['support.onlinesupport.title'];
    ...
});

Quand les utilisateurs ouvrent l'application Paramètres, ils voient plusieurs panneaux sur la page de vue d'ensemble, qui sont des pages indépendantes fonctionnellement. SettingsService.navigate (js/module/settings_service.js) contrôle la navigation entre ces pages.

Note: Pour les panneaux légaux (qui ne sont pas portés par la nouvelle structure), settings.currentPanel est utilisé à la place de SettingsService.navigate pour naviguer entre les panneaux.

Puisque Firefox OS sera supporté sur les tablettes et appareils mobiles, l'application Paramètres possède deux types d'implémentation de modèle de navigation :

  • Une colonne (pour les mobiles)
  • Deux colonnes (pour les tablettes)

Tant qu'il est appelé, SettingsService.navigate détermine quel modèle de navigation utiliser grâce au code suivant :

if (_isTabletAndLandscape()) {
  PageTransitions.twoColumn(oldPanel, newPanel, callback);
} else {
  PageTransitions.oneColumn(oldPanel, newPanel, callback);
}

Panneaux

Depuis bien avant Firefox OS 2.0, la structure basique d'un panneau est définie dans js/modules/panel.js. Il définit six statistiques de cycle de vie :

  • init
  • beforeShow
  • show
  • hide
  • beforeHide
  • uninit

Tous les nouveaux panneaux de paramètres héritent de SettingsPanel, qui étend les fonctionnalités de Panel. Le code est contenu dans js/modules/settings_panel.js:

onInit: function(panel, initOptions) {
  ...

  PanelUtils.activate(panel);
},

onBeforeShow: function(panel, beforeShowOptions) {
  // Preset the panel every time when it is presented.
  PanelUtils.preset(panel);
  _addListeners(panel);
  ...
},

PanelUtils.activate — défini dans js/modules/panel_utils.js — est utilisé pour parser tous les liens dans le panneau et ajoute les handlers corresponsants dans la statistique onInit, et PanelUtils.preset est utilisé pour prérégler les éléments avec les valeurs de paramétrage dans la statistique onBeforeShow.

Tous les nouveaux paramètres sont définis dans le dossier js/panels.

Module AMD et optimisation du temps de compilation

Depuis bien avant Firefox OS 2.0, l'application Paramètres utilise le AMD modules pattern pour implémenter chaque panneau. Les modules AMD modules sont chargés via Alemeda (une version plus légère de RequireJS) et compilés/optimisés avec r.js (l'optimiseur RequireJS). L'application Paramètres a toujours des dépendances sur des fichiers (shared/js) qui ne sont pas des modules AMD. Pour ces derniers, il faut utiliser les options shim définies dans settings/js/config/require.js.

Voir aussi

Le README Settings app has a build-in qui est utile pour aller plus loin sur les Paramètres (principalement écrit par Arthur Chen et Fred Lin).

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : jwhitlock, Hell_Carlito, J.DMB
 Dernière mise à jour par : jwhitlock,