Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
5a862ebe
Unverified
Commit
5a862ebe
authored
Dec 03, 2021
by
Michael Goderbauer
Committed by
GitHub
Dec 03, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replace dynamic with Object? in SystemChannels (#94629)
parent
ec40357f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
56 additions
and
56 deletions
+56
-56
raw_keyboard.dart
packages/flutter/lib/src/services/raw_keyboard.dart
+3
-3
system_channels.dart
packages/flutter/lib/src/services/system_channels.dart
+4
-4
raw_keyboard_test.dart
packages/flutter/test/services/raw_keyboard_test.dart
+47
-47
event_simulation.dart
packages/flutter_test/lib/src/event_simulation.dart
+2
-2
No files found.
packages/flutter/lib/src/services/raw_keyboard.dart
View file @
5a862ebe
...
...
@@ -284,7 +284,7 @@ abstract class RawKeyEvent with Diagnosticable {
/// Creates a concrete [RawKeyEvent] class from a message in the form received
/// on the [SystemChannels.keyEvent] channel.
factory
RawKeyEvent
.
fromMessage
(
Map
<
String
,
dynamic
>
message
)
{
factory
RawKeyEvent
.
fromMessage
(
Map
<
String
,
Object
?
>
message
)
{
String
?
character
;
RawKeyEventData
_dataFromWeb
()
{
final
String
?
key
=
message
[
'key'
]
as
String
?;
...
...
@@ -303,7 +303,7 @@ abstract class RawKeyEvent with Diagnosticable {
if
(
kIsWeb
)
{
data
=
_dataFromWeb
();
}
else
{
final
String
keymap
=
message
[
'keymap'
]
as
String
;
final
String
keymap
=
message
[
'keymap'
]
!
as
String
;
switch
(
keymap
)
{
case
'android'
:
data
=
RawKeyEventDataAndroid
(
...
...
@@ -388,7 +388,7 @@ abstract class RawKeyEvent with Diagnosticable {
throw
FlutterError
(
'Unknown keymap for key events:
$keymap
'
);
}
}
final
String
type
=
message
[
'type'
]
as
String
;
final
String
type
=
message
[
'type'
]
!
as
String
;
switch
(
type
)
{
case
'keydown'
:
return
RawKeyDownEvent
(
data:
data
,
character:
character
);
...
...
packages/flutter/lib/src/services/system_channels.dart
View file @
5a862ebe
...
...
@@ -240,7 +240,7 @@ class SystemChannels {
/// * [RawKeyboard], which uses this channel to expose key data.
/// * [new RawKeyEvent.fromMessage], which can decode this data into the [RawKeyEvent]
/// subclasses mentioned above.
static
const
BasicMessageChannel
<
dynamic
>
keyEvent
=
BasicMessageChannel
<
dynamic
>(
static
const
BasicMessageChannel
<
Object
?>
keyEvent
=
BasicMessageChannel
<
Object
?
>(
'flutter/keyevent'
,
JSONMessageCodec
(),
);
...
...
@@ -271,7 +271,7 @@ class SystemChannels {
/// applications to release caches to free up more memory. See
/// [WidgetsBindingObserver.didHaveMemoryPressure], which triggers whenever
/// a message is received on this channel.
static
const
BasicMessageChannel
<
dynamic
>
system
=
BasicMessageChannel
<
dynamic
>(
static
const
BasicMessageChannel
<
Object
?>
system
=
BasicMessageChannel
<
Object
?
>(
'flutter/system'
,
JSONMessageCodec
(),
);
...
...
@@ -283,7 +283,7 @@ class SystemChannels {
/// * [SemanticsEvent] and its subclasses for a list of valid accessibility
/// events that can be sent over this channel.
/// * [SemanticsNode.sendEvent], which uses this channel to dispatch events.
static
const
BasicMessageChannel
<
dynamic
>
accessibility
=
BasicMessageChannel
<
dynamic
>(
static
const
BasicMessageChannel
<
Object
?>
accessibility
=
BasicMessageChannel
<
Object
?
>(
'flutter/accessibility'
,
StandardMessageCodec
(),
);
...
...
@@ -311,7 +311,7 @@ class SystemChannels {
/// A [MethodChannel] for configuring mouse cursors.
///
/// All outgoing methods defined for this channel uses a `Map<String,
dynamic
>`
/// All outgoing methods defined for this channel uses a `Map<String,
Object?
>`
/// to contain multiple parameters, including the following methods (invoked
/// using [OptionalMethodChannel.invokeMethod]):
///
...
...
packages/flutter/test/services/raw_keyboard_test.dart
View file @
5a862ebe
...
...
@@ -1086,15 +1086,15 @@ void main() {
LogicalKeyboardKey
.
keyA
,
platform:
'android'
,
);
Map
<
String
,
dynamic
>?
message
;
Map
<
String
,
Object
?
>?
message
;
await
TestDefaultBinaryMessengerBinding
.
instance
!.
defaultBinaryMessenger
.
handlePlatformMessage
(
SystemChannels
.
keyEvent
.
name
,
SystemChannels
.
keyEvent
.
codec
.
encodeMessage
(
data
),
(
ByteData
?
data
)
{
message
=
SystemChannels
.
keyEvent
.
codec
.
decodeMessage
(
data
)
as
Map
<
String
,
dynamic
>
;
message
=
SystemChannels
.
keyEvent
.
codec
.
decodeMessage
(
data
)
as
Map
<
String
,
Object
?>?
;
},
);
expect
(
message
,
equals
(<
String
,
dynamic
>{
'handled'
:
false
}));
expect
(
message
,
equals
(<
String
,
Object
?
>{
'handled'
:
false
}));
message
=
null
;
// Set up a widget that will receive focused text events.
...
...
@@ -1115,15 +1115,15 @@ void main() {
SystemChannels
.
keyEvent
.
name
,
SystemChannels
.
keyEvent
.
codec
.
encodeMessage
(
data
),
(
ByteData
?
data
)
{
message
=
SystemChannels
.
keyEvent
.
codec
.
decodeMessage
(
data
)
as
Map
<
String
,
dynamic
>
;
message
=
SystemChannels
.
keyEvent
.
codec
.
decodeMessage
(
data
)
as
Map
<
String
,
Object
?>?
;
},
);
expect
(
message
,
equals
(<
String
,
dynamic
>{
'handled'
:
true
}));
expect
(
message
,
equals
(<
String
,
Object
?
>{
'handled'
:
true
}));
tester
.
binding
.
defaultBinaryMessenger
.
setMockMessageHandler
(
SystemChannels
.
keyEvent
.
name
,
null
);
});
test
(
'data.toString'
,
()
{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'android'
,
'keyCode'
:
29
,
...
...
@@ -1141,7 +1141,7 @@ void main() {
});
test
(
'data.equality'
,
()
{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'android'
,
'keyCode'
:
29
,
...
...
@@ -1833,7 +1833,7 @@ void main() {
});
test
(
'Unprintable keyboard keys are correctly translated'
,
()
{
final
RawKeyEvent
leftArrowKey
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
final
RawKeyEvent
leftArrowKey
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'windows'
,
'keyCode'
:
37
,
// keyCode for left arrow.
...
...
@@ -1854,7 +1854,7 @@ void main() {
Future
<
void
>
simulateKeyEventMessage
(
String
type
,
int
keyCode
,
int
scanCode
)
{
return
ServicesBinding
.
instance
!.
defaultBinaryMessenger
.
handlePlatformMessage
(
SystemChannels
.
keyEvent
.
name
,
SystemChannels
.
keyEvent
.
codec
.
encodeMessage
(<
String
,
dynamic
>{
SystemChannels
.
keyEvent
.
codec
.
encodeMessage
(<
String
,
Object
?
>{
'type'
:
type
,
'keymap'
:
platform
,
'keyCode'
:
keyCode
,
...
...
@@ -1862,8 +1862,8 @@ void main() {
'modifiers'
:
0
,
}),
(
ByteData
?
data
)
{
final
Map
<
String
,
dynamic
>
decoded
=
SystemChannels
.
keyEvent
.
codec
.
decodeMessage
(
data
)
as
Map
<
String
,
dynamic
>;
lastHandled
=
decoded
[
'handled'
]
as
bool
;
final
Map
<
String
,
Object
?>
decoded
=
SystemChannels
.
keyEvent
.
codec
.
decodeMessage
(
data
)!
as
Map
<
String
,
Object
?
>;
lastHandled
=
decoded
[
'handled'
]
!
as
bool
;
},
);
}
...
...
@@ -1879,7 +1879,7 @@ void main() {
});
test
(
'data.toString'
,
()
{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'windows'
,
'keyCode'
:
0x00000010
,
...
...
@@ -1891,7 +1891,7 @@ void main() {
});
test
(
'data.equality'
,
()
{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'windows'
,
'keyCode'
:
0x00000010
,
...
...
@@ -1905,7 +1905,7 @@ void main() {
characterCodePoint:
10
,
));
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'windows'
,
'keyCode'
:
0x00000010
,
...
...
@@ -1950,7 +1950,7 @@ void main() {
for
(
final
int
modifier
in
modifierTests
.
keys
)
{
for
(
final
bool
isDown
in
<
bool
>[
true
,
false
])
{
for
(
final
bool
isLeft
in
<
bool
>[
true
,
false
])
{
final
RawKeyEvent
event
=
RawKeyEvent
.
fromMessage
(<
String
,
dynamic
>{
final
RawKeyEvent
event
=
RawKeyEvent
.
fromMessage
(<
String
,
Object
?
>{
'type'
:
isDown
?
'keydown'
:
'keyup'
,
'keymap'
:
'linux'
,
'toolkit'
:
'glfw'
,
...
...
@@ -1988,7 +1988,7 @@ void main() {
// No need to combine CTRL key with itself.
continue
;
}
final
RawKeyEvent
event
=
RawKeyEvent
.
fromMessage
(<
String
,
dynamic
>{
final
RawKeyEvent
event
=
RawKeyEvent
.
fromMessage
(<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'glfw'
,
...
...
@@ -2024,7 +2024,7 @@ void main() {
});
test
(
'Printable keyboard keys are correctly translated'
,
()
{
final
RawKeyEvent
keyAEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
final
RawKeyEvent
keyAEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'glfw'
,
...
...
@@ -2040,7 +2040,7 @@ void main() {
});
test
(
'Code points with two Unicode scalar values are allowed'
,
()
{
final
RawKeyEvent
keyAEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
final
RawKeyEvent
keyAEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'glfw'
,
...
...
@@ -2058,7 +2058,7 @@ void main() {
test
(
'Code points with more than three Unicode scalar values are not allowed'
,
()
{
// |keyCode| and |scanCode| are arbitrary values. This test should fail due to an invalid |unicodeScalarValues|.
void
_createFailingKey
()
{
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'glfw'
,
...
...
@@ -2073,7 +2073,7 @@ void main() {
});
test
(
'Control keyboard keys are correctly translated'
,
()
{
final
RawKeyEvent
escapeKeyEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
final
RawKeyEvent
escapeKeyEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'glfw'
,
...
...
@@ -2089,7 +2089,7 @@ void main() {
});
test
(
'Modifier keyboard keys are correctly translated'
,
()
{
final
RawKeyEvent
shiftLeftKeyEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
final
RawKeyEvent
shiftLeftKeyEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'glfw'
,
...
...
@@ -2104,7 +2104,7 @@ void main() {
});
test
(
'data.toString'
,
()
{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'glfw'
,
...
...
@@ -2117,7 +2117,7 @@ void main() {
});
test
(
'data.equality'
,
()
{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'glfw'
,
...
...
@@ -2134,7 +2134,7 @@ void main() {
isDown:
true
,
));
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'glfw'
,
...
...
@@ -2182,7 +2182,7 @@ void main() {
for
(
final
int
modifier
in
modifierTests
.
keys
)
{
for
(
final
bool
isDown
in
<
bool
>[
true
,
false
])
{
for
(
final
bool
isLeft
in
<
bool
>[
true
,
false
])
{
final
RawKeyEvent
event
=
RawKeyEvent
.
fromMessage
(<
String
,
dynamic
>{
final
RawKeyEvent
event
=
RawKeyEvent
.
fromMessage
(<
String
,
Object
?
>{
'type'
:
isDown
?
'keydown'
:
'keyup'
,
'keymap'
:
'linux'
,
'toolkit'
:
'gtk'
,
...
...
@@ -2220,7 +2220,7 @@ void main() {
// No need to combine CTRL key with itself.
continue
;
}
final
RawKeyEvent
event
=
RawKeyEvent
.
fromMessage
(<
String
,
dynamic
>{
final
RawKeyEvent
event
=
RawKeyEvent
.
fromMessage
(<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'gtk'
,
...
...
@@ -2256,7 +2256,7 @@ void main() {
});
test
(
'Printable keyboard keys are correctly translated'
,
()
{
final
RawKeyEvent
keyAEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
final
RawKeyEvent
keyAEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'gtk'
,
...
...
@@ -2272,7 +2272,7 @@ void main() {
});
test
(
'Code points with two Unicode scalar values are allowed'
,
()
{
final
RawKeyEvent
keyAEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
final
RawKeyEvent
keyAEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'gtk'
,
...
...
@@ -2290,7 +2290,7 @@ void main() {
test
(
'Code points with more than three Unicode scalar values are not allowed'
,
()
{
// |keyCode| and |scanCode| are arbitrary values. This test should fail due to an invalid |unicodeScalarValues|.
void
_createFailingKey
()
{
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'gtk'
,
...
...
@@ -2305,7 +2305,7 @@ void main() {
});
test
(
'Control keyboard keys are correctly translated'
,
()
{
final
RawKeyEvent
escapeKeyEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
final
RawKeyEvent
escapeKeyEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'gtk'
,
...
...
@@ -2321,7 +2321,7 @@ void main() {
});
test
(
'Modifier keyboard keys are correctly translated'
,
()
{
final
RawKeyEvent
shiftLeftKeyEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
final
RawKeyEvent
shiftLeftKeyEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'gtk'
,
...
...
@@ -2336,7 +2336,7 @@ void main() {
});
test
(
'data.toString'
,
()
{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'gtk'
,
...
...
@@ -2349,7 +2349,7 @@ void main() {
});
test
(
'data.equality'
,
()
{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'gtk'
,
...
...
@@ -2366,7 +2366,7 @@ void main() {
isDown:
true
,
));
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'gtk'
,
...
...
@@ -2383,7 +2383,7 @@ void main() {
isDown:
true
,
))));
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'linux'
,
'toolkit'
:
'gtk'
,
...
...
@@ -2410,7 +2410,7 @@ void main() {
test
(
'modifier keys are recognized individually'
,
()
{
for
(
final
int
modifier
in
modifierTests
.
keys
)
{
final
RawKeyEvent
event
=
RawKeyEvent
.
fromMessage
(<
String
,
dynamic
>{
final
RawKeyEvent
event
=
RawKeyEvent
.
fromMessage
(<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'web'
,
'code'
:
'RandomCode'
,
...
...
@@ -2441,7 +2441,7 @@ void main() {
// No need to combine meta key with itself.
continue
;
}
final
RawKeyEvent
event
=
RawKeyEvent
.
fromMessage
(<
String
,
dynamic
>{
final
RawKeyEvent
event
=
RawKeyEvent
.
fromMessage
(<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'web'
,
'code'
:
'RandomCode'
,
...
...
@@ -2469,7 +2469,7 @@ void main() {
});
test
(
'Printable keyboard keys are correctly translated'
,
()
{
final
RawKeyEvent
keyAEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
final
RawKeyEvent
keyAEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'web'
,
'code'
:
'KeyA'
,
...
...
@@ -2484,7 +2484,7 @@ void main() {
});
test
(
'Control keyboard keys are correctly translated'
,
()
{
final
RawKeyEvent
escapeKeyEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
final
RawKeyEvent
escapeKeyEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'web'
,
'code'
:
'Escape'
,
...
...
@@ -2499,7 +2499,7 @@ void main() {
});
test
(
'Modifier keyboard keys are correctly translated'
,
()
{
final
RawKeyEvent
shiftKeyEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
final
RawKeyEvent
shiftKeyEvent
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'web'
,
'code'
:
'ShiftLeft'
,
...
...
@@ -2514,7 +2514,7 @@ void main() {
});
test
(
'Arrow keys from a keyboard give correct physical key mappings'
,
()
{
final
RawKeyEvent
arrowKeyDown
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
final
RawKeyEvent
arrowKeyDown
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'web'
,
'code'
:
'ArrowDown'
,
...
...
@@ -2529,7 +2529,7 @@ void main() {
});
test
(
'Unrecognized keys are mapped to Web plane'
,
()
{
final
RawKeyEvent
arrowKeyDown
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
final
RawKeyEvent
arrowKeyDown
=
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'web'
,
'code'
:
'Unrecog1'
,
...
...
@@ -2548,7 +2548,7 @@ void main() {
});
test
(
'data.toString'
,
()
{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'web'
,
'code'
:
'KeyA'
,
...
...
@@ -2559,7 +2559,7 @@ void main() {
'RawKeyEventDataWeb#00000(code: KeyA, key: a, location: 2, metaState: 16)'
));
// Without location
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'web'
,
'code'
:
'KeyA'
,
...
...
@@ -2570,7 +2570,7 @@ void main() {
});
test
(
'data.equality'
,
()
{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'web'
,
'code'
:
'KeyA'
,
...
...
@@ -2584,7 +2584,7 @@ void main() {
metaState:
0x10
,
));
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
dynamic
>{
expect
(
RawKeyEvent
.
fromMessage
(
const
<
String
,
Object
?
>{
'type'
:
'keydown'
,
'keymap'
:
'web'
,
'code'
:
'KeyA'
,
...
...
@@ -2610,6 +2610,6 @@ Future<void> _runWhileOverridingOnError(AsyncCallback body, {required FlutterExc
Map
<
String
,
DiagnosticsNode
>
_groupDiagnosticsByName
(
Iterable
<
DiagnosticsNode
>
infos
)
{
return
Map
<
String
,
DiagnosticsNode
>.
fromIterable
(
infos
,
key:
(
dynamic
node
)
=>
(
node
as
DiagnosticsNode
).
name
??
''
,
key:
(
Object
?
node
)
=>
(
node
!
as
DiagnosticsNode
).
name
??
''
,
);
}
packages/flutter_test/lib/src/event_simulation.dart
View file @
5a862ebe
...
...
@@ -688,8 +688,8 @@ class KeyEventSimulator {
result
.
complete
(
false
);
return
;
}
final
Map
<
String
,
dynamic
>
decoded
=
SystemChannels
.
keyEvent
.
codec
.
decodeMessage
(
data
)
as
Map
<
String
,
dynamic
>;
result
.
complete
(
decoded
[
'handled'
]
as
bool
);
final
Map
<
String
,
Object
?>
decoded
=
SystemChannels
.
keyEvent
.
codec
.
decodeMessage
(
data
)!
as
Map
<
String
,
dynamic
>;
result
.
complete
(
decoded
[
'handled'
]
!
as
bool
);
}
);
return
result
.
future
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment