• Home
  • History
  • Annotate
  • only in /frameworks/base/core/java/android/hardware/input/
History log of /frameworks/base/core/java/android/hardware/input/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d86b8fea43ebb6e5c31691b44d8ceb0d8d3c9072 03-Jun-2017 Jeff Sharkey <jsharkey@android.com> Annotate @SystemApi with required permissions.

Most @SystemApi methods should be protected with system (or higher)
permissions, so annotate common methods with @RequiresPermission to
make automatic verification easier.

Verification is really only relevant when calling into system
services (where permissions checking can happen on the other side of
a Binder call), so annotate managers with the new @SystemService
annotation, which is now automatically documented.

This is purely a docs change; no logic changes are being made.

Test: make -j32 update-api && make -j32 offline-sdk-docs
Bug: 62263906
Change-Id: I2554227202d84465676aa4ab0dd336b5c45fc651
nputManager.java
b0608636a29bcec8ecb4391cd50f29f68b3e7e81 05-Apr-2017 Santos Cordon <santoscordon@google.com> Add uniqueId to Virtual Display and pass through to inputflinger (1/2)

This CL adds:
1) Adds uniqueId (protected via system/sig permission) to virtual
displays.
2) Add support for N virtual display viewports into inputflinger.
3) Set the virtual display's viewports in inputflinger if it has the
uniqueId value set to non-null. (a) Moving the new viewport from java to
native inputflinger and (b) adding "uniqueId" value to viewports makes
up the great majority of this change.
4) From the inputflinger side, we also read in a new value from the
input device configuration files called 'touch.displayId'.
5) When touch.displayId and the virtual display's uniqueId match,
inputflinger links the two.

Test: Start VR and ensure that the virtual viewport shows up when running
'adb shell dump input". Run a VR app, and ensure that the virtual input
device is associated with the new virtual viewport.
Test: com.android.server.display.DisplayManagerServiceTest

Bug: 36051620
Change-Id: Ic2117eb8e19f7f3c59687160591f8bc6692c1f12
Merged-In: Ic2117eb8e19f7f3c59687160591f8bc6692c1f12
nputManagerInternal.java
7121697a5e2d4458f6f63e9eb3b5deec62ee6202 31-Jan-2017 Michael Wright <michaelwr@google.com> BZZZZZZT! BZZZZZT! New Vibrator APIs

Replace the existing Vibrator APIs with a new class to encapsulate the
haptic effect information, and add the ability to control the vibration
strength.

Test: cts-tradefed run commandAndExit cts-dev -m CtsOsTestCases -t android.os.cts.VibratorTest
cts-tradefed run commandAndExit cts-dev -m CtsOsTestCases -t android.os.cts.VibrationEffectTest
runtest systemui-notification
Manual testing with $T/google_experimental/users/michaelwr/Vibrator

Bug: 30961353

Change-Id: Idbb9864a7b084c85e7b7de3257a0e6b40d9d91d6
nputManager.java
3787de16d24001eeb452e1c711d4290a396e67c9 21-Dec-2016 Vladislav Kaznacheev <kaznacheev@google.com> Implement pointer capture API

When in pointer capture mode, mouse pointer disappears and
further mouse events are dispatched to the focused view
in the window which has requested capture.

The captured events have the source SOURCE_MOUSE_RELATIVE
belonging to SOURCE_CLASS_TRACKBALL. They are
dispatched through dispatchCapturedPointerEvent /
onCapturedPointerEvent. There is also a new listener.

Pointer capture mode may only be granted to a currently
focused window, and will be canceled upon a window focus change.

Test: cts-tradefed ... --test android.view.cts.PointerCaptureTest
Bug: 30897034
Change-Id: I6e5934aa415ac2b6dda1cee173d0f23e5021af84
InputManager.aidl
nputManager.java
49ca529a850e60482ddcc8c0762105b4aa10f35f 10-May-2016 Jeff Sharkey <jsharkey@android.com> Avoid caching services with missing binders.

When fetching system services early during boot, if the underlying
binder interface hasn't been published yet, we end up caching a
manager class that is broken for the remainder of the process
lifetime, and innocent downstream callers end up using the broken
cached manager.

Fix this by using an explicit exception to quickly abort manager
creation when the underlying binder is missing. The exception is
only used to skip the remainder of the manager creation, and it
doesn't actually crash the process.

Bug: 28634953
Change-Id: I0cb62261e6d6833660704b93a11185aa11a2ac97
nputManager.java
9918234dcf9e115560144d0218682dd5050843bc 16-Jun-2016 Adrian Roos <roosa@google.com> Enable tap-to-pulse only when needed

- Adds InputManager.setPulseEnabled().
- Adds a config overlay for the file controlling touch-to-pulse.
- Hooks up DreamManagerService with InputManager.setPulseEnabled().

Bug: 29253550
Change-Id: I4892311cc30e97d31f7be778930397fbe5c03945
nputManagerInternal.java
c396f0f70ef40ea0fb42a0872a13f4c4e9a6a5f0 26-May-2016 Michael Wright <michaelwr@google.com> Merge "DO NOT MERGE Remove Pointer Capture API" into nyc-dev
a1e0cebf3a18ac097d370e21d698e079f974bfff 19-May-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "DO NOT MERGE Rename PointerIcon and Pointer Capture APIs" into nyc-dev
23cbe85610f780134cc77dd4a54732a22ed6e86e 18-May-2016 Yohei Yukawa <yukawa@google.com> Move LocaleList to avoid layering violation.

Since LocaleList needs to depend on android.os.Parcelable, we cannot let
that class belong to "android.util" package, which causes layering
violation.

Bug: 28819696
Change-Id: Ia8de2ee9df3dd0a42b1fe84574439519b680fe18
eyboardLayout.java
778e3b91acad6da04341d439f0c66a4fd09def4f 16-May-2016 Michael Wright <michaelwr@google.com> DO NOT MERGE Remove Pointer Capture API

The underlying implementation needs to be completely rethought. If a
process crashed while you were in pointer capture mode, you were
pretty much stuck in it. If the mouse happened to move outside of
your bounds right before you called the API, you'd never actually get
an event (whatever it was hovering over would). There's no easy way
for the system to tell you when you enter or exit this mode because
it doesn't actually track who the current request is from.

These are all solvable, but not in the N time frame. Maybe next time.

Bug: 26830970
Change-Id: I03efd63c499b86dc278491ca3284566c1965581f
InputManager.aidl
nputManager.java
f9d9ce7705475874c82af04eb9b208a7fb556792 13-May-2016 Michael Wright <michaelwr@google.com> DO NOT MERGE Rename PointerIcon and Pointer Capture APIs

This is a response to API council feedback.

Bug: 26830970
Change-Id: Ia2d284b5c1ab8365bedfdc37d129be4b8146036b
InputManager.aidl
nputManager.java
46ac35d09b0a1ba7af7eb4c14293a7978edcd2ab 21-Apr-2016 Yohei Yukawa <yukawa@google.com> Accept null subtype in InputMethodSubtypeHandle.

There are two types of IMEs:
A. IMEs that have one or more subtypes
B. IMEs that have no subtype

The initial implementation to update hardware keyboard layout per
subtype change of layout (See Bug 25752812) has supported IMEs in the
category A only, and IMEs in the category B are just ignored in both
system and Settings app.

In order to support IMEs in the category B, InputMethodSubtypeHandle and
related methods need to accept null InputMethodSubtype. Technically
this is a straightforward change, because in InputMethodManagerService
we have already used InputMethodUtils.NOT_A_SUBTYPE_ID for those IMEs in
the category B. We also need to update Setting App, which will be done
by a different CL [1].

[1]: I46b9c5b018f08e3eaa4614a0893db0be91652f3c

Bug: 28182650
Change-Id: Ia013784a594ad3beaf30976d047f5ac0fa8185be
nputManager.java
59c9a93fc268e226495d4ee8cf7c507c2ea2c433 20-Apr-2016 Trevor Johns <trevorjohns@google.com> Merge changes from topic 'merge_docs_nyc-dev' into nyc-dev

* changes:
Remove links to createAndInitializeUser() and createUser()
Resolve merge conflicts of a5060ee to nyc-dev
682c24e22811d4ee17ae1cd61bf255c3f7e722b7 12-Apr-2016 Trevor Johns <trevorjohns@google.com> Resolve merge conflicts of a5060ee to nyc-dev

This undoes the automerger skip which occured in
commit e740c84dc32180214a7fd157105d6c18d30408ee and
replays it as a standard (NOT -s ours) merge.

Change-Id: If5a47be26f73d6a0735c425cd66310a3e2a89086
nputManager.java
07ff292dcd1611a503b1a2fbe01920eebd712451 17-Apr-2016 Keisuke Kuroyanagi <ksk@google.com> Define equals and hashCode for InputDeviceIdentifier.

This CL fixes that physical keyboard layout is not changed when user
changes it in settings. This happened because we compare
InputDeviceIdentifier instances by using Object#equals to choose
specified input device. However, one of them has been serialized and
deserialized, so it never be true.

Bug: 27747115
Change-Id: Ied84c510ccb8e2de919ba8bb326e0355a065e604
nputDeviceIdentifier.java
112d05678b7de53da8948f62dd2e968274f62244 08-Mar-2016 Andrii Kulian <akulian@google.com> Caps Lock toggle with Meta + Alt (2/2)

Caps Lock implementation in frameworks/base

Bug: 27482276
Change-Id: Ie0d8145c049197d4591e012832a710e4f751d2ac
nputManager.java
nputManagerInternal.java
c53962d4ede82a03b62f0c8bb86bd0da090a15eb 02-Mar-2016 Jeff Sharkey <jsharkey@android.com> When system server goes down, crash apps more.

Apps making calls into the system server may end up persisting
internal state or making security decisions based on the perceived
success or failure of a call, or the default values returned.

The reality is that if the system process just died, init will be
along shortly to kill all running apps, so we should have no problem
rethrowing the RemoteException as a RuntimeException.

Bug: 27364859
Change-Id: Ife0bcb079636c88d54c44d17eb580409fd79028b
nputManager.java
5660fad79808c6d1823a7135b283003b0947773a 28-Jan-2016 Yohei Yukawa <yukawa@google.com> Use LocaleList in KeyboardLayout.

As an exercise for a new API candidate LocaleList class, this CL does a
mechanical refactoring to replace Locale[] with LocaleList in
KeyboardLayout class. Note that what changed in this CL is just an
implementation details that is never exposed to application developers.

One take-away from this exercise is that finding the best-match locale from
an ordered locale list is really a common pattern. Perhaps we may want
to have a guideline for this kind of situation.

Change-Id: I142379afbaf24d524ff09cf6c7ee7720150f7489
eyboardLayout.java
d5f7ed9fe9dc3590f6ef9cb7470e29e836a95907 19-Jan-2016 Michael Wright <michaelwr@google.com> Switch and store keyboard layouts based on IME subtype.

Rather than associate the keyboard layout solely with a specific
hardware model, we should also associate it with a given IME subtype.
This lets users switch between various languages and have the
keyboard change in unison with them so they can use the appropriate
layouts for each language.

This change adds initial support for associating IME subtypes and
keyboard layouts. We still need to:
- Remove support for the old style of layout association once the
Settings apps begins to use the new APIs
- Automatically select an appropriate layout based on the given
subtype (or set a reasonable universal default such as QWERTY)

Bug: 25752812

Change-Id: Ie88ce1ab77dbfe03ab51d89c1dc9e0a7ddbb3216
InputManager.aidl
nputManager.java
ouchCalibration.java
0748342d2ed264c01384fbaa4446a702a8824813 30-Oct-2015 Michael Wright <michaelwr@google.com> Bandaid over broken keyboard layout selection process.

