20728 Commits

Author SHA1 Message Date
felipeal
2b4d6517b4 Merge "Fixed minor typo on Javadoc" 2012-02-27 16:39:50 -08:00
Alon Albert
5312d0805c Merge "Add new Reminder Method: Alarm" 2012-02-27 16:29:55 -08:00
Gilles Debunne
528e6dda42 Merge "Selection highlight made possible with no editor" 2012-02-27 15:30:57 -08:00
Gilles Debunne
0ca95700b1 Merge "Fix for NPE on long press to start a selection on text." 2012-02-27 15:30:37 -08:00
Gilles Debunne
f94c04abaf Merge "Fix for NPE when dragging on TextView" 2012-02-27 15:28:49 -08:00
Gilles Debunne
e7769bc76d Fix for NPE when dragging on TextView
Bug 6076166

Change-Id: I52b1e2edc451f0601b71af50e6056dcbe69add43
2012-02-27 15:26:17 -08:00
George Mount
e7b57be185 Merge "Perform action when action button pressed during text input." 2012-02-27 15:06:29 -08:00
Gilles Debunne
7e07adbcd3 Fix for NPE on long press to start a selection on text.
Bug 6075849

Change-Id: Ie07bd2adfecc0820995b9c8a75cd4de6dd9891e1
2012-02-27 15:03:52 -08:00
Gilles Debunne
83051b8c75 Selection highlight made possible with no editor
Bug 6065081

Selecting text programatically is possible (like when a link is highlighted
by LinkMovementMethod) even when the text is not editable.

Also removed the textCanBeSelected text is highlight computation which prevented
links from being highlighted (legacy problem, not reported).
Now that they work, we can see that the highlight is not removed when the text
loses focus. Will be addressed in a different CL.

Change-Id: I673f435966686234b4c0b0a97bcc65abd01169ff
2012-02-27 14:54:58 -08:00
George Mount
e12dd8fd96 Perform action when action button pressed during text input.
Bug 6059576

Change-Id: Ia87f323873b86b22930a2a39bf1c20756f06beec
2012-02-27 14:19:44 -08:00
George Mount
1023aa44ef Paste window instead of action bar when cursor shown.
Use the paste window shown with TextView when the
 cursor is shown rather than use the action bar.

Change-Id: I47d0bc2d5cba066399532a9e75171a75628ac7ed
2012-02-27 14:01:33 -08:00
Romain Guy
765dcf3230 Small optimization for the battery status screen
Change-Id: I2833ba4009f6c284c9ef33c45a4dd7365423fb5f
2012-02-27 13:28:22 -08:00
felipeal
1b4e4b657c Fixed minor typo on Javadoc
Change-Id: I2040520030319c0330d659dfa06716be0bd41b7b
2012-02-27 12:09:13 -08:00
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
Alon Albert
bd2516165e Add new Reminder Method: Alarm
Change-Id: I7c0bc3c7eb1cc3b76900a04760ace52a5535b617
2012-02-24 09:40:27 -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