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

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

Issue 2830543003: Re-fact TranslateMenuHelper. (Closed)
Patch Set: remove both target and source Created 3 years, 8 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/TranslateCompactInfoBar.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java
index 023dd0864c40376aa05dd9cfdb4f9a43fc716825..f79e3de2916525cfd02d07c45101a32518bcd633 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/TranslateCompactInfoBar.java
@@ -6,21 +6,28 @@ package org.chromium.chrome.browser.infobar;
import android.support.design.widget.TabLayout;
import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.infobar.translate.TranslateMenu;
+import org.chromium.chrome.browser.infobar.translate.TranslateMenuHelper;
import org.chromium.chrome.browser.infobar.translate.TranslateTabLayout;
/**
* Java version of the compcat translate infobar
*/
-class TranslateCompactInfoBar extends InfoBar implements TabLayout.OnTabSelectedListener {
+class TranslateCompactInfoBar extends InfoBar
+ implements TabLayout.OnTabSelectedListener, TranslateMenuHelper.TranslateMenuListener {
private final TranslateOptions mOptions;
private long mNativeTranslateInfoBarPtr;
private TranslateTabLayout mTabLayout;
+ private TranslateMenuHelper mMenuHelper;
+
@CalledByNative
private static InfoBar create(String sourceLanguageCode, String targetLanguageCode,
String[] languages, String[] codes) {
@@ -51,9 +58,24 @@ class TranslateCompactInfoBar extends InfoBar implements TabLayout.OnTabSelected
mTabLayout.addTabs(mOptions.sourceLanguageName(), mOptions.targetLanguageName());
mTabLayout.addOnTabSelectedListener(this);
+ content.findViewById(R.id.translate_infobar_menu_button)
+ .setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ initMenuHelper(v);
+ mMenuHelper.show(TranslateMenu.MENU_OVERFLOW);
+ }
+ });
+
parent.addContent(content, 1.0f);
}
+ private void initMenuHelper(View anchorView) {
+ if (mMenuHelper == null) {
+ mMenuHelper = new TranslateMenuHelper(getContext(), anchorView, mOptions, this);
+ }
+ }
+
@CalledByNative
private void onPageTranslated(int errorType) {
if (mTabLayout != null) {
@@ -88,6 +110,35 @@ class TranslateCompactInfoBar extends InfoBar implements TabLayout.OnTabSelected
}
@Override
+ public void onOverflowMenuItemClicked(int itemId) {
+ switch (itemId) {
+ case TranslateMenu.ID_OVERFLOW_MORE_LANGUAGE:
+ mMenuHelper.show(TranslateMenu.MENU_TARGET_LANGUAGE);
+ return;
+ case TranslateMenu.ID_OVERFLOW_ALWAYS_TRANSLATE:
+ case TranslateMenu.ID_OVERFLOW_NEVER_SITE:
+ case TranslateMenu.ID_OVERFLOW_NEVER_LANGUAGE:
+ // TODO(googleo): Add correct behaviors for each code here.
+ return;
+ case TranslateMenu.ID_OVERFLOW_NOT_THIS_LANGUAGE:
+ mMenuHelper.show(TranslateMenu.MENU_SOURCE_LANGUAGE);
+ return;
+ default:
+ assert false : "Unexpected overflow menu code";
+ }
+ }
+
+ @Override
+ public void onTargetMenuItemClicked(String code) {
+ // TODO(googleo): Update translate code and translate page.
+ }
+
+ @Override
+ public void onSourceMenuItemClicked(String code) {
+ // TODO(googleo): Update translate code and translate page.
+ }
+
+ @Override
public void onTabUnselected(TabLayout.Tab tab) {}
@Override

Powered by Google App Engine
This is Rietveld 408576698