Automatically select a keyboard layout if we have one that is device
specific and is made for our current locale. Also, provide a way of
requesting layouts for a specific input device rather than just
getting all of them. Custom layouts may not be appropriate for
typical keyboard devices (and custom keyboards may not work with
typical layouts).

Bug: 25062009

Change-Id: I3a0ae5ad68f956b936485791ceb78c347fad7d4f
InputManager.aidl
nputManager.java
eyboardLayout.java
347e5d498f4c216d588e98776a386d8bdf93d05c 03-Dec-2015 Jun Mukai <mukai@google.com> Introduce pointer capture API.

This depends on I4189eb4d93f50c2865b7a325727be5ceebcc71f8 of
frameworks/native.

Bug: 5452473
Change-Id: Ie21e521f3e5c581f976dc0feb5d84bfa48b046cd
InputManager.aidl
nputManager.java
d4eaef7f4c5a5d281de4fff272cd33e892e26264 30-Oct-2015 Jun Mukai <mukai@google.com> Make public pointer icon API with custom icons.

BUG: 25778347, 23804184
Change-Id: If138b97c750c912e9848412c27b65004899961eb
InputManager.aidl
nputManager.java
b097b8262ba22040d46d6e212a31b758b7023307 01-Dec-2015 Yohei Yukawa <yukawa@google.com> Plumb IME subtype change from IMMS to IMS.

This is a plumbing CL from IMMS to IMS to notify when the current input
method subtype is changed. Those events are supposed to be used to
change physical keyboard layout depending on input method subtype, which
is to be implemented in subsequent CLs.

Bug: 25753054
Change-Id: I58e71ffce9ac9131551a00dd35e24235dadfef87
nputManagerInternal.java
112449ca2983898b14e5e4dfe5d9d50b66f803a5 22-Oct-2015 Michael Wright <michaelwr@google.com> Fixup InputManager javadoc

Change-Id: I708b62db4861c7d391258b980a2447e08ed0d89e
nputManager.java
244f776855b2144a7fe16be09c67e5b189e8dcfd 21-Oct-2015 Michael Wright <michaelwr@google.com> resolve merge conflicts of f013c3f111 to master.

Change-Id: I2045187f8fa948a1733cb9a2cdc0a69ae97b5907
1db5397d88e722b1ab82ccb2b429ceec1179ccd8 12-Sep-2015 Jun Mukai <mukai@google.com> Allow changing mouse pointer icon for the current context.

Right now, it only supports I-beam on EditText, but further
rules will come in the future.

The png files for the icons are from chromium.

Bug: 24180385
Change-Id: I8de4ec8a5412b4830c08aa232c5083841c5c751c
InputManager.aidl
nputManager.java
9209c9cd9a6f779d0d9d86f9b2e368df564fa6bb 03-Sep-2015 Michael Wright <michaelwr@google.com> Add SystemUI component to watch for keyboard attachment.

Add a new SystemUI component to watch for keyboard attachment /
detachment. If the config specifies the name of a keyboard that is
packaged with the device, then SystemUI will ask the user if they
would like to enable BT (if disabled) and then attempt to pair to the
device.

Bug: 22876536
Change-Id: I786db35524d49706d5e61d8b8bc71194d50113f3
InputManager.aidl
nputManager.java
56dafdb5ae5f1618e3583c2835759108e8c0d99f 03-Sep-2015 Michael Wright <michaelwr@google.com> am 7f7ffa37: am 87e4c951: am 59c1a0e1: am 8ae90587: Merge "Add TabletModeChangedListener for SystemUI." into mnc-dr-dev

* commit '7f7ffa3722ef90a7bf5611221c4a4c9d06823a38':
Add TabletModeChangedListener for SystemUI.
9ddb864babab156428d5a001e9b14b1541d964ed 01-Sep-2015 Tim Kilbourn <tkilbourn@google.com> Fix input device listener registration in InputManager

If registerInputDeviceListener is called without enumerating input
devices, the InputManager will never register itself with the input
service.

