From bb82d46bdb97c85c099bb92ca33f62deffc75f66 Mon Sep 17 00:00:00 2001 From: Darren Austin Date: Tue, 5 Nov 2019 15:27:25 -0800 Subject: [PATCH] Added Semantic header support on Android. (flutter/engine#13262) Added Semantic header support on Android. --- .../android/io/flutter/view/AccessibilityBridge.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/engine/src/flutter/shell/platform/android/io/flutter/view/AccessibilityBridge.java b/engine/src/flutter/shell/platform/android/io/flutter/view/AccessibilityBridge.java index 5093bedfa1f..95f2a1d8856 100644 --- a/engine/src/flutter/shell/platform/android/io/flutter/view/AccessibilityBridge.java +++ b/engine/src/flutter/shell/platform/android/io/flutter/view/AccessibilityBridge.java @@ -4,6 +4,7 @@ package io.flutter.view; +import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.content.ContentResolver; import android.database.ContentObserver; @@ -489,6 +490,8 @@ public class AccessibilityBridge extends AccessibilityNodeProvider { */ @Override @SuppressWarnings("deprecation") + // Supressing Lint warning for new API, as we are version guarding all calls to newer APIs + @SuppressLint("NewApi") public AccessibilityNodeInfo createAccessibilityNodeInfo(int virtualViewId) { if (virtualViewId >= MIN_ENGINE_GENERATED_NODE_ID) { // The node is in the engine generated range, and is provided by the accessibility view embedder. @@ -753,6 +756,11 @@ public class AccessibilityBridge extends AccessibilityNodeProvider { result.setSelected(semanticsNode.hasFlag(Flag.IS_SELECTED)); + // Heading support + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + result.setHeading(semanticsNode.hasFlag(Flag.IS_HEADER)); + } + // Accessibility Focus if (accessibilityFocusedSemanticsNode != null && accessibilityFocusedSemanticsNode.id == virtualViewId) { result.addAction(AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS);