Adding details after a flag is not found in MotionFlags
Because from_bits will return a None if we encounter a flag that we
can't find, and if we call unwrap directly we will have a crash, but the
crash message here will confuse us, so here we add some detailed
information to help us locate the problem later.
Bug: none
Test: Build
Signed-off-by: Linnan Li <lilinnan@xiaomi.corp-partner.google.com>
(cherry picked from https://partner-android-review.googlesource.com/q/commit:2d17392f625885a7a4e49bad59f5793223c73dda)
Merged-In: If3970964ef696e22dc651579a4c297f431b3e0ca
Change-Id: If3970964ef696e22dc651579a4c297f431b3e0ca
diff --git a/libs/input/rust/lib.rs b/libs/input/rust/lib.rs
index 01d9599..fb3f520 100644
--- a/libs/input/rust/lib.rs
+++ b/libs/input/rust/lib.rs
@@ -79,12 +79,20 @@
pointer_properties: &[RustPointerProperties],
flags: u32,
) -> String {
+ let motion_flags = MotionFlags::from_bits(flags);
+ if motion_flags.is_none() {
+ panic!(
+ "The conversion of flags 0x{:08x} failed, please check if some flags have not been \
+ added to MotionFlags.",
+ flags
+ );
+ }
let result = verifier.process_movement(
DeviceId(device_id),
Source::from_bits(source).unwrap(),
action,
pointer_properties,
- MotionFlags::from_bits(flags).unwrap(),
+ motion_flags.unwrap(),
);
match result {
Ok(()) => "".to_string(),