Merge "Reset visibilities if mDummyControlTarget is the control target" into rvc-dev am: efd288a311 am: 2da6017576 am: 551fb09e65 am: 19ac9d27eb

Change-Id: Ia4812b4a7d8563da995afed63c0b23ef3018890a
This commit is contained in:
Tiger Huang
2020-05-12 15:22:22 +00:00
committed by Automerger Merge Worker

View File

@@ -60,7 +60,37 @@ class InsetsPolicy {
private final IntArray mShowingTransientTypes = new IntArray();
/** For resetting visibilities of insets sources. */
private final InsetsControlTarget mDummyControlTarget = new InsetsControlTarget() { };
private final InsetsControlTarget mDummyControlTarget = new InsetsControlTarget() {
@Override
public void notifyInsetsControlChanged() {
boolean hasLeash = false;
final InsetsSourceControl[] controls =
mStateController.getControlsForDispatch(this);
if (controls == null) {
return;
}
for (InsetsSourceControl control : controls) {
final @InternalInsetsType int type = control.getType();
if (mShowingTransientTypes.indexOf(type) != -1) {
// The visibilities of transient bars will be handled with animations.
continue;
}
final SurfaceControl leash = control.getLeash();
if (leash != null) {
hasLeash = true;
// We use alpha to control the visibility here which aligns the logic at
// SurfaceAnimator.createAnimationLeash
mDisplayContent.getPendingTransaction().setAlpha(
leash, InsetsState.getDefaultVisibility(type) ? 1f : 0f);
}
}
if (hasLeash) {
mDisplayContent.scheduleAnimation();
}
}
};
private WindowState mFocusedWin;
private BarWindow mStatusBar = new BarWindow(StatusBarManager.WINDOW_STATUS_BAR);