22429 Commits

Author SHA1 Message Date
Ben Murdoch
1d7b856a97 Merge "Fix looping HTML5 Audio." 2012-02-27 02:17:23 -08:00
Adam Powell
d020ebff2c Merge "Fix bug 6065890 - Correct callback sequence for action bar tab switching" 2012-02-24 19:50:11 -08:00
Adam Powell
c4e57e23f9 Fix bug 6065890 - Correct callback sequence for action bar tab switching
Keep the callback behavior consistent when action bar tabs collapse
into a spinner.

Change-Id: Ia82e55d816a92b7ec746e1d25486bc9d2c0778f4
2012-02-24 19:25:43 -08:00
Dianne Hackborn
5265466e8a Merge "New development permissions." 2012-02-24 18:40:37 -08:00
Romain Guy
778f67f7c0 Merge "Add hooks to implement Canvas.drawTextOnPath() in GL" 2012-02-24 18:01:22 -08:00
Gilles Debunne
5cd164c5cf Merge "Fix NPE on Activity start in TextView" 2012-02-24 17:42:03 -08:00
Gilles Debunne
c1e79b45a2 Fix NPE on Activity start in TextView
Bug 6065279

The selection can be created programatically, and mEditor may be null
when it happens.

Make sure mEditor is created to display the selection highlight.

Change-Id: Idd66a5fd4ad327f9b390b539574e6878c794ba4a
2012-02-24 17:40:22 -08:00
Jason Sams
93d083b6ad Merge "Do RS caching the same way HardwareRenderer does. Eliminates the need for an application context for caching." 2012-02-24 17:21:32 -08:00
Gilles Debunne
9f809c2fd1 Merge "Fix crash on long press in TextView" 2012-02-24 17:04:10 -08:00
Gilles Debunne
f14634e491 Fix crash on long press in TextView
Bug 6058792

Glitch in mEditor handling

Change-Id: I9b68796d5038c20d190ba5fbdaff1608b36aaee6
2012-02-24 17:01:59 -08:00
Adam Powell
b98a81f86a Add support for optional titles in action modes
Optional titles will only be displayed in the CAB if they entirely fit
instead of ellipsizing.

Fixes bug 5821883

Change-Id: I0cfd6d4fd34a4fa9f520499d577706da30606811
2012-02-24 16:59:03 -08:00
Romain Guy
325740fb44 Add hooks to implement Canvas.drawTextOnPath() in GL
Change-Id: I165c9e05facf5365aa6850605688e538640c7fcc
2012-02-24 16:48:34 -08:00
Jason Sams
a6f338ca5f Do RS caching the same way HardwareRenderer does.
Eliminates the need for an application context for caching.

Change-Id: I4374738083b5eb4ce983d2cb5409428e3668c423
2012-02-24 16:22:16 -08:00
Dianne Hackborn
0aec3ea6de am 911b505f: am dc5fa185: am 133dc2d7: Merge "Fix issue #6048808: sometimes auto-correct is inactive" into ics-mr1
* commit '911b505f11c719906985f169a4f45930bdec8695':
  Fix issue #6048808: sometimes auto-correct is inactive
2012-02-24 15:44:55 -08:00
Dianne Hackborn
911b505f11 am dc5fa185: am 133dc2d7: Merge "Fix issue #6048808: sometimes auto-correct is inactive" into ics-mr1
* commit 'dc5fa1859d03ecca36fc6be2fed7bbd4ba70b51f':
  Fix issue #6048808: sometimes auto-correct is inactive
2012-02-24 15:41:35 -08:00
Dianne Hackborn
dc5fa1859d am 133dc2d7: Merge "Fix issue #6048808: sometimes auto-correct is inactive" into ics-mr1
* commit '133dc2d7aecc68990c363c861716b134910a4ced':
  Fix issue #6048808: sometimes auto-correct is inactive
2012-02-24 15:38:07 -08:00
Dianne Hackborn
7663d80f6b Fix issue #6048808: sometimes auto-correct is inactive
My previous change to speed up the time the IME is dismissed was
fundamentally flawed.  That change basically switched the order
the application called the input method manager service from doing
startInput() and then windowGainedFocus(), to first windowGainedFocus()
and then startInput().

