Commit Graph

2116 Commits

Author SHA1 Message Date
Daniel Sandler
7933b7056f am cc22b992: Merge "Revert "Allow views to setSystemUiVisibility() with the same value and have it work."" into ics-factoryrom
* commit 'cc22b99249ac80891af99be941862edc9569fc4b':
  Revert "Allow views to setSystemUiVisibility() with the same value and have it work."
2011-09-22 10:31:47 -07:00
Ken Wakasa
9f48d6348d Fix comment
Change-Id: Ic0fd15d0b1b4d2c24eb177a6b22e0cc08ec1de99
2011-09-22 19:24:48 +09:00
Jeff Brown
a829e16681 Merge "Handle orientation changes more systematically. Bug: 4981385" 2011-09-21 21:09:10 -07:00
Jeff Brown
01a98ddbdf Handle orientation changes more systematically.
Bug: 4981385

Simplify the orientation changing code path in the
WindowManager.  Instead of the policy calling setRotation()
when the sensor determined orientation changes, it calls
updateRotation(), which figures everything out.  For the most
part, the rotation actually passed to setRotation() was
more or less ignored and just added confusion, particularly
when handling deferred orientation changes.

Ensure that 180 degree rotations are disallowed even when
the application specifies SCREEN_ORIENTATION_SENSOR_*.
These rotations are only enabled when docked upside-down for
some reason or when the application specifies
SCREEN_ORIENTATION_FULL_SENSOR.

Ensure that special modes like HDMI connected, lid switch,
dock and rotation lock all cause the sensor to be ignored
even when the application asks for sensor-based orientation
changes.  The sensor is not relevant in these modes because
some external factor (or the user) is determining the
preferred rotation.

Currently, applications can still override the preferred
rotation even when there are special modes in play that
might say otherwise.  We could tweak this so that some
special modes trump application choices completely
(resulting in a letter-boxed application, perhaps).
I tested this sort of tweak (not included in the patch)
and it seems to work fine, including transitions between
applications with varying orientation.

Delete dead code related to animFlags.

Handle pausing/resuming orientation changes more precisely.
Ensure that a deferred orientation change is performed when
a drag completes, even if endDragLw() is not called because the
drag was aborted before the drop happened.  We pause
the orientation change in register() and resume in unregister()
because those methods appear to always be called as needed.

Change-Id: If0a31de3d057251e581fdee64819f2b19e676e9a
2011-09-21 19:26:15 -07:00
Adam Powell
823f074a73 Fix bug 5300621 - Share menu disappears in gallery
ActionProviders (or action views) unfortunately had no way to report
that they had opened a sub-UI that would affect menu visibility
listeners used to hide action bars when not in use. This caused the
Gallery UI to hide its action bar when the share popup was open.

Add hidden API (to be made public later) to ActionProvider that can be
used to inform the menu system that a sub UI has opened or
closed. Account for this in menu visibility callbacks. Fix
ShareActionProvider to use this when its popup windows open and close.

Fix a regression where submenus were not properly reporting visibility
changes.

Change-Id: Ia6f45fb463ad106105c40d01f141c2e5c8b96f78
2011-09-21 17:21:47 -07:00
Daniel Sandler
705240631b Revert "Allow views to setSystemUiVisibility() with the same value and have it work."
This reverts commit fad9555217.
Because it just didn't work. (The views kept aggressively
re-applying their preferred flags every time view attributes
were aggregated.)

We'll pursue the original strategy, like lights out mode in
HC: if you want to tickle this mode, un-set and re-set the
flags (preferably synchronized with the global SystemUI
visibility state as reported by onSystemUiVisibilityChanged
callbacks).

Bug: 5052456
2011-09-21 13:34:15 -04:00
Dianne Hackborn
bc1aa7bbc7 Fix issue #5312624: Lock screen very flickery
The key thing was to fix isVisibleOrBehindKeyguardLw() so that it
wouldn't count a window as not visible if it was just currently
in the process of drawing due to an orientation change.

Also improve logic in deciding when to turn screen on to better ensure
the screen is in a stable state, in particular treating screen off
as a frozen screen and not allowing it to turn on until the
update of the screen due to any config change is done.

