Loading services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java +11 −1 Original line number Original line Diff line number Diff line Loading @@ -35,6 +35,7 @@ import static android.view.accessibility.AccessibilityNodeInfo.ACTION_CLICK; import static android.view.accessibility.AccessibilityNodeInfo.ACTION_LONG_CLICK; import static android.view.accessibility.AccessibilityNodeInfo.ACTION_LONG_CLICK; import static com.android.server.pm.UserManagerService.enforceCurrentUserIfVisibleBackgroundEnabled; import static com.android.server.pm.UserManagerService.enforceCurrentUserIfVisibleBackgroundEnabled; import static com.android.window.flags.Flags.scvhSurfaceControlLifetimeFix; import android.accessibilityservice.AccessibilityGestureEvent; import android.accessibilityservice.AccessibilityGestureEvent; import android.accessibilityservice.AccessibilityService; import android.accessibilityservice.AccessibilityService; Loading Loading @@ -2809,7 +2810,15 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ try { try { mSystemSupport.attachAccessibilityOverlayToDisplay( mSystemSupport.attachAccessibilityOverlayToDisplay( interactionId, displayId, sc, callback); interactionId, displayId, sc, callback); if (scvhSurfaceControlLifetimeFix()) { // AccessibilityManagerService#attachAccessibilityOverlayToDisplay releases the // SurfaceControl supplied to it. In order to reparent any attached overlays when // the session is removed, we need a not-released SurfaceControl. For this purpose, // we store a copy of the provided SurfaceControl in mOverlays. mOverlays.add(new SurfaceControl(sc, "attachAccessibilityOverlayToDisplay")); } else { mOverlays.add(sc); mOverlays.add(sc); } } finally { } finally { Binder.restoreCallingIdentity(identity); Binder.restoreCallingIdentity(identity); } } Loading Loading @@ -2854,6 +2863,7 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ for (SurfaceControl sc : mOverlays) { for (SurfaceControl sc : mOverlays) { if (sc.isValid()) { if (sc.isValid()) { t.reparent(sc, null); t.reparent(sc, null); sc.release(); } } } } t.apply(); t.apply(); Loading Loading
services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java +11 −1 Original line number Original line Diff line number Diff line Loading @@ -35,6 +35,7 @@ import static android.view.accessibility.AccessibilityNodeInfo.ACTION_CLICK; import static android.view.accessibility.AccessibilityNodeInfo.ACTION_LONG_CLICK; import static android.view.accessibility.AccessibilityNodeInfo.ACTION_LONG_CLICK; import static com.android.server.pm.UserManagerService.enforceCurrentUserIfVisibleBackgroundEnabled; import static com.android.server.pm.UserManagerService.enforceCurrentUserIfVisibleBackgroundEnabled; import static com.android.window.flags.Flags.scvhSurfaceControlLifetimeFix; import android.accessibilityservice.AccessibilityGestureEvent; import android.accessibilityservice.AccessibilityGestureEvent; import android.accessibilityservice.AccessibilityService; import android.accessibilityservice.AccessibilityService; Loading Loading @@ -2809,7 +2810,15 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ try { try { mSystemSupport.attachAccessibilityOverlayToDisplay( mSystemSupport.attachAccessibilityOverlayToDisplay( interactionId, displayId, sc, callback); interactionId, displayId, sc, callback); if (scvhSurfaceControlLifetimeFix()) { // AccessibilityManagerService#attachAccessibilityOverlayToDisplay releases the // SurfaceControl supplied to it. In order to reparent any attached overlays when // the session is removed, we need a not-released SurfaceControl. For this purpose, // we store a copy of the provided SurfaceControl in mOverlays. mOverlays.add(new SurfaceControl(sc, "attachAccessibilityOverlayToDisplay")); } else { mOverlays.add(sc); mOverlays.add(sc); } } finally { } finally { Binder.restoreCallingIdentity(identity); Binder.restoreCallingIdentity(identity); } } Loading Loading @@ -2854,6 +2863,7 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ for (SurfaceControl sc : mOverlays) { for (SurfaceControl sc : mOverlays) { if (sc.isValid()) { if (sc.isValid()) { t.reparent(sc, null); t.reparent(sc, null); sc.release(); } } } } t.apply(); t.apply(); Loading