The problem is that the service relies on startInput() being done
first, since this is the mechanism to set up the new input focus,
and windowGainedFocus() is just updating the IME visibility state
after that is done.  However, by doing the startInput() first, that
means in the case where we are going to hide the IME we must first
wait for the IME to re-initialize editing on whatever input has
focus in the new window.

To address this, the change here tries to find a half-way point
between the two.  We now do startInput() after windowGainedFocus()
only when this will result in the window being hidden.

It is not as easy as that, though, because these are calls on to
the system service from the application.  So being able to do that
meant a fair amount of re-arranging of this part of the protocol
with the service.  Now windowGainedFocus() is called with all of
the information also needed for startInput(), and takes care of
performing both operations.  The client-side code is correspondingly
rearranged so that the guts of it where startInput() is called can
instead call the windowGainedFocus() entry if appropriate.

So...  in theory this is safer than the previous change, since it
should not be impacting the behavior as much.  In practice, however,
we are touching and re-arranging a lot more code, and "should" is
not a promise.

Change-Id: Icb58bef75ef4bf9979f3e2ba88cea20db2e2c3fb
2012-02-24 13:18:23 -08:00
Svetoslav Ganov
16bb9ab384 Merge "Regression: Cannot query the content of certain windows." 2012-02-24 11:33:46 -08:00
Svetoslav Ganov
00d0c14a0f Regression: Cannot query the content of certain windows.
1. A bad merge on my part caused ViewRootImpl not to register
   for accessibility state change.

bug:6064348

Change-Id: Idf7b8b444e9021e9d9ec3749164cfe448c8268ab
2012-02-24 11:31:17 -08:00
Daniel Sandler
3f0c58eb70 Merge "New notification priority and related APIs." 2012-02-24 10:53:42 -08:00
Svetoslav Ganov
525ece4098 Merge "UiTestAutomationBridge does not terminate its HandlerThread." 2012-02-24 10:52:10 -08:00
Svetoslav Ganov
ae7a51f143 UiTestAutomationBridge does not terminate its HandlerThread.
1. Now the thread is terminated in the disconnect() method
   and also it is made demon since it has no pupose outside
   the context of the bridge client.

bug:6053108

Change-Id: Idc25373fddf501eda4f875fea3e944367e4f04bf
2012-02-24 10:47:31 -08:00
Daniel Sandler
2561b0b10a New notification priority and related APIs.
This change introduces a few new bits of data on
Notification that will help the Notification Manager and
System UI route and display them more intelligently:

 -> priority: an integer in a predefined range that
    indicates the app's best guess as to the relative
    importance (to the user, right now) of that information

 -> kind: a tag (really, set of tags) indicating the general
    type of notification (realtime, asynchronous, etc)

 -> extras: a Bundle of additional key/value pairs
    associated with this notification (currently @hidden)

The notification manager takes these data into account when
assigning to each notification a score which is passed with
the notification on to the system UI, where it can be used to
affect presentation. For example:

  - Spammy apps (identified explicitly by the user or by
    some other means) will have their notifications scored
    very negatively by the notification manager, allowing
    the UI to suppress them
  - Notifications of higher score might be shown larger
    or in a different way
  - Very important notifications (indicated by a very high
    score) might interrupt the user during an otherwise
    important task (videochat, game, etc)

Implementation note: This replaces/extends the old internal
notion of "priority", which was mostly used to organize
ongoings and system notifications at the top of the panel.

Change-Id: Ie063dc75f198a68e2b5734a3aa0cacb5aba1ac39
2012-02-24 13:47:00 -05:00
Svetoslav Ganov
88c6d6e19c Merge "AccessibilityNodeInfos node properly cached." 2012-02-24 10:23:06 -08:00
John Reck
0d4134834e Merge "Fix HitTest type detection" 2012-02-24 10:22:56 -08:00
Svetoslav Ganov
afd5fab3ab AccessibilityNodeInfos node properly cached.
1. AccessibilityNodeInfo were not cloned when cached
   and obtained from the cache. This was causing a
   problem when the client calls #recycle() as he
   should since this results in wiping the data of
   the cached node info.

