File tree Expand file tree Collapse file tree
main/java/com/enaboapps/switchify/service/techniques/nodes
test/java/com/enaboapps/switchify/service/techniques/nodes Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11package com.enaboapps.switchify.service.techniques.nodes
22
33import android.graphics.Rect
4+ import android.os.Build
45import android.view.accessibility.AccessibilityNodeInfo
56import android.view.accessibility.AccessibilityWindowInfo
67
@@ -67,7 +68,7 @@ internal object NodeCapabilityClassifier {
6768 isScrollable = nodeInfo.isScrollable,
6869 isCheckable = nodeInfo.isCheckable,
6970 isChecked = nodeInfo.isCheckedCompat(),
70- isTextSelectable = nodeInfo.isTextSelectable ,
71+ isTextSelectable = nodeInfo.isTextSelectableCompat() ,
7172 actionIds = nodeInfo.actionList?.map { it.id }?.toSet().orEmpty(),
7273 hasCollectionInfo = collectionInfo != null ,
7374 hasCollectionItemInfo = collectionItemInfo != null ,
@@ -192,3 +193,11 @@ private fun Rect?.hasUsableHighlightBounds(): Boolean {
192193private fun AccessibilityNodeInfo.isCheckedCompat (): Boolean {
193194 return isChecked
194195}
196+
197+ private fun AccessibilityNodeInfo.isTextSelectableCompat (): Boolean {
198+ return if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .TIRAMISU ) {
199+ runCatching { isTextSelectable }.getOrDefault(false )
200+ } else {
201+ false
202+ }
203+ }
Original file line number Diff line number Diff line change @@ -223,4 +223,13 @@ class NodeCapabilityClassifierTest {
223223 assertEquals(NodeRole .TextOnly , capabilities.role)
224224 assertFalse(capabilities.isCurrentlyScannable)
225225 }
226+
227+ @Test
228+ fun textSelectableFactIsRecorded () {
229+ val capabilities = NodeCapabilityClassifier .classifyFacts(
230+ RawNodeCapabilityFacts (isTextSelectable = true )
231+ )
232+
233+ assertTrue(capabilities.isTextSelectable)
234+ }
226235}
You can’t perform that action at this time.
0 commit comments