Commit Graph

3367 Commits

Author SHA1 Message Date
Jeff Brown
c69238ebc8 Merge "Remove dithering support." 2012-07-16 16:18:13 -07:00
Jeff Brown
3cc321ecf5 Remove dithering support.
The dithering flag is no longer implemented in Surface Flinger
so this is all dead code.

Change-Id: I74c0e452923207e5b7cfe0eeca9457e5cb990947
2012-07-16 16:17:25 -07:00
Jeff Brown
abae83d155 Merge "Remove freeze(), unfreeze() and setFreezeTint()." 2012-07-16 15:53:00 -07:00
Jeff Brown
f422a56694 Merge "Remove freezeDisplay(), which is no-op." 2012-07-16 15:52:54 -07:00
Jeff Brown
ef4e817ad6 Remove freeze(), unfreeze() and setFreezeTint().
This is all dead code.

Change-Id: Ia8a3068606bfe277a16cde5690f47996657863e8
2012-07-16 15:02:49 -07:00
Jeff Brown
55e395ab33 Remove freezeDisplay(), which is no-op.
Change-Id: I981ee49e6e2d41a09feaee4b384392e83f7faf3d
2012-07-16 14:57:22 -07:00
Svetoslav Ganov
c9c9a48e7b Removing a workaround for incorrect window position on window move.
1. The window manager was not notifying a window when the latter
   has been moved. This was causing incorrect coordinates of the
   nodes reported to accessibility services. To workaround that
   we have carried the correct window location when making a
   call from the accessibility layer into a window. Now the
   window manager notifies the window when it is moved and the
   workaround is no longer needed. This change takes it out.

2. The left and right in the attach info were not updated properly
   after a report that the window has moved.

3. The accessibility manager service was calling directly methods
   on the window manager service without going through the interface
   of the latter. This leads to unnecessary coupling and in the
   long rung increases system complexity and reduces maintability.

bug:6623031

Change-Id: Iacb734b1bf337a47fad02c827ece45bb2f53a79d
2012-07-16 08:46:11 -07:00
Chet Haase
87e8b25ea3 Merge "Remove redundant computeScroll() call for hw-accelerated views" 2012-07-13 07:39:41 -07:00
Romain Guy
401b1f8574 Merge "Remove obsolete optimization" 2012-07-12 18:02:37 -07:00
Romain Guy
f877308f77 Remove obsolete optimization
Change-Id: I2d43c009c62a7f4a4a2e0a6303bdfa692c4b8c8c
2012-07-12 18:01:00 -07:00
Chet Haase
526057bc77 Remove redundant computeScroll() call for hw-accelerated views
View.draw() calls computeScroll() to initialize scrolling values correctly.
But getDisplayList() also calls computeScroll() for the same reason, resulting
in 2 calls to that method for hw-accelerated views.
Fix: avoid calling computeScroll() in View.draw() for views with display lists.

Change-Id: I57a3862e2d554752cd0fdb862513cbb3dfb3105c
2012-07-12 17:50:41 -07:00
Jeff Brown
c643ca97a8 Merge "Fix bug in IME handling of pending key events." 2012-07-12 16:18:50 -07:00
Jeff Brown
2499bbecc2 Fix bug in IME handling of pending key events.
Bug: 6812529
Change-Id: I7195a4346d44d65a79969a1bb5daa3bb8a018600
2012-07-12 16:14:37 -07:00
Romain Guy
f0af1d5cb2 Remove unused View.flushLayer() API
Change-Id: I5d4c7388afb5265964ab6b769cc0abfee9745c84
2012-07-11 18:31:21 -07:00
Romain Guy
7d3082a3f0 Update View's opacity when changing the background color
Change-Id: Ib5851d47918c99d4906055a9d0245ea100aee231
2012-07-11 17:52:54 -07:00
Romain Guy
4c9dfc4da9 Merge "Update layers' opaque property when needed" 2012-07-11 17:48:34 -07:00
Romain Guy
846a533945 Update layers' opaque property when needed
Before this change, changing a View's opacity would not be reflected
by hardware layers. This could cause layers to retain their previous
opacity.

