22982 Commits

Author SHA1 Message Date
Adam Powell
2dde147b28 Merge "Add an XML attribute for controlling which route types a MediaRouteButton in a layout will alter." into jb-dev 2012-06-19 19:18:34 -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
Adam Powell
849df0b5a7 Add an XML attribute for controlling which route types a
MediaRouteButton in a layout will alter.

Change-Id: I897a68188fa87e4c2dbc88794117a3ef87ffaab0
2012-06-19 17:47:48 -07:00
Adam Powell
2a2b021a21 Merge "Permit MediaRouteButton to select system routes in toggle mode." into jb-dev 2012-06-19 17:00:35 -07:00
Chet Haase
ebc9d317ff Merge "Handle non-started LayoutTransition animations correctly" into jb-dev 2012-06-19 15:59:27 -07:00
Adam Powell
eba1b70d7a Permit MediaRouteButton to select system routes in toggle mode.
Bug 6694917

Change-Id: I82e68aee196c72f349e7638717b727ef3f23e9b5
2012-06-19 15:58:38 -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
Jim Miller
45308b1b3b Fix 6667238: allow market apps to support ACTION_ASSIST
This change allows market apps and 3rd parties to supply an activity
that responds to ACTION_ASSIST (e.g. market apps).

It also adds a test app to respond to the ASSIST intent and force
the intent disambiguation dialog to appear.

Change-Id: I5a78863c6a9546d18c66275187d178f6a1c9ee17
2012-06-19 15:00:13 -07:00
Dianne Hackborn
fe54cb6f3d Merge "Docs only: DENSITY_TV, not just for TVs any more!" into jb-dev 2012-06-19 10:54:42 -07:00
Jean-Michel Trivi
2f4423043f Merge "Remote volume handling" into jb-dev 2012-06-19 10:54:32 -07:00
Dianne Hackborn
493861dfa0 Docs only: DENSITY_TV, not just for TVs any more!
Change-Id: Id70e0bc179ab405fbb7f3b2cda7b75f44ff30b57
2012-06-18 19:29:45 -07:00
Gilles Debunne
badf5a9442 Merge "Fixed text rendering issue with spans." into jb-dev 2012-06-18 18:53:31 -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
Nicolas Falliere
9530e3a22d Added or fixed doctrings for required permissions.
Bug: 6591338
Change-Id: Ia2092f9994854701b5fa1425c371817367ae07ec
2012-06-18 17:22:34 -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
Svetoslav Ganov
4cb3b76caa Merge "Ensure WebViewClassic calls super.onHoverEvent()" into jb-dev 2012-06-18 10:20:42 -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
Makoto Onuki
c4637d3efb Merge "Allow restricting the scope of a phone-filter search" into jb-dev 2012-06-16 12:34:56 -07:00
Daniel Lehmann
1024de5961 Allow restricting the scope of a phone-filter search
This also includes a previous change to current.txt that hasn't been
copied to 16.txt yet

Bug:6662259

Change-Id: Iaab5c38ad56882a1270b5276ba7a399bbb8a49f3
2012-06-15 20:32:33 -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
alanv
eebebc9ff6 Ensure WebViewClassic calls super.onHoverEvent()
Bug: 6679763
Change-Id: I9b182f25fa1c4050ea3a046c896e82ffbb4651ad
2012-06-15 18:59:11 -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
Gilles Debunne
cd943a7a01 Fixed text rendering issue with spans.
Bug 6598784

The algorithm uses three imbricated loops:
- paragraphs
- span regions (called "blocks" in that description) in these
- characters in these

We can ignore the paragraphs and assume paraStart==0.

The span region loop cuts the text into blocks of text which share
the same set of MetricAffectingSpan spans applied to them. Note that
spanStart and spanEnd represent such a range, and not necessarily an
actual span range.