Change-Id: If82199f3773270b2d07f9c7de9da2dad8c7b28d7
2011-09-20 11:20:31 -07:00
Amith Yamasani
4943b3aa36 Merge "Make Volume control non-modal and allow touches underneath to take effect." 2011-09-19 10:03:14 -07:00
Dianne Hackborn
38e29a61d0 Fix issue #5242779: Device not responding to touch on unlock screen
Rework how we decide when it is okay to turn on the screen by having
the policy call back to the power manager when it knows the lock screen
has been drawn.

Change-Id: Ie8f3f72111dcf7f168723e6dce24e0343b4afe5d
2011-09-18 14:52:52 -07:00
Amith Yamasani
284e630a9b Make Volume control non-modal and allow touches underneath to take effect.
Bug: 5308506 "Video" App halts playback when volume slider is present
Change-Id: Ib0672384b9074af73d729d1f64db62e5a8882d80
2011-09-16 18:24:47 -07:00
Adam Powell
4b86788003 Bug 5244365 - Prevent views from receiving multiple onAttachedToWindow
calls.

If a View is added to a ViewGroup during the ViewGroup's
onAttachedToWindow method, the child can receive two calls to
onAttachedToWindow. Guard against this.

Change-Id: I845d0cb2c9172071eee1eadc6bc2dd282ee0ef43
2011-09-16 13:01:01 -07:00
Dianne Hackborn
4f59f8be0e Fix issue #5300880: setSystemUiVisibility() always triggers a surface reallocation
Change-Id: Ia0a9d8acba6b62ef095e4c615099466c52eec8e4
2011-09-15 15:27:59 -07:00
Dianne Hackborn
df82905cf3 Merge "Update the public APIs for finding views by text to optionally use content description." 2011-09-14 22:33:54 -07:00
Jeff Brown
93578af23e Merge "Velocity Tracker II: The Revenge of Velocity Tracker Bug: 5265529" 2011-09-14 21:27:25 -07:00
Svetoslav Ganov
ea515aeafa Update the public APIs for finding views by text to optionally use content description.
1. Added flags to the search method to specify whether to match text or
   content description or both.

2. Added test case for the seach by content description.

3. Updated the code in AccessibilityManager service to reflect the latest
   changes there so test automation service works - this is the fake
   service used for UI automation.

Change-Id: I14a6779a920ff0430e78947ea5aaf876c2e66076
2011-09-14 19:40:33 -07:00
Dianne Hackborn
ec537457cd Fix issue #5155678: Portrait > Landscape full-screen transition...
...mode cuts off screen rendering

The code for limiting application window sizes to not include the
navigation bar was dead.  Now it is back.

Change-Id: Ic0bde56e3300fd0d9d225e19d8de2766d07e8780
2011-09-14 19:19:55 -07:00
Jeff Brown
b59ab9f41f Velocity Tracker II: The Revenge of Velocity Tracker
Bug: 5265529

Rewrote the velocity tracker to fit a polynomial curve
to pointer movements using least squares linear regression.
The velocity is simply the first derivative of this polynomial.

Clients can also obtain an Estimator that describes the
complete terms of the estimating polynomial including
the coefficient of determination which provides a measure
of the quality of the fit (confidence).

Enhanced PointerLocation to display the movement curve predicted
by the estimator in addition to the velocity vector.

By default, the algorithm computes a 2nd degree (quadratic)
polynomial based on a 100ms recent history horizon.

Change-Id: Id377bef44117fce68fee2c41f90134ce3224d3a1
2011-09-14 19:16:37 -07:00
Dianne Hackborn
1f903c3b57 Fix issue #5283365: Rotating the device to portrait mode, hides the keyboard partly
PhoneWindowManager now takes full responsibility for deciding where the
navigation bar goes.  This gets rid of a bunch of race conditions with
determining layout while the nav bar is moving itself at the same time
the window manager is computing a new configuration.

Note that this breaks the "nav bar on left" option.  The current nav
bar code could also be cleaned up some more to completely drive its
behavior based on onSizeChanged() happening during relayout.

Change-Id: I1651d74c3464ba0d588aab3049e099c78420146a
2011-09-14 17:56:40 -07:00
Christopher Tate
ff87be5966 Merge "Fix bug 5297302 - Remember to release surface after starting drag" 2011-09-13 14:28:05 -07:00
Dianne Hackborn
180c48489f Fix issue #5309443: Ninjump crashes on boot with...
...java.lang.IllegalArgumentException: Window type can not be
changed after the window is added

