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
This fix resolves an exception thrown when the snapshot ArrayList has
no entries.
Fixes bug 6311207.
Change-Id: I84383417116a4a62eb2842792ed04096aebc8ee2
We'll have to go back and tweak this when we add a more
sophisticated switch from contentView to bigContentView, but
for now, this ought to detect that the notification has
gotten bigger (or smaller).
Change-Id: I3816fe8ed321569d1ce07d8a62cb08a434e55c2d
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
The status bar now extends behind the nav bar, and uses
fitsSystemWindows to ensure its content is not covered. We
always report a stable content insets (as if the nav bar is
visible) even if the nav bar is hidden, so the content doesn't
jump when transitioing. This does mean that if you only hide
the nav bar (and not the status bar), when in landscape you
will end up with a status bar whose right side still leaves
room for the nav bar. But why the hell would you want to do
that?
Also improve documentation on setSystemUiVisibility().
Change-Id: I8087d875f1214ef0085a91b5ed5c2f35ff2fc1b3
The status bar and navigation bar are two completely separate
elements, with their own semantics. The system bar now classifies
itself as a navigation bar, since that is really how it behaves.
This required rewriting the HDMI resizing code, so that it is
all done by PhoneWindowManager since that is what is responsible
for the size of the navigation bar (and thus now system bar). This
actually gets rid of a fair amount of code, and means we can also
do the same thing for a pure navigation bar.
Likewise the system bar now has the navigation bar ability to be
hidden when requested by system UI flags. To get the behavior
we want on Xoom, we only allow the nav bar to be hidden when it
will help provide a better aspect ratio for showing widescreen
videos.
Finally the nav/system bar now animates when hidden and shown.
Change-Id: Ie927154b68376a0b61802f99171ff56b8da92e7a
Don't allow user to drag thumbnails when popup menu is showing
Bug: 5144612
Dismiss popup menu when hitting home button
Bug: 6163724
Change-Id: I4ae1fd118d1a26562832affcd75a8ab1cc53a665
Any notification with at least one action will now have an
expanded form by default. BigPicture/BigText can have
actions, too, of course.
Change-Id: I6f54cac65d9a9f335d8038c2105cd2c674f991ff
The main change is a few new flags you can supply to
View.setSystemUiVisibility(). One is a new visibility mode,
SYSTEM_UI_FLAG_FULLSCREEN, which is basically the same as
the global FLAG_FULLSCREEN option for windows, but driven as
part of the system UI state.
There are also three new flags for telling the framework that you
would like to have your application's UI ignore screen
decorations -- SYSTEM_UI_FLAG_LAYOUT_NO_NAVIGATION for going
behind the navigation bar and SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
for ignoring full screen decorations (that is the status bar).
In combination with this you can use SYSTEM_UI_FLAG_LAYOUT_STABLE
to have the framework report consistent insets to your application.
When using NO_NAVIGATION, when the user taps the screen we now
also automatically clear ONLY_CONTENT, so that we atomically show
both UI elements. This should make it easy for apps like video
players that want to move between fully full-screen and regular
modes.
The ActionBar has also been extended when in overlay mode so
that it will adjust the system window insets to also account
for its space, and allow it to be hidden using the new
SYSTEM_UI_FLAG_FULLSCREEN.
Change-Id: Ic8db1adec49a0f420bfe40c1d92eb21307856d0b
There are now two "rebuilder" classes, each of which
consumes a Notification.Builder and modifies its behavior.
(Inheritance in Builder classes is...not advisable.)
- BigPictureStyle: includes a large Bitmap above the usual
notification strip.
- BigTextStyle: shows the contentText in a large, wrapping
TextView instead of truncating to one line.
As for SystemUI, the notification panel now shows the
expanded form if it is available, otherwise the usual
contentView is shown.
(Note that the structure of largeIcon notifications has
changed a bit: The largeIcon is no longer handled by the
status bar at all; it's entirely inside the template now.
Not only does this make the code simpler, and make large
notifications possible, but it fixes the longstanding
irritation that tapping on a largeIcon doesn't highlight the
whole notification row. Man, that feels good.)
Change-Id: I2b9d8a6ea4385659d8cb1ed467c1caf5e12628dd
The member variable WindowAnimator.mPendingLayoutChanges was never
being reset to 0. Consequently once it was set it was causing endless
calls to the layout method.
Fixes bug 6208114, 6220403, 6219546.
Fixed NPE in RecentsPanelView.
Change-Id: Ie529b8f31e535543cb5ae0af9447146306b14eeb
Use it for recent tasks switching.
Not perfect yet by far, but something.
Also fix issue #6186758: Twitter crashes after tapping on a tweet on JRM75D
Change-Id: I49bf6c94aafde875ac652dedaf96d6c08cc9e7d2
Back button / down chevron button (eg when you have an IME visible)
was not getting synced on rotation changes
Bug: 6133831
Change-Id: Iefaf3babf92898fcc87a0b14c10b037de04d84e2
MediaActionSound is a helper class for applications that use the
camera, or include camera-like behavior such as taking
screenshots. This class helps applications match the sound-playing
behavior of the Camera.takePicture, MediaRecorder.start, and
MediaRecorder.stop methods.
This is useful for applications that don't use the above methods, but
still logically capture images or video, such as the panorama capture
feature and the video effects in the platform camera application.
Bug: 5029099
Change-Id: I829f6e2941f167f91f9cb506215b7232cb054958
Instead of sliding the panel in from off-screen, the panel
is now stretched open (cropping the scrolling contents).
This is slower, so the layout has been dramatically
simplified to help performance.
Change-Id: I8343449c2b3fa4b4ee161f1de992d2242635d15e