summaryrefslogtreecommitdiff
path: root/services/inputflinger/rust
AgeCommit message (Collapse)Author
2025-02-03input: run bpfmt -w -s on all Android.bp files Harry Cutts
The bpfmt presubmit lint check has been reporting formatting issues on some recent CLs, so just make all the suggested formatting fixes in one CL to get them out of the way. This CL was made by running the following command: $ prebuilts/build-tools/linux-x86/bin/bpfmt -w -s \ frameworks/native/libs/input/**Android.bp frameworks/native/services/inputflinger/**Android.bp The only manual change was in services/inputflinger/Android.bp, where I removed the comments from the checkinput target's required list, since they don't make sense if it's just going to be alphabetically sorted. Bug: 245989146 Change-Id: Ie1d38c8ac1cab1c2011176f8d566cc922305d0b5 Test: Treehugger Flag: EXEMPT refactor
2024-11-29Fix: Sticky keys filter should ignore incomplete key events Vaibhav Devmurari
When sticky keys filter is enabled while some keys are pressed down on the keyboard, the key up on those keys should not affect the sticky state. Bug: 381239751 Test: atest --host libinputflinger_rs_test Flag: EXEMPT bugfix Change-Id: I3142883f33e9783b7ca09c3291f75b4008f6a13f
2024-09-30Save and restore sticky keys state on configuration changed Vaibhav Devmurari
Allow individual input filters to save and restore state when getting recreated on a configuration changed Test: atest --host libinputflinger_rs_test Bug: 294546335 Flag: EXEMPT bugfix Change-Id: I6e62b2c44c0e555957f72cdf911cb28d571e6074
2024-09-04Merge "Bounce keys and Slow keys should work for composite keyboards" into main Vaibhav Devmurari
2024-09-03Add dump for Input filter rust components Vaibhav Devmurari
Test: None Bug: 245989146 Flag: EXEMPT bugfix Change-Id: I214e6c1e017a720fa38c55b7dd83a653db71381f
2024-09-03Bounce keys and Slow keys should work for composite keyboards Vaibhav Devmurari
Test: atest --host libinputflinger_rs_test Bug: 364056935 Flag: EXEMPT bugfix Change-Id: I6cd302dac7cb71190304f363f9c474fef2292f0f
2024-09-02Support bounce and slow keys for internal Alphabetic keyboards Vaibhav Devmurari
Test: atest --host libinputflinger_rs_test Bug: 294546335 Flag: EXEMPT bugfix Change-Id: I590e9494f1bab562ac2b3c085781f05f2c250314
2024-06-10Cleanup: Use ModifierState enum in input.rs in sticky keys filter Vaibhav Devmurari
Test: none Bug: 245989146 Change-Id: If2c46c9fb228ebb35bc7c66a4d58bf27ec000f4b
2024-05-02Fix flaky test: increase sleep duration Vaibhav Devmurari
Test: atest --host libinputflinger_rs_test Bug: 337266577 Change-Id: I8ffe4bd138ebf5f8bce748901cd7bd7d19ad93b9
2024-04-03Rely on C++ wake and sleep calls for InputFilter thread Vaibhav Devmurari
Earlier, we used rust thread park()/unpark() to put the thread to sleep and wake up from sleep. But that caused some breakages after migrating the rust system crates to 2021 edition. Since, the threads are created in C++, it was more reliable to rely on C++ side of the implementation to implement the sleep and wake functions. Test: atest --host libinputflinger_rs_test Test: manual Bug: 294546335 Change-Id: I2eecae4716529d9d4cdd70ab22e784afc68648bf
2024-02-26Don't repeat when slow keys A11y feature enabled Vaibhav Devmurari
Currently when slow keys is enabled, user has to press and hold for the key to be registered, but since, we still haven't added settings to modify repeat thresholds, usually it ends up repeating the pressed key as well which may be annoying for the user. As a stop gap, we block repeat for now when slow keys is enabled. Future plan at V+ is to have repat threshold modification in Settings allowing user to properly configure it as per the need. Bug: 322327461 Test: Manual Change-Id: I44503746c16ed992bbfbfe852e26e22896f32595
2024-02-19Merge "Fix potentially misleading safety comment." into main Thomas Leu
2024-02-16Fix potentially misleading safety comment. Thomas Leu
Copied verbatim from https://googleplex-android-review.git.corp.google.com/c/platform/frameworks/native/+/26261779/comment/1f2a4ad4_56566142/. Test: N/A Change-Id: Ia4f8db801c65f3aa4309d2b06bcdbed67d3b3899
2024-02-14[DON'T BLOCK] Test ownership migration rules Ronish Kalia
This CL is created as a best effort to migrate test targets to the new android ownership model. If you find incorrect or unnecessary attribution in this CL, please create a separate CL to fix that. For more details please refer to the link below, <add g3 doc link> Bug: 304529413 Test: N/A Change-Id: Ic5076a410a89d3e84df673589bc51fdbc93455e7
2024-01-31Replace use of deprecated function with_min_level Jeff Vander Stoep
This is needed to upgrade the android_logger crate from 0.12.0 to 0.13.3. with_max_level provides the same functionality as with_min_level. The renaming is admittedly confusing, but the new name is accurate and it makes sense that they deprecated and then removed the previously poorly named with_min_level. See crate documentation [1] and code [2]. [1]: https://docs.rs/android_logger/0.12.0/android_logger/struct.Config.html#method.with_min_level [2]: https://docs.rs/android_logger/0.12.0/src/android_logger/lib.rs.html#227 Bug: 322718401 Test: build and run CF with the change. Test: m aosp_cf_x86_64_phone Change-Id: I2e4ed99253f3b328a98d4bc5988beda7304612e6
2024-01-23Add slow_keys input filter Vaibhav Devmurari
DD: go/pk_accessibility ‘Slow keys’ is an accessibility feature to aid users who have physical disabilities, that allows the user to specify the duration for which one must press-and-hold a key before the system accepts the keypress. Note: As part of this CL, introduced threading in input_filter stage in RUST. Due to Jni requirements, have used the utils/Thread.h impl to create a thread and pass it over to rust for handling. Test: atest --host libinputflinger_rs_test Bug: 294546335 Change-Id: Ib418c133e09f3085e5fe78991068d4be9ed09ed9
2023-12-14Add sticky keys input filter Vaibhav Devmurari
DD: go/pk_accessibility 'Sticky keys' is an accessibility feature that assists users who have physical disabilities or help users reduce repetitive strain injury. It serializes keystrokes instead of pressing multiple keys at a time, allowing the user to press and release a modifier key, such as Shift, Ctrl, Alt, or any other modifier key, and have it remain active until any other key is pressed. Bug: 294546335 Test: TEST=libinputflinger_rs_test; m $TEST && $ANDROID_HOST_OUT/nativetest64/$TEST/$TEST Change-Id: Id26ed4a949e929cb6af8b9ecf1cd95c48fe20486
2023-12-08Add bounce keys input filter Vaibhav Devmurari
DD: go/pk_accessibility Bug: 294546335 Test: TEST=libinputflinger_rs_test; m $TEST && $ANDROID_HOST_OUT/nativetest64/$TEST/$TEST Change-Id: Id38b3d0fc830d16327b36d1b4376c0a66b6551aa
2023-11-15Add InputFilter rust component as InputListener stage. Vaibhav Devmurari
Test: TEST=libinputflinger_rs_test; m $TEST && $ANDROID_HOST_OUT/nativetest64/$TEST/$TEST Bug: 294546335 Change-Id: I2731d45f141c12c1e61b794ee614690b0a121e28
2023-08-18Allow unsafe operations in unsafe functions in generated code. Andrew Walbran
This will soon be denied by default, but we trust that what cxx does is correct. Also added a missing safety comment. Bug: 290018030 Test: m rust Change-Id: I55e3cad8cdfcd2053d01adfb7eb1e60858b813fd
2023-08-17Bootstrap IInputFlingerRust - the Rust component of inputflinger Prabir Pradhan
When inputflinger boots, we create the Rust component of inputflinger, which we interact with from C++ through the local AIDL interface IInputFlingerRust. After we have access to the IInputFlingerRust binder object in C++, all communication between C++ and Rust can take place purely through AIDL interfaces. To initialize the interface, we must first pass a raw pointer to an AIDL implementation across the language barrier through some other means. In this CL, we use cxxbridge to bootstrap the local AIDL interface for IInputFlingerRust. Bug: 278783893 Test: manual, boot Change-Id: Ifbd0168ae4fadaa5b357f6064113f1691e6cf5a7