Commit Graph

2679 Commits

Author SHA1 Message Date
Romain Guy
decd3039ca Merge "Don't wait for screen on to finish animations" 2012-04-12 11:35:58 -07:00
Romain Guy
eb37889071 Don't wait for screen on to finish animations
OldAnimations™ would set their start time during the first frame drawn
after calling View.startAnimation(). If this method was invoked while
the screen was off, this would cause the animation to start playing
when the screen turned back on.

Change-Id: Ic45a1af2020a7f5e81c2544bd8f16a6bedbd6849
2012-04-12 11:33:14 -07:00
Romain Guy
f1352d87ea Merge "Fix SurfaceTexture leak in TextureView Bug #6318631" 2012-04-11 18:19:10 -07:00
Romain Guy
1ac4765e95 Fix SurfaceTexture leak in TextureView
Bug #6318631

Change-Id: I282a7c9bb648365ba61c52a84ff510c8779130ef
2012-04-11 18:15:20 -07:00
John Reck
c2676102d2 Merge "New WebView input dispatcher." 2012-04-11 16:03:46 -07:00
Adam Powell
db13a6bf78 Merge "Invalidate for scrolling animations on the animation timer" 2012-04-11 15:22:37 -07:00
Jeff Brown
9d3bdbd6b8 New WebView input dispatcher.
Bug: 6317798

Stuff that's better:

1. We maintain two queues in a way that ensures that WebView and
WebKit both see consistent streams of events, even in cases
where WebKit times out.  We send ACTION_CANCEL if necessary, etc.

2. All pointer events go through the same channel, including
hover and click ("touch up") events, to ensure correct ordering.

3. Given that the input events are in a separate queue, we can
force execution of all of these events whenever we like, making new
latency optimizations possible.

4. The entire history of each touch event is sent to the web
application to enable smoother interaction.

5. The web application may choose to intercept a touch event stream
at any time by issuing "prevent default".  Previously, it could only
prevent default on the initial down event.  The new behavior is more
standards compliant.

Change-Id: I42d2d045e7d44af7c54b29570f188b7400d91d4e
2012-04-11 15:10:24 -07:00
Jeff Brown
4d6a82d79e Unhide new animation runnable API on View.
Change-Id: Id626688d6c7d632c01d9897777c854cb601d3301
2012-04-11 14:23:51 -07:00
Adam Powell
df3ae4f3ae Invalidate for scrolling animations on the animation timer
Change View methods awakenScrollBars and scrollTo to post their
invalidation on the animation timer. Since these are often used in
computeScroll or similar to continue scrolling or flinging it should
not prevent other posted events from being processed before the frame
is actually drawn. (All changes in scroll position, etc. are
immediately reflected after the calls and do not need a draw to
present correct data about scroll position to apps.)

Don't accumulate floating point error while dragging
ScrollView/HorizontalScrollView.

Change-Id: I05b57d75f89a806488e46a8fb79b85d80f56d45d
2012-04-11 13:01:24 -07:00
Jeff Brown
9f25b7fdf2 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
2012-04-10 18:23:58 -07:00
Dianne Hackborn
162bc0ea0d Some small tweaks to improve memory management.
We now allow processes that currently have stopping activities to
be managed as if they were done stopping, so that memory trimming
can be done before the process goes to the background.  Hopefully
this will reduce cases where the processes goes to the background
and immediately gets killed, but wouldn't have had to be killed if
it had a chance to trim its memory.

Also change window memory trimming to always do the aggressive
trimming when memory is critical, even if not on a low-end device.

And tweak web view trimming to not trim for foreground UI events.

Change-Id: I241b3152b52d09757bd14a202477cf69c9b78786
2012-04-10 14:43:58 -07:00
Daniel Sandler
c38cf4c7db Merge "New Android Dreams architecture, disabled for now." 2012-04-10 05:33:07 -07:00
Jesse Hall
3da2dc9d4c Merge "Release the scratch pbuffer surface after use" 2012-04-09 22:41:04 -07:00
Daniel Sandler
7d276c377c New Android Dreams architecture, disabled for now.
Rather than normal Activities (which have a host of problems
when used for this purpose), screen savers are now a
special kind of Service that can add views to its own
special window (TYPE_DREAM, in the SCREENSAVER layer).

Dreams are now launched by the power manager; whenever it is
about to turn the screen off, it asks the window manager if
it wants to run a screen saver instead. (http://b/5677408)

Also, the new config_enableDreams bool allows the entire
feature to be switched on or off in one place. It is
currently switched off (and the APIs are all @hidden).

Change-Id: Idfe9d430568471d15f4b463cb70586a899a331f7
2012-04-09 15:33:26 -04:00
Jeff Brown
69bba1dfb7 Merge "Add a unique input device descriptor." 2012-04-06 15:04:53 -07:00
Jeff Brown
e38fdfae91 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
2012-04-06 14:57:19 -07:00
Chris Craik
3d4d2159bc Merge "fix functor flag parsing, tweak process delay" 2012-04-06 12:51:36 -07:00
Jamie Gennis
335a6625b6 Merge changes Iac9cc917,I8eed4b0d
* changes:
  TextureView: add setSurfaceTexture method
  SurfaceTexture: add GL context attach & detach
2012-04-06 09:06:28 -07:00
satok
419ad1e3b1 Merge "Fix a bug with IME blinking just after leaving the lock screen" 2012-04-05 22:12:36 -07:00
satok
f6710615c6 Supplement for I772164d9c67e95876c228efcce2
This should be merged with I1519258dd3ce95ad01

Change-Id: I48c5f86ff43f51913eb69d697bb1d75714b67aa3
2012-04-06 13:01:51 +09:00
Jeff Brown
ac14351e16 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
2012-04-05 19:33:11 -07:00
Dianne Hackborn
e8644b695d Merge "Fix so that status bar doesn't resize when hiding nav bar." 2012-04-05 19:03:37 -07:00
Jesse Hall
0872b37042 Release the scratch pbuffer surface after use
Change-Id: Icf010969d19b20c3ddf64b44a78a115ac92f7ea5
2012-04-05 18:37:43 -07:00
Dianne Hackborn
9801435820 Fix so that status bar doesn't resize when hiding nav bar.
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
2012-04-05 18:31:41 -07:00
Chris Craik
65924a3e56 fix functor flag parsing, tweak process delay
Change-Id: I0a679cc33f92ff6fd2e33db9ad58b52622def012
2012-04-05 17:52:11 -07:00
Svetoslav Ganov
389b65fea2 Merge "Minor twaek to the focus behavior." 2012-04-05 17:23:56 -07:00
Svetoslav Ganov
5012ebbc5c Minor twaek to the focus behavior.
bug:6296603

Change-Id: I3bd0b291e6013cae019ca9049d9d3dc506845ab0
2012-04-05 17:22:19 -07:00
Jamie Gennis
2af3524beb TextureView: add setSurfaceTexture method
This change adds support for transferring control of a TextureView's
SurfaceTexture between the UI framework and the application.  It makes the
TextureView detach the SurfaceTexture from the UI framework's GLES context
before calling the surfaceTextureDestroyed callback, allowing the app to use
the SurfaceTexture in its own GLES context if it so chooses.  This change also
adds the TextureView#setSurfaceTexture method, allowing an app have the
TextureView use a SurfaceTexture that already exists rather than creating a new
one.

Change-Id: Iac9cc917687e4239dd1c24eae553709aa37512da
2012-04-05 16:11:43 -07:00
Jeff Brown
23b871d714 Merge "Initial commit of InputManager and keyboard layout API." 2012-04-05 15:29:24 -07:00
Jeff Brown
9df6e7a926 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
2012-04-05 14:42:10 -07:00
Dianne Hackborn
5459c43b83 Merge "Clean up status bar, system bar, navigation bar management." 2012-04-05 11:47:02 -07:00
satok
05a6cbe286 Fix a bug with IME blinking just after leaving the lock screen
Bug: 6286786
Change-Id: I9ee42482f7abffaefec31f0c4a661bef7c230137
2012-04-05 23:11:39 +09:00
Romain Guy
5ab92c0316 Merge "Make sure we clean up after ourselves" 2012-04-04 19:47:34 -07:00
Svetoslav Ganov
b39e509f43 Merge "Fixing broken clear focus behavior." 2012-04-04 19:01:13 -07:00
Romain Guy
edbca1285e Make sure we clean up after ourselves
Because of the mAdded=false statement a few lines above, a large section
of doDie() was not executed. Things would eventually get cleaned up
but it seems better to do it at the right time.

Change-Id: I1a2f3a8e05057dd7cd7205b6d3f9c145d6c0241d
2012-04-04 18:25:53 -07:00
Romain Guy
a393bedb6d Merge "Add a new OnDrawListener to ViewRoot" 2012-04-04 18:16:38 -07:00
Romain Guy
25eba5c502 Add a new OnDrawListener to ViewRoot
This can be used by app to efficiently listen for draw passes. This listener
is guaranteed to not generate any garbage unlike OnPreDrawListener.

Change-Id: Ida40d11a3f8a5d2617bafe722906ee5c9af48602
2012-04-04 17:59:11 -07:00
Svetoslav Ganov
57cadf2a97 Fixing broken clear focus behavior.
1. In a prevous patch I fixed the issues when on clearing
   focus of the first focusable view the callback for
   gaining focus were called before the ones for losing
   focus. Since it cause some issues the patch was reverted
   and resubmitted. In this chaos some code was missed so
   tests are failing. Added the missing logic to give focus
   to the first focusable in the current touch mode when
   a view loses focus.

2. Removed clear focusForRemoval methid since it is a dup
   of unFocus();

Note: All focus tests now pass.

Change-Id: I06881d4b5a66fc5a33efca16a96f20207a7220d3
2012-04-04 17:24:09 -07:00
Dianne Hackborn
f87d19621d Clean up status bar, system bar, navigation bar management.
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
2012-04-04 16:00:45 -07:00
Philip Milne
24fea55ebb Merge "Fix for bug 6104272." 2012-04-04 14:51:35 -07:00
Fabrice Di Meglio
d779412c58 Merge "Add View textAlignment" 2012-04-04 14:17:22 -07:00
Fabrice Di Meglio
9da0f8a5c4 Add View textAlignment
- fix bug #6163772
- use bits field and pack them as much as possible
- take care of "supportsRtl" flag from Manifest
- add visual unit tests

CTS unit tests in another CL

Change-Id: Ib77c4eb423854209af130688c5ef9977401a9c1c
2012-04-04 12:20:45 -07:00
Philip Milne
6c8ea06abf Fix for bug 6104272.
Add Java properties for those XML attributes that don't have getter/setter
pairs. Also, link existing methods to their XML attributes where the comments
were previously missing.

This CL is worth extra scruitiny: first because it's View, and secondly
because many of the new APIs depend on subtleties in the underlying implementations
that I'm not familiar with.

Also, please consider whether it is too much to deprecate getBackgroundDrawable().

Change-Id: I0f2641926d86e5f44b92a0057736f64b59d2e9b9
2012-04-04 12:16:02 -07:00
Chet Haase
09280606dc Enhanced frame profiling from gfxinfo
You can now set the max number of frames being tracked by the gfxinfo
profiling data by doing 'adb shell setprop hwui.profil.maxframes #'.
Also, running gfxinfo automatically resets the data so that any set of
frame data always starts from the beginning.

Change-Id: I87ae3fb4d580741a1b2fba75be4ec540de7c52a4
2012-04-04 07:49:06 -07:00
Chet Haase
21aec19d30 Merge "Optimization of alpha with DisplayList properties" 2012-04-03 15:40:54 -07:00
Fabrice Di Meglio
fde3f83cd2 Merge "Fix bug #6140391 Make RTL awareness as an opt-in into the AndroidManifest" 2012-04-03 14:45:53 -07:00
Chet Haase
db8c9a6a4d Optimization of alpha with DisplayList properties
Some views (such as ImageView and TextView) handle non-opaque alpha
values directly. This was originally an optimization, but we can handle it faster
in many cases without this optimization when DisplayList properties are enabled.
Basically, if a view has non-overlapping rendering, we set the alpha value directly
on the renderer (the equivalent of setting it on the Paint object) and draw each
primitive with that alpha value. Doing it this way avoids re-creating DisplayLists
while getting the same speedup that onSetAlpha() used to get pre-DisplayList properties.

Change-Id: I0f7827f075d3b35093a882d4adbb300a1063c288
2012-04-03 14:02:17 -07:00
Daisuke Miyakawa
fd007cb576 Merge "Shorten PRESSED_STATE_DURATION" 2012-04-03 14:00:58 -07:00
Daisuke Miyakawa
c19895f7ed Shorten PRESSED_STATE_DURATION
Bug: 6259150
Change-Id: Ic8b28295a7e97ca2885d074962f73d5f1bf980c6
2012-04-03 12:25:26 -07:00
Fabrice Di Meglio
59dfce8bda Fix bug #6140391 Make RTL awareness as an opt-in into the AndroidManifest
- introduce "supportsRtl" as a new application attribute in the AndroidManifest
- "supportsRtl" default value is FALSE (no RTL support)
- adapt the View layoutDirection and textDirection logic to take care of "supportsRtl" value

Change-Id: I5e4f9f576e14f35dedc6b0c29a7142c397f598e0
2012-04-03 11:43:20 -07:00