Commit Graph

2 Commits

Author SHA1 Message Date
Loïc Sharma
b65ff54de2
Improve log output of keyboard_hot_restart_ios (#167834)
The keyboard hot restart test listens to `flutter run` logs and then
does an action. However, the test prints the `flutter run` log after the
action. This results in confusing logs.

For example:
https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8716606099574306145/+/u/run_keyboard_hot_restart_ios/stdout

```
═══════════╡ ••• Launch app and wait for keyboard to be visible ••• ╞═══════════
...
stdout: Installing and launching...                                        37.2s
stdout: Syncing files to device swarming’s iPhone...                    


════╡ ••• Update the app to no longer force the keyboard to be visible ••• ╞════



════════════════════════╡ ••• Hot restart the app ••• ╞═════════════════════════



════════════╡ ••• Wait until the keyboard is no longer visible ••• ╞════════════

stdout: flutter: Keyboard is open
```

Here, the test waits until the keyboard is visible before moving onto
the test's next step. However, the log that triggers this action
(`flutter: Keyboard is open`) is printed after the action was taken
(`Update the app to no longer force the keyboard to be visible` and
`Wait until the keyboard is no longer visible`). This is confusing.

Follow-up to: https://github.com/flutter/flutter/pull/167013
Part of: https://github.com/flutter/flutter/issues/10713
2025-04-25 21:39:52 +00:00
Loïc Sharma
08a59c2802
[iOS] Hide keyboard on hot restart (#167013)
This hides the keyboard and text input context menu if you hot restart
your iOS app.

Before | After
-- | --
<video
src="https://github.com/user-attachments/assets/7ca5dbfe-a809-478c-9b36-4c168527b176"
/> | <video
src="https://github.com/user-attachments/assets/d1a48c16-f171-4d22-baa4-5c40488d055b"
/>

Part of https://github.com/flutter/flutter/issues/10713

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
2025-04-22 23:33:02 +00:00