diff options
| -rw-r--r-- | core/java/android/view/accessibility/AccessibilityRecord.java | 14 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java | 7 |
2 files changed, 21 insertions, 0 deletions
diff --git a/core/java/android/view/accessibility/AccessibilityRecord.java b/core/java/android/view/accessibility/AccessibilityRecord.java index 401cac816ac5..02b618503250 100644 --- a/core/java/android/view/accessibility/AccessibilityRecord.java +++ b/core/java/android/view/accessibility/AccessibilityRecord.java @@ -323,6 +323,20 @@ public class AccessibilityRecord { } /** + * Sets if the source is important for accessibility. + * + * @param importantForAccessibility True if the source is important for accessibility, + * false otherwise. + * + * @throws IllegalStateException If called from an AccessibilityService. + * @hide + */ + public void setImportantForAccessibility(boolean importantForAccessibility) { + enforceNotSealed(); + setBooleanProperty(PROPERTY_IMPORTANT_FOR_ACCESSIBILITY, importantForAccessibility); + } + + /** * Gets the number of items that can be visited. * * @return The number of items. diff --git a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java index d3be19d3df87..9b4832097528 100644 --- a/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java +++ b/packages/SystemUI/src/com/android/systemui/pip/phone/PipTouchHandler.java @@ -42,6 +42,7 @@ import android.view.ViewConfiguration; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityNodeInfo; +import android.view.accessibility.AccessibilityWindowInfo; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; @@ -387,7 +388,10 @@ public class PipTouchHandler { if (!mSendingHoverAccessibilityEvents) { AccessibilityEvent event = AccessibilityEvent.obtain( AccessibilityEvent.TYPE_VIEW_HOVER_ENTER); + event.setImportantForAccessibility(true); event.setSourceNodeId(AccessibilityNodeInfo.ROOT_NODE_ID); + event.setWindowId( + AccessibilityWindowInfo.PICTURE_IN_PICTURE_ACTION_REPLACER_WINDOW_ID); mAccessibilityManager.sendAccessibilityEvent(event); mSendingHoverAccessibilityEvents = true; } @@ -397,7 +401,10 @@ public class PipTouchHandler { if (mSendingHoverAccessibilityEvents) { AccessibilityEvent event = AccessibilityEvent.obtain( AccessibilityEvent.TYPE_VIEW_HOVER_EXIT); + event.setImportantForAccessibility(true); event.setSourceNodeId(AccessibilityNodeInfo.ROOT_NODE_ID); + event.setWindowId( + AccessibilityWindowInfo.PICTURE_IN_PICTURE_ACTION_REPLACER_WINDOW_ID); mAccessibilityManager.sendAccessibilityEvent(event); mSendingHoverAccessibilityEvents = false; } |