Revert "Replace TextField.canRequestFocus with TextField.focusNode.ca… (#132106)

…nRequestFocus" (#132104)

Reverts flutter/flutter#130164

reverting because it cause internal google testing failures b/294917394
diff --git a/packages/flutter/lib/src/material/dropdown_menu.dart b/packages/flutter/lib/src/material/dropdown_menu.dart
index 5300348..51a972a 100644
--- a/packages/flutter/lib/src/material/dropdown_menu.dart
+++ b/packages/flutter/lib/src/material/dropdown_menu.dart
@@ -4,7 +4,6 @@
 
 import 'dart:math' as math;
 
-import 'package:flutter/foundation.dart';
 import 'package:flutter/rendering.dart';
 import 'package:flutter/services.dart';
 import 'package:flutter/widgets.dart';
@@ -310,7 +309,6 @@
   int? currentHighlight;
   double? leadingPadding;
   bool _menuHasEnabledItem = false;
-  late final FocusNode _focusNode;
 
   @override
   void initState() {
@@ -328,18 +326,6 @@
           TextSelection.collapsed(offset: _textEditingController.text.length);
     }
     refreshLeadingPadding();
-    _focusNode = FocusNode(
-      canRequestFocus: canRequestFocus(),
-    );
-  }
-
-  @override
-  void didChangeDependencies() {
-    super.didChangeDependencies();
-    final bool widgetCanRequestFocus = canRequestFocus();
-    if (widgetCanRequestFocus != _focusNode.canRequestFocus) {
-      _focusNode.canRequestFocus = widgetCanRequestFocus;
-    }
   }
 
   @override
@@ -367,10 +353,6 @@
             TextSelection.collapsed(offset: _textEditingController.text.length);
       }
     }
-    final bool widgetCanRequestFocus = canRequestFocus();
-    if (widgetCanRequestFocus != _focusNode.canRequestFocus) {
-      _focusNode.canRequestFocus = widgetCanRequestFocus;
-    }
   }
 
   bool canRequestFocus() {
@@ -378,7 +360,7 @@
       return widget.requestFocusOnTap!;
     }
 
