| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * @fileoverview 'settings-languages' provides convenient access to | 6 * @fileoverview 'settings-languages' provides convenient access to |
| 7 * Chrome's language and input method settings. | 7 * Chrome's language and input method settings. |
| 8 * | 8 * |
| 9 * Instances of this element have a 'languages' property, which reflects the | 9 * Instances of this element have a 'languages' property, which reflects the |
| 10 * current language settings. The 'languages' property is read-only, meaning | 10 * current language settings. The 'languages' property is read-only, meaning |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 /** | 185 /** |
| 186 * Singleton element created when settings-languages is registered. | 186 * Singleton element created when settings-languages is registered. |
| 187 * Generates the languages model on start-up, and updates it whenever Chrome's | 187 * Generates the languages model on start-up, and updates it whenever Chrome's |
| 188 * pref store and other settings change. These updates propagate to each | 188 * pref store and other settings change. These updates propagate to each |
| 189 * <settings-language> instance so that their 'languages' property updates | 189 * <settings-language> instance so that their 'languages' property updates |
| 190 * like any other Polymer property. | 190 * like any other Polymer property. |
| 191 */ | 191 */ |
| 192 Polymer({ | 192 Polymer({ |
| 193 is: 'settings-languages-singleton', | 193 is: 'settings-languages-singleton', |
| 194 | 194 |
| 195 behaviors: [PrefsBehavior], |
| 196 |
| 195 properties: { | 197 properties: { |
| 196 /** | 198 /** |
| 197 * @type {LanguagesModel|undefined} | 199 * @type {LanguagesModel|undefined} |
| 198 */ | 200 */ |
| 199 languages: { | 201 languages: { |
| 200 type: Object, | 202 type: Object, |
| 201 notify: true, | 203 notify: true, |
| 202 }, | 204 }, |
| 203 | 205 |
| 204 /** | 206 /** |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 398 for (var i = 0; i < this.languages.enabledLanguages.length; i++) { | 400 for (var i = 0; i < this.languages.enabledLanguages.length; i++) { |
| 399 var translateCode = this.convertLanguageCodeForTranslate( | 401 var translateCode = this.convertLanguageCodeForTranslate( |
| 400 this.languages.enabledLanguages[i].language.code); | 402 this.languages.enabledLanguages[i].language.code); |
| 401 this.set( | 403 this.set( |
| 402 'languages.enabledLanguages.' + i + '.state.translateEnabled', | 404 'languages.enabledLanguages.' + i + '.state.translateEnabled', |
| 403 !translateBlockedMap[translateCode]); | 405 !translateBlockedMap[translateCode]); |
| 404 } | 406 } |
| 405 }, | 407 }, |
| 406 | 408 |
| 407 /** | 409 /** |
| 408 * Gets the pref at the given key. Asserts if the pref is not found. | |
| 409 * @param {string} key | |
| 410 * @return {!chrome.settingsPrivate.PrefObject} | |
| 411 */ | |
| 412 getPref_: function(key) { | |
| 413 var pref = /** @type {!chrome.settingsPrivate.PrefObject} */( | |
| 414 this.get(key, this.prefs)); | |
| 415 assert(typeof pref != 'undefined', 'Pref is missing: ' + key); | |
| 416 return pref; | |
| 417 }, | |
| 418 | |
| 419 /** | |
| 420 * Sets the value of the pref at the given key. Asserts if the pref is not | |
| 421 * found. | |
| 422 * @param {string} key | |
| 423 * @param {*} value | |
| 424 */ | |
| 425 setPrefValue_: function(key, value) { | |
| 426 this.getPref_(key); | |
| 427 this.set('prefs.' + key + '.value', value); | |
| 428 }, | |
| 429 | |
| 430 /** | |
| 431 * Deletes the given item from the pref at the given key if the item is found. | 410 * Deletes the given item from the pref at the given key if the item is found. |
| 432 * Asserts if the pref itself is not found or is not an Array type. | 411 * Asserts if the pref itself is not found or is not an Array type. |
| 433 * @param {string} key | 412 * @param {string} key |
| 434 * @param {*} item | 413 * @param {*} item |
| 435 */ | 414 */ |
| 436 deletePrefItem_: function(key, item) { | 415 deletePrefItem_: function(key, item) { |
| 437 assert(this.getPref_(key).type == chrome.settingsPrivate.PrefType.LIST); | 416 assert(this.getPref_(key).type == chrome.settingsPrivate.PrefType.LIST); |
| 438 this.arrayDelete('prefs.' + key + '.value', item); | 417 this.arrayDelete('prefs.' + key + '.value', item); |
| 439 }, | 418 }, |
| 440 | 419 |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 578 // necessary as a language code for the Translate server. | 557 // necessary as a language code for the Translate server. |
| 579 return languageCode; | 558 return languageCode; |
| 580 } | 559 } |
| 581 if (main in kTranslateLanguageSynonyms) | 560 if (main in kTranslateLanguageSynonyms) |
| 582 return kTranslateLanguageSynonyms[main]; | 561 return kTranslateLanguageSynonyms[main]; |
| 583 | 562 |
| 584 return main; | 563 return main; |
| 585 }, | 564 }, |
| 586 }); | 565 }); |
| 587 })(); | 566 })(); |
| OLD | NEW |