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 3b83d8a52b57da7f035a126bf458e7322cadbc2d..6e0c69cc010fc60bf03f705135d2d48f7ad397dc 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 |
@@ -4,18 +4,13 @@ |
package org.chromium.chrome.browser.snackbar; |
-import android.annotation.TargetApi; |
-import android.app.Activity; |
-import android.content.Context; |
import android.graphics.Rect; |
-import android.os.Build; |
import android.os.Handler; |
-import android.util.AttributeSet; |
import android.view.Gravity; |
import android.view.View; |
import android.view.View.OnClickListener; |
import android.view.ViewTreeObserver.OnGlobalLayoutListener; |
-import android.widget.LinearLayout; |
+import android.view.Window; |
import org.chromium.base.ApiCompatibilityUtils; |
import org.chromium.base.VisibleForTesting; |
@@ -43,29 +38,6 @@ import java.util.Stack; |
*/ |
public class SnackbarManager implements OnClickListener, OnGlobalLayoutListener { |
- private static RuntimeException sWindowDetachTrace; |
- |
- /** |
- * A {@link LinearLayout} that logs the stack trace when {@link #onDetachedFromWindow()} is |
- * called. |
- */ |
- public static class WindowDismissalAwareLayout extends LinearLayout { |
- // TODO(ianwen): remove this class after crbug.com/553569 is fixed. |
- /** |
- * Constructor for XML inflation. |
- */ |
- public WindowDismissalAwareLayout(Context context, AttributeSet attrs) { |
- super(context, attrs); |
- } |
- |
- @Override |
- protected void onDetachedFromWindow() { |
- super.onDetachedFromWindow(); |
- sWindowDetachTrace = new RuntimeException( |
- "Stacktrace for Snackbar view to be detached from window"); |
- } |
- } |
- |
/** |
* Interface that shows the ability to provide a snackbar manager. Activities implementing this |
* interface must call {@link SnackbarManager#onStart()} and {@link SnackbarManager#onStop()} in |
@@ -112,7 +84,6 @@ public class SnackbarManager implements OnClickListener, OnGlobalLayoutListener |
private static final int DEFAULT_SNACKBAR_DURATION_MS = 3000; |
private static final int ACCESSIBILITY_MODE_SNACKBAR_DURATION_MS = 6000; |
- private static final String TAG = "snackbar"; |
// Used instead of the constant so tests can override the value. |
private static int sSnackbarDurationMs = DEFAULT_SNACKBAR_DURATION_MS; |
@@ -120,7 +91,6 @@ public class SnackbarManager implements OnClickListener, OnGlobalLayoutListener |
private final boolean mIsTablet; |
- private Activity mActivity; |
private View mDecor; |
private final Handler mUIThreadHandler; |
private Stack<Snackbar> mStack = new Stack<Snackbar>(); |
@@ -140,9 +110,8 @@ public class SnackbarManager implements OnClickListener, OnGlobalLayoutListener |
/** |
* Constructs a SnackbarManager to show snackbars in the given window. |
*/ |
- public SnackbarManager(Activity activity) { |
- mActivity = activity; |
- mDecor = activity.getWindow().getDecorView(); |
+ public SnackbarManager(Window window) { |
+ mDecor = window.getDecorView(); |
mUIThreadHandler = new Handler(); |
mIsTablet = DeviceFormFactor.isTablet(mDecor.getContext()); |
} |
@@ -201,30 +170,13 @@ public class SnackbarManager implements OnClickListener, OnGlobalLayoutListener |
* |
* @param isTimeout Whether dismissal was triggered by timeout. |
*/ |
- @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) |
public void dismissAllSnackbars(boolean isTimeout) { |
mUIThreadHandler.removeCallbacks(mHideRunnable); |
if (!mActivityInForeground) return; |
if (mPopup != null) { |
- // TODO(ianwen): remove the try catch after crbug.com/553569 is fixed. |
- try { |
- mPopup.dismiss(); |
- } catch (IllegalArgumentException ex) { |
- if (mActivity != null) { |
- android.util.Log.d(TAG, "Activity.toString()? " + mActivity); |
- android.util.Log.d(TAG, "Activity is finishing? " + mActivity.isFinishing()); |
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { |
- android.util.Log.d(TAG, "Activity is destroyed?" + mActivity.isDestroyed()); |
- } |
- } |
- if (sWindowDetachTrace != null) { |
- android.util.Log.d(TAG, "Window detach stack trace", sWindowDetachTrace); |
- } |
- throw ex; |
- } |
- |
+ mPopup.dismiss(); |
mPopup = null; |
} |
@@ -372,4 +324,4 @@ public class SnackbarManager implements OnClickListener, OnGlobalLayoutListener |
sSnackbarDurationMs = durationMs; |
sAccessibilitySnackbarDurationMs = durationMs; |
} |
-} |
+} |