Change-Id: I4e34622c99d721fa214fd534a9bbfc8006184770
2011-09-13 12:39:25 -07:00
Christopher Tate
8f73b5dfac Fix bug 5297302 - Remember to release surface after starting drag
Forgetting to release it was "safe" in that GC would eventually
tidy it up anyway, but in the meantime it was possible for a user to
do lots of drag operations, racing ahead of the progress of the garbage
collector, and wind up with drags failing because we'd run out of
surface slots due to all the piled up stale drag shadows.

Change-Id: I7ac93b13cc9996dda04a404571fbc44cb4314694
2011-09-12 18:33:45 -07:00
Dianne Hackborn
ab0f485e64 Fix problems where we were allocating TypedArray when not needed.
Fixes up some recycling of TypedArray objects to reduce the
number we need to allocate during inflation etc.

Change-Id: I948dccc052997779001eaa99db2a710b04be01ae
2011-09-12 17:04:32 -07:00
Svetoslav Ganov
bd5c9768c4 Merge "Adding accessibility delegate mechanism for backwards compatibility support." 2011-09-12 16:58:13 -07:00
Svetoslav Ganov
031d9c1389 Adding accessibility delegate mechanism for backwards compatibility support.
1. Added an AccessibilityDelegate class in View which can be set by
   a client that wants to cutomize accessibility behavior via
   composition as opposed to inheritance. Insead overriding a new method in
   View thus being bound to the API version that introduced this
   method a developer can conditionally inject the accessibility
   customization if the platform API version is heigh enough. The
   developer will have to override the method of interest of the
   delegate. The default implementation of the delegate methods is
   the same as that of View in the case that there is no delegate
   set. If a delegate is set calling an accessibility related method
   on View will be handed off to the corresponsing method of the
   delegate.

bug:5259555

Change-Id: I00e750e22e5e7164a1b571cb3d12ecaf4ab93db4
2011-09-12 15:42:19 -07:00
Dianne Hackborn
fe75cb342e Merge "Fix inflating of animations." 2011-09-11 13:07:24 -07:00
Chet Haase
6a6977e872 Merge "Fix 5266335: bad DIRTY/invalidation logic" 2011-09-11 12:58:45 -07:00
Dianne Hackborn
8962028b6e Fix inflating of animations.
Need to define attributes for animation set, to have correct indices.

Also small fixes elsewhere.

Change-Id: If596147e8aee4ebffe4e184872070341eff6df73
2011-09-11 12:47:45 -07:00
Chet Haase
f186f30a7c Fix 5266335: bad DIRTY/invalidation logic
The DIRTY flag is used to track which elements of the view hierarchy need
to be redrawn on the next drawing operation. This flag is set on the parent
hierarchy of a view when that view is invalidated. There is an optimization for
opaque views that tells the parent that it is dirty, but that it need not
redraw its own content because the view will cover it (since it is opaque).

This dirty-opaque logic breaks down in the current code because we only set
these dirty flags on the parent hierarchy, not on the view itself. In the situation
raised by this bug, we would invalidate the parent container directly (which does
not case the dirty flag to be set), then we would invalidate a child of that view.
Because the child is opaque, the DIRTY_OPAQUE flag would be set on the parent
container. This would cause us, in the later rendering process, to skip the
drawing on that parent container, assuming that it was only asked to be redrawn
because of its opaque child's invalidation.

The fix is to now set the DIRTY flag on an invalidated view, not just on its parent
hierarchy. The DIRTY_OPAQUE logic will avoid setting the opaque flag on views/parents
that are already marked DIRTY, thus an invalidated parent will be correctly drawn
during the drawing process.

Change-Id: Ib5e014a125a4f5168f6a5a3166e941474659aca5
2011-09-11 11:06:06 -07:00
Svetoslav Ganov
fd19906b50 Merge "Inter process interrogation ocassionally gets stuck." 2011-09-09 18:57:35 -07:00
Svetoslav Ganov
6bc5e53001 Inter process interrogation ocassionally gets stuck.
1. There was a bug that was not handling correctly the
   case for which the interrogator requests an accessibility
   node info and the message describing how to fetch the
   latter for the same process case was delivered after the
   code that checks whether the message is there in order to
   dispatch it is executed. Now the message handling is done
   correctly - the caller checks if the message is present and
   if so processes it, otherwise the caller sleeps and is
   interrupted if such a message arrives.

bug:5138933

