Merge "Adjust the logic of isImportantForAccessibility"
This commit is contained in:
@@ -1586,6 +1586,19 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall
|
||||
info.addChild(wrapper.getLeashToken());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getImportantForAccessibility() {
|
||||
final int mode = super.getImportantForAccessibility();
|
||||
// If developers explicitly set the important mode for it, don't change the mode.
|
||||
// Only change the mode to important when this SurfaceView isn't explicitly set and has
|
||||
// an embedded hierarchy.
|
||||
if (mRemoteAccessibilityEmbeddedConnection == null
|
||||
|| mode != IMPORTANT_FOR_ACCESSIBILITY_AUTO) {
|
||||
return mode;
|
||||
}
|
||||
return IMPORTANT_FOR_ACCESSIBILITY_YES;
|
||||
}
|
||||
|
||||
private void initEmbeddedHierarchyForAccessibility(SurfaceControlViewHost.SurfacePackage p) {
|
||||
final IAccessibilityEmbeddedConnection connection = p.getAccessibilityEmbeddedConnection();
|
||||
final RemoteAccessibilityEmbeddedConnection wrapper =
|
||||
|
||||
@@ -13442,8 +13442,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
|
||||
* @see #getImportantForAccessibility()
|
||||
*/
|
||||
public boolean isImportantForAccessibility() {
|
||||
final int mode = (mPrivateFlags2 & PFLAG2_IMPORTANT_FOR_ACCESSIBILITY_MASK)
|
||||
>> PFLAG2_IMPORTANT_FOR_ACCESSIBILITY_SHIFT;
|
||||
final int mode = getImportantForAccessibility();
|
||||
if (mode == IMPORTANT_FOR_ACCESSIBILITY_NO
|
||||
|| mode == IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS) {
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user