| Index: chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java
|
| index 0af6937dcd719fd9ab607f7da9b64d71f707f2cf..3e384231c7151bd749fa911d50d31f7f12a5de18 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java
|
| @@ -12,6 +12,7 @@ import android.app.Activity;
|
| import android.graphics.Bitmap;
|
| import android.graphics.Rect;
|
| import android.graphics.drawable.GradientDrawable;
|
| +import android.support.annotation.Nullable;
|
| import android.view.LayoutInflater;
|
| import android.view.SurfaceView;
|
| import android.view.View;
|
| @@ -46,6 +47,7 @@ class SnackbarView {
|
| private ViewGroup mOriginalParent;
|
| private ViewGroup mParent;
|
| private Snackbar mSnackbar;
|
| + private boolean mAnimateOverWebContent;
|
|
|
| // Variables used to calculate the virtual keyboard's height.
|
| private Rect mCurrentVisibleRect = new Rect();
|
| @@ -65,11 +67,21 @@ class SnackbarView {
|
| * @param listener An {@link OnClickListener} that will be called when the action button is
|
| * clicked.
|
| * @param snackbar The snackbar to be displayed.
|
| + * @param parentView The ViewGroup used to display this snackbar. If this is null, this class
|
| + * will determine where to attach the snackbar.
|
| */
|
| - SnackbarView(Activity activity, OnClickListener listener, Snackbar snackbar) {
|
| + SnackbarView(Activity activity, OnClickListener listener, Snackbar snackbar,
|
| + @Nullable ViewGroup parentView) {
|
| mActivity = activity;
|
| mIsTablet = DeviceFormFactor.isTablet(activity);
|
| - mOriginalParent = findParentView(activity);
|
| +
|
| + if (parentView == null) {
|
| + mOriginalParent = findParentView(activity);
|
| + if (activity instanceof ChromeActivity) mAnimateOverWebContent = true;
|
| + } else {
|
| + mOriginalParent = parentView;
|
| + }
|
| +
|
| mParent = mOriginalParent;
|
| mView = (ViewGroup) LayoutInflater.from(activity).inflate(
|
| R.layout.snackbar, mParent, false);
|
| @@ -248,7 +260,7 @@ class SnackbarView {
|
| * in the normal way.
|
| */
|
| private void startAnimatorOnSurfaceView(Animator animator) {
|
| - if (mActivity instanceof ChromeActivity) {
|
| + if (mAnimateOverWebContent) {
|
| ((ChromeActivity) mActivity).getWindowAndroid().startAnimationOverContent(animator);
|
| } else {
|
| animator.start();
|
|
|