Commit Graph

3327 Commits

Author SHA1 Message Date
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
Jeff Brown
d3f97dc0fb am 14afbba6: am ea6b8188: Merge "Improve ANR diagnostics." into jb-dev
* commit '14afbba66355fab168bed25c9bab33058372584a':
  Improve ANR diagnostics.
2012-06-12 13:01:06 -07:00
Jeff Brown
2dc7232140 am 62007aba: am 519e91ef: Merge "Detect bad behavior earlier in Choreographer." into jb-dev
* commit '62007aba1998055cf6ab3e610ed97dbe06341056':
  Detect bad behavior earlier in Choreographer.
2012-06-12 13:00:40 -07:00
Romain Guy
bc62684f02 am 265888fe: am 6b5caee4: Merge "Prevent crash in WebView when disabling the hw renderer Bug #6596807" into jb-dev
* commit '265888fe6a57d5b77279c97b68cfa25865267e6b':
  Prevent crash in WebView when disabling the hw renderer Bug #6596807
2012-06-12 13:00:28 -07:00
Svetoslav Ganov
23ef5fcff4 am 5d15f40a: am f372e331: Merge "NPE when iterating by character and word in Launcher widgets." into jb-dev
* commit '5d15f40a19be01fa9c5a9674b31b6b18774cbeac':
  NPE when iterating by character and word in Launcher widgets.
2012-06-12 13:00:25 -07:00
Jeff Brown
681f745916 am 7d9a18ee: Merge "resolved conflicts for merge of 926a5c50 to jb-dev-plus-aosp" into jb-dev-plus-aosp
* commit '7d9a18eeb684e87da5a907c96d25da21918119b5':
  Remove edge slop handling from ScaleGestureDetector.
2012-06-12 12:41:11 -07:00
Dianne Hackborn
aabd9c230f Merge "Fix issue #6634325: View.setKeepScreenOn and..." into jb-dev 2012-06-12 10:40:11 -07:00
Dianne Hackborn
9d0908919a Fix issue #6634325: View.setKeepScreenOn and...
...MediaPlayer.setScreenOnWhilePlaying seem broken

We need to correctly clear the keep screen on flag when the view
hierarchy request is gone...  and to do that, we need to keep the
actual state of the flag requested by the app.  Also when the app
changes its state, we need to compute the proper value based on
both the app request and any requests in the view hierarchy.

Bug: 6634325
Change-Id: I060e9a34a10faffbaa77c06098cf21298bb4969f
2012-06-11 18:35:41 -07:00