History log of /frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
8668daa75cde6a91bbce72f45fd78014815334a3 28-Jun-2017 Phil Weaver <pweaver@google.com> Don't break key event stream when enabling a11y

Bug: 62862624
Test: Enable magnification, then enable TalkBack with the
a11y shortcut. Verify that volume keys work.
A11y service CTS, a11y units tests.

Change-Id: I729ab17d24f758b5ce534ffde43d2126a1f9536c
(cherry picked from commit 6b5cde5f256fe75acbfda1b447dc6230753700ca)
/frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
74922c63e1dfba074aa9219034e48a161bdfba5b 13-Feb-2017 Casey Burkhardt <caseyburkhardt@google.com> Display magnification via the nav bar Accessibility Button

Adds support for invoking display magnification by first selecting
the Accessibility Button, then touching an area of the screen to
magnify.

Bug: 30960346
Test: Manual
Change-Id: Ifd8a355562f204182e34bd37f71a3637d85cf0e1
/frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
dc5dedeaa2220a86f0b7a0d13ab308ad694e1369 02-Aug-2016 Phil Weaver <pweaver@google.com> Only filter a11y motion events if needed.

We've seen some jitter in motion events with accessibility
enabled. We can eliminate it by not passing motion events
through the filter if we know they won't be affected.

Bug: 30183085

Change-Id: I0ecc8d5a39c8e370fc3a8ab85c6357251a31f8ad
/frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
698c96dbd261c6f5c2be618d7ca206ef9c8cbd51 20-Apr-2016 Phil Weaver <pweaver@google.com> Fix a11y key event handling from multiple devices.

For M, we ignored device type entirely, but with ag/760625 we started
paying attention to it, which rejects events when keys from different
devices are pressed simultaneously. Since the volume keys show up as
different devices, the new behavior disrupted the event stream when
both volume keys were pressed.

Now tracking each device separately, which restores the old behavior
but still takes the device id into account. Holding down two keys
when enabling an accessibility service, however, always has and still
can produce an invalid event stream. It doesn't seem worth the
overhead, however, to track each key separately.

Bug: 28091773
Change-Id: I8d30de1f5e05f779b6fe305856d42f209ff8b038
/frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
416bba7b467a5606798ef3d9013cdee2f0c39b1a 14-Apr-2016 Svetoslav Ganov <svetoslavganov@google.com> Ensure injected gestures respect magnification

Change-Id: Ie828f4be4eb1ec620549c1346ec7cc335908612f
/frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
155dda1e433a003f65b1d6a65d54bec107d27db5 07-Apr-2016 Phil Weaver <pweaver@google.com> Treat accessibility gestures like physical ones.

Gestures now operate on the screen as the user sees it, so they are
affected by magnification. This makes gesture coordinates consistent
with the node bounds in screen and makes an eye or head tracking service
work much more easily.

Bug: 27747314
Change-Id: Idee60398d49d8c9af7405d974893c796b034c974
/frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
e7b198353c62b00718da2bc04cb1e5efb0b57da5 12-Feb-2016 Phil Weaver <pweaver@google.com> Protect MotionEvent stream when a11y changes.

I found this hole while looking for a solution to a bug when
magnification was enabled when TalkBack was running. I believe
what was happening was that enabling/disabling magnification
resets the AccessibilityInputFilter. The filter batches MotionEvents
for processing with a choreographer, but the disable/enable cycle
when magnification gets enabled could disrupt the event stream.
This change flushes the batched events before objects using them
are disabled.

I've tried a variety of things, but I'm not able to reproduce the
bug on NYC using the same procedure. I suspect that either the
timing of the events is different, or the newer gesture detection
in TalkBack is protecting it somehow. The hole remains, though,
and could create invalid streams of MotionEvents without this fix.

Bug: 26613222
Change-Id: Ie9f3da459929397596e0a80a61d5c7f191001ee8
/frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
78d2e2ddf07414eb342094ad8cf9d830b2220528 02-Feb-2016 Phil Weaver <pweaver@google.com> Clean up accessibility gestures.