Change-Id: Iba2c8b4242deca021651df9324cc7c585a64653d
2012-07-11 17:44:57 -07:00
Craig Mautner
fbf885b652 Merge "Notify client side of window movement." 2012-07-10 14:48:06 -07:00
Fabrice Di Meglio
905bd36951 Merge "Make ScrollBar widget aware of layout direction" 2012-07-10 11:16:24 -07:00
Fabrice Di Meglio
55aeca913f Merge "Improve resolution of inherited layout direction" 2012-07-10 11:15:35 -07:00
Fabrice Di Meglio
15d03bf2a6 Merge "Fix MarginLayoutParams resolution" 2012-07-10 11:15:15 -07:00
Svetoslav Ganov
fd8d9c4c0a AccessibilityNodeInfo bounds in screen incorrect if application scale not one V2.0.
1. If the application does not accommodate different screen density the
   system applies an application scale equal to the device density over
   the a default density. The AccessibilityNodeInfo coordinates were not
   reported after applying the compatibility scale, therefore the bounds
   in parent and screen were not as perceived by the user.

bug:6764586

Change-Id: Id9de3de885210d0725d1f3fde38e769b0cfd12a7
2012-07-09 18:19:46 -07:00
Fabrice Di Meglio
69bd55844b Fix MarginLayoutParams resolution
- need to keep initial left/right values for correct resolution

Change-Id: Ia8d0fec7d3c427086b7b5898e544e369b2de4229
2012-07-09 17:34:30 -07:00
Chet Haase
05e91ed5a7 Force invalidates on non-visible views to traverse the hierarchy
An optimization prunes invalidates on views which are not inside their
parent's bounds. This works in most cases, but it is possible to run
a situation where a view has been invalidated (and is thus waiting to
be redrawn), but the pruning logic ensures that that draw call
will not happen. Further, when/if the view comes into the bounds
of its parent again, it may still not be redrawn, because now future
invalidates on the view are noop'd because it is already in an invalidated
state (and thus will not propagate invalidates up the hierarchy).

The fix is to remove the optitmization. This will cause some overhead
sending the invalidation request up to the view root, but this
overhead is minimal (and only extra for cases of out-of-bounds views),
and the more expensive part of rendering these views will still not be done
since the view root will avoid re-drawing the hierarchy when the dirty
rectangle is empty.

Issue #6773607 Layered views animating from offscreen sometimes remain invisible

Change-Id: Ia2c1a2b9d3e7f267253cb325ccceff1e7fdbe8bd
2012-07-09 08:34:01 -07:00
Svetoslav Ganov
9dc2cc53ac Merge "AccessibilityNodeInfo bounds in screen incorrect if application scale not one." 2012-07-03 21:11:35 -07:00
Svetoslav Ganov
983119ab22 AccessibilityNodeInfo bounds in screen incorrect if application scale not one.
1. If the application does not accommodate different screen density the
   system applies an application scale equal to the device density over
   the a default density. The AccessibilityNodeInfo coordinates were not
   reported after applying the compatibility scale, therefore the bounds
   in parent and screen were not as perceived by the user.

bug:6764586

Change-Id: Iae2d6ea81049364194c7cb09df2240b5eda3d939
2012-07-03 21:04:14 -07:00
Svetoslav Ganov
a0fd78897c Merge "Remove the accessibility focus search code." 2012-07-03 11:29:54 -07:00
Svetoslav Ganov
7a82b2be06 AnnounceForAccessibility is broken for any view that has a ContentDescription.
1. The purpose of the View#announceForAccessibility method is to
   give a message to the user that is not related to a predefined
   view state change. The current implementation is grabbing the
   source view's content description which in general overrides
   the event text which defeats the purpose of the announcement.

bug:6721440

Change-Id: I8814914bea38c5f4c04f57391a64cf2bb06cb975
2012-07-02 18:42:53 -07:00
Svetoslav Ganov
27e2da7c17 Remove the accessibility focus search code.
1. In JellyBean we have added some APIs to search for next accessibility
   focus in various directions and set accessibility focus from hover.
   However, we have decided that there is not clean answer for how this
   should behave and the APIs were hidden. Now the accessibility service
  is responsible for that. The unused code is now taken out.

2. This patch also takes out the hidden attribute accessibiligyFocusable
   since we moved the responsibility for implementing focus search strategy
   to accessibility services and we did not need that for Jellybean which
   is a good sign that this is not needed. I general this is one less thing
   for an app developer to worry about. We can add this if needed later.

