Merge "FloatingActionMode: Avoid calling delayed code if view is inactive."
diff --git a/core/java/com/android/internal/view/FloatingActionMode.java b/core/java/com/android/internal/view/FloatingActionMode.java
index 1203dd2..effe219 100644
--- a/core/java/com/android/internal/view/FloatingActionMode.java
+++ b/core/java/com/android/internal/view/FloatingActionMode.java
@@ -59,15 +59,19 @@
private final Runnable mMovingOff = new Runnable() {
public void run() {
- mFloatingToolbarVisibilityHelper.setMoving(false);
- mFloatingToolbarVisibilityHelper.updateToolbarVisibility();
+ if (isViewStillActive()) {
+ mFloatingToolbarVisibilityHelper.setMoving(false);
+ mFloatingToolbarVisibilityHelper.updateToolbarVisibility();
+ }
}
};
private final Runnable mHideOff = new Runnable() {
public void run() {
- mFloatingToolbarVisibilityHelper.setHideRequested(false);
- mFloatingToolbarVisibilityHelper.updateToolbarVisibility();
+ if (isViewStillActive()) {
+ mFloatingToolbarVisibilityHelper.setHideRequested(false);
+ mFloatingToolbarVisibilityHelper.updateToolbarVisibility();
+ }
}
};
@@ -301,6 +305,11 @@
mOriginatingView.removeCallbacks(mHideOff);
}
+ private boolean isViewStillActive() {
+ return mOriginatingView.getWindowVisibility() == View.VISIBLE
+ && mOriginatingView.isShown();
+ }
+
/**
* A helper for showing/hiding the floating toolbar depending on certain states.
*/