Chromium Code Reviews| 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. |