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

Commit 444cb25a authored by Bryce Lee's avatar Bryce Lee Committed by Automerger Merge Worker
Browse files

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

parents d26a660d 95f08c31
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