The third loop then iterates over the characters of these blocks, and creates
a new line (calling out() as soon as the width has been reached.

The core of the problem comes from the 'nextSpanStart' variable.
It is used to restart the block loop from a previous position in case
a line has been created that does not intersect with the current block.

However, in case the current block is larger than the width of the text,
the character loop is going to create other lines of text before we exit the
j-loop. Going back to the block loop, we reset spanStart to the nextSpanStart,
which may be too far back in the text. As a result, the same range of characters
is measured again.

The (spanStart == spanEnd) test was used to handle the case where
nextSpanStart was indeed assigned to a value different than spanEnd.

This fix simplifies this logic and removes the nextSpanStart variable:

When the created line ends before the current block (here < spanStart), we
immediately exit the character loop, re-starting the block loop from the
current position.

Patch 4: added a fix in measured to handle overlapping character ranges.

Change-Id: Ie71b3cf4018b332e335ea916fef08acb43a6679e
2012-06-15 15:29:13 -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
Teng-Hui Zhu
2075f2d3e4 Merge "Notify Java side to start when transition into full screen mode without a reload." into jb-dev 2012-06-15 13:57:28 -07:00
Teng-Hui Zhu
6a9586bc57 Notify Java side to start when transition into full screen mode without a reload.
When video start in inline mode, and then transition into full screen mode, the
video is still playing, so we need to notify the player, such that the controller
can get the state correctly.

bug:6675847

Change-Id: Ib5f712ca91fe1c374dcc20de996dac6ff7b9e983
2012-06-15 11:27:34 -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 858491ba13ab5d45a5ec462d002b5856703b1b2b

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
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
Adam Powell
90b9f84c43 Merge "API updates for MediaRouter" into jb-dev 2012-06-14 17:51:27 -07:00
Svetoslav Ganov
2657a59f54 Merge "Add support for NEXT_HTML_ELEMENT to WebViewClassic." into jb-dev 2012-06-14 17:19:54 -07:00
Adam Powell
0d03c042f9 API updates for MediaRouter
* Accept a Context when fetching the names of routes and
  categories. This lets string resources resolve at time of access
  with the correct configuration. The older versions remain available
  that will use the static resources from the application. (There are
  enough cases where applications will populate this from external
  data that requiring it each time even when it was not initialized
  from a resource doesn't seem reasonable.)

* Remove the ability for apps to programmatically select non-user
  routes.

* Make MediaRouter.Callback an abstract class instead of an interface.
  This will make further extensions easier to keep compatible in the
  future.

Change-Id: If981c511dfbdfaf41ef0d1cfe4a377fc14bb5600
2012-06-14 16:16:31 -07:00
George Mount
0777558f03 Merge "DO NOT MERGE Respect the "Make password visible" setting." into jb-dev 2012-06-14 16:14:16 -07:00
alanv
8bab6de6e2 Add support for NEXT_HTML_ELEMENT to WebViewClassic.
Bug: 6663344
Change-Id: Ieb48998e3af12916fe499a12d5bf7a767df8d05b
2012-06-14 15:24:19 -07:00
Svetoslav Ganov
9add56546b Merge "AccessibilityInjector should return false on a failed action." into jb-dev 2012-06-14 15:14:14 -07:00
George Mount
89654a8f69 DO NOT MERGE Respect the "Make password visible" setting.
Bug 6667146

 Webkit Change: I95ffcfa6fa47baad60b1af55f84bee35dfcc7972

Change-Id: I7fc107b02f73f4c54e8fe66484038ea9d7b69d61
2012-06-14 15:10:09 -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
Jeff Brown
9e197141f8 Merge "Add new ASSIST key and map it to the global assist intent." into jb-dev 2012-06-14 11:28:52 -07:00
Fabrice Di Meglio
15c9c6141a Merge "Fix bug #6661824 Hebrew Text can be clipped" into jb-dev 2012-06-14 10:50:36 -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
Svetoslav Ganov
d8058ca556 AccessibilityInjector should return false on a failed action.
1. AccessibilityInjector was returning true even if the underlying
   JavaScript was not loaded/failed. This may lead to TalkBack getting
   stuck in a web view. To avoid this TalkBack requires gran1ularity
   change when getting into web view. This is neither advertised nor
   shown in the tutorial and which is worse it is inconsistent with
   the traversal of the app.

   Now if the action fails, false is returned and also the timeout for
   handling the action request is increased to 5s. Upon the completion
   of this timeout TalkBack may decide to show a wait dialog or just
   skip the web content. We are treating this as an ANR.

bug:6663344

Change-Id: Idf3d08fe928c495bb974a127f853de6f938e2f77
2012-06-13 20:26:48 -07:00
Daniel Sandler
4365d066e8 Merge "Remove line3 in big notification unless there's text to show." into jb-dev 2012-06-13 18:00:56 -07:00
Fabrice Di Meglio
8d44fff7e6 Fix bug #6661824 Hebrew Text can be clipped
- use the correct ellipsis char in both measurement and rendered string

Change-Id: Ia00285fc16da528f18702719026503b5d0610642
2012-06-13 15:54:55 -07:00
John Reck
d54d7cfec7 Merge "Call WebView.performLongClick instead of performLongClick()" into jb-dev 2012-06-13 14:59:13 -07:00