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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java

Issue 2806593004: [Home] Add support for snackbars in the BottomSheet (Closed)
Patch Set: Fix JavaDoc 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/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();

Powered by Google App Engine
This is Rietveld 408576698