bug:6026952

Change-Id: I5807b09d95ef6f310327192ff91f036adf337e33
2012-02-24 10:22:00 -08:00
John Reck
59265e896a Fix HitTest type detection
Change-Id: Ide3d137de18302d2bb83437c3709a31afcdef9ff
2012-02-24 10:13:24 -08:00
George Mount
374d243a1a Merge "Disable selection when nothing selected." 2012-02-24 07:29:13 -08:00
Ben Murdoch
0168bef13f Fix looping HTML5 Audio.
When an <audio> tag has the loop=true attribute,
Webkit tells us to seek back to 0 before we are supposed
to have stopped the stream. But by the time that the message
gets back to the Android MediaPlayer java side, it's already
stopped. So after seeking, we play() again if the player is in
the COMPLETED state. Change the code to do this and handle
the case that we call play on a COMPLETED stream
(resetting internal state, etc).

Note that this has the side effect that we will start playing
the stream after any seek on a COMPLETED stream - e.g. dragging
the slider thumb on the progress track after the stream is
finished.

Bug: 5461143
Change-Id: I6cf4d46d9a1985caf9f9ab85dbcf65535c8dcd77
2012-02-24 11:15:11 +00:00
John Reck
5d5b378383 Merge "Support email and phone types" 2012-02-23 19:28:20 -08:00
Svetoslav Ganov
42d840b91d Merge "Fixing issues with the AccessibilityNodeInfo cache." 2012-02-23 19:04:41 -08:00
Svetoslav Ganov
57c7fd5a43 Fixing issues with the AccessibilityNodeInfo cache.
1. Before there were two caches one in the app process that
   kept track only the ids of infos that were given to a
   querying client and one in the querying client that
   holds the infos. This design requires precise sync
   between the caches. Doing that is somehow complicated
   since the app has cache for each window and it has
   to intercept all accessibility events from that window
   to manage the cache. Each app has to have a cache for
   each querying client. This approach would guarantee that
   no infos are fetched twice but due to its stateful nature
   and the two caches is tricky to implement and adds
   unnecessary complexity. Now there is only one cache in
   the client and the apps are stateless. The client is
   passing flags to the app that are a clue what nodes to
   prefetch. This approach may occasionally fetch a node
   twice but it is considerably simpler and stateless
   from the app perspective - there is only one cache.
   Fetching a node more than once does not cause much
   overhead compared to the IPC.

Change-Id: Ia02f6fe4f82cff9a9c2e21f4a36747de0f414c6f
2012-02-23 18:51:04 -08:00
Andrew Flynn
206be012b4 am ec63cd85: Merge "DO NOT MERGE Return 1.5 * density as default for large screens." into ics-scoop
* commit 'ec63cd85c8b7f90a39e04aeec560fea7ea973b9a':
  DO NOT MERGE Return 1.5 * density as default for large screens.
2012-02-23 18:45:52 -08:00
John Reck
3a0e011fac Support email and phone types
Change-Id: I16571048954495aaaa11f25bf658dc128430460e
2012-02-23 17:42:05 -08:00
Dianne Hackborn
e639da7baa New development permissions.
These are permissions that an application can request, but won't
normally be granted.  To have the permission granted, the user
must explicitly do so through a new "adb shell pm grant" command.

I put these permissions in the "development tools" permission
group.  Looking at the stuff there, I think all of the permissions
we already had in that group should be turned to development
permissions; I don't think any of them are protecting public APIs,
and they are really not things normal applications should use.

The support this, the protectionLevel of a permission has been
modified to consist of a base protection type with additional
flags.  The signatureOrSystem permission has thus been converted
to a signature base type with a new "system" flag; you can use
"system" and/or "dangerous" flags with signature permissions as
desired.

The permissions UI has been updated to understand these new types
of permissions and know when to display them.  Along with doing
that, it also now shows you which permissions are new when updating
an existing application.

