diff options
author | 2016-09-29 14:52:26 +0000 | |
---|---|---|
committer | 2016-09-29 14:52:29 +0000 | |
commit | 2e0a36c4cb739833718a079ea200b6579d1ffde4 (patch) | |
tree | c2d4852c3df5a3a93f67673668196066e65c5f87 | |
parent | 5b02bb416448e9f2b587cfa0c733c9bd24e6490f (diff) | |
parent | d1eb19c65e89a67cfc63ed5496825b79a3bfe1ed (diff) |
Merge "FloatingActionMode: Avoid calling delayed code if view is inactive."
-rw-r--r-- | core/java/com/android/internal/view/FloatingActionMode.java | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/core/java/com/android/internal/view/FloatingActionMode.java b/core/java/com/android/internal/view/FloatingActionMode.java index 1203dd2c7217..effe21902f91 100644 --- a/core/java/com/android/internal/view/FloatingActionMode.java +++ b/core/java/com/android/internal/view/FloatingActionMode.java @@ -59,15 +59,19 @@ public class FloatingActionMode extends ActionMode { 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 @@ public class FloatingActionMode extends ActionMode { 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. */ |