22// Use of this source code is governed by a BSD-style license that can be
33// found in the LICENSE file.
44
5- import 'package:meta/meta.dart' ;
6-
75/// Class name constants which correspond to the class names used by the
86/// Android accessibility bridge.
97class AndroidClassName {
@@ -30,147 +28,97 @@ class AndroidClassName {
3028}
3129
3230/// Action constants which correspond to `AccessibilityAction` in Android.
33- @immutable
34- class AndroidSemanticsAction {
35- const AndroidSemanticsAction ._(this .id);
36-
37- /// The Android id of the action.
38- final int id;
39-
40- static const int _kFocusIndex = 1 << 0 ;
41- static const int _kClearFocusIndex = 1 << 1 ;
42- static const int _kSelectIndex = 1 << 2 ;
43- static const int _kClearSelectionIndex = 1 << 3 ;
44- static const int _kClickIndex = 1 << 4 ;
45- static const int _kLongClickIndex = 1 << 5 ;
46- static const int _kAccessibilityFocusIndex = 1 << 6 ;
47- static const int _kClearAccessibilityFocusIndex = 1 << 7 ;
48- static const int _kNextAtMovementGranularityIndex = 1 << 8 ;
49- static const int _kPreviousAtMovementGranularityIndex = 1 << 9 ;
50- static const int _kNextHtmlElementIndex = 1 << 10 ;
51- static const int _kPreviousHtmlElementIndex = 1 << 11 ;
52- static const int _kScrollForwardIndex = 1 << 12 ;
53- static const int _kScrollBackwardIndex = 1 << 13 ;
54- static const int _kCutIndex = 1 << 14 ;
55- static const int _kCopyIndex = 1 << 15 ;
56- static const int _kPasteIndex = 1 << 16 ;
57- static const int _kSetSelectionIndex = 1 << 17 ;
58- static const int _kExpandIndex = 1 << 18 ;
59- static const int _kCollapseIndex = 1 << 19 ;
60- static const int _kSetText = 1 << 21 ;
31+ enum AndroidSemanticsAction {
6132
6233 /// Matches `AccessibilityAction.ACTION_FOCUS` .
63- static const AndroidSemanticsAction focus = AndroidSemanticsAction ._ (_kFocusIndex);
34+ focus (_kFocusIndex),
6435
6536 /// Matches `AccessibilityAction.ACTION_CLEAR_FOCUS` .
66- static const AndroidSemanticsAction clearFocus = AndroidSemanticsAction ._ (_kClearFocusIndex);
37+ clearFocus (_kClearFocusIndex),
6738
6839 /// Matches `AccessibilityAction.ACTION_SELECT` .
69- static const AndroidSemanticsAction select = AndroidSemanticsAction ._ (_kSelectIndex);
40+ select (_kSelectIndex),
7041
7142 /// Matches `AccessibilityAction.ACTION_CLEAR_SELECTION` .
72- static const AndroidSemanticsAction clearSelection = AndroidSemanticsAction ._ (_kClearSelectionIndex);
43+ clearSelection (_kClearSelectionIndex),
7344
7445 /// Matches `AccessibilityAction.ACTION_CLICK` .
75- static const AndroidSemanticsAction click = AndroidSemanticsAction ._ (_kClickIndex);
46+ click (_kClickIndex),
7647
7748 /// Matches `AccessibilityAction.ACTION_LONG_CLICK` .
78- static const AndroidSemanticsAction longClick = AndroidSemanticsAction ._ (_kLongClickIndex);
49+ longClick (_kLongClickIndex),
7950
8051 /// Matches `AccessibilityAction.ACTION_ACCESSIBILITY_FOCUS` .
81- static const AndroidSemanticsAction accessibilityFocus = AndroidSemanticsAction ._ (_kAccessibilityFocusIndex);
52+ accessibilityFocus (_kAccessibilityFocusIndex),
8253
8354 /// Matches `AccessibilityAction.ACTION_CLEAR_ACCESSIBILITY_FOCUS` .
84- static const AndroidSemanticsAction clearAccessibilityFocus = AndroidSemanticsAction ._ (_kClearAccessibilityFocusIndex);
55+ clearAccessibilityFocus (_kClearAccessibilityFocusIndex),
8556
8657 /// Matches `AccessibilityAction.ACTION_NEXT_AT_MOVEMENT_GRANULARITY` .
87- static const AndroidSemanticsAction nextAtMovementGranularity = AndroidSemanticsAction ._ (_kNextAtMovementGranularityIndex);
58+ nextAtMovementGranularity (_kNextAtMovementGranularityIndex),
8859
8960 /// Matches `AccessibilityAction.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY` .
90- static const AndroidSemanticsAction previousAtMovementGranularity = AndroidSemanticsAction ._ (_kPreviousAtMovementGranularityIndex);
61+ previousAtMovementGranularity (_kPreviousAtMovementGranularityIndex),
9162
9263 /// Matches `AccessibilityAction.ACTION_NEXT_HTML_ELEMENT` .
93- static const AndroidSemanticsAction nextHtmlElement = AndroidSemanticsAction ._ (_kNextHtmlElementIndex);
64+ nextHtmlElement (_kNextHtmlElementIndex),
9465
9566 /// Matches `AccessibilityAction.ACTION_PREVIOUS_HTML_ELEMENT` .
96- static const AndroidSemanticsAction previousHtmlElement = AndroidSemanticsAction ._ (_kPreviousHtmlElementIndex);
67+ previousHtmlElement (_kPreviousHtmlElementIndex),
9768
9869 /// Matches `AccessibilityAction.ACTION_SCROLL_FORWARD` .
99- static const AndroidSemanticsAction scrollForward = AndroidSemanticsAction ._ (_kScrollForwardIndex);
70+ scrollForward (_kScrollForwardIndex),
10071
10172 /// Matches `AccessibilityAction.ACTION_SCROLL_BACKWARD` .
102- static const AndroidSemanticsAction scrollBackward = AndroidSemanticsAction ._ (_kScrollBackwardIndex);
73+ scrollBackward (_kScrollBackwardIndex),
10374
10475 /// Matches `AccessibilityAction.ACTION_CUT` .
105- static const AndroidSemanticsAction cut = AndroidSemanticsAction ._ (_kCutIndex);
76+ cut (_kCutIndex),
10677
10778 /// Matches `AccessibilityAction.ACTION_COPY` .
108- static const AndroidSemanticsAction copy = AndroidSemanticsAction ._ (_kCopyIndex);
79+ copy (_kCopyIndex),
10980
11081 /// Matches `AccessibilityAction.ACTION_PASTE` .
111- static const AndroidSemanticsAction paste = AndroidSemanticsAction ._ (_kPasteIndex);
82+ paste (_kPasteIndex),
11283
11384 /// Matches `AccessibilityAction.ACTION_SET_SELECTION` .
114- static const AndroidSemanticsAction setSelection = AndroidSemanticsAction ._ (_kSetSelectionIndex);
85+ setSelection (_kSetSelectionIndex),
11586
11687 /// Matches `AccessibilityAction.ACTION_EXPAND` .
117- static const AndroidSemanticsAction expand = AndroidSemanticsAction ._ (_kExpandIndex);
88+ expand (_kExpandIndex),
11889
11990 /// Matches `AccessibilityAction.ACTION_COLLAPSE` .
120- static const AndroidSemanticsAction collapse = AndroidSemanticsAction ._ (_kCollapseIndex);
91+ collapse (_kCollapseIndex),
12192
12293 /// Matches `AccessibilityAction.SET_TEXT` .
123- static const AndroidSemanticsAction setText = AndroidSemanticsAction ._(_kSetText);
124-
125- @override
126- String toString () {
127- switch (id) {
128- case _kFocusIndex:
129- return 'AndroidSemanticsAction.focus' ;
130- case _kClearFocusIndex:
131- return 'AndroidSemanticsAction.clearFocus' ;
132- case _kSelectIndex:
133- return 'AndroidSemanticsAction.select' ;
134- case _kClearSelectionIndex:
135- return 'AndroidSemanticsAction.clearSelection' ;
136- case _kClickIndex:
137- return 'AndroidSemanticsAction.click' ;
138- case _kLongClickIndex:
139- return 'AndroidSemanticsAction.longClick' ;
140- case _kAccessibilityFocusIndex:
141- return 'AndroidSemanticsAction.accessibilityFocus' ;
142- case _kClearAccessibilityFocusIndex:
143- return 'AndroidSemanticsAction.clearAccessibilityFocus' ;
144- case _kNextAtMovementGranularityIndex:
145- return 'AndroidSemanticsAction.nextAtMovementGranularity' ;
146- case _kPreviousAtMovementGranularityIndex:
147- return 'AndroidSemanticsAction.previousAtMovementGranularity' ;
148- case _kNextHtmlElementIndex:
149- return 'AndroidSemanticsAction.nextHtmlElement' ;
150- case _kPreviousHtmlElementIndex:
151- return 'AndroidSemanticsAction.previousHtmlElement' ;
152- case _kScrollForwardIndex:
153- return 'AndroidSemanticsAction.scrollForward' ;
154- case _kScrollBackwardIndex:
155- return 'AndroidSemanticsAction.scrollBackward' ;
156- case _kCutIndex:
157- return 'AndroidSemanticsAction.cut' ;
158- case _kCopyIndex:
159- return 'AndroidSemanticsAction.copy' ;
160- case _kPasteIndex:
161- return 'AndroidSemanticsAction.paste' ;
162- case _kSetSelectionIndex:
163- return 'AndroidSemanticsAction.setSelection' ;
164- case _kExpandIndex:
165- return 'AndroidSemanticsAction.expand' ;
166- case _kCollapseIndex:
167- return 'AndroidSemanticsAction.collapse' ;
168- case _kSetText:
169- return 'AndroidSemanticsAction.setText' ;
170- default :
171- throw UnimplementedError ();
172- }
173- }
94+ setText (_kSetText);
95+
96+ const AndroidSemanticsAction (this .id);
97+
98+ /// The Android id of the action.
99+ final int id;
100+
101+ static const int _kFocusIndex = 1 << 0 ;
102+ static const int _kClearFocusIndex = 1 << 1 ;
103+ static const int _kSelectIndex = 1 << 2 ;
104+ static const int _kClearSelectionIndex = 1 << 3 ;
105+ static const int _kClickIndex = 1 << 4 ;
106+ static const int _kLongClickIndex = 1 << 5 ;
107+ static const int _kAccessibilityFocusIndex = 1 << 6 ;
108+ static const int _kClearAccessibilityFocusIndex = 1 << 7 ;
109+ static const int _kNextAtMovementGranularityIndex = 1 << 8 ;
110+ static const int _kPreviousAtMovementGranularityIndex = 1 << 9 ;
111+ static const int _kNextHtmlElementIndex = 1 << 10 ;
112+ static const int _kPreviousHtmlElementIndex = 1 << 11 ;
113+ static const int _kScrollForwardIndex = 1 << 12 ;
114+ static const int _kScrollBackwardIndex = 1 << 13 ;
115+ static const int _kCutIndex = 1 << 14 ;
116+ static const int _kCopyIndex = 1 << 15 ;
117+ static const int _kPasteIndex = 1 << 16 ;
118+ static const int _kSetSelectionIndex = 1 << 17 ;
119+ static const int _kExpandIndex = 1 << 18 ;
120+ static const int _kCollapseIndex = 1 << 19 ;
121+ static const int _kSetText = 1 << 21 ;
174122
175123 static const Map <int , AndroidSemanticsAction > _kActionById = < int , AndroidSemanticsAction > {
176124 _kFocusIndex: focus,
@@ -196,18 +144,6 @@ class AndroidSemanticsAction {
196144 _kSetText: setText,
197145 };
198146
199- @override
200- int get hashCode => id.hashCode;
201-
202- @override
203- bool operator == (Object other) {
204- if (other.runtimeType != runtimeType) {
205- return false ;
206- }
207- return other is AndroidSemanticsAction
208- && other.id == id;
209- }
210-
211147 /// Creates a new [AndroidSemanticsAction] from an integer `value` .
212148 ///
213149 /// Returns `null` if the id is not a known Android accessibility action.
0 commit comments