Source: js/internet_sharing.js

'use strict';
/* global ModalDialog */
/* global Service */

(function(exports) {

  // Local reference to mozSettings
  var settings;

  /**
   * Internet Sharing module responsible for checking the availability of
   * internet sharing based on the status of airplane mode.
   * @requires ModalDialog
   * @class InternetSharing
   */
  function InternetSharing() {}

  InternetSharing.prototype = {
    /**
     * Called whenever there is a setting change in wifi tethering.
     * Validates that we can turn internet sharing on, and saves state to
     * @memberof InternetSharing.prototype
     */
    internetSharingSettingsChangeHanlder: function(evt) {
      if (Service.query('AirplaneMode.isActive') && true === evt.settingValue) {
        var title = 'apmActivated';
        var buttonText = 'ok';
        var message ='noHotspotWhenAPMisOnWifiHotspot';

        ModalDialog.alert(title, message, { title: buttonText });
        settings.createLock().set({
          'tethering.wifi.enabled': false
        });
      }
    },

    /**
     * Starts the InternetSharing class.
     * @memberof InternetSharing.prototype
     */
    start: function() {
      settings = window.navigator.mozSettings;
      // listen changes after value is restored.
      settings.addObserver('tethering.wifi.enabled',
        this.internetSharingSettingsChangeHanlder.bind(this));
    }
  };

  exports.InternetSharing = InternetSharing;

}(window));