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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/physicalweb/PwsClientImpl.java

Issue 2393673003: Support multiple locales string for accept language list (Closed)
Patch Set: Add Multiple Locales Input For Accept Languages Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
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..ba5db1d5f94450379a3eb9d561cd2a52d7dd3709 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,29 @@ class PwsClientImpl implements PwsClient {
@VisibleForTesting
static String prependToAcceptLanguagesIfNecessary(String locale, String acceptLanguages)
{
- if (locale.length() != 5 || locale.charAt(2) != '_') {
- return acceptLanguages;
- }
+ String[] locales = locale.split(",");
+ Formatter parts = new Formatter();
+ for (String l : locales) {
+ if (l.length() != 5 || l.charAt(2) != '_') {
+ continue;
+ }
- String language = locale.substring(0, 2);
- String region = locale.substring(3);
- String languageTag = makeLanguageTag(language, region);
+ String language = l.substring(0, 2);
+ String region = l.substring(3);
+ String languageTag = makeLanguageTag(language, region);
- if (acceptLanguages.contains(languageTag)) {
- return acceptLanguages;
- }
+ if (acceptLanguages.contains(languageTag)) {
+ continue;
+ }
- 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);
+ 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);
+ }
}
parts.format("%s", acceptLanguages);
return parts.toString();

Powered by Google App Engine
This is Rietveld 408576698