Skip to content

Commit a33dec1

Browse files
authored
Deprecate RawKeyEvent, RawKeyboard, et al. (#136677)
## Description This starts the deprecation of the `RawKeyEvent`/`RawKeyboard` event system that has been replaced by the `KeyEvent`/`HardwareKeyboard` event system. Migration guide is available here: https://docs.flutter.dev/release/breaking-changes/key-event-migration ## Related Issues - flutter/flutter#136419 ## Related PRs - flutter/website#9889
1 parent 9719097 commit a33dec1

33 files changed

+785
-196
lines changed

examples/api/lib/widgets/hardware_keyboard/key_event_manager.0.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
import 'package:flutter/material.dart';
66
import 'package:flutter/services.dart';
77

8+
// TODO(gspencergoog): Delete this example when deprecated RawKeyEvent API is
9+
// removed.
10+
// ignore_for_file: deprecated_member_use
11+
812
/// Flutter code sample for [KeyEventManager.keyMessageHandler].
913
1014
void main() {

packages/flutter/lib/src/services/binding.dart

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import 'debug.dart';
1616
import 'hardware_keyboard.dart';
1717
import 'message_codec.dart';
1818
import 'platform_channel.dart';
19+
import 'raw_keyboard.dart' show RawKeyboard;
1920
import 'restoration.dart';
2021
import 'service_extensions.dart';
2122
import 'system_channels.dart';
@@ -66,6 +67,13 @@ mixin ServicesBinding on BindingBase, SchedulerBinding {
6667

6768
/// The global singleton instance of [KeyEventManager], which is used
6869
/// internally to dispatch key messages.
70+
///
71+
/// This property is deprecated, and will be removed. See
72+
/// [HardwareKeyboard.addHandler] instead.
73+
@Deprecated(
74+
'No longer supported. Add a handler to HardwareKeyboard instead. '
75+
'This feature was deprecated after v3.18.0-2.0.pre.',
76+
)
6977
KeyEventManager get keyEventManager => _keyEventManager;
7078
late final KeyEventManager _keyEventManager;
7179

@@ -89,8 +97,8 @@ mixin ServicesBinding on BindingBase, SchedulerBinding {
8997
BinaryMessenger get defaultBinaryMessenger => _defaultBinaryMessenger;
9098
late final BinaryMessenger _defaultBinaryMessenger;
9199

92-
/// A token that represents the root isolate, used for coordinating with background
93-
/// isolates.
100+
/// A token that represents the root isolate, used for coordinating with
101+
/// background isolates.
94102
///
95103
/// This property is primarily intended for use with
96104
/// [BackgroundIsolateBinaryMessenger.ensureInitialized], which takes a

packages/flutter/lib/src/services/debug.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ export 'hardware_keyboard.dart' show KeyDataTransitMode;
1313
/// Setting [debugKeyEventSimulatorTransitModeOverride] is a good way to make
1414
/// certain tests simulate the behavior of different type of platforms in terms
1515
/// of their extent of support for keyboard API.
16+
///
17+
/// This value is deprecated and will be removed.
18+
@Deprecated(
19+
'No longer supported. Transit mode is always key data only. '
20+
'This feature was deprecated after v3.18.0-2.0.pre.',
21+
)
1622
KeyDataTransitMode? debugKeyEventSimulatorTransitModeOverride;
1723

1824
/// Setting to true will cause extensive logging to occur when key events are

packages/flutter/lib/src/services/hardware_keyboard.dart

Lines changed: 151 additions & 96 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)