bug:6773816

Change-Id: I0c858d72c93a2b7ff1f8f35a08d33ec4b9eb85fd
2012-07-02 18:21:31 -07:00
Craig Mautner
5702d4dfb5 Notify client side of window movement.
Add a one way method to notify Views that the window has moved
on the screen. Fixes issues arising from the IME popping up and
translating the window that uses it. Accessibility was left unaware
of these movements and was drawing the box around the wrong widgets.
Similarly PopupWindow used getLocationOnScreen to determine how
much screen real estate was above and below the anchor point to
determine where to put an anchored window.

Fixes bug 6623031.

Change-Id: I4731a94d5424c1ec77bf1729fba8fc9ea34cae46
2012-06-30 14:10:16 -07:00
Michael Jurka
4efade8a85 Merge "Removing setChildrenLayersEnabled" 2012-06-29 12:57:26 -07:00
Michael Jurka
ba64974141 Removing setChildrenLayersEnabled
Change-Id: I88d8228eadb59160648f2c4e131fcd85945f2109
2012-06-28 19:15:20 -07:00
Fabrice Di Meglio
b93911f2e0 Improve resolution of inherited layout direction
allow to resolve it even more lazily: if resolution is asked then do it
only if possible (the View needs to have a parent that can also do its
resolution)

Change-Id: I8e808f0ef392521e59b27b82f86e9058f20af9ba
2012-06-27 16:13:52 -07:00
Dianne Hackborn
a4b7f2f75e Use two fingers to work some magic...
Change-Id: Ibcb3dbd3d158c22da8277e544d81fb47eadccd49
2012-06-25 19:19:15 -07:00
Jean-Baptiste Queru
41e6e0c49f am c34188a9: resolved conflicts for merge of f8f76d52 to jb-dev-plus-aosp
* commit 'c34188a95405526416325604386af4f48ba20918':
  Add the possibility to modify the View focus rect
2012-06-23 07:13:25 -07:00
Jean-Baptiste Queru
c34188a954 resolved conflicts for merge of f8f76d52 to jb-dev-plus-aosp
Change-Id: I83beeb45320de2c3fc3a00c2f5cd86a17ac1dc9f
2012-06-23 07:08:59 -07:00
Fabrice Di Meglio
c91b6ca442 Make ScrollBar widget aware of layout direction
- see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi)
- also use isLayoutRtl() for being more concise

Change-Id: Ibf861333effdc646398fcd9354d96f2156550607
2012-06-22 14:51:15 -07:00
Romain Guy
eb129a266c am 16613476: am 0d6f4c06: Dejank: don\'t allocate when scrolling lists
* commit '16613476c80f20736ef6bd3d217ab56aa57b03c9':
  Dejank: don't allocate when scrolling lists
2012-06-21 12:03:58 -07:00
Romain Guy
0d6f4c06df Dejank: don't allocate when scrolling lists
The new display list properties introduces in JB were causing numerous
and expensive memory allocations while scrolling lists. During a scroll
ListView sometimes attempts to apply an offset to views before they are
drawn for the first time. This had the side effect of generating a new
IllegalStateException and its entire stack trace. The exception was
caught inside the display list and never seen by users.

Generating an exception is very expensive both in terms of allocated
memory and CPU time spent crawling the stack.

List scrolls/flings are a common case of this issue but it also happens
during various types of animations. A simple alpha animation, for instance,
can cause the problem to occur.

Another side effect of this issue is more frequent and longer GC pauses.

Change-Id: Ic1b37cc84f7c8f290209cfb990d030e96d6e0dc7
2012-06-21 00:39:35 -07:00
Romain Guy
c63c7bf944 am b56fe8ab: am f96d117e: Merge "Add extra systrace tracing" into jb-dev
* commit 'b56fe8abf6735337b65e050f44e1baf2f3f813ed':
  Add extra systrace tracing
2012-06-19 18:43:31 -07:00
Romain Guy
f96d117e9b Merge "Add extra systrace tracing" into jb-dev 2012-06-19 18:39:08 -07:00
Romain Guy
77e67cf905 Add extra systrace tracing
This change shows how much time is spent updating and executing
framework display lists within a frame.
This change also fixes a crash that happnes if you attempt to
perform a dumpsys gfxinfo while the app is drawing (we are telling
developers to use this new tool.)