Bug: 10415556
Change-Id: I0ae50bd1d4b8264ffe308b96e75c01cd47cf2387
nputManager.java
39e5e947447bc611205404ae6a4690656f1aa0f9 19-Aug-2015 Michael Wright <michaelwr@google.com> Add TabletModeChangedListener for SystemUI.

Bug: 23256614
Change-Id: I6e5d636c24a84846cfad84da800911a469689dda
InputManager.aidl
TabletModeChangedListener.aidl
nputManager.java
08c7116ab9cd04ad6dd3c04aa1017237e7f409ac 28-Feb-2015 John Spurlock <jspurlock@google.com> Remove unused imports in frameworks/base.

Change-Id: I031443de83f93eb57a98863001826671b18f3b17
nputManager.java
8ebac231966e27364e5d463b63540a0527d40c4b 19-Sep-2014 Michael Wright <michaelwr@google.com> Respect intent-filter priority for system keyboard layouts.

Bug: 17573945
Change-Id: Id357e199b37ef771c4362c2a5c4ae762071f0042
eyboardLayout.java
7b41467704f941b11af6aace3e40993afc7f6c6f 18-Jul-2014 John Spurlock <jspurlock@google.com> Zen mode filtering should use new usage constants.

Refactor stream-based calls to usage-based calls.

Bug:15279516
Change-Id: I3f7757d8123c14670e2ad5f8e6aa4e9803efe7ec
nputManager.java
8fd7f1ed7c11d35b3f2a97878e68ee38a551dd15 11-Apr-2014 Christoph Studer <chstuder@google.com> Rename basePkg to opPkg

...and actually populate the field correctly.

Change-Id: I3ce52efedb919d6af75dc9c3532e47764c467cac
nputManager.java
4e5c089ef3e62e7f658e71c0be262d09bd3e399b 11-Apr-2014 Jeff Brown <jeffbrown@google.com> resolved conflicts for merge of 337e764d to master

Change-Id: I8168dbf42b68c2f7b5ccb300e0080dddc627af26
037c33eae74bee2774897d969d48947f9abe254f 09-Apr-2014 Jeff Brown <jeffbrown@google.com> Plumb display power state through display manager.

Declare a new method, Display.getState() to retrieve the actual
power state of a display.

Improved documentation for Intent.ACTION_SCREEN_ON and
Intent.ACTION_SCREEN_OFF to clarify what they really mean in
terms of the interactive state of the device.

Deprecated PowerManager.isScreenOn() and replaced it with
PowerManager.isInteractive() with a more suggestive name and
better documentation.

Redirect display power state changes to go through the display
manager first and only then head over to the power manager for
legacy compatibility.

Eliminated the bright here and woke here policy flags since they
were unused. Simplified the input dispatch policy somewhat.

Ensure that screen wake locks are respected up until the point
when dozing really begins.

Fixed a regression in DreamService where onDreamingStarted
might be called before onWindowAttached.

Bug: 13133142
Bug: 13472578
Bug: 13929355
Bug: 13760290
Change-Id: Iabef96921dd554ce3768fb18619cefc3230b5fb0
nputManagerInternal.java
1af30c7ac480e5d335f267a3ac3b2e6c748ce240 10-Mar-2014 John Spurlock <jspurlock@google.com> Add stream-level suppression to vibrate/audio services.

- Add new audio restriction layer to app-ops. Restrictions add
additional constraints to audio operations at a stream-level.
Restrictions do not affect the persistable state, and are purely
additive: that is, they can only impose additional contstraints, not
enable something that has already been disabled. Restrictions
also support a whitelisted set of exempt package names.

- Add new audio stream-level checks to app-ops.

- Implement a provisional OP_PLAY_AUDIO suppression to three
java entry points MediaPlayer, AudioTrack, & SoundPool.

- Enhance vibrator api to take stream information as an optional
hint - the constants correspond to AudioManager stream types.
OP_VIBRATE now supports the stream-level restriction check.

- Simplify Vibrator subclasses by adding default implementations
for two .vibrate calls.

