| 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-manage-languages-page' is a sub-page for enabling | 6 * @fileoverview 'settings-manage-languages-page' is a sub-page for enabling |
| 7 * and disabling languages. | 7 * and disabling languages. |
| 8 */ | 8 */ |
| 9 Polymer({ | 9 Polymer({ |
| 10 is: 'settings-manage-languages-page', | 10 is: 'settings-manage-languages-page', |
| 11 | 11 |
| 12 properties: { | 12 properties: { |
| 13 /** | 13 /** |
| 14 * Preferences state. | 14 * Preferences state. |
| 15 */ | 15 */ |
| 16 prefs: { | 16 prefs: { |
| 17 type: Object, | 17 type: Object, |
| 18 notify: true, | 18 notify: true, |
| 19 }, | 19 }, |
| 20 | 20 |
| 21 /** | 21 /** |
| 22 * @type {!LanguagesModel|undefined} | 22 * @type {!LanguagesModel|undefined} |
| 23 */ | 23 */ |
| 24 languages: { | 24 languages: { |
| 25 type: Object, | 25 type: Object, |
| 26 notify: true, | 26 notify: true, |
| 27 }, | 27 }, |
| 28 | |
| 29 /** @private {!LanguageHelper} */ | |
| 30 languageHelper_: Object, | |
| 31 }, | |
| 32 | |
| 33 /** @override */ | |
| 34 created: function() { | |
| 35 this.languageHelper_ = LanguageHelperImpl.getInstance(); | |
| 36 }, | 28 }, |
| 37 | 29 |
| 38 /** | 30 /** |
| 39 * @param {!chrome.languageSettingsPrivate.Language} language | 31 * @param {!chrome.languageSettingsPrivate.Language} language |
| 40 * @param {!Object} change Polymer change object (provided in the HTML so this | 32 * @param {!Object} change Polymer change object (provided in the HTML so this |
| 41 * gets called whenever languages.enabled.* changes). | 33 * gets called whenever languages.enabled.* changes). |
| 42 * @return {boolean} | 34 * @return {boolean} |
| 43 * @private | 35 * @private |
| 44 */ | 36 */ |
| 45 isCheckboxChecked_: function(language, change) { | 37 isCheckboxChecked_: function(language, change) { |
| 46 return this.languageHelper_.isLanguageEnabled(language.code); | 38 return settings.LanguageHelperImpl.getInstance().isLanguageEnabled( |
| 39 language.code); |
| 47 }, | 40 }, |
| 48 | 41 |
| 49 /** | 42 /** |
| 50 * Determines whether a language must be enabled. If so, the checkbox in the | 43 * Determines whether a language must be enabled. If so, the checkbox in the |
| 51 * available languages list should not be changeable. | 44 * available languages list should not be changeable. Only applies to |
| 45 * already-enabled languages. |
| 52 * @param {!chrome.languageSettingsPrivate.Language} language | 46 * @param {!chrome.languageSettingsPrivate.Language} language |
| 53 * @param {!Object} change Polymer change object (provided in the HTML so this | 47 * @param {!Object} change Polymer change object (provided in the HTML so this |
| 54 * gets called whenever languages.enabled.* changes). | 48 * gets called whenever languages.enabled.* changes). |
| 55 * @return {boolean} | 49 * @return {boolean} |
| 56 * @private | 50 * @private |
| 57 */ | 51 */ |
| 58 isLanguageRequired_: function(language, change) { | 52 isLanguageRequired_: function(language, change) { |
| 59 // This check only applies to enabled languages. | 53 var languageHelper = settings.LanguageHelperImpl.getInstance(); |
| 60 if (!this.languageHelper_.isLanguageEnabled(language.code)) | 54 return languageHelper.isLanguageEnabled(language.code) && |
| 61 return false; | 55 !languageHelper.canDisableLanguage(language.code); |
| 62 return !this.languageHelper_.canDisableLanguage(language.code); | |
| 63 }, | 56 }, |
| 64 | 57 |
| 65 /** | 58 /** |
| 66 * Handler for removing a language. | 59 * Handler for removing a language. |
| 67 * @param {!{model: !{item: !LanguageState}}} e | 60 * @param {!{model: !{item: !LanguageState}}} e |
| 68 * @private | 61 * @private |
| 69 */ | 62 */ |
| 70 onRemoveLanguageTap_: function(e) { | 63 onRemoveLanguageTap_: function(e) { |
| 71 this.languageHelper_.disableLanguage(e.model.item.language.code); | 64 settings.LanguageHelperImpl.getInstance().disableLanguage( |
| 65 e.model.item.language.code); |
| 72 }, | 66 }, |
| 73 | 67 |
| 74 /** | 68 /** |
| 75 * Handler for checking or unchecking a language item. | 69 * Handler for checking or unchecking a language item. |
| 76 * @param {!{model: !{item: !chrome.languageSettingsPrivate.Language}, | 70 * @param {!{model: !{item: !chrome.languageSettingsPrivate.Language}, |
| 77 * target: !PaperCheckboxElement}} e | 71 * target: !PaperCheckboxElement}} e |
| 78 * @private | 72 * @private |
| 79 */ | 73 */ |
| 80 onLanguageCheckboxChange_: function(e) { | 74 onLanguageCheckboxChange_: function(e) { |
| 81 var code = e.model.item.code; | 75 var code = e.model.item.code; |
| 82 if (e.target.checked) | 76 if (e.target.checked) |
| 83 this.languageHelper_.enableLanguage(code); | 77 settings.LanguageHelperImpl.getInstance().enableLanguage(code); |
| 84 else | 78 else |
| 85 this.languageHelper_.disableLanguage(code); | 79 settings.LanguageHelperImpl.getInstance().disableLanguage(code); |
| 86 }, | 80 }, |
| 87 }); | 81 }); |
| OLD | NEW |