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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateOptions.java

Issue 2873103003: Implements logging in the new compact translate UI. (Closed)
Patch Set: Created 3 years, 7 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/infobar/TranslateOptions.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateOptions.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateOptions.java
index 4c5c2d1c197808bb03f3c9995a5f8d5352641d44..e2757438332e24a7e77bfb773c8586952f2b1148 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateOptions.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateOptions.java
@@ -17,28 +17,34 @@ import java.util.Map;
*/
public class TranslateOptions {
/**
- * A container for Language Code and it's translated representation
- * For example for Spanish when viewed from a French locale, this will contain es, Espagnol
+ * A container for Language Code and it's translated representation and it's native UMA
+ * specific hashcode.
+ * For example for Spanish when viewed from a French locale, this will contain es, Espagnol,
+ * 114573335
**/
- public static class TranslateLanguagePair {
+ public static class TranslateLanguageData {
public final String mLanguageCode;
public final String mLanguageRepresentation;
+ public final Integer mLanguageUMAHashCode;
- public TranslateLanguagePair(String languageCode, String languageRepresentation) {
+ public TranslateLanguageData(
+ String languageCode, String languageRepresentation, Integer uMAhashCode) {
assert languageCode != null;
assert languageRepresentation != null;
mLanguageCode = languageCode;
mLanguageRepresentation = languageRepresentation;
+ mLanguageUMAHashCode = uMAhashCode;
}
@Override
public boolean equals(Object obj) {
- if (!(obj instanceof TranslateLanguagePair)) {
+ if (!(obj instanceof TranslateLanguageData)) {
return false;
}
- TranslateLanguagePair other = (TranslateLanguagePair) obj;
+ TranslateLanguageData other = (TranslateLanguageData) obj;
return this.mLanguageCode.equals(other.mLanguageCode)
- && this.mLanguageRepresentation.equals(other.mLanguageRepresentation);
+ && this.mLanguageRepresentation.equals(other.mLanguageRepresentation)
+ && this.mLanguageUMAHashCode.equals(other.mLanguageUMAHashCode);
}
@Override
@@ -49,7 +55,7 @@ public class TranslateOptions {
@Override
public String toString() {
return "mLanguageCode:" + mLanguageCode + " - mlanguageRepresentation "
- + mLanguageRepresentation;
+ + mLanguageRepresentation + " - mLanguageUMAHashCode " + mLanguageUMAHashCode;
}
}
@@ -62,12 +68,15 @@ public class TranslateOptions {
private String mSourceLanguageCode;
private String mTargetLanguageCode;
- private final ArrayList<TranslateLanguagePair> mAllLanguages;
+ private final ArrayList<TranslateLanguageData> mAllLanguages;
// language code to translated language name map
// Conceptually final
private Map<String, String> mCodeToRepresentation;
+ // Langage code to its UMA hashcode representation.
+ private Map<String, Integer> mCodeToUMAHashCode;
+
// Will reflect the state before the object was ever modified
private final boolean[] mOriginalOptions;
@@ -78,7 +87,7 @@ public class TranslateOptions {
private final boolean[] mOptions;
private TranslateOptions(String sourceLanguageCode, String targetLanguageCode,
- ArrayList<TranslateLanguagePair> allLanguages, boolean neverLanguage,
+ ArrayList<TranslateLanguageData> allLanguages, boolean neverLanguage,
boolean neverDomain, boolean alwaysLanguage, boolean triggeredFromMenu,
boolean[] originalOptions) {
mOptions = new boolean[3];
@@ -100,8 +109,10 @@ public class TranslateOptions {
mAllLanguages = allLanguages;
mCodeToRepresentation = new HashMap<String, String>();
- for (TranslateLanguagePair language : allLanguages) {
+ mCodeToUMAHashCode = new HashMap<String, Integer>();
+ for (TranslateLanguageData language : allLanguages) {
mCodeToRepresentation.put(language.mLanguageCode, language.mLanguageRepresentation);
+ mCodeToUMAHashCode.put(language.mLanguageCode, language.mLanguageUMAHashCode);
}
}
@@ -109,13 +120,18 @@ public class TranslateOptions {
* Creates a TranslateOptions by the given data.
*/
public static TranslateOptions create(String sourceLanguageCode, String targetLanguageCode,
- String[] languages, String[] codes, boolean alwaysTranslate,
- boolean triggeredFromMenu) {
+ String[] languages, String[] codes, boolean alwaysTranslate, boolean triggeredFromMenu,
+ int[] hashCodes) {
assert languages.length == codes.length;
- ArrayList<TranslateLanguagePair> languageList = new ArrayList<TranslateLanguagePair>();
+ ArrayList<TranslateLanguageData> languageList = new ArrayList<TranslateLanguageData>();
for (int i = 0; i < languages.length; ++i) {
- languageList.add(new TranslateLanguagePair(codes[i], languages[i]));
+ Integer hashCode = null;
+ if (hashCodes != null) {
+ hashCode = Integer.valueOf(hashCodes[i]);
+ }
+
+ languageList.add(new TranslateLanguageData(codes[i], languages[i], hashCode));
}
return new TranslateOptions(sourceLanguageCode, targetLanguageCode, languageList, false,
false, alwaysTranslate, triggeredFromMenu, null);
@@ -158,7 +174,7 @@ public class TranslateOptions {
|| (mOptions[ALWAYS_LANGUAGE] != mOriginalOptions[ALWAYS_LANGUAGE]);
}
- public List<TranslateLanguagePair> allLanguages() {
+ public List<TranslateLanguageData> allLanguages() {
return mAllLanguages;
}
@@ -238,6 +254,18 @@ public class TranslateOptions {
return "";
}
+ /**
+ * Gets the language's UMA hashcode representation from a given language code.
+ * @param languageCode ISO code for the language
+ * @return The UMA hashcode representation of the language, or null if not found.
+ */
+ public Integer getUMAHashCodeFromCode(String languageCode) {
+ if (isValidLanguageUMAHashCode(languageCode)) {
+ return mCodeToUMAHashCode.get(languageCode);
+ }
+ return null;
+ }
+
private boolean toggleState(int element, boolean newValue) {
if (!checkElementBoundaries(element)) return false;
@@ -248,6 +276,11 @@ public class TranslateOptions {
private boolean isValidLanguageCode(String languageCode) {
return !TextUtils.isEmpty(languageCode) && mCodeToRepresentation.containsKey(languageCode);
}
+
+ private boolean isValidLanguageUMAHashCode(String languageCode) {
+ return !TextUtils.isEmpty(languageCode) && mCodeToUMAHashCode.containsKey(languageCode);
+ }
+
private boolean canSetLanguage(String sourceCode, String targetCode) {
return isValidLanguageCode(sourceCode) && isValidLanguageCode(targetCode)
&& !sourceCode.equals(targetCode);

Powered by Google App Engine
This is Rietveld 408576698