tree f710e7d9ed6a6aacf5f0762c4c97e5631ec1f251
parent 98977409b2ac8209be9e918abb0bbb9c37a23d0f
author Tong Mu <dkwingsmt@users.noreply.github.com> 1770764832 -0800
committer GitHub <noreply@github.com> 1770764832 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJpi7oxCRC1aQ7uu5UhlAAAemwQABgBzPr5odYoLVtU7VwkHT5t
 n3/qy+yWMzYzIsXlexx81B4WCJfYMY+lKLlecF7MvD3g+LY0tuw9KyxMihg5xAOG
 ORgtY3LmbuAh4f30xJI/oI6TRe8Z+l4o6Z26jjzHlohjCOUPEvSpeIm9wAGF3O80
 cyqUP4F1v3LEGlMGHBhh8ILe8oFREWNjbSdonGZgrQnyulaHesRytLdgD9ilN+xu
 x102HM+38JLnz3CquB6ERMBYXrxku3f0283ipKODM3UpfDBxKmlNmOEn9+dlDPSK
 MAUg7Oz/jjaS5SBYARYB19mI0vcu2RTPG6D2+aTM+2cw+brO3v0/dpMghUwVziC1
 2lw69a03+VH+hdKokXrKaeKZAkt6vK2LNYVvil81w1Yn7C3oNep7Tb3M5LiTd/0Z
 Yoh7fm/FJlAm/WL+s6nprMyFnVnkRfvT7urnqXYfbTQEDdqe25mvwMdakNe30uA6
 TlNdQtK4wsFyldhUHFp/CuuHsSc7sWFPwXXgKmB/F0ASASKuH2p9bjgKOvY5MuEy
 gxpKLm6gTXoR3U6wQhyNIgsJ23x2T7eI/ev/+fsLG0vbmgYHEDrCOKham1vJ34CZ
 kE7jouIRSWw+46ArKnl5DF1zBAbQXNWDGxi6aqbRh/3AdhjiII2caqNMzXf3059A
 rw1HjPkcCiJ9MlO5taT+
 =Gy8Z
 -----END PGP SIGNATURE-----
 

Disable hardware keyboard regularity warning by default (#181894)

Suppresses https://github.com/flutter/flutter/issues/125975

This PR disable hardware keyboard regularity warning unless
`debugPrintKeyboardEvents` is set.

Keyboard state synchronization has proven extremely difficult, largely
due to the asynchronous communication between the engine and framework.
Unfortunately, I haven't had the bandwidth to fix it, causing developers
to experience false errors during hot restarts. It's time to acknowledge
this and prioritize development experience over idealism by disabling
these useless warnings.

I apologize for the issues I've caused over the years. Perhaps someday
we can make this work with a fully regular event stream.

Replaces https://github.com/flutter/flutter/pull/181719 .

## Pre-launch Checklist

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

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

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- 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