Change-Id: I4c2940b46c9a52a51c5ee48b83ca6811489765d6
2011-09-09 18:52:26 -07:00
Romain Guy
1ef3fdbe04 Go faster!!!!
The less we do, the faster we draw.

Change-Id: I7bbc3908b36d8ae295ea3e61ef71fd9ee2187970
2011-09-09 15:34:49 -07:00
Dianne Hackborn
7b8d7cb59c Merge "Pull animation attributes out of main view class." 2011-09-09 15:27:44 -07:00
Dianne Hackborn
ddb715b238 Pull animation attributes out of main view class.
These are now in a separate class that is only allocated when
needed by the view.

Change-Id: I9601bb43b3b4bfdabd982b02f7cd7534437b8ac3
2011-09-09 14:43:39 -07:00
Jeff Brown
1d50a2c068 Merge "Adjust layers for system overlays." 2011-09-09 11:06:25 -07:00
Ken Wakasa
8b83a72976 Fix a bug in InputMethodSubtype constructor
bug: 5249480

Change-Id: I707e45cc0606dae7824c478ab586fc24d3f417f8
2011-09-09 20:56:29 +09:00
Jeff Brown
bfcb60ab0f Adjust layers for system overlays.
Prevent system overlays from showing above the notification bar.

Allow secure system overlays to be fullscreen, for the pointer
location view.

Show the drag layer above the notification bar.

Change-Id: Ic8d663792a243cca2cd9952d241d001e0357d551
2011-09-08 18:53:42 -07:00
Romain Guy
e080af3754 Save/restore display lists' canvas properly
Change-Id: Ic016f0215f9fe5c67af98f059ecce4ed94994810
2011-09-08 15:05:26 -07:00
Svetoslav Ganov
aacbf9111b Merge "Not visible view should not be announced or interacted with." 2011-09-07 18:24:25 -07:00
Svetoslav Ganov
0b0a41d8e2 Not visible view should not be announced or interacted with.
1. Some invisible views' text was reported by accessibility events.

2. Accessibility actions could have been perfromed on invisible views.

bug:5264355

Change-Id: I68184fb436a3e10e947ec6f1eae02aa3d0d1cb7f
2011-09-07 18:06:06 -07:00
Fabrice Di Meglio
e3238c9805 Merge "Code cleaning" 2011-09-07 16:46:24 -07:00
Adam Powell
8fc54f9b28 Fix build
Change-Id: I9efe13a7647088402c6759399a96de7831df964b
2011-09-07 16:43:53 -07:00
Fabrice Di Meglio
2b04cef9b4 Code cleaning
- removing CharCount TextDirectionHeuristic references

Change-Id: I8cdc03b0d7bd610c7b8224073ffedd89b8953c63
2011-09-07 16:37:13 -07:00
Fabrice Di Meglio
b6e43268f9 Merge "Hide RTL related APIs" 2011-09-07 16:14:41 -07:00
Fabrice Di Meglio
2273b1e4ea Hide RTL related APIs
Change-Id: Idda458fcdebe7afeb9b95e328e552fcbc7939157
2011-09-07 16:06:49 -07:00
Chet Haase
a7e88d688b Merge "Add end functionality to LayoutTransition" 2011-09-07 14:59:52 -07:00
Chet Haase
36d3b9ddc4 Merge "Clarify AnimationSet docs and behavior" 2011-09-07 14:40:29 -07:00
Chet Haase
d56c695175 Add end functionality to LayoutTransition
This new hidden API is called by ViewRootImpl when there is a pending
transition but the parent window is not visible.

Change-Id: Idd6a0959b391fae542e675e8740b6a16f8963678
2011-09-07 10:51:00 -07:00
Chet Haase
3791dc9b1c Merge "Fix issue with LayoutTransition on non-visible windows." 2011-09-06 22:36:13 -07:00
Chet Haase
61158c621d Fix issue with LayoutTransition on non-visible windows.
There's a problem with how LayoutTransition cleans up after itself
when the target view is in a Window that is not on the screen.
The quick fix is to always start (and therefore properly end and clear)
transitions, regardless of whether the window is in the tree.

Change-Id: I23f4f4f04176f3943e5c6e1d78acba0190a96930
2011-09-06 22:19:45 -07:00
Romain Guy
2b72d93ce3 Merge "Don't destroy a window's buffers when moving it" 2011-09-06 17:02:43 -07:00