- Migrate NoMan's zen-mode control to use the new app-ops
stream-level restriction mechanism.

Change-Id: Ifae8952647202f728cf1c73e881452660c704678
nputManager.java
ca9eef6203b7cfb0084f8305d4dcc5d70a7a25cd 16-Dec-2013 RoboErik <epastern@google.com> b/12068020 Make kb layouts only unique to vendor/product. Do not merge

This is a cherry-pick of https://googleplex-android-review.git.corp.google.com/#/c/399886/

Instead of storing a kb layout per device descriptor (which is expected
to be unique), store it for each vendor/product. This way we can keep
a consistent layout between identical but physically different keyboards.

There are some corner cases this is expected to fail on, namely devices
that incorrectly have the same vendor/product id. Devices that don't
define a vendor/product id will continue to use the descriptor to store
layout files.

Change-Id: I1f2508561992080459310d5a644dad65a9c24f1a
InputManager.aidl
nputDeviceIdentifier.aidl
nputDeviceIdentifier.java
nputManager.java
d52207423225bcd99e94276e9d0fc2cb5f905602 10-Mar-2014 Jason Gerecke <killertofu@gmail.com> Support unique calibration per orientation

Updates the format of the calibration XML to store the Surface rotation
that a specific calibration applies to. Also updates the API to require
a rotation value for get/set, and has the native framework supply this
according to the current rotation whenever it changes.

Change-Id: I72b6703f646dd18db537365c5c9843f720a5f41e
InputManager.aidl
nputManager.java
d6396d67201fb2b64d13070324bb115c9c23b08a 28-Jan-2014 Jason Gerecke <killertofu@gmail.com> Allow persistence of input device calibration

This patch extends the PersistentDataStore store to read and write
input device calibration data. A new SET_INPUT_CALIBRATION permission
grants apps the ability to update this information, and a new
TouchCalibration class is used to wrap the raw calibration data.

Change-Id: I4daac2b15ef03616ea5b068c1e77bebd0ce7b8c1
InputManager.aidl
nputManager.java
ouchCalibration.aidl
ouchCalibration.java
ca9bc702df5c14a89c9b8b0109a05894bf74962e 11-Feb-2014 Jeff Brown <jeffbrown@google.com> Add support for injecting events into ActivityContainers.

Modified ActivityView to inject touch events it receives back into
its activity container. The container then injects the event into
the input system along with the display id of the underlying virtual
display.

Change-Id: I23d018a2f7dd30f1f833f522eb7f143b43d8e637
nputManagerInternal.java
38f96e5020b3e82b98fe97b0be363a5ad185860f 11-Feb-2014 Jeff Brown <jeffbrown@google.com> Add support for injecting events into ActivityContainers. (DO NOT MERGE)

Modified ActivityView to inject touch events it receives back into
its activity container. The container then injects the event into
the input system along with the display id of the underlying virtual
display.

Enhanced the input system to support concurrent dispatch of touch
events on multiple displays which is required for this to work.

Change-Id: I9cf1870db3be6f99a52ed9a1e3ceafe42c940093
nputManagerInternal.java
509cc13b705f8c488774e7097ab17471c3dacd2e 18-Jan-2014 Jeff Brown <jeffbrown@google.com> am e2c9cd58: Merge "Refactor display manager service to new pattern." into klp-modular-dev

* commit 'e2c9cd583f4f706b48270b8cbe84df627c69af24':
Refactor display manager service to new pattern.
4ccb823a9f62e57f9d221f83a97e82967e79a9e5 17-Jan-2014 Jeff Brown <jeffbrown@google.com> Refactor display manager service to new pattern.

Transform DisplayManagerService into a SystemService and start cleaning
up other local services that it uses from window manager and input manager.

Clean up service thread initialization.

Remove unnecessary static variables from ActivityManagerService.

It's starting to become clear that we really need a better way to manage
service dependencies. Boot phases don't quite cut it.

