| 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
|
|
|