Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DefaultWindowDecoration.kt +2 −1 Original line number Diff line number Diff line Loading @@ -59,7 +59,8 @@ class DefaultWindowDecoration( displayController, taskSurface, surfaceControlSupplier, taskOrganizer taskOrganizer, handler, ) { /** Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java +5 −1 Original line number Diff line number Diff line Loading @@ -736,7 +736,11 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> private boolean obtainDisplayOrRegisterListener() { mDisplay = mDisplayController.getDisplay(mTaskInfo.displayId); if (mDisplay == null) { mDisplayController.addDisplayWindowListener(mOnDisplaysChangedListener); // Post to the handler to avoid an infinite loop. See b/415631133 for more details. // TODO(b/419398609): Remove this whole work around once the root timing issue is // resolved. mHandler.post( () -> mDisplayController.addDisplayWindowListener(mOnDisplaysChangedListener)); return false; } return true; Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration2.kt +9 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.graphics.Rect import android.graphics.Region import android.gui.BorderSettings import android.gui.BoxShadowSettings import android.os.Handler import android.view.Display import android.view.InsetsSource import android.view.InsetsState Loading @@ -45,6 +46,7 @@ import com.android.wm.shell.common.BoxShadowHelper import com.android.wm.shell.common.DisplayController import com.android.wm.shell.common.DisplayController.OnDisplaysChangedListener import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_WINDOW_DECORATION import com.android.wm.shell.shared.annotations.ShellMainThread import com.android.wm.shell.windowdecor.additionalviewcontainer.AdditionalViewHostViewContainer import com.android.wm.shell.windowdecor.caption.CaptionController import com.android.wm.shell.windowdecor.extension.getDimensionPixelSize Loading Loading @@ -72,6 +74,7 @@ abstract class WindowDecoration2<T>( taskSurface: SurfaceControl, surfaceControlSupplier: () -> SurfaceControl, private val taskOrganizer: ShellTaskOrganizer, @ShellMainThread private val handler: Handler, private val surfaceControlBuilderSupplier: () -> SurfaceControl.Builder = { SurfaceControl.Builder() }, private val surfaceControlTransactionSupplier: () -> SurfaceControl.Transaction = Loading Loading @@ -418,7 +421,12 @@ abstract class WindowDecoration2<T>( private fun obtainDisplayOrRegisterListener(): Boolean { display = displayController.getDisplay(taskInfo.displayId) if (display == null) { // Post to the handler to avoid an infinite loop. See b/415631133 for more details. // TODO(b/419398609): Remove this whole work around once the root timing issue is // resolved. handler.post { displayController.addDisplayWindowListener(onDisplaysChangedListener) } return false } return true Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java +4 −4 Original line number Diff line number Diff line Loading @@ -60,8 +60,8 @@ import android.graphics.Insets; import android.graphics.Point; import android.graphics.Rect; import android.graphics.Region; import android.os.Handler; import android.os.LocaleList; import android.os.Looper; import android.platform.test.annotations.UsesFlags; import android.platform.test.flag.junit.FlagsParameterization; import android.util.DisplayMetrics; Loading @@ -84,6 +84,7 @@ import androidx.test.filters.SmallTest; import com.android.window.flags.Flags; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.ShellTestCase; import com.android.wm.shell.TestHandler; import com.android.wm.shell.TestRunningTaskInfoBuilder; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.desktopmode.DesktopModeEventLogger; Loading Loading @@ -160,8 +161,6 @@ public class WindowDecorationTests extends ShellTestCase { @Mock private DesktopModeEventLogger mDesktopModeEventLogger; @Mock private Handler mMockHandler; @Mock private Transitions mTransitions; private final List<SurfaceControl.Transaction> mMockSurfaceControlTransactions = Loading @@ -173,6 +172,7 @@ public class WindowDecorationTests extends ShellTestCase { private SurfaceControl.Transaction mMockSurfaceControlAddWindowT; private WindowDecoration.RelayoutParams mRelayoutParams = new WindowDecoration.RelayoutParams(); private int mCaptionMenuWidthId; private final TestHandler mTestHandler = new TestHandler(Looper.getMainLooper()); public WindowDecorationTests(FlagsParameterization flags) { mSetFlagsRule.setFlagsParameterization(flags); Loading Loading @@ -1305,7 +1305,7 @@ public class WindowDecorationTests extends ShellTestCase { @NonNull WindowDecorViewHostSupplier<WindowDecorViewHost> windowDecorViewHostSupplier, DesktopModeEventLogger desktopModeEventLogger) { super(context, mMockHandler, mTransitions, userContext, displayController, super(context, mTestHandler, mTransitions, userContext, displayController, taskOrganizer, taskInfo, taskSurface, surfaceControlBuilderSupplier, surfaceControlTransactionSupplier, windowContainerTransactionSupplier, surfaceControlSupplier, surfaceControlViewHostFactory, Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DefaultWindowDecoration.kt +2 −1 Original line number Diff line number Diff line Loading @@ -59,7 +59,8 @@ class DefaultWindowDecoration( displayController, taskSurface, surfaceControlSupplier, taskOrganizer taskOrganizer, handler, ) { /** Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java +5 −1 Original line number Diff line number Diff line Loading @@ -736,7 +736,11 @@ public abstract class WindowDecoration<T extends View & TaskFocusStateConsumer> private boolean obtainDisplayOrRegisterListener() { mDisplay = mDisplayController.getDisplay(mTaskInfo.displayId); if (mDisplay == null) { mDisplayController.addDisplayWindowListener(mOnDisplaysChangedListener); // Post to the handler to avoid an infinite loop. See b/415631133 for more details. // TODO(b/419398609): Remove this whole work around once the root timing issue is // resolved. mHandler.post( () -> mDisplayController.addDisplayWindowListener(mOnDisplaysChangedListener)); return false; } return true; Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration2.kt +9 −1 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.graphics.Rect import android.graphics.Region import android.gui.BorderSettings import android.gui.BoxShadowSettings import android.os.Handler import android.view.Display import android.view.InsetsSource import android.view.InsetsState Loading @@ -45,6 +46,7 @@ import com.android.wm.shell.common.BoxShadowHelper import com.android.wm.shell.common.DisplayController import com.android.wm.shell.common.DisplayController.OnDisplaysChangedListener import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_WINDOW_DECORATION import com.android.wm.shell.shared.annotations.ShellMainThread import com.android.wm.shell.windowdecor.additionalviewcontainer.AdditionalViewHostViewContainer import com.android.wm.shell.windowdecor.caption.CaptionController import com.android.wm.shell.windowdecor.extension.getDimensionPixelSize Loading Loading @@ -72,6 +74,7 @@ abstract class WindowDecoration2<T>( taskSurface: SurfaceControl, surfaceControlSupplier: () -> SurfaceControl, private val taskOrganizer: ShellTaskOrganizer, @ShellMainThread private val handler: Handler, private val surfaceControlBuilderSupplier: () -> SurfaceControl.Builder = { SurfaceControl.Builder() }, private val surfaceControlTransactionSupplier: () -> SurfaceControl.Transaction = Loading Loading @@ -418,7 +421,12 @@ abstract class WindowDecoration2<T>( private fun obtainDisplayOrRegisterListener(): Boolean { display = displayController.getDisplay(taskInfo.displayId) if (display == null) { // Post to the handler to avoid an infinite loop. See b/415631133 for more details. // TODO(b/419398609): Remove this whole work around once the root timing issue is // resolved. handler.post { displayController.addDisplayWindowListener(onDisplaysChangedListener) } return false } return true Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/windowdecor/WindowDecorationTests.java +4 −4 Original line number Diff line number Diff line Loading @@ -60,8 +60,8 @@ import android.graphics.Insets; import android.graphics.Point; import android.graphics.Rect; import android.graphics.Region; import android.os.Handler; import android.os.LocaleList; import android.os.Looper; import android.platform.test.annotations.UsesFlags; import android.platform.test.flag.junit.FlagsParameterization; import android.util.DisplayMetrics; Loading @@ -84,6 +84,7 @@ import androidx.test.filters.SmallTest; import com.android.window.flags.Flags; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.ShellTestCase; import com.android.wm.shell.TestHandler; import com.android.wm.shell.TestRunningTaskInfoBuilder; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.desktopmode.DesktopModeEventLogger; Loading Loading @@ -160,8 +161,6 @@ public class WindowDecorationTests extends ShellTestCase { @Mock private DesktopModeEventLogger mDesktopModeEventLogger; @Mock private Handler mMockHandler; @Mock private Transitions mTransitions; private final List<SurfaceControl.Transaction> mMockSurfaceControlTransactions = Loading @@ -173,6 +172,7 @@ public class WindowDecorationTests extends ShellTestCase { private SurfaceControl.Transaction mMockSurfaceControlAddWindowT; private WindowDecoration.RelayoutParams mRelayoutParams = new WindowDecoration.RelayoutParams(); private int mCaptionMenuWidthId; private final TestHandler mTestHandler = new TestHandler(Looper.getMainLooper()); public WindowDecorationTests(FlagsParameterization flags) { mSetFlagsRule.setFlagsParameterization(flags); Loading Loading @@ -1305,7 +1305,7 @@ public class WindowDecorationTests extends ShellTestCase { @NonNull WindowDecorViewHostSupplier<WindowDecorViewHost> windowDecorViewHostSupplier, DesktopModeEventLogger desktopModeEventLogger) { super(context, mMockHandler, mTransitions, userContext, displayController, super(context, mTestHandler, mTransitions, userContext, displayController, taskOrganizer, taskInfo, taskSurface, surfaceControlBuilderSupplier, surfaceControlTransactionSupplier, windowContainerTransactionSupplier, surfaceControlSupplier, surfaceControlViewHostFactory, Loading