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

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

Issue 2788343002: Translate page in the new UI. (Closed)
Patch Set: compact unit test 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 e6a31d0bb25df680313110ffe1b5394733ce0b11..72213bcdd6b402515fd261ecba2edcb8fa60fe65 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,36 +6,34 @@ package org.chromium.chrome.browser.infobar;
import android.support.design.widget.TabLayout;
import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
import android.widget.LinearLayout;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.infobar.translate.TranslateTabLayout;
/**
* Java version of the compcat translate infobar
*/
-class TranslateCompactInfoBar extends InfoBar {
+class TranslateCompactInfoBar extends InfoBar implements TabLayout.OnTabSelectedListener {
+ private final TranslateOptions mOptions;
+
private long mNativeTranslateInfoBarPtr;
+ private TranslateTabLayout mTabLayout;
@CalledByNative
- private static InfoBar create() {
- return new TranslateCompactInfoBar();
+ private static InfoBar create(String sourceLanguageCode, String targetLanguageCode,
+ String[] languages, String[] codes) {
+ return new TranslateCompactInfoBar(
+ sourceLanguageCode, targetLanguageCode, languages, codes);
}
- TranslateCompactInfoBar() {
+ TranslateCompactInfoBar(String sourceLanguageCode, String targetLanguageCode,
+ String[] languages, String[] codes) {
super(R.drawable.infobar_translate, null, null);
- }
-
- /**
- * Provide a custom view as infobar content to replace a standard infobar layout.
- */
- protected View createCustomContent(ViewGroup parent) {
- LinearLayout content =
- (LinearLayout) LayoutInflater.from(getContext())
- .inflate(R.layout.infobar_translate_compact_content, parent, false);
- return content;
+ // TODO(googleo): Set correct values for the last 2.
+ mOptions = TranslateOptions.create(
+ sourceLanguageCode, targetLanguageCode, languages, codes, false, false);
}
@Override
@@ -44,30 +42,28 @@ class TranslateCompactInfoBar extends InfoBar {
}
@Override
- protected void createCompactLayoutContent(InfoBarCompactLayout layout) {
- // TODO(googleo): Put the real ViewGroup inflation here.
- TabLayout tabLayout = new TabLayout(layout.getContext());
- tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
- tabLayout.addTab(tabLayout.newTab().setText("Tab 1"));
- tabLayout.addTab(tabLayout.newTab().setText("Tab 2"));
- tabLayout.addTab(tabLayout.newTab().setText("Tab 3"));
- tabLayout.addTab(tabLayout.newTab().setText("Tab 4"));
- tabLayout.addTab(tabLayout.newTab().setText("Tab 5"));
- layout.addContent(tabLayout, 1.0f);
- }
+ protected void createCompactLayoutContent(InfoBarCompactLayout parent) {
+ LinearLayout content =
+ (LinearLayout) LayoutInflater.from(getContext())
+ .inflate(R.layout.infobar_translate_compact_content, parent, false);
- @Override
- public void createContent(InfoBarLayout layout) {
- // TODO(googleo): Draw custom view created by createCustomContent when it's ready.
- // Eg. layout.setCustomView(createCustomContent(layout));
- layout.setMessage("Compact Translate Infobar Testing...");
- }
+ mTabLayout = (TranslateTabLayout) content.findViewById(R.id.translate_infobar_tabs);
+ mTabLayout.addTabs(mOptions.sourceLanguageName(), mOptions.targetLanguageName());
+ mTabLayout.addOnTabSelectedListener(this);
- @Override
- public void onButtonClicked(boolean isPrimaryButton) {
- if (mNativeTranslateInfoBarPtr == 0) return;
+ parent.addContent(content, 1.0f);
+ }
- // TODO(googleo): Handle the button click on this infobar.
+ @CalledByNative
+ private void onPageTranslated(int errorType) {
+ if (mTabLayout != null) {
+ // Success
+ if (errorType == 0) {
+ mTabLayout.hideProgressBar();
+ } else {
+ mTabLayout.stopProgressBarAndRevertBack();
+ }
+ }
}
@CalledByNative
@@ -81,5 +77,21 @@ class TranslateCompactInfoBar extends InfoBar {
super.onNativeDestroyed();
}
+ @Override
+ public void onTabSelected(TabLayout.Tab tab) {
+ if (tab.getPosition() == 0) {
+ onButtonClicked(ActionType.TRANSLATE_SHOW_ORIGINAL);
+ } else {
+ mTabLayout.showProgressBarOnTab(tab.getPosition());
+ onButtonClicked(ActionType.TRANSLATE);
+ }
+ }
+
+ @Override
+ public void onTabUnselected(TabLayout.Tab tab) {}
+
+ @Override
+ public void onTabReselected(TabLayout.Tab tab) {}
+
private native void nativeApplyTranslateOptions(long nativeTranslateCompactInfoBar);
}

Powered by Google App Engine
This is Rietveld 408576698