Merge "Check the transient state by using public types" into sc-v2-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
5e68bf3be3
@@ -46,6 +46,7 @@ import android.view.InsetsState.InternalInsetsType;
|
|||||||
import android.view.InternalInsetsAnimationController;
|
import android.view.InternalInsetsAnimationController;
|
||||||
import android.view.SurfaceControl;
|
import android.view.SurfaceControl;
|
||||||
import android.view.SyncRtSurfaceTransactionApplier;
|
import android.view.SyncRtSurfaceTransactionApplier;
|
||||||
|
import android.view.WindowInsets.Type;
|
||||||
import android.view.WindowInsetsAnimation;
|
import android.view.WindowInsetsAnimation;
|
||||||
import android.view.WindowInsetsAnimation.Bounds;
|
import android.view.WindowInsetsAnimation.Bounds;
|
||||||
import android.view.WindowInsetsAnimationControlListener;
|
import android.view.WindowInsetsAnimationControlListener;
|
||||||
@@ -336,7 +337,7 @@ class InsetsPolicy {
|
|||||||
|
|
||||||
private @Nullable InsetsControlTarget getStatusControlTarget(@Nullable WindowState focusedWin,
|
private @Nullable InsetsControlTarget getStatusControlTarget(@Nullable WindowState focusedWin,
|
||||||
boolean fake) {
|
boolean fake) {
|
||||||
if (mShowingTransientTypes.indexOf(ITYPE_STATUS_BAR) != -1 && !fake) {
|
if (!fake && isShowingTransientTypes(Type.statusBars())) {
|
||||||
return mDummyControlTarget;
|
return mDummyControlTarget;
|
||||||
}
|
}
|
||||||
final WindowState notificationShade = mPolicy.getNotificationShade();
|
final WindowState notificationShade = mPolicy.getNotificationShade();
|
||||||
@@ -386,7 +387,7 @@ class InsetsPolicy {
|
|||||||
// Force showing navigation bar while IME is visible.
|
// Force showing navigation bar while IME is visible.
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (mShowingTransientTypes.indexOf(ITYPE_NAVIGATION_BAR) != -1 && !fake) {
|
if (!fake && isShowingTransientTypes(Type.navigationBars())) {
|
||||||
return mDummyControlTarget;
|
return mDummyControlTarget;
|
||||||
}
|
}
|
||||||
if (focusedWin == mPolicy.getNotificationShade()) {
|
if (focusedWin == mPolicy.getNotificationShade()) {
|
||||||
@@ -412,6 +413,16 @@ class InsetsPolicy {
|
|||||||
return focusedWin;
|
return focusedWin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isShowingTransientTypes(@Type.InsetsType int types) {
|
||||||
|
final IntArray showingTransientTypes = mShowingTransientTypes;
|
||||||
|
for (int i = showingTransientTypes.size() - 1; i >= 0; i--) {
|
||||||
|
if ((InsetsState.toPublicType(showingTransientTypes.get(i)) & types) != 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines whether the remote insets controller should take control of system bars for all
|
* Determines whether the remote insets controller should take control of system bars for all
|
||||||
* windows.
|
* windows.
|
||||||
|
|||||||
Reference in New Issue
Block a user