Avoid duplicate language buttons in input settings panel

Bug: 49141
Change-Id: Ibf076e6049e87e1398c87d2a264343f32eaddf28
This commit is contained in:
Santhosh Thottingal
2013-06-06 17:01:04 +05:30
committed by Gerrit Code Review
parent e9ab300889
commit 9bc9aa7238

View File

@@ -206,7 +206,6 @@
prepareLanguages: function () { prepareLanguages: function () {
var inputSettings = this, var inputSettings = this,
SUGGESTED_LANGUAGES_NUMBER = 3, SUGGESTED_LANGUAGES_NUMBER = 3,
currentLanguage = this.contentLanguage,
selectedImeLanguage = $.ime.preferences.getLanguage(), selectedImeLanguage = $.ime.preferences.getLanguage(),
languagesForButtons, $languages, suggestedLanguages, languagesForButtons, $languages, suggestedLanguages,
lang, i, language, $button, $caret; lang, i, language, $button, $caret;
@@ -228,19 +227,16 @@
// Selected IME language may be different, and it must // Selected IME language may be different, and it must
// be present, too // be present, too
if ( $.inArray( selectedImeLanguage, languagesForButtons ) === -1 && if ( $.uls.data.languages[selectedImeLanguage] &&
$.uls.data.languages[selectedImeLanguage] $.inArray( selectedImeLanguage, languagesForButtons ) === -1 ) {
) {
languagesForButtons.push( selectedImeLanguage ); languagesForButtons.push( selectedImeLanguage );
currentLanguage = selectedImeLanguage;
} }
// UI language must always be present // UI language must always be present
if ( this.imeLanguage !== this.contentLanguage && if ( this.imeLanguage !== this.contentLanguage &&
$.uls.data.languages[this.imeLanguage] $.uls.data.languages[this.imeLanguage] &&
) { $.inArray( this.imeLanguage, languagesForButtons ) === -1 ) {
languagesForButtons.push( this.imeLanguage ); languagesForButtons.push( this.imeLanguage );
currentLanguage = this.imeLanguage;
} }
for ( lang in suggestedLanguages ) { for ( lang in suggestedLanguages ) {
@@ -272,6 +268,8 @@
}; };
} }
// In case no preference exist for IME, selected language is contentLanguage
selectedImeLanguage = selectedImeLanguage || this.contentLanguage;
// Add the buttons for the most likely languages // Add the buttons for the most likely languages
for ( i = 0; i < SUGGESTED_LANGUAGES_NUMBER; i++ ) { for ( i = 0; i < SUGGESTED_LANGUAGES_NUMBER; i++ ) {
language = languagesForButtons[i]; language = languagesForButtons[i];
@@ -290,7 +288,7 @@
$button.on( 'click', buttonHandler( $button ) ); $button.on( 'click', buttonHandler( $button ) );
if ( language === currentLanguage ) { if ( language === selectedImeLanguage ) {
$button.click(); $button.click();
} }
} }