Change-Id: Ia4047a78a42b545ab77176ef4f371c300686548c
2012-06-19 18:21:06 -07:00
Chet Haase
73b21cfa50 am 3662fe5e: am ebc9d317: Merge "Handle non-started LayoutTransition animations correctly" into jb-dev
* commit '3662fe5e3507ada2a592b8df6120b8cebfb5d8d9':
  Handle non-started LayoutTransition animations correctly
2012-06-19 16:03:36 -07:00
Chet Haase
ddbb346e5a Handle non-started LayoutTransition animations correctly
A recent change to LayoutTransition noop'd animations in non-visible
parents, to avoid artifacts like scaling/moving from (0,0,0,0). But there
was logic in ViewGroup that didn't account for transitions that didn't actually
run an animation, causing a disconnect between the state of a parent (getting ready
to remove an item later) and the state of the transition (not running, therefore
not needing the child to be removed later).

The fix was to detect when the transition did not start and avoid adding the
view to the list of children to be removed later.

Issue #6602502 Playing video through crackle application only audio is heard no video is displayed

Change-Id: Id5260580ab0d6dd165c62006c7bd579fd821a5f5
2012-06-19 15:39:16 -07:00
Jean-Michel Trivi
629f051f7d am 586b8ee6: am 2f442304: Merge "Remote volume handling" into jb-dev
* commit '586b8ee62e0245e3c88ce9db51e1c1c3b4f1fb2c':
  Remote volume handling
2012-06-19 10:59:15 -07:00
Jean-Michel Trivi
2f4423043f Merge "Remote volume handling" into jb-dev 2012-06-19 10:54:32 -07:00
Jean-Michel Trivi
3114ce3861 Remote volume handling
Extend RemoteControlClient class to enable an applicaton to
 specify more information about how it's playing media, now covering
 usecases where media playback happens "remotely". This playback
 information can be used to set the volume and maximum volume
 used remotely.
Declare a new intent and associated extras in Intent,
 ACTION_VOLUME_UPDATE, so an application can be notified that
 the volume it handles should be updated. It can then use
 the new RemoteControlClient.setPlaybackInformation() method
 to notify AudioService what the volume is.
Extend AudioService to maintain playback information associated
 with the RemoteControlClient information in the stack of
 media button event receivers (mRCStack). The information
 about the active remote is cached so the stack doesn't have
 to be iterated over in order to retrieve remote playback info.
 Events to "adjust" the remote volume based on hardware key
 presses cause the client application to be notified of
 volume updates, and the volume panel to display the volume
 set by the app.
 Revise which stream type is controlled when none is specified
 according to latest guidelines for remote playback.
Update VolumePanel class to support a new pseudo stream type,
 AudioService.STREAM_REMOTE_MUSIC, that corresponds to the
 remote playback volume, and uses the new "media route" icon.
 Enable it to receive asynchronously new volume values for
 the remote that will be displayed if the UI is still up,
 and ignored otherwise.
 Now supports hiding/showing sliders dynamically so remote
 volume only appears when AudioService has a remote control
 client handling remote volume.
Define new java symbols for the two media route icons.
Modify lockscreen behavior: don't automatically control music
 volume when music is active, consider also remote playback.

Still to do:
- playback information set by RemoteControlClient should post
  a message for AudioService to update playback information
  instead of updating it synchronously

Change-Id: I557aa687239f9acfe33a609f05876c67fa7eb967
2012-06-18 18:37:17 -07:00
Scott Anderson
fce27d8edd Merge "Clean up IntToStrings for window TYPE_*" 2012-06-18 12:57:05 -07:00
Svetoslav Ganov
c32b2091d6 am 45c4a8df: am ec7c7ebf: Merge "API for finding accessibility focus in virtual tree not needed." into jb-dev
* commit '45c4a8df9487f53af37ded1f5a1ebe500e89b493':
  API for finding accessibility focus in virtual tree not needed.
2012-06-18 11:33:33 -07:00
Svetoslav Ganov
ec7c7ebf01 Merge "API for finding accessibility focus in virtual tree not needed." into jb-dev 2012-06-18 11:27:44 -07:00