This also starts laying the ground-work for "optional" permissions
(which development permissions are a certain specialized form of).
Completing that work requires some more features in the package
manager to understand generic optional permissions (having a
facility to not apply them when installing), along with the
appropriate UI for the app and user to manage those permissions.

Change-Id: I6571785c6bb5f6b291862b7a9be584885f88f3a5
2012-02-23 16:39:15 -08:00
Andrew Flynn
ec63cd85c8 Merge "DO NOT MERGE Return 1.5 * density as default for large screens." into ics-scoop 2012-02-23 16:09:36 -08:00
Andrew Flynn
a227a12314 DO NOT MERGE Return 1.5 * density as default for large screens.
Change-Id: Ib2d390803f08812636364ceb3849eddf80044072
2012-02-23 15:46:08 -08:00
George Mount
9a6077e22e Disable selection when nothing selected.
Bug 6059606

Change-Id: I2c9acaa601e38a2cd0eec516709aa63f31ce0e29
2012-02-23 15:23:35 -08:00
George Mount
583e885bef Merge "Add javascript key events for special characters." 2012-02-23 14:43:02 -08:00
Romain Guy
1ea55cf3c7 Merge "Perform early intersect to avoid unnecessary draws" 2012-02-23 13:53:47 -08:00
Romain Guy
cfef12374c Perform early intersect to avoid unnecessary draws
Change-Id: I48d61c4488e622f93733d8e53a50c93e6a20166d
2012-02-23 13:50:37 -08:00
John Reck
1aa939759c Merge "Support mIntentUrl for addresses" 2012-02-23 13:40:25 -08:00
Michael Jurka
b7ee8e2cb4 am 6ad5d69d: am 0a232673: am bf378fd7: Don\'t allow screen invalidations to go outside bounds of screen
* commit '6ad5d69da5cff2e4b5fb7acdb2699e2315b83307':
  Don't allow screen invalidations to go outside bounds of screen
2012-02-23 12:26:16 -08:00
Scott Main
3fcf93b037 am cb4ebcb2: am ce980d8e: am 68d97aa2: Merge "docs: fix broken link" into ics-mr1
* commit 'cb4ebcb20b8540cc8027ae03dd578ce3846e9af1':
  docs: fix broken link
2012-02-23 12:25:53 -08:00
Adam Powell
29382d9d9d Bug 6058721 - optimize changing checked states in AbsListView
Instead of treating a checked state change as a full data set change,
simply modify the checked or activated state of on-screen views.
Any resulting layout changes will be serviced as appropriate.

Change-Id: Ia846de16bbc54f0729608259aa4b530da9404245
2012-02-23 11:04:38 -08:00
John Reck
4d0a8cf067 Support mIntentUrl for addresses
Change-Id: I61abf7f333608fa91629ce62e348dda83a795e45
2012-02-23 10:28:53 -08:00
George Mount
53519eacac Add javascript key events for special characters.
Bug 6033096

Change-Id: I6c10db405266eee3e25f7446a43f4d7a566f3ef7
2012-02-23 10:27:53 -08:00
Jean-Baptiste Queru
812c623563 am ad3102d0: am f3d94b44: am a91b052e: am fc24982a: Merge "Call onTimeChanged when AM/PM changed."
* commit 'ad3102d06bc6060f739e0803d0e45dec8020703b':
  Call onTimeChanged when AM/PM changed.
2012-02-23 08:35:03 -08:00
Michael Jurka
0a23267337 am bf378fd7: Don\'t allow screen invalidations to go outside bounds of screen
* commit 'bf378fd7d7a91085685fe9e5528b84c485041c77':
  Don't allow screen invalidations to go outside bounds of screen
2012-02-23 08:07:22 -08:00
Adam Powell
1f0f9d28a1 am c0d0dddc: am fef000e3: am 482ae5f2: Bug 6021294 - Contextual action bar animation tweaks
* commit 'c0d0dddc20827846dcf3235f7307ad76d2893ba6':
  Bug 6021294 - Contextual action bar animation tweaks
2012-02-23 07:30:01 -08:00