Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(730)

Side by Side Diff: chrome/browser/resources/settings/languages_page/manage_languages_page.js

Issue 2252323002: MD Settings: reduce complexity and overhead of Languages singleton (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@RemoveLanguageInputMethods
Patch Set: Wrong whitespace to improve diff Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698