Allow touch if some pointers are MT_TOOL_PALM

We would cancel all touch when we recevied MT_TOOL_PALM because it
becomes accidental touch, and that would break user gesture when
another non-palm pointer is still active.

- Send ACTION_POINTER_UP with AKEY_EVENT_FLAG_CANCELED when recevie
  MT_TOOL_PALM if at least 2 pointers are active.
- Send ACTION_CANEL when receive MT_TOOL_PALM if only one pointer.
- Add test caseis for touch cancel scenarios, to test it would keep
  dispatching non-palm event.

Test: atest inputflinger_tests
Bug: 137221719
Change-Id: Ife35a692c71e45159bfcc771317dff47fa764dda
8 files changed