| 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);
|
|
|