Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reland No.2 "Hardware Keyboard: Android" #33686

Merged

Conversation

dkwingsmt
Copy link
Contributor

@dkwingsmt dkwingsmt commented May 29, 2022

Relands #33113, which was reverted due to possible internal breakages.

Changes based on original PR: (See latest commits)

  • Fix the algorithm to improvise physical keys and logical keys, and add corresponding tests.

I have tested this PR on g3 (with necessary modifications due to problems of the rolling script.)


This PR implements the embedder keyboard responder of the Android embedding, the backend of HardwareKeyboard on Android. This is the last platform to support it.

The behaviors are tested on a ChromeOS over ARC++. There are some weird behaviors, mostly for metaState, which are very likely the fault of ARC++ or Android. Therefore the synchronization logic is implemented in a loose way.

There are a few known issues:

This PR assigned a new code plane kLogicalPlane for the physical keys that are improvised from the logical keys.

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 and the C++, Objective-C, Java style guides.
  • I listed at least one issue that this PR fixes in the description above.
  • I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt. See testing the engine for instructions on
    writing and running engine tests.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the CLA.
  • All existing and new tests are passing.

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

@flutter-dashboard flutter-dashboard bot added embedder Related to the embedder API platform-android labels May 29, 2022
@dkwingsmt dkwingsmt marked this pull request as ready for review May 29, 2022 10:42
@dkwingsmt dkwingsmt force-pushed the reland-2-android-key-embedder-responder branch from 7e2b662 to 4d6ae33 Compare May 30, 2022 08:54
@dkwingsmt dkwingsmt requested a review from gspencergoog May 31, 2022 12:52
Copy link
Contributor

@gspencergoog gspencergoog left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

32384589-a60f0e74-c078-11e7-9bc1-e5b5287aea9d

@dkwingsmt dkwingsmt merged commit c74a738 into flutter:main May 31, 2022
@dkwingsmt dkwingsmt deleted the reland-2-android-key-embedder-responder branch May 31, 2022 20:00
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request May 31, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request May 31, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request May 31, 2022
houhuayong pushed a commit to houhuayong/engine that referenced this pull request Jun 21, 2022
* Original code

* Changes

* Fix and test

Better formatted tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
embedder Related to the embedder API platform-android
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants