TV PiP: fix menu buttons orientation
Fixes the PiP menu buttons orientation after double pressing expand/collapse by only setting the orientation after the transition has finished. Bug: 274750024 Test: manual - start expanded PiP with regular PiP orientation being different from the expanded one. Press collapse once: orientation should change with the PiP, double click: orientation should still match the PiP. Change-Id: I3bfbe7d68f73b31a5ccb199c1e6c6c6a4d8dd3e2
This commit is contained in:
@@ -92,7 +92,6 @@ public class TvPipMenuView extends FrameLayout implements TvPipActionsProvider.L
|
||||
private @TvPipMenuController.TvPipMenuMode int mCurrentMenuMode = MODE_NO_MENU;
|
||||
private final Rect mCurrentPipBounds = new Rect();
|
||||
private int mCurrentPipGravity;
|
||||
private boolean mSwitchingOrientation;
|
||||
|
||||
private final AccessibilityManager mA11yManager;
|
||||
private final Handler mMainHandler;
|
||||
@@ -176,17 +175,12 @@ public class TvPipMenuView extends FrameLayout implements TvPipActionsProvider.L
|
||||
}
|
||||
|
||||
if (mCurrentMenuMode == MODE_ALL_ACTIONS_MENU) {
|
||||
mSwitchingOrientation = true;
|
||||
// Fade out while orientation change is ongoing and fade back in once transition is
|
||||
// finished.
|
||||
mActionButtonsRecyclerView.animate()
|
||||
.alpha(0)
|
||||
.setInterpolator(TvPipInterpolators.EXIT)
|
||||
.setDuration(mResizeAnimationDuration / 2)
|
||||
.withEndAction(() -> {
|
||||
mButtonLayoutManager.setOrientation(vertical
|
||||
? LinearLayoutManager.VERTICAL : LinearLayoutManager.HORIZONTAL);
|
||||
// Only make buttons visible again in onPipTransitionFinished to keep in
|
||||
// sync with PiP content alpha animation.
|
||||
});
|
||||
.setDuration(mResizeAnimationDuration / 2);
|
||||
} else {
|
||||
mButtonLayoutManager.setOrientation(vertical
|
||||
? LinearLayoutManager.VERTICAL : LinearLayoutManager.HORIZONTAL);
|
||||
@@ -208,13 +202,16 @@ public class TvPipMenuView extends FrameLayout implements TvPipActionsProvider.L
|
||||
mEduTextDrawer.init();
|
||||
}
|
||||
|
||||
if (mSwitchingOrientation) {
|
||||
mButtonLayoutManager.setOrientation(
|
||||
mCurrentPipBounds.height() > mCurrentPipBounds.width()
|
||||
? LinearLayoutManager.VERTICAL : LinearLayoutManager.HORIZONTAL);
|
||||
if (mCurrentMenuMode == MODE_ALL_ACTIONS_MENU
|
||||
&& mActionButtonsRecyclerView.getAlpha() != 1f) {
|
||||
mActionButtonsRecyclerView.animate()
|
||||
.alpha(1)
|
||||
.setInterpolator(TvPipInterpolators.ENTER)
|
||||
.setDuration(mResizeAnimationDuration / 2);
|
||||
}
|
||||
mSwitchingOrientation = false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user