Unverified Commit 100cf21e authored by Bernardo Ferrari's avatar Bernardo Ferrari Committed by GitHub

Prefer enum over class. (#123312)

Convert `AndroidSemanticsAction` to enum.
parent 716d2524
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
import 'package:meta/meta.dart';
/// Class name constants which correspond to the class names used by the /// Class name constants which correspond to the class names used by the
/// Android accessibility bridge. /// Android accessibility bridge.
class AndroidClassName { class AndroidClassName {
...@@ -30,147 +28,97 @@ class AndroidClassName { ...@@ -30,147 +28,97 @@ class AndroidClassName {
} }
/// Action constants which correspond to `AccessibilityAction` in Android. /// Action constants which correspond to `AccessibilityAction` in Android.
@immutable enum AndroidSemanticsAction {
class AndroidSemanticsAction {
const AndroidSemanticsAction._(this.id);
/// The Android id of the action.
final int id;
static const int _kFocusIndex = 1 << 0;
static const int _kClearFocusIndex = 1 << 1;
static const int _kSelectIndex = 1 << 2;
static const int _kClearSelectionIndex = 1 << 3;
static const int _kClickIndex = 1 << 4;
static const int _kLongClickIndex = 1 << 5;
static const int _kAccessibilityFocusIndex = 1 << 6;
static const int _kClearAccessibilityFocusIndex = 1 << 7;
static const int _kNextAtMovementGranularityIndex = 1 << 8;
static const int _kPreviousAtMovementGranularityIndex = 1 << 9;
static const int _kNextHtmlElementIndex = 1 << 10;
static const int _kPreviousHtmlElementIndex = 1 << 11;
static const int _kScrollForwardIndex = 1 << 12;
static const int _kScrollBackwardIndex = 1 << 13;
static const int _kCutIndex = 1 << 14;
static const int _kCopyIndex = 1 << 15;
static const int _kPasteIndex = 1 << 16;
static const int _kSetSelectionIndex = 1 << 17;
static const int _kExpandIndex = 1 << 18;
static const int _kCollapseIndex = 1 << 19;
static const int _kSetText = 1 << 21;
/// Matches `AccessibilityAction.ACTION_FOCUS`. /// Matches `AccessibilityAction.ACTION_FOCUS`.
static const AndroidSemanticsAction focus = AndroidSemanticsAction._(_kFocusIndex); focus(_kFocusIndex),
/// Matches `AccessibilityAction.ACTION_CLEAR_FOCUS`. /// Matches `AccessibilityAction.ACTION_CLEAR_FOCUS`.
static const AndroidSemanticsAction clearFocus = AndroidSemanticsAction._(_kClearFocusIndex); clearFocus(_kClearFocusIndex),
/// Matches `AccessibilityAction.ACTION_SELECT`. /// Matches `AccessibilityAction.ACTION_SELECT`.
static const AndroidSemanticsAction select = AndroidSemanticsAction._(_kSelectIndex); select(_kSelectIndex),
/// Matches `AccessibilityAction.ACTION_CLEAR_SELECTION`. /// Matches `AccessibilityAction.ACTION_CLEAR_SELECTION`.
static const AndroidSemanticsAction clearSelection = AndroidSemanticsAction._(_kClearSelectionIndex); clearSelection(_kClearSelectionIndex),
/// Matches `AccessibilityAction.ACTION_CLICK`. /// Matches `AccessibilityAction.ACTION_CLICK`.
static const AndroidSemanticsAction click = AndroidSemanticsAction._(_kClickIndex); click(_kClickIndex),
/// Matches `AccessibilityAction.ACTION_LONG_CLICK`. /// Matches `AccessibilityAction.ACTION_LONG_CLICK`.
static const AndroidSemanticsAction longClick = AndroidSemanticsAction._(_kLongClickIndex); longClick(_kLongClickIndex),
/// Matches `AccessibilityAction.ACTION_ACCESSIBILITY_FOCUS`. /// Matches `AccessibilityAction.ACTION_ACCESSIBILITY_FOCUS`.
static const AndroidSemanticsAction accessibilityFocus = AndroidSemanticsAction._(_kAccessibilityFocusIndex); accessibilityFocus(_kAccessibilityFocusIndex),
/// Matches `AccessibilityAction.ACTION_CLEAR_ACCESSIBILITY_FOCUS`. /// Matches `AccessibilityAction.ACTION_CLEAR_ACCESSIBILITY_FOCUS`.
static const AndroidSemanticsAction clearAccessibilityFocus = AndroidSemanticsAction._(_kClearAccessibilityFocusIndex); clearAccessibilityFocus(_kClearAccessibilityFocusIndex),
/// Matches `AccessibilityAction.ACTION_NEXT_AT_MOVEMENT_GRANULARITY`. /// Matches `AccessibilityAction.ACTION_NEXT_AT_MOVEMENT_GRANULARITY`.
static const AndroidSemanticsAction nextAtMovementGranularity = AndroidSemanticsAction._(_kNextAtMovementGranularityIndex); nextAtMovementGranularity(_kNextAtMovementGranularityIndex),
/// Matches `AccessibilityAction.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY`. /// Matches `AccessibilityAction.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY`.
static const AndroidSemanticsAction previousAtMovementGranularity = AndroidSemanticsAction._(_kPreviousAtMovementGranularityIndex); previousAtMovementGranularity(_kPreviousAtMovementGranularityIndex),
/// Matches `AccessibilityAction.ACTION_NEXT_HTML_ELEMENT`. /// Matches `AccessibilityAction.ACTION_NEXT_HTML_ELEMENT`.
static const AndroidSemanticsAction nextHtmlElement = AndroidSemanticsAction._(_kNextHtmlElementIndex); nextHtmlElement(_kNextHtmlElementIndex),
/// Matches `AccessibilityAction.ACTION_PREVIOUS_HTML_ELEMENT`. /// Matches `AccessibilityAction.ACTION_PREVIOUS_HTML_ELEMENT`.
static const AndroidSemanticsAction previousHtmlElement = AndroidSemanticsAction._(_kPreviousHtmlElementIndex); previousHtmlElement(_kPreviousHtmlElementIndex),
/// Matches `AccessibilityAction.ACTION_SCROLL_FORWARD`. /// Matches `AccessibilityAction.ACTION_SCROLL_FORWARD`.
static const AndroidSemanticsAction scrollForward = AndroidSemanticsAction._(_kScrollForwardIndex); scrollForward(_kScrollForwardIndex),
/// Matches `AccessibilityAction.ACTION_SCROLL_BACKWARD`. /// Matches `AccessibilityAction.ACTION_SCROLL_BACKWARD`.
static const AndroidSemanticsAction scrollBackward = AndroidSemanticsAction._(_kScrollBackwardIndex); scrollBackward(_kScrollBackwardIndex),
/// Matches `AccessibilityAction.ACTION_CUT`. /// Matches `AccessibilityAction.ACTION_CUT`.
static const AndroidSemanticsAction cut = AndroidSemanticsAction._(_kCutIndex); cut(_kCutIndex),
/// Matches `AccessibilityAction.ACTION_COPY`. /// Matches `AccessibilityAction.ACTION_COPY`.
static const AndroidSemanticsAction copy = AndroidSemanticsAction._(_kCopyIndex); copy(_kCopyIndex),
/// Matches `AccessibilityAction.ACTION_PASTE`. /// Matches `AccessibilityAction.ACTION_PASTE`.
static const AndroidSemanticsAction paste = AndroidSemanticsAction._(_kPasteIndex); paste(_kPasteIndex),
/// Matches `AccessibilityAction.ACTION_SET_SELECTION`. /// Matches `AccessibilityAction.ACTION_SET_SELECTION`.
static const AndroidSemanticsAction setSelection = AndroidSemanticsAction._(_kSetSelectionIndex); setSelection(_kSetSelectionIndex),
/// Matches `AccessibilityAction.ACTION_EXPAND`. /// Matches `AccessibilityAction.ACTION_EXPAND`.
static const AndroidSemanticsAction expand = AndroidSemanticsAction._(_kExpandIndex); expand(_kExpandIndex),
/// Matches `AccessibilityAction.ACTION_COLLAPSE`. /// Matches `AccessibilityAction.ACTION_COLLAPSE`.
static const AndroidSemanticsAction collapse = AndroidSemanticsAction._(_kCollapseIndex); collapse(_kCollapseIndex),
/// Matches `AccessibilityAction.SET_TEXT`. /// Matches `AccessibilityAction.SET_TEXT`.
static const AndroidSemanticsAction setText = AndroidSemanticsAction._(_kSetText); setText(_kSetText);
@override const AndroidSemanticsAction(this.id);
String toString() {
switch (id) { /// The Android id of the action.
case _kFocusIndex: final int id;
return 'AndroidSemanticsAction.focus';
case _kClearFocusIndex: static const int _kFocusIndex = 1 << 0;
return 'AndroidSemanticsAction.clearFocus'; static const int _kClearFocusIndex = 1 << 1;
case _kSelectIndex: static const int _kSelectIndex = 1 << 2;
return 'AndroidSemanticsAction.select'; static const int _kClearSelectionIndex = 1 << 3;
case _kClearSelectionIndex: static const int _kClickIndex = 1 << 4;
return 'AndroidSemanticsAction.clearSelection'; static const int _kLongClickIndex = 1 << 5;
case _kClickIndex: static const int _kAccessibilityFocusIndex = 1 << 6;
return 'AndroidSemanticsAction.click'; static const int _kClearAccessibilityFocusIndex = 1 << 7;
case _kLongClickIndex: static const int _kNextAtMovementGranularityIndex = 1 << 8;
return 'AndroidSemanticsAction.longClick'; static const int _kPreviousAtMovementGranularityIndex = 1 << 9;
case _kAccessibilityFocusIndex: static const int _kNextHtmlElementIndex = 1 << 10;
return 'AndroidSemanticsAction.accessibilityFocus'; static const int _kPreviousHtmlElementIndex = 1 << 11;
case _kClearAccessibilityFocusIndex: static const int _kScrollForwardIndex = 1 << 12;
return 'AndroidSemanticsAction.clearAccessibilityFocus'; static const int _kScrollBackwardIndex = 1 << 13;
case _kNextAtMovementGranularityIndex: static const int _kCutIndex = 1 << 14;
return 'AndroidSemanticsAction.nextAtMovementGranularity'; static const int _kCopyIndex = 1 << 15;
case _kPreviousAtMovementGranularityIndex: static const int _kPasteIndex = 1 << 16;
return 'AndroidSemanticsAction.previousAtMovementGranularity'; static const int _kSetSelectionIndex = 1 << 17;
case _kNextHtmlElementIndex: static const int _kExpandIndex = 1 << 18;
return 'AndroidSemanticsAction.nextHtmlElement'; static const int _kCollapseIndex = 1 << 19;
case _kPreviousHtmlElementIndex: static const int _kSetText = 1 << 21;
return 'AndroidSemanticsAction.previousHtmlElement';
case _kScrollForwardIndex:
return 'AndroidSemanticsAction.scrollForward';
case _kScrollBackwardIndex:
return 'AndroidSemanticsAction.scrollBackward';
case _kCutIndex:
return 'AndroidSemanticsAction.cut';
case _kCopyIndex:
return 'AndroidSemanticsAction.copy';
case _kPasteIndex:
return 'AndroidSemanticsAction.paste';
case _kSetSelectionIndex:
return 'AndroidSemanticsAction.setSelection';
case _kExpandIndex:
return 'AndroidSemanticsAction.expand';
case _kCollapseIndex:
return 'AndroidSemanticsAction.collapse';
case _kSetText:
return 'AndroidSemanticsAction.setText';
default:
throw UnimplementedError();
}
}
static const Map<int, AndroidSemanticsAction> _kActionById = <int, AndroidSemanticsAction>{ static const Map<int, AndroidSemanticsAction> _kActionById = <int, AndroidSemanticsAction>{
_kFocusIndex: focus, _kFocusIndex: focus,
...@@ -196,18 +144,6 @@ class AndroidSemanticsAction { ...@@ -196,18 +144,6 @@ class AndroidSemanticsAction {
_kSetText: setText, _kSetText: setText,
}; };
@override
int get hashCode => id.hashCode;
@override
bool operator ==(Object other) {
if (other.runtimeType != runtimeType) {
return false;
}
return other is AndroidSemanticsAction
&& other.id == id;
}
/// Creates a new [AndroidSemanticsAction] from an integer `value`. /// Creates a new [AndroidSemanticsAction] from an integer `value`.
/// ///
/// Returns `null` if the id is not a known Android accessibility action. /// Returns `null` if the id is not a known Android accessibility action.
......
...@@ -1390,7 +1390,7 @@ abstract class RenderBox extends RenderObject { ...@@ -1390,7 +1390,7 @@ abstract class RenderBox extends RenderObject {
} else { } else {
debugTimelineArguments = <String, String>{}; debugTimelineArguments = <String, String>{};
} }
debugTimelineArguments!['intrinsics dimension'] = describeEnum(dimension); debugTimelineArguments!['intrinsics dimension'] = dimension.name;
debugTimelineArguments!['intrinsics argument'] = '$argument'; debugTimelineArguments!['intrinsics argument'] = '$argument';
return true; return true;
}()); }());
......
...@@ -524,7 +524,7 @@ class _GlowController extends ChangeNotifier { ...@@ -524,7 +524,7 @@ class _GlowController extends ChangeNotifier {
@override @override
String toString() { String toString() {
return '_GlowController(color: $color, axis: ${describeEnum(axis)})'; return '_GlowController(color: $color, axis: ${axis.name})';
} }
} }
......
...@@ -2118,7 +2118,7 @@ mixin WidgetInspectorService { ...@@ -2118,7 +2118,7 @@ mixin WidgetInspectorService {
if (parentData is FlexParentData) { if (parentData is FlexParentData) {
additionalJson['flexFactor'] = parentData.flex!; additionalJson['flexFactor'] = parentData.flex!;
additionalJson['flexFit'] = additionalJson['flexFit'] =
describeEnum(parentData.fit ?? FlexFit.tight); (parentData.fit ?? FlexFit.tight).name;
} else if (parentData is BoxParentData) { } else if (parentData is BoxParentData) {
final Offset offset = parentData.offset; final Offset offset = parentData.offset;
additionalJson['parentData'] = <String, Object>{ additionalJson['parentData'] = <String, Object>{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment