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

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

Issue 2830543003: Re-fact TranslateMenuHelper. (Closed)
Patch Set: 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..f1459cb3c38d41d56e28e652d79b20329214c1ca 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,29 @@ 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.ImageButton;
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.TranslateMenuItemListener {
private final TranslateOptions mOptions;
private long mNativeTranslateInfoBarPtr;
private TranslateTabLayout mTabLayout;
+ private TranslateMenuHelper mOverFlowMenuHelper;
+
@CalledByNative
private static InfoBar create(String sourceLanguageCode, String targetLanguageCode,
String[] languages, String[] codes) {
@@ -51,6 +59,19 @@ class TranslateCompactInfoBar extends InfoBar implements TabLayout.OnTabSelected
mTabLayout.addTabs(mOptions.sourceLanguageName(), mOptions.targetLanguageName());
mTabLayout.addOnTabSelectedListener(this);
+ ((ImageButton) content.findViewById(R.id.translate_infobar_menu_button))
+ .setOnClickListener(new OnClickListener() {
gone 2017/04/19 23:21:13 can you pull this out into a separate function tha
+ @Override
+ public void onClick(View v) {
+ if (mOverFlowMenuHelper == null) {
+ mOverFlowMenuHelper = new TranslateMenuHelper(getContext(), v,
+ TranslateCompactInfoBar.this, mOptions.sourceLanguageName(),
+ TranslateMenu.createOverflowMenu());
+ }
+ mOverFlowMenuHelper.show();
+ }
+ });
+
parent.addContent(content, 1.0f);
}
@@ -88,6 +109,24 @@ class TranslateCompactInfoBar extends InfoBar implements TabLayout.OnTabSelected
}
@Override
+ public void onTranslateMenuItemClicked(int type, String code) {
+ if (type == TranslateMenu.OVERFLOW_MENU_ITEM) {
+ switch (code) {
+ // TODO(googleo): Add correct behaviors for each code here.
+ case TranslateMenu.ALWAYS_TRANSLATE:
+ case TranslateMenu.MORE_LANGUAGE:
+ case TranslateMenu.NEVER_SITE:
+ case TranslateMenu.NEVER_LANGUAGE:
+ case TranslateMenu.NOT_THIS_LANGUAGE:
+ default:
+ return;
gone 2017/04/19 23:21:13 case VALID_CASE_1: case VALID_CASE_2: case VALID_C
Leo 2017/04/20 01:17:21 Done.
+ }
+ } else {
+ // 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