Change-Id: If319dbd7cbfbd4812fe55ece969e818d4b20755b
nputManagerInternal.java
fb290df3c9a6f37ec050163029e25844de2f8590 16-Dec-2013 RoboErik <epastern@google.com> b/12068020 Make kb layouts only unique to vendor/product

Instead of storing a kb layout per device descriptor (which is expected
to be unique), store it for each vendor/product. This way we can keep
a consistent layout between identical but physically different keyboards.

There are some corner cases this is expected to fail on, namely devices
that incorrectly have the same vendor/product id. Devices that don't
define a vendor/product id will continue to use the descriptor to store
layout files.

Change-Id: Id0890d13e1c859eaf993d4831b7b1acbaf5df80f
InputManager.aidl
nputDeviceIdentifier.aidl
nputDeviceIdentifier.java
nputManager.java
b7b2d4b490f5dd672e0b00ced579dc052e3637e9 20-Aug-2013 Michael Wright <michaelwr@google.com> Expose API to query devices for supported keys

Change-Id: I29f230e19c6f851b4b72b2fc8dd41f5abcba4631
nputManager.java
f265ea9d8307282ff1da3915978625a94fc2859e 01-Feb-2013 Dianne Hackborn <hackbod@google.com> App ops: vibration, neighboring cells, dialing, etc.

Improve handling of vibration op, so that apps are
better blamed (there is now a hidden vibrator API that
supplies the app to blame, and the system now uses this
when vibrating on behalf of an app).

Add operation for retrieving neighboring cell information.

Add a new op for calling a phone number. This required
plumbing information about the launching package name through
the activity manager, which required changing the internal
startActivity class, which required hitting a ton of code that
uses those internal APIs.

Change-Id: I3f8015634fdb296558f07fe654fb8d53e5c94d07
nputManager.java
8f124842dd16125062f048257889c85380879b68 31-Jan-2013 Jeff Brown <jeffbrown@google.com> Avoid redundant store into array list.

Prevent possible NPE in case of a race condition
while fetching input devices by descriptor.

Change-Id: I68d0738386c6723d943e595f829981b0890c2b3a
nputManager.java
3a084af2e90849aaa8beb3a610189e3399c63ea0 07-Nov-2012 Kenny Root <kroot@google.com> Correct executable bit for source files

Many media files and source code files were marked as executable in Git.
Remove those.

Also a shell script and python script were not marked as executable.

Change-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5
nputManager.java
cf39bdf3dff5e29447f6ce734b76dc3490385e58 18-May-2012 Jeff Brown <jeffbrown@google.com> Add support for switching between multiple keyboard layouts.

Also show a notification when an external keyboard is connected
and does not have a keyboard layout selected yet.

Bug: 6405203
Change-Id: Id0ac6d83b3b381f8a236b2244a04c9acb203db3c
InputManager.aidl
nputManager.java
d9fec5d317c09da6bcc7a54df4e0190a76d21eae 18-May-2012 Jeff Brown <jeffbrown@google.com> Add support for grouping keyboard layouts by collection.

Bug: 6405203
Change-Id: Id818b27ec09928150795d594a96df186a6e39168
nputManager.java
eyboardLayout.java
2f0957607411b99810226ad38d59cf18718b86d0 11-May-2012 Jeff Brown <jeffbrown@google.com> Rename kcm attribute to keyboardLayout.

Bug: 6478076
Change-Id: I7fc0d8eb36d03a628d070f8fd6ea1e1464b1a163
nputManager.java
9e6d4b035d4f012d23264d3d2bc946b1ca02dba1 20-Apr-2012 Jeff Brown <jeffbrown@google.com> Lost the race.

Bug: 6373370
Change-Id: If42a3de66b1d407b06064e91ff578dc9ca5ceed8
nputManager.java
a47425a13c19f95057df78b8bb65bb25657e8753 13-Apr-2012 Jeff Brown <jeffbrown@google.com> Add support for input devices that have vibrators.

Added a getVibrator() method to InputDevice which returns a Vibrator
associated with that input device. Its uses the same API as the
system vibrator which makes it easy for applications to be modified
to use one or the other.

