Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 95f08c31 authored by Bryce Lee's avatar Bryce Lee Committed by Android (Google) Code Review
Browse files

Merge "Do not process root surface control of detached views." into udc-dev

parents c33cf041 871cd8fc
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -108,13 +108,18 @@ public class TouchInsetManager {
        private void updateTouchRegions() {
            mExecutor.execute(() -> {
                final HashMap<AttachedSurfaceControl, Region> affectedSurfaces = new HashMap<>();
                mTrackedViews.stream().forEach(view -> {
                    if (!view.isAttachedToWindow()) {
                if (mTrackedViews.isEmpty()) {
                    return;
                }

                mTrackedViews.stream().forEach(view -> {
                    final AttachedSurfaceControl surface = view.getRootSurfaceControl();

                    // Detached views will not have a surface control.
                    if (surface == null) {
                        return;
                    }

                    if (!affectedSurfaces.containsKey(surface)) {
                        affectedSurfaces.put(surface, Region.obtain());
                    }
@@ -179,6 +184,7 @@ public class TouchInsetManager {
        mSessionRegions.values().stream().forEach(regionMapping -> {
            regionMapping.entrySet().stream().forEach(entry -> {
                final AttachedSurfaceControl surface = entry.getKey();

                if (!affectedSurfaces.containsKey(surface)) {
                    affectedSurfaces.put(surface, Region.obtain());
                }
+2 −1
Original line number Diff line number Diff line
@@ -110,13 +110,14 @@ public class TouchInsetManagerTest extends SysuiTestCase {

        clearInvocations(mAttachedSurfaceControl);
        when(view.isAttachedToWindow()).thenReturn(false);
        when(view.getRootSurfaceControl()).thenReturn(null);

        // Trigger detachment and verify touchable region is set.
        listener.getValue().onViewDetachedFromWindow(view);

        mFakeExecutor.runAllReady();

        verify(mAttachedSurfaceControl).setTouchableRegion(any());
        verify(mAttachedSurfaceControl).setTouchableRegion(eq(null));
    }

    @Test