Index: chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PwsClientImpl.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PwsClientImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PwsClientImpl.java |
index 2bd35ad4d8e3bba2dd24ddf461955c3a54641e7d..4a647aca3653ab625207e10ec2ac572029cb31c4 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PwsClientImpl.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PwsClientImpl.java |
@@ -270,25 +270,38 @@ class PwsClientImpl implements PwsClient { |
@VisibleForTesting |
static String prependToAcceptLanguagesIfNecessary(String locale, String acceptLanguages) |
{ |
- if (locale.length() != 5 || locale.charAt(2) != '_') { |
- return acceptLanguages; |
+ // Check if input locale is a list or a single locale |
Seigo Nonaka
2016/10/05 07:15:40
I think simply
String[] locales = locale.split("
Yirui Huang
2016/10/06 01:17:59
Done.
|
+ String[] locales; |
+ if (locale.length() > 5) { |
+ locales = locale.split(","); |
+ } else { |
+ locales = new String[1]; |
+ locales[0] = locale; |
} |
- String language = locale.substring(0, 2); |
- String region = locale.substring(3); |
- String languageTag = makeLanguageTag(language, region); |
+ Formatter parts = new Formatter(); |
+ for (String l : locales) { |
+ if (l.length() != 5 || l.charAt(2) != '_') { |
+ continue; |
+ } |
- if (acceptLanguages.contains(languageTag)) { |
- return acceptLanguages; |
- } |
+ String language = l.substring(0, 2); |
+ String region = l.substring(3); |
+ String languageTag = makeLanguageTag(language, region); |
- Formatter parts = new Formatter(); |
- parts.format("%s,", languageTag); |
- // If language is not in the accept languages list, also add language code. |
- // This will work with the IDS_ACCEPT_LANGUAGES localized strings bundled with Chrome but |
- // may fail on arbitrary lists of language tags due to differences in case and whitespace. |
- if (!acceptLanguages.contains(language + ",") && !acceptLanguages.endsWith(language)) { |
- parts.format("%s,", language); |
+ if (acceptLanguages.contains(languageTag)) { |
+ continue; |
+ } |
+ |
+ parts.format("%s,", languageTag); |
+ // If language is not in the accept languages list, also add language code. |
+ // This will work with the IDS_ACCEPT_LANGUAGES localized strings bundled with Chrome |
+ // but |
Seigo Nonaka
2016/10/05 07:15:40
please continue the line.
Yirui Huang
2016/10/06 01:17:59
Done.
|
+ // may fail on arbitrary lists of language tags due to differences in case and |
+ // whitespace. |
+ if (!acceptLanguages.contains(language + ",") && !acceptLanguages.endsWith(language)) { |
+ parts.format("%s,", language); |
+ } |
} |
parts.format("%s", acceptLanguages); |
return parts.toString(); |