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

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

Issue 1419033008: Extract language settings methods into a LanguageHelper interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@LanguagePage5InputMethodsAPI
Patch Set: nit Created 5 years 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 * @group Chrome Settings Elements 9 * @group Chrome Settings Elements
10 * @element settings-manage-languages-page 10 * @element settings-manage-languages-page
(...skipping 19 matching lines...) Expand all
30 }, 30 },
31 31
32 /** 32 /**
33 * @private {!Array<!{code: string, displayName: string, 33 * @private {!Array<!{code: string, displayName: string,
34 * nativeDisplayName: string, enabled: boolean}>| 34 * nativeDisplayName: string, enabled: boolean}>|
35 * undefined} 35 * undefined}
36 */ 36 */
37 availableLanguages_: Array, 37 availableLanguages_: Array,
38 }, 38 },
39 39
40 /** @private {!LanguageHelper} */
41 languageHelper_: LanguageHelperImpl.getInstance(),
42
40 observers: [ 43 observers: [
41 'enabledLanguagesChanged_(languages.enabledLanguages.*)', 44 'enabledLanguagesChanged_(languages.enabledLanguages.*)',
42 ], 45 ],
43 46
44 /** 47 /**
45 * Handler for removing a language. 48 * Handler for removing a language.
46 * @param {!{model: !{item: !LanguageInfo}}} e 49 * @param {!{model: !{item: !LanguageInfo}}} e
47 * @private 50 * @private
48 */ 51 */
49 onRemoveLanguageTap_: function(e) { 52 onRemoveLanguageTap_: function(e) {
50 this.$.languages.disableLanguage(e.model.item.language.code); 53 this.languageHelper_.disableLanguage(e.model.item.language.code);
51 }, 54 },
52 55
53 /** 56 /**
54 * Handler for adding a language. 57 * Handler for adding a language.
55 * @param {!{model: {item: !chrome.languageSettingsPrivate.Language}}} e 58 * @param {!{model: {item: !chrome.languageSettingsPrivate.Language}}} e
56 * @private 59 * @private
57 */ 60 */
58 onAddLanguageTap_: function(e) { 61 onAddLanguageTap_: function(e) {
59 this.$.languages.enableLanguage(e.model.item.code); 62 this.languageHelper_.enableLanguage(e.model.item.code);
60 }, 63 },
61 64
62 /** 65 /**
63 * True if a language is not the current or prospective UI language. 66 * True if a language is not the current or prospective UI language.
64 * @param {string} languageCode 67 * @param {string} languageCode
65 * @param {!Array<!LanguageInfo>} prospectiveUILanguage 68 * @param {string} prospectiveUILanguageCode
66 * @return {boolean} 69 * @return {boolean}
67 * @private 70 * @private
68 */ 71 */
69 canRemoveLanguage_: function(languageCode, prospectiveUILanguage) { 72 canRemoveLanguage_: function(languageCode, prospectiveUILanguageCode) {
70 if (languageCode == navigator.language || 73 if (languageCode == navigator.language ||
71 languageCode == prospectiveUILanguage) { 74 languageCode == prospectiveUILanguageCode) {
72 return false; 75 return false;
73 } 76 }
74 assert(this.languages.enabledLanguages.length > 1); 77 assert(this.languages.enabledLanguages.length > 1);
75 return true; 78 return true;
76 }, 79 },
77 80
78 /** 81 /**
79 * Updates the available languages that are bound to the iron-list. 82 * Updates the available languages that are bound to the iron-list.
80 * @private 83 * @private
81 */ 84 */
82 enabledLanguagesChanged_: function() { 85 enabledLanguagesChanged_: function() {
83 if (!this.availableLanguages_) { 86 if (!this.availableLanguages_) {
84 var availableLanguages = []; 87 var availableLanguages = [];
85 for (var i = 0; i < this.languages.supportedLanguages.length; i++) { 88 for (var i = 0; i < this.languages.supportedLanguages.length; i++) {
86 var language = this.languages.supportedLanguages[i]; 89 var language = this.languages.supportedLanguages[i];
87 availableLanguages.push({ 90 availableLanguages.push({
88 code: language.code, 91 code: language.code,
89 displayName: language.displayName, 92 displayName: language.displayName,
90 nativeDisplayName: language.nativeDisplayName, 93 nativeDisplayName: language.nativeDisplayName,
91 enabled: this.$.languages.isEnabled(language.code) 94 enabled: this.languageHelper_.isLanguageEnabled(language.code),
92 }); 95 });
93 } 96 }
94 // Set the Polymer property after building the full array. 97 // Set the Polymer property after building the full array.
95 this.availableLanguages_ = availableLanguages; 98 this.availableLanguages_ = availableLanguages;
96 } else { 99 } else {
97 // Update the available languages in place. 100 // Update the available languages in place.
98 for (var i = 0; i < this.availableLanguages_.length; i++) { 101 for (var i = 0; i < this.availableLanguages_.length; i++) {
99 this.set('availableLanguages_.' + i + '.enabled', 102 this.set('availableLanguages_.' + i + '.enabled',
100 this.$.languages.isEnabled(this.availableLanguages_[i].code)); 103 this.languageHelper_.isLanguageEnabled(
104 this.availableLanguages_[i].code));
101 } 105 }
102 } 106 }
103 }, 107 },
104 }); 108 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698