Bug: 6334179
Change-Id: Ifc7f13dbcb778670f3f1c07ccc562334e6109d2e
InputManager.aidl
nputManager.java
af9e8d38184c6ba4d2d3eb5bde7014a66dd8a78b 13-Apr-2012 Jeff Brown <jeffbrown@google.com> Notify applications when input devices change.

This change allows the InputManager to keep track of what input
devices are registered with the system and when they change.
It needs to do this so that it can properly clear its cache of
input device properties (especially the key map!) when changes
occur.

Added new API so that applications can register listeners for
input device changes.

Fixed a minor bug in EventHub where it didn't handle EPOLLHUP
properly so it would spam the log about unsupposed epoll events
until inotify noticed that the device was gone and removed it.

Change-Id: I937d8c601f7185d4299038bce6a2934fe4fdd2b3
InputDevicesChangedListener.aidl
InputManager.aidl
nputManager.java
9f25b7fdf216c9ef0bd2322cd223eeaf0d60f77f 10-Apr-2012 Jeff Brown <jeffbrown@google.com> Request key maps from input manager service.

Instead of each application loading the KeyCharacterMap from
the file system, get them from the input manager service as
part of the InputDevice object.

Refactored InputManager to be a proper singleton instead of
having a bunch of static methods.

InputManager now maintains a cache of all InputDevice objects
that it has loaded. Currently we never invalidate the cache
which can cause InputDevice to return stale motion ranges if
the device is reconfigured. This will be fixed in a future change.

Added a fake InputDevice with ID -1 to represent the virtual keyboard.

Change-Id: If7a695839ad0972317a5aab89e9d1e42ace28eb7
InputManager.aidl
nputManager.java
eyboardLayout.aidl
eyboardLayout.java
e38fdfae9196afd1bdc14c5ec6c12793af1e2550 06-Apr-2012 Jeff Brown <jeffbrown@google.com> Add a unique input device descriptor.

The purpose of the input device descriptor is to make it possible
to associate persistent settings for each input device, such as the
keyboard layout.

The descriptor is a hash of the information we have about the
device, such as its vendor id, product id, unique id, name,
or location.

Bug: 6110399
Change-Id: Idb80f946819b3f0dbf4e661bb0a753dbc2b60981
nputManager.java
ac14351e16e1258f1cb54e2bf772b8be004eb2b8 06-Apr-2012 Jeff Brown <jeffbrown@google.com> Move some APIs from window manager to input manager.

Simplified input injection API down to just one call.

Removed all input state reading API. It was only used by the
window manager policy and required a permission that applications
could not obtain. READ_INPUT_STATE is now unused and deprecated.

Change-Id: I41278141586ddee9468cae0fb59ff0dced6cbc00
InputManager.aidl
nputManager.java
4532e6158474a263d9d26c2b42240bcf7ce9b172 05-Apr-2012 Jeff Brown <jeffbrown@google.com> Refactor input system into its own service.

Extracted the input system from the window manager service into
a new input manager service. This will make it easier to
offer new input-related features to applications.

Cleaned up the input manager service JNI layer somewhat to get rid
of all of the unnecessary checks for whether the input manager
had been initialized. Simplified the callback layer as well.

Change-Id: I3175d01307aed1420780d3c093d2694b41edf66e
InputManager.aidl
9df6e7a926ce480baf70e97ee1b9ea387193f6ad 05-Apr-2012 Jeff Brown <jeffbrown@google.com> Initial commit of InputManager and keyboard layout API.

Added a new InputManager service for interacting with input
devices and configuring them. This will be the focus of
an upcoming refactoring.

Added an API for registering keyboard layouts with the system
based on the use of a broadcast receiver. Applications can
register their own keyboard layouts simply by declaring a
broadcast receiver in their manifests.

Added the skeleton of a package that will ultimately contain
the keyboard layouts and other input device related resources
that are part of the base system.

Bug: 6110399
Change-Id: Ie01b0ef4adbd5198f6f012e73964bdef3c51805c
nputManager.java