BREAKING CHANGE: Redesigned the key character map format to
accomodate full keyboards with more comprehensive suite of modifiers.
Old key character maps will not work anymore and must be updated.
The new format is plain text only and it not compiled to a binary
file (so the "kcm" tool will be removed in a subsequent check-in).
Added FULL keyboard type to support full PC-style keyboards.
Added SPECIAL_FUNCTION keyboard type to support special function
keypads that do not have any printable keys suitable for typing
and only have keys like HOME and POWER
Added a special VIRTUAL_KEYBOARD device id convention that maps
to a virtual keyboard with a fixed known layout. This is designed
to work around issues injecting input events on devices whose
built-in keyboard does not have a useful key character map (ie.
when the built-in keyboard is a special function keyboard only.)
Modified several places where events were being synthesized
to use the virtual keyboard.
Removed support for the "qwerty" default layout.
The new default layout is "Generic". For the most part "qwerty"
was being used as a backstop in case the built-in keyboard did
not have a key character map (probably because it was a special
function keypad) and the framework needed to be able to inject
key events anyways. The latter issue is resolved by using the
special VIRTUAL_KEYBOARD device instead of BUILT_IN_KEYBOARD.
Added the concept of a key modifier behavior so that
MetaKeyKeyListener can distinguish between keyboards that use
chorded vs. toggled modifiers.
Wrote more robust key layout and key character map parsers
to enable support for new keyboard features and user installable
key maps.
Fixed a bug in InputReader generating key ups when keys
are released out of sequence.
Updated tons of documentation.
Currently QwertyKeyListener is being used for full keyboards
with autotext and capitalization disabled. This mostly works
but causes some problems with character pickers, etc.
These issues will be resolved in subsequent changes.
Change-Id: Ica48f6097a551141c215bc0d2c6f7b3fb634d354
When an app requests fullscreen display, "shadows" of the
visible system bar UI elements are drawn in their place. The
user can still interact with these elements by poking the
shadows; the widgets will temporarily shine through, long
enough for the user interaction.
Known issues:
- if the notification panel is up for too long, the shadow
will not be re-enabled on the notification area (need to
route all hide/show requests through the
shadowcontroller)
- status bar hide/show animations have been temporarily
turned off to make this work correctly; they'll be put
back later
Bug: 3203171
New default only applies to applications with targetSdkVersion >=
HONEYCOMB. Old applications default to no touch splitting for
their windows.
In addition, enabled split touch for various system windows.
Bug: 3049580
Change-Id: Idc8da9baa2cd8e1e4e76af8967d7b6a5ccb94427
When switching to a recent task that is currently active, do a
task switch instead of a start activity, so the activity is brought
back in its exact same state.
Also fix problem in phone recents where the icon would disappear
after you touch it.
Change-Id: Id5c8478f8c33c90f52fbb4d969037d2bf5af9fff
This updates recent apps to show a vertical list, complete
with thumbnails and a text description of the application.
Change-Id: I178ed8d7d32e790ac51aa7f88593aa24d6786a78
Current system area gestures:
tap - no-op (bug 3114340)
swipe up - open system panel
swipe down - lights out
long press - lights out (bug 3134973)
The enter/exit animations have been tweaked to reinforce
this, particularly the swipe down for lights out. (Swiping
up to exit lights out will work, as will any kind of tap in
the lights-out "curtain".)
Change-Id: Ie027d7a0e86a402d06a8a368a5a43050a6bb9e58
Some of these assets may no longer be used. An other CL will remove these later.
Needed to remove warnings in new aapt version.
Change-Id: Iac296247012a05757bd3264ab50212d37ce80adf
IWindowManager now supports two new methods,
freezeRotation() and thawRotation(), that allow a caller to
temporarily stash the device's current rotation as the
default rotation (when no other constraints are present).
The system bar uses this to implement a user-accessible
rotation lock by calling freezeRotation() and then turning
off accelerometer-based display rotation; unless overridden
by an app, the display will continue to appear in the frozen
rotation until the rotation is unlocked by the user (either
via the rotation lock icon in the system bar or by checking
"rotate screen automatically" in Settings).
Bug: 2949639
Change-Id: Icd21c169d1053719590e72401f229424b254622f
Important safety tip: talking to the storage manager and
mount service can be very, very slow.
Bug: 3138068
Change-Id: I652e8bb2075535b42c83a46df1d8ae8bf299dd0d
Stop handling StorageEventListener callbacks on the main
thread, where calls back into StorageManager could take a
while (i.e., during a long fsck).
Bug: 3138068
Change-Id: Icf2a836b69ff60606edce7c5575ad64dc24698c6
From the app developer's request:
Intents assigned to specific views should take precedence over the content intent, but it should not
be required to set the content intent to null in order for the view-intents to work
Bug: 3107945
Change-Id: Ic5282d441277a9a8c8c700ef3f43872f3405b58a