Move the logic of deciding what all insets are controllable to InsetsPolicy.

- It makes more sense to have it in InsetsPolicy because this is something that OEMs can change.

Fix: b/226613098
Test: atest WindowContainerInsetsSourceProviderTest
Change-Id: Ie54f9457b4063b07a37198e04c05d30f083bd5c9
This commit is contained in:
Gaurav Bhola
2022-04-01 11:23:45 -07:00
parent 1c8eb0109f
commit bb35a0df61
2 changed files with 18 additions and 16 deletions

View File

@@ -289,6 +289,23 @@ class InsetsPolicy {
return adjustVisibilityForTransientTypes(originalState);
}
/**
* @param type the internal type of the insets.
* @return {@code true} if the given type is controllable, {@code false} otherwise.
*/
static boolean isInsetsTypeControllable(@InternalInsetsType int type) {
switch (type) {
case ITYPE_STATUS_BAR:
case ITYPE_NAVIGATION_BAR:
case ITYPE_IME:
case ITYPE_CLIMATE_BAR:
case ITYPE_EXTRA_NAVIGATION_BAR:
return true;
default:
return false;
}
}
private static @InternalInsetsType int getInsetsTypeForLayoutParams(
WindowManager.LayoutParams attrs) {
@WindowManager.LayoutParams.WindowType int type = attrs.type;

View File

@@ -16,11 +16,7 @@
package com.android.server.wm;
import static android.view.InsetsState.ITYPE_CLIMATE_BAR;
import static android.view.InsetsState.ITYPE_EXTRA_NAVIGATION_BAR;
import static android.view.InsetsState.ITYPE_IME;
import static android.view.InsetsState.ITYPE_NAVIGATION_BAR;
import static android.view.InsetsState.ITYPE_STATUS_BAR;
import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_WINDOW_INSETS;
import static com.android.server.wm.InsetsSourceProviderProto.CAPTURED_LEASH;
@@ -127,18 +123,7 @@ abstract class InsetsSourceProvider {
mStateController = stateController;
mFakeControl = new InsetsSourceControl(
source.getType(), null /* leash */, new Point(), Insets.NONE);
switch (source.getType()) {
case ITYPE_STATUS_BAR:
case ITYPE_NAVIGATION_BAR:
case ITYPE_IME:
case ITYPE_CLIMATE_BAR:
case ITYPE_EXTRA_NAVIGATION_BAR:
mControllable = true;
break;
default:
mControllable = false;
}
mControllable = InsetsPolicy.isInsetsTypeControllable(source.getType());
}
InsetsSource getSource() {