Index: chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java |
index 78dfb00a1716cc3cde946c06f04724caf099c308..cdfa6d58a9e9776f0e101e1afdcb8e33adf02530 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java |
@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.snackbar; |
import android.app.Activity; |
import android.os.Handler; |
+import android.support.annotation.Nullable; |
import android.view.View; |
import android.view.View.OnClickListener; |
import android.view.ViewGroup; |
@@ -68,6 +69,7 @@ public class SnackbarManager implements OnClickListener { |
private SnackbarCollection mSnackbars = new SnackbarCollection(); |
private boolean mActivityInForeground; |
private boolean mIsDisabledForTesting; |
+ private ViewGroup mSnackbarParentView; |
private final Runnable mHideRunnable = new Runnable() { |
@Override |
public void run() { |
@@ -79,10 +81,13 @@ public class SnackbarManager implements OnClickListener { |
/** |
* Constructs a SnackbarManager to show snackbars in the given window. |
* @param activity The embedding activity. |
+ * @param snackbarParentView The ViewGroup used to display snackbars. If this is null, the |
+ * {@link SnackbarView} will determine where to attach the snackbar. |
*/ |
- public SnackbarManager(Activity activity) { |
+ public SnackbarManager(Activity activity, @Nullable ViewGroup snackbarParentView) { |
mActivity = activity; |
mUIThreadHandler = new Handler(); |
+ mSnackbarParentView = snackbarParentView; |
} |
/** |
@@ -114,6 +119,14 @@ public class SnackbarManager implements OnClickListener { |
mView.announceforAccessibility(); |
} |
+ /** Dismisses all snackbars. */ |
+ public void dismissAllSnackbars() { |
+ if (mSnackbars.isEmpty()) return; |
+ |
+ mSnackbars.clear(); |
+ updateView(); |
+ } |
+ |
/** |
* Dismisses snackbars that are associated with the given {@link SnackbarController}. |
* |
@@ -182,7 +195,7 @@ public class SnackbarManager implements OnClickListener { |
} else { |
boolean viewChanged = true; |
if (mView == null) { |
- mView = new SnackbarView(mActivity, this, currentSnackbar); |
+ mView = new SnackbarView(mActivity, this, currentSnackbar, mSnackbarParentView); |
mView.show(); |
} else { |
viewChanged = mView.update(currentSnackbar); |