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 236c9c93d87c9edf251beec7f9fdfcc02a108f81..5bb9969a9955de989622bdc147a8af95f29db299 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,7 +15,9 @@ 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.snackbar.SnackbarManager; |
import org.chromium.chrome.browser.tab.EmptyTabObserver; |
import org.chromium.chrome.browser.tab.Tab; |
import org.chromium.chrome.browser.tab.TabObserver; |
@@ -108,6 +111,12 @@ public class InfoBarContainer extends SwipableOverlayView { |
@Override |
public void onReparentingFinished(Tab tab) { |
setParentView((ViewGroup) tab.getActivity().findViewById(R.id.bottom_container)); |
+ Activity activity = tab.getActivity(); |
+ if (activity != null && activity instanceof ChromeActivity) { |
gone
2017/04/27 18:48:58
instanceof already includes an implicit null check
ramyasharma
2017/04/28 06:35:59
Thanks Done.
|
+ mSnackbarManager = ((ChromeActivity) activity).getSnackbarManager(); |
+ } else { |
+ mSnackbarManager = null; |
+ } |
} |
}; |
@@ -151,11 +160,19 @@ 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(); |
+ Activity activity = tab.getActivity(); |
+ if (activity != null && activity instanceof ChromeActivity) { |
gone
2017/04/27 18:48:58
don't duplicate this logic; make a new private fun
ramyasharma
2017/04/28 06:35:59
Done. Thanks.
|
+ mSnackbarManager = ((ChromeActivity) activity).getSnackbarManager(); |
+ } |
+ |
// 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. |
setVerticalScrollBarEnabled(false); |
@@ -178,6 +195,10 @@ public class InfoBarContainer extends SwipableOverlayView { |
mNativeInfoBarContainer = nativeInit(); |
} |
+ public SnackbarManager getSnackbarManager() { |
+ return mSnackbarManager; |
+ } |
+ |
/** |
* Adds an {@link InfoBarContainerObserver}. |
* @param observer The {@link InfoBarContainerObserver} to add. |