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

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

Powered by Google App Engine
This is Rietveld 408576698