From c71978f6002fd3ca266ed7e677108395d94634da Mon Sep 17 00:00:00 2001 From: Greg Spencer Date: Tue, 25 Feb 2020 14:15:35 -0800 Subject: [PATCH] Remove deprecated DefaultFocusTraversal widget (#51240) Remove deprecated DefaultFocusTraversal widget --- .../lib/src/widgets/focus_traversal.dart | 81 ------------------- 1 file changed, 81 deletions(-) diff --git a/packages/flutter/lib/src/widgets/focus_traversal.dart b/packages/flutter/lib/src/widgets/focus_traversal.dart index 7d8038731b..319ba1471f 100644 --- a/packages/flutter/lib/src/widgets/focus_traversal.dart +++ b/packages/flutter/lib/src/widgets/focus_traversal.dart @@ -1713,87 +1713,6 @@ class _FocusTraversalGroupMarker extends InheritedWidget { bool updateShouldNotify(InheritedWidget oldWidget) => false; } -/// A deprecated widget that describes the inherited focus policy for focus -/// traversal for its descendants. -/// -/// _This widget has been deprecated: use [FocusTraversalGroup] instead._ -@Deprecated( - 'Use FocusTraversalGroup as a replacement for DefaultFocusTraversal. Be aware that FocusTraversalGroup does add an (unfocusable) Focus widget to the hierarchy that DefaultFocusTraversal does not. Use FocusTraversalGroup.of(context) as a replacement for DefaultFocusTraversal.of(context). ' - 'This feature was deprecated after v1.14.3.' -) -class DefaultFocusTraversal extends InheritedWidget { - /// Creates a [DefaultFocusTraversal] object. - /// - /// The [child] argument must not be null. - const DefaultFocusTraversal({ - Key key, - this.policy, - @required Widget child, - }) : super(key: key, child: child); - - /// The policy used to move the focus from one focus node to another when - /// traversing them using a keyboard. - /// - /// _This widget has been deprecated: use [FocusTraversalGroup] instead._ - /// - /// If not specified, traverses in reading order using - /// [ReadingOrderTraversalPolicy]. - /// - /// See also: - /// - /// * [FocusTraversalPolicy] for the API used to impose traversal order - /// policy. - /// * [WidgetOrderTraversalPolicy] for a traversal policy that traverses - /// nodes in the order they are added to the widget tree. - /// * [ReadingOrderTraversalPolicy] for a traversal policy that traverses - /// nodes in the reading order defined in the widget tree, and then top to - /// bottom. - final FocusTraversalPolicy policy; - - /// Returns the [FocusTraversalPolicy] that most tightly encloses the given - /// [BuildContext]. - /// - /// _This method has been deprecated: use `FocusTraversalGroup.of(context)` instead._ - /// - /// It does not create a rebuild dependency because changing the traversal - /// order doesn't change the widget tree, so nothing needs to be rebuilt as a - /// result of an order change. - /// - /// The [context] argument must not be null. - static FocusTraversalPolicy of(BuildContext context, {bool nullOk = false}) { - final DefaultFocusTraversal inherited = context.getElementForInheritedWidgetOfExactType()?.widget as DefaultFocusTraversal; - assert(() { - if (nullOk) { - return true; - } - if (context == null) { - throw FlutterError( - 'The context given to DefaultFocusTraversal.of was null, so ' - 'consequently no FocusTraversalGroup ancestor can be found.', - ); - } - if (inherited == null) { - throw FlutterError( - 'Unable to find a DefaultFocusTraversal widget in the context.\n' - 'DefaultFocusTraversal.of() was called with a context that does not contain a ' - 'DefaultFocusTraversal.\n' - 'No DefaultFocusTraversal ancestor could be found starting from the context that was ' - 'passed to DefaultFocusTraversal.of(). This can happen because there is not a ' - 'WidgetsApp or MaterialApp widget (those widgets introduce a DefaultFocusTraversal), ' - 'or it can happen if the context comes from a widget above those widgets.\n' - 'The context used was:\n' - ' $context', - ); - } - return true; - }()); - return inherited?.policy ?? ReadingOrderTraversalPolicy(); - } - - @override - bool updateShouldNotify(DefaultFocusTraversal oldWidget) => false; -} - // A base class for all of the default actions that request focus for a node. class _RequestFocusActionBase extends Action { _RequestFocusActionBase(LocalKey name) : super(name);