Commit Graph

3335 Commits

Author SHA1 Message Date
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
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
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
Adam Powell
9471faf5dc am 8f695c52: am 706a8699: Merge "Make MediaRouter UI more robust around route count changes" into jb-dev
* commit '8f695c525f5baa623a8b951bd3a1fd2b5efd1ceb':
  Make MediaRouter UI more robust around route count changes
2012-06-18 10:49:53 -07:00
Jeff Brown
91a5f4bef5 am 79476980: am d7a04de1: Capture window manager\'s last ANR state in bug report.
* commit '7947698096d4b09bb0f662fdca89cfa5d475743e':
  Capture window manager's last ANR state in bug report.
2012-06-18 10:49:50 -07:00
Adam Powell
7e8aac14c3 am bb20575f: am 130b4572: ActionProvider API update
* commit 'bb20575f85ada8ccdacefc53f0da7e00fdf12a16':
  ActionProvider API update
2012-06-18 10:49:41 -07:00
Jeff Brown
a2f0fc1e68 am 4440d158: am 5aa02e20: Merge "Revert "Synthesize fake vsyncs when the screen is off."" into jb-dev
* commit '4440d158b88f948ced442797baffad35743406af':
  Revert "Synthesize fake vsyncs when the screen is off."
2012-06-18 10:49:32 -07:00
Svetoslav Ganov
041982bf50 am 11832db4: am 531d5866: Merge "Accessibility focus search and setting it from hover are performed by the client." into jb-dev
* commit '11832db437d04d71dec9a78382138b2dd6518e37':
  Accessibility focus search and setting it from hover are performed by the client.
2012-06-18 10:49:25 -07:00
Adam Powell
706a869900 Merge "Make MediaRouter UI more robust around route count changes" into jb-dev 2012-06-17 19:32:07 -07:00
Jeff Brown
d7a04de167 Capture window manager's last ANR state in bug report.
Currently just grabbing the window state but we could grab
other things as part of the last ANR report.

Bug: 6680398
Change-Id: I23aa70907b1bdcb21c8acc556fde196ca790ef6a
2012-06-17 15:55:46 -07:00
Svetoslav Ganov
45a02e0809 API for finding accessibility focus in virtual tree not needed.
1. The function for finding where the accessibility focus in a virtual
   node tree presented by an AccessibilityNodeProvider is not needed
   API since the framework already keeps track of the accessibility
   focused virtual node in order to draw the focus rectangle. This API
   adds unnecessary complexity to developers of AccessibilityNodeProviders.

bug:6675330

Change-Id: I84774686b06a995073a39e45b8ef22f2cd04b773
2012-06-17 15:07:38 -07:00
Adam Powell
39d5c61725 Make MediaRouter UI more robust around route count changes
Improve the API around ActionProvider visibility overriding. Allow the
application to notify whatever is hosting the ActionProvider that
visibility has changed in a way that is friendly to alternate support
library-style reimplementations of MenuItem.

Allow MediaRouter.Callback implementations to add or remove themselves
or other Callbacks during dispatch of callback events.

Make MediaRouteActionProvider track the visibility of corresponding
menu items more accurately.

Change-Id: Ic7ddb6a87c3637904750d2661e4a9fa323b09ea0
2012-06-16 14:49:13 -07:00
Adam Powell
130b4572d1 ActionProvider API update
* Add ActionProvider#overridesItemVisibility and isVisible.
  These methods allow an ActionProvider to override the
  visibility of a MenuItem that it is bound to. If a MenuItem
  has been explicitly hidden by the application, it will not
  be visible.

* Change MediaRouteActionProvider to not require a MediaRouter
  callback, to avoid extra lifecycle management headaches.

Change-Id: I606fa98b3a6a3e60a953dd024274f9bf9c67acdd
2012-06-15 20:19:29 -07:00
Jeff Brown
5aa02e2018 Merge "Revert "Synthesize fake vsyncs when the screen is off."" into jb-dev 2012-06-15 15:30:40 -07:00
Svetoslav Ganov
531d5866d8 Merge "Accessibility focus search and setting it from hover are performed by the client." into jb-dev 2012-06-15 15:00:43 -07:00
Svetoslav Ganov
8ffe8b304e Accessibility focus search and setting it from hover are performed by the client.
1. Currently we are providing accessibility focus search algorithm in the
   framework and we are also setting accessibility focus from hover. It
   appears that implementing a focus search strategy that works for all
   accessibility services is non trivial task if feasible. Based on
   feedback from the developers of two such services at Google - TalkBack
   and BarilleBack - the built in focus search does not quite match what
   they need and they would like to implement a custom strategy.

   Hence, having APIs for accessibility focus search in the framework does
   not make. Therefore, we are hiding this APIs and later will take out the focus
   search logic and allow the accessibility service to implement search.

   Also putting accessibility focus from hover is tightly integrated with
   the focus search since the set of views that get accessibility focus
   from hover should be the same as the set of views returned by the
   focus search routine. Therefore, we are letting the accessibility service
   decide where to put accessibility focus when it gets an accessibility
   hover event.

bug:6675330

Change-Id: Ie152230990a6602f3fd1d82de2177d0b1444d654
2012-06-15 10:50:23 -07:00
Jeff Brown
ba726113e5 Revert "Synthesize fake vsyncs when the screen is off."
This reverts commit 858491ba13

It turns out that Surface Flinger is supposed to generate fake vsyncs while the screen is off, but sometimes it wasn't working due to a bug.  That bug has now been fixed by the following change: I7c6abc23bb021d1dfc94f101bd3ce18e3a81a73e
2012-06-14 23:48:40 -07:00
Jeff Brown
84ce6565b0 am 655410e7: am 5c74bca4: Merge "Synthesize fake vsyncs when the screen is off." into jb-dev
* commit '655410e7b3c79bb705aaba0bdfc77ecdaa25d4ca':
  Synthesize fake vsyncs when the screen is off.
2012-06-14 21:34:39 -07:00
Jeff Brown
5c74bca49a Merge "Synthesize fake vsyncs when the screen is off." into jb-dev 2012-06-14 21:30:49 -07:00
Jeff Brown
858491ba13 Synthesize fake vsyncs when the screen is off.
When the screen is off, we might not receive real vsync pulses from
the hardware which would cause posted Choreographer callbacks to not run.
This is bad because messages in the Looper might be blocked behind a barrier
that is scheduled to be removed by one of those Choreographer callback
(see ViewRootImpl.doTraversals).  Until the barrier is removed, those messages
will not run.  To prevent starvation of the Looper, we synthesize fake vsync
pulses at a reduced rate whenever the display hardware stops generating them.

This change should fix a variety of rare non-deterministic bugs where
the system might appear to be unresponsive while the screen is off,
and spurious ANRs reported shortly after the screen is turned back on.

Bug: 6574842
Bug: 6636995
Bug: 6643559
Change-Id: I263f2fdf979afd79e5ac47a0cc5d34a93b860c21
2012-06-14 20:33:42 -07:00
Jeff Brown
04ddf3c050 Allow applications to recover from IME related ANRs.
Timeout after 2.5 seconds.

Because communication with an IME occurs asynchronously
using oneway binder calls, it's possible for an input event
that was delegated to the IME to be dropped on the floor.
When this happens, the app (not the IME!) will get blamed
for the problem and will ANR forever.

Even if an event is not dropped on the floor, we should
eventually time out event dispatch to the IME if it's
being too slow.

This patch implements a timeout on all events delegated
to the IME.  When the timeout expires, the event is marked
as having not been handled by the IME and the application
gets a crack at it.  We also write a message to the log when
this occurs.

Ensure that we do not invoke the event finished callback
while holding the InputMethodManager's lock to avoid
potential deadlocks.

Fixed a minor bug where the InputMethodManager would not
remember the id of the current input method.  This caused
the log messages and dumpsys state to print "null" as the
current input method id.

Bug: 6662465
Change-Id: Ibb3ddeb087ee6998996b0b845134e16a18aa3057
2012-06-14 16:32:12 -07:00
John Reck
f2361156c4 Fix doc link
Change-Id: I5d2e6f04ed0ece6bf66b0b969c345108a1d372c5
2012-06-14 15:54:59 -07:00
Romain Guy
01b76dcbdd am 06116b08: am a989b334: Merge "Don\'t create a giant layer for all notifications Bug #6642475" into jb-dev
* commit '06116b08dad51923672dde2d884baf0e0dc70d2e':
  Don't create a giant layer for all notifications Bug #6642475
2012-06-14 14:51:30 -07:00
John Reck
e526f14e3b Merge "Show WebView layers in hierarchyviewer" 2012-06-14 14:42:40 -07:00
Romain Guy
a989b334fd Merge "Don't create a giant layer for all notifications Bug #6642475" into jb-dev 2012-06-14 14:32:07 -07:00
Romain Guy
54ab347fdd Don't create a giant layer for all notifications
Bug #6642475

When expanding the status bar, create one layer per notification instead of
a single giant layer for the pile of notifications. This prevents layer
creation failure when the total height of the notifications is larger
than the maximum allowed texture size in OpenGL ES 2.0.

This change only enables layers on notifications that will be visible
once the notification area is fully expanded.

Change-Id: I3c791a66cf5ac0973f3a65cfcd84b95209d580f3
2012-06-14 14:25:08 -07:00
John Reck
926cf56676 Show WebView layers in hierarchyviewer
Change-Id: I373e084d236baafe17982cfc367d167b81ca3e20
2012-06-14 14:01:20 -07:00
Jeff Brown
2c89d171fa am fc959a38: am 9e197141: Merge "Add new ASSIST key and map it to the global assist intent." into jb-dev
* commit 'fc959a389564f2ffef9c4ceba0b1ff119dd53933':
  Add new ASSIST key and map it to the global assist intent.
2012-06-14 11:40:10 -07:00
Jeff Brown
de7a8ead24 Add new ASSIST key and map it to the global assist intent.
Moved some duplicate code from SearchPanelView and LockScreen
over to SearchManager to avoid creating yet another copy of it
in PhoneWindowManager.

Bug: 6594275
Change-Id: Ib4ebcd6817639d17548952ab2ce7cb876c05777c
2012-06-14 04:16:26 -07:00
Chris Craik
14584f1b6d am 06d6204a: am d772c487: Merge "Fix attachFunctor path to ignore delay" into jb-dev
* commit '06d6204a2ea7dd263b718018dbb81a88b9a516d5':
  Fix attachFunctor path to ignore delay
2012-06-13 10:49:02 -07:00
Chris Craik
d772c4878e Merge "Fix attachFunctor path to ignore delay" into jb-dev 2012-06-13 10:34:59 -07:00
Chris Craik
cb82b942c8 Fix attachFunctor path to ignore delay
Don't defer functor invocation when calling attach functor directly.

bug:6653638

Change-Id: Ifffc027df16612f380f39b82b7d0a4411d53b4ea
2012-06-12 17:55:18 -07:00
Romain Guy
95fc7a246f Merge "Remove ViewTreeObserver allocations" 2012-06-12 15:27:06 -07:00
Romain Guy
c39ed4a6e5 Remove ViewTreeObserver allocations
A couple of allocations remain to handle possibly recursive listeners.

Change-Id: I72fd271c2fc4f4ad427a27e0665f780cae117aea
2012-06-12 15:23:52 -07:00
Dianne Hackborn
5ef59976b1 am f59467b3: am aabd9c23: Merge "Fix issue #6634325: View.setKeepScreenOn and..." into jb-dev
* commit 'f59467b3d6c5df8bf90de799e212275e5c26de86':
  Fix issue #6634325: View.setKeepScreenOn and...
2012-06-12 13:01:12 -07:00