Fix regression in swiping over rotation button.

- Only send the hit target for visible buttons, otherwise we will defer
  starting the recents animation when swiping over them even if they are
  invisible.

Bug: 80320221
Test: Swipe up over hidden rotation button, ensure we don't defer the
      animation start

Change-Id: Ie6126eb25ca6cdda1dce2dccec92d83b8aca0563
This commit is contained in:
Winson Chung
2018-05-25 18:25:52 -07:00
parent 3d70d20c88
commit c6c9d4052f
2 changed files with 9 additions and 4 deletions

View File

@@ -114,6 +114,10 @@ public class ButtonDispatcher {
return mVisibility != null ? mVisibility : View.VISIBLE;
}
public boolean isVisible() {
return getVisibility() == View.VISIBLE;
}
public float getAlpha() {
return mAlpha != null ? mAlpha : 1;
}

View File

@@ -336,13 +336,14 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
int x = (int) event.getX();
int y = (int) event.getY();
mDownHitTarget = HIT_TARGET_NONE;
if (mBackButtonBounds.contains(x, y)) {
if (getBackButton().isVisible() && mBackButtonBounds.contains(x, y)) {
mDownHitTarget = HIT_TARGET_BACK;
} else if (mHomeButtonBounds.contains(x, y)) {
} else if (getHomeButton().isVisible() && mHomeButtonBounds.contains(x, y)) {
mDownHitTarget = HIT_TARGET_HOME;
} else if (mRecentsButtonBounds.contains(x, y)) {
} else if (getRecentsButton().isVisible() && mRecentsButtonBounds.contains(x, y)) {
mDownHitTarget = HIT_TARGET_OVERVIEW;
} else if (mRotationButtonBounds.contains(x, y)) {
} else if (getRotateSuggestionButton().isVisible()
&& mRotationButtonBounds.contains(x, y)) {
mDownHitTarget = HIT_TARGET_ROTATION;
}
break;