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

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

Issue 2840933003: Shows snackbar in translate infobar, after certain user actions. (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/InfoBarContainer.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java
index 63561edc1694c6809b21d6f5ebfbdaf9989bfa02..67cd04be0237fabfa6159d25909c9dec454ebd76 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java
@@ -4,6 +4,7 @@
package org.chromium.chrome.browser.infobar;
+import android.app.Activity;
import android.content.Context;
import android.view.Gravity;
import android.view.View;
@@ -14,8 +15,10 @@ import org.chromium.base.ObserverList;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.banners.SwipableOverlayView;
import org.chromium.chrome.browser.infobar.InfoBarContainerLayout.Item;
+import org.chromium.chrome.browser.snackbar.SnackbarManager;
import org.chromium.chrome.browser.tab.EmptyTabObserver;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabObserver;
@@ -115,9 +118,19 @@ public class InfoBarContainer extends SwipableOverlayView {
@Override
public void onReparentingFinished(Tab tab) {
setParentView((ViewGroup) tab.getActivity().findViewById(R.id.bottom_container));
+ setSnackbarManagerFromTab(tab);
}
};
+ private void setSnackbarManagerFromTab(Tab tab) {
+ Activity activity = tab.getActivity();
+ if (activity != null) {
+ mSnackbarManager = ((ChromeActivity) activity).getSnackbarManager();
+ } else {
+ mSnackbarManager = null;
+ }
+ }
+
/**
* Adds/removes the {@link InfoBarContainer} when the tab's view is attached/detached. This is
* mostly to ensure the infobars are not shown in tab switcher overview mode.
@@ -161,10 +174,14 @@ public class InfoBarContainer extends SwipableOverlayView {
private final ObserverList<InfoBarContainerObserver> mObservers =
new ObserverList<InfoBarContainerObserver>();
+ /** The snackbar manager instance used by the activity that hosts this infobar. */
+ private SnackbarManager mSnackbarManager;
+
public InfoBarContainer(Context context, final ViewGroup parentView, Tab tab) {
super(context, null);
tab.addObserver(mTabObserver);
mTabView = tab.getView();
+ setSnackbarManagerFromTab(tab);
// TODO(newt): move this workaround into the infobar views if/when they're scrollable.
// Workaround for http://crbug.com/407149. See explanation in onMeasure() below.
@@ -192,6 +209,10 @@ public class InfoBarContainer extends SwipableOverlayView {
mNativeInfoBarContainer = nativeInit();
}
+ public SnackbarManager getSnackbarManager() {
+ return mSnackbarManager;
+ }
+
/**
* Adds an {@link InfoBarContainerObserver}.
* @param observer The {@link InfoBarContainerObserver} to add.

Powered by Google App Engine
This is Rietveld 408576698