-    switch (defaultTargetPlatform) {
+    switch (Theme.of(context).platform) {
       case TargetPlatform.iOS:
       case TargetPlatform.android:
       case TargetPlatform.fuchsia:
@@ -610,8 +592,7 @@
         final Widget textField = TextField(
             key: _anchorKey,
             mouseCursor: effectiveMouseCursor,
-            focusNode: _focusNode,
-            readOnly: !canRequestFocus(),
+            canRequestFocus: canRequestFocus(),
             enableInteractiveSelection: canRequestFocus(),
             textAlignVertical: TextAlignVertical.center,
             style: effectiveTextStyle,
diff --git a/packages/flutter/lib/src/material/text_field.dart b/packages/flutter/lib/src/material/text_field.dart
index 7d6ea5b..aa8f715 100644
--- a/packages/flutter/lib/src/material/text_field.dart
+++ b/packages/flutter/lib/src/material/text_field.dart
@@ -314,10 +314,6 @@
     this.scribbleEnabled = true,
     this.enableIMEPersonalizedLearning = true,
     this.contextMenuBuilder = _defaultContextMenuBuilder,
-    @Deprecated(
-      'Use `focusNode` instead. '
-      'This feature was deprecated after v3.12.0-14.0.pre.',
-    )
     this.canRequestFocus = true,
     this.spellCheckConfiguration,
     this.magnifierConfiguration,
@@ -780,10 +776,6 @@
   /// Defaults to true. If false, the text field will not request focus
   /// when tapped, or when its context menu is displayed. If false it will not
   /// be possible to move the focus to the text field with tab key.
-  @Deprecated(
-    'Use `focusNode` instead. '
-    'This feature was deprecated after v3.12.0-14.0.pre.',
-  )
   final bool canRequestFocus;
 
   /// {@macro flutter.widgets.undoHistory.controller}
@@ -1034,9 +1026,7 @@
     if (widget.controller == null) {
       _createLocalController();
     }
-    _effectiveFocusNode.canRequestFocus = widget.focusNode == null
-      ? widget.canRequestFocus && _isEnabled
-      : widget.focusNode!.canRequestFocus && _isEnabled;
+    _effectiveFocusNode.canRequestFocus = widget.canRequestFocus && _isEnabled;
     _effectiveFocusNode.addListener(_handleFocusChanged);
   }
 
@@ -1044,9 +1034,7 @@
     final NavigationMode mode = MediaQuery.maybeNavigationModeOf(context) ?? NavigationMode.traditional;
     switch (mode) {
       case NavigationMode.traditional:
-        return widget.focusNode == null
-          ? widget.canRequestFocus && _isEnabled
-          : widget.focusNode!.canRequestFocus && _isEnabled;
+        return widget.canRequestFocus && _isEnabled;
       case NavigationMode.directional:
         return true;
     }
@@ -1098,8 +1086,8 @@
   void _createLocalController([TextEditingValue? value]) {
     assert(_controller == null);
     _controller = value == null
-      ? RestorableTextEditingController()
-      : RestorableTextEditingController.fromValue(value);
+        ? RestorableTextEditingController()
+        : RestorableTextEditingController.fromValue(value);
     if (!restorePending) {
       _registerController();
     }
diff --git a/packages/flutter/test/material/dropdown_menu_test.dart b/packages/flutter/test/material/dropdown_menu_test.dart
index 898c835..a721cfd 100644
--- a/packages/flutter/test/material/dropdown_menu_test.dart
+++ b/packages/flutter/test/material/dropdown_menu_test.dart
@@ -1232,7 +1232,7 @@
 
     final Finder textFieldFinder = find.byType(TextField);
     final TextField result = tester.widget<TextField>(textFieldFinder);
-    expect(result.focusNode!.canRequestFocus, false);
+    expect(result.canRequestFocus, false);
   }, variant: TargetPlatformVariant.mobile());
 
   testWidgets('The text input field should be focused on desktop platforms '
@@ -1300,7 +1300,7 @@
 
     final Finder textFieldFinder1 = find.byType(TextField);
     final TextField textField1 = tester.widget<TextField>(textFieldFinder1);
-    expect(textField1.focusNode!.canRequestFocus, false);
+    expect(textField1.canRequestFocus, false);
     // Open the dropdown menu.
     await tester.tap(textFieldFinder1);
     await tester.pump();
@@ -1329,7 +1329,7 @@
 
     final Finder textFieldFinder = find.byType(TextField);
     final TextField textField = tester.widget<TextField>(textFieldFinder);
-    expect(textField.focusNode!.canRequestFocus, false);
+    expect(textField.canRequestFocus, false);
 
     final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse, pointer: 1);
     await gesture.moveTo(tester.getCenter(textFieldFinder));
@@ -1526,6 +1526,7 @@
     // Item 5 should show up.
     expect(find.text('Item 5').hitTestable(), findsOneWidget);
   });
+
 }
 
 enum TestMenu {
diff --git a/packages/flutter/test/material/text_field_test.dart b/packages/flutter/test/material/text_field_test.dart
index 8339d81..3998f97 100644
--- a/packages/flutter/test/material/text_field_test.dart
+++ b/packages/flutter/test/material/text_field_test.dart
@@ -15568,7 +15568,6 @@
     expect(focusNode.hasFocus, isTrue);
 
     // Set canRequestFocus to false: the text field cannot be focused when it is tapped/long pressed.
-    focusNode.canRequestFocus = false;
     await tester.pumpWidget(
       boilerplate(
         child: TextField(
@@ -15750,9 +15749,7 @@
     }, variant: const TargetPlatformVariant(<TargetPlatform>{ TargetPlatform.iOS, TargetPlatform.macOS }));
 
     testWidgets('Right clicking cannot request focus if canRequestFocus is false', (WidgetTester tester) async {
-      final FocusNode focusNode = FocusNode(
-        canRequestFocus: false,
-      );
+      final FocusNode focusNode = FocusNode();
       final UniqueKey key = UniqueKey();
       await tester.pumpWidget(
         MaterialApp(