Closing two small holes in the implementation:
1. The gesture was dispatched before the callback was registered. It
was possible for gestures that failed quickly to fail to report any
status.
2. Gestures could be dispatched before the input filter was
installed. Adding a wait to give the filter a chance to install
before reporting a failure.

Also removing an unused method on the input filter.

Change-Id: I77cd80dcd2cec6c72b3761169aba5eaecf62250b
(cherry picked from commit 03465fb874ccf35ead2228b66ec03afc31d7694e)
/frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
a6b64f5099b7be6e8384958d8bcddb97bb06ec93 05-Dec-2015 Phil Weaver <pweaver@google.com> Gesture dispatch from accessibility services.

Add public APIs to describe gestures and dispatch them from
an accessibility service. Added a new capability that
services must declare to have this capability.

Bug: 22514086

Change-Id: I9bff2d9335f0310115112d14b7ed033a6d6c2393
/frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
214fb68767502f5fede643a062c1dc5975d75b27 17-Nov-2015 Alan Viverette <alanv@google.com> APIs for querying and controlling display magnification

Also separates magnification state and touch event handling. Moves
callbacks for window manager changes and display state changes into
the magnification controller.

Bug: 22718911
Change-Id: I3a8ba060a07d8f1f51856855a5f85601766fd45d
/frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
94ce21094d7a6289c888492632765d2a83624853 15-Sep-2015 Toni Barzic <tbarzic@google.com> Always reload AccessibiiltyInputFilter on user switch

Makes AccessibiilityInputFilter aware of current user ID, and pasess the
user ID to event stream filters that have per-user parameters:
- AutoclickController -> for per-user autoclick delay
- ScreenMagnifier -> for magnification scale

While doing this, make AccessibilityInputFilter.disableFeatures private,
and replace usage in AccessibilityManagerService with
setUserAndEnabledFeatures with feature flags set to 0:
Using disableFatures directly leaves input filter in inconsistent state
where internal mEnabledFeatures flags don't match real state of enabled
features.

BUG=23113412
BUG=24265227

Change-Id: Ib295f4c08de1a3743e55714459844b6d80787637
/frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
976724e81bca33dc48347f88633a37a195b9e4ea 01-Sep-2015 Toni Barzic <tbarzic@google.com> Feed mouse and keyboard events to EventStreamTransformation

Updates AccessibilityInputFilter to pass keyboard and mouse events
through enabed EventStreamTransformations.

This is done in preparation for implementing Autoclick on mouse stop
feature, which depends on those events.

Existing EventStreamTransformation implementstions are modified to
non touchscreen motion events and key board events.

Adds stub EventStreamTransformation (AutoclickController) that will
be used to implement autoclick feature.

Implements key event filtering as a separate EventStreamTransformation
(instead of doing it directly in AccessibilityInputFilter).

Introduces private EventStreamState classes to AccessibilityInputFilter,
which keep track of whether event sequences for different input sources
have started, and help reduce code duplication when determining whether
an event should be fed to registered EventStreamTransformers.

BUG=23113412

Change-Id: If115799bbe4debce48689370ff5ea9fa6dab9639
/frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
83526c181e1dd1cf77c25ee1f47079037dec5ddd 19-Jun-2014 Kristian Monsen <kristianm@google.com> Always call super when not sending the key event anywhere else

Fix for bug 13171440

Change-Id: I1601e749f0114a6faebcdaeb5ac8993d668b54a8
/frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
9158825f9c41869689d6b1786d7c7aa8bdd524ce 22-Nov-2013 Amith Yamasani <yamasani@google.com> Move some system services to separate directories

Refactored the directory structure so that services can be optionally
excluded. This is step 1. Will be followed by another change that makes
it possible to remove services from the build.

Change-Id: Ideacedfd34b5e213217ad3ff4ebb21c4a8e73f85
/frameworks/base/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java