40055 Commits

Author SHA1 Message Date
Jonathan Dixon
f38b070b31 Merge "Hide PlusinsEnabled/PluginsPath methods" into jb-mr2-dev 2013-04-09 20:09:29 +00:00
Dianne Hackborn
558a3c1b7b Merge "Kill processes when permissions are revoked." into jb-mr2-dev 2013-04-09 17:38:00 +00:00
Baligh Uddin
5660b4843e Merge "Import translations. DO NOT MERGE" into jb-mr2-dev 2013-04-09 17:34:24 +00:00
Dianne Hackborn
f1b782427f Kill processes when permissions are revoked.
Some permissions are associated with gids, so we need to
kill any running processes if their permission is revoked.
We will do this for any permission being revoked, since
the association between gids and permissions can change
over time.

Change-Id: Ieb7408e032539c4f21eb089d65a7a7e6c289f010
2013-04-08 22:28:59 -07:00
Jeff Brown
97b968b6b3 Merge "Fix trackball interpretation of precision." into jb-mr2-dev 2013-04-09 00:00:38 +00:00
Jeff Brown
3a2854bcee Merge "Queues, queues, queues and input." into jb-mr2-dev 2013-04-08 23:59:24 +00:00
Jeff Brown
c574b68cbb Fix trackball interpretation of precision.
The trackball to dpad synthesis was using the MotionEvent's precision
field to determine a threshold for movement but the calculations
involved did not actually make sense for any value of precision
less than 2.0.  This worked fine before since the InputReader
hardcodes the trackball's precision to 6.

Injected trackball events may have a different precision which can
result in the thresholds being set inappropriately.  For example,
it was not possible to move focus by one unit at a time when
the precision was set to 1.0.

The old code was probably using precision as a way to set a
threshold based on the trackball moving by some minimum number
of physical ticks, in this case 2.  But the code will work just
as well if we set an absolute threshold based on distance
traveled given that the input system is already expected to
normalize the trackball movements before delivering them to the
application.

So stop using precision.

Bug: 8473020
Change-Id: I3c6f7fb1b507f8cf5608b47550e7345fea3352fa
2013-04-08 16:53:59 -07:00
Jonathan Dixon
0bf4781ece Hide PlusinsEnabled/PluginsPath methods
These have been deprecated since API level 8 / 9. Plugins are deprecated
overall now, so there's no requirement for apps to call these any more.

Change-Id: I1a27557644238477df00979f9badc9aab0a526c6
2013-04-08 16:37:38 -07:00
Michael Wright
605994d670 Merge "Fix off by one in ListView's upward focus traversal" into jb-mr2-dev 2013-04-08 22:57:02 +00:00
Chet Haase
b9604a34ab Merge "Amend getOverlay() docs for SurfaceView/TextureView" into jb-mr2-dev 2013-04-08 22:53:11 +00:00
Jeff Brown
f9e989d5f0 Queues, queues, queues and input.
Redesigned how ViewRootImpl delivers input events to views,
the IME and to native activities to fix several issues.

The prior change to make IME input event delegation use
InputChannels failed to take into account that InputMethodManager
is a singleton attached to the main looper whereas UI may be
attached to any looper.  Consequently interactions with the
InputChannel might occur on the wrong thread.  Fixed this
problem by checking the current thread and posting input
events or callbacks to the correct looper when necessary.

NativeActivity has also been broken for a while because the
default event handling logic for joysticks and touch navigation
was unable to dispatch events back into the native activity.
In particular, this meant that DPad synthesis from touch navigation
would not work in any native activity.  The plan is to fix
this problem by passing all events through ViewRootImpl as usual
then forwarding them to native activity as needed.  This should
greatly simplify IME pre-dispatch and system key handling
and make everything more robust overall.

Fixed issues related to when input events are synthesized.
In particular, added a more robust mechanism to ensure that
synthetic events are canceled appropriately when we discover
that events are no longer being resynthesized (because the
application or IME is handling or dropping them).

The new design is structured as a pipeline with a chain of
responsibility consisting of InputStage objects.  Each InputStage
is responsible for some part of handling each input event
such as dispatching to the view hierarchy or to the IME.
As a stage processes an input event, it has the option of
finishing the event, forwarding the event to the next stage
or handling the event asynchronously.  Some queueing logic
takes care to ensure that events are forwarded downstream in
the correct order even if they are handled out of order
by a given stage.

Cleaned up the InputMethodManager singleton initialization logic
to make it clearer that it must be attached to the main looper.
We don't actually need to pass this looper around.

Deleted the LatencyTimer class since no one uses it and we have
better ways of measuring latency these days using systrace.

Added a hidden helper to Looper to determine whether the current
thread is the indicated Looper thread.

Note: NativeActivity's IME dispatch is broken by this patch.
This will be fixed later in another patch.

Bug: 8473020
Change-Id: Iac2a1277545195a7a0137bbbdf04514c29165c60
2013-04-08 15:31:47 -07:00
Michael Wright
b482a001f1 Fix off by one in ListView's upward focus traversal
Bug: 7985315
Change-Id: Ic67c8e346d6b51a5cfb05cc7d0c2b145b591b2db
2013-04-08 14:40:12 -07:00
Chet Haase
95399493c6 Amend getOverlay() docs for SurfaceView/TextureView
SurfaceView and TextureView do not currently support overlays
correctly; the docs now reflect this constraint.

Change-Id: I79183c02b51ae4cd14638198d0668b2c2e3e22e1
2013-04-08 14:30:31 -07:00
Yorke Lee
cf837a6e90 Merge "Update DataUsageStatColumns" into jb-mr2-dev 2013-04-08 21:22:06 +00:00
Dianne Hackborn
bc94810104 Merge "Have audio service clean up new receivers in crashing processes." into jb-mr2-dev 2013-04-08 20:10:37 +00:00
Nick Kralevich
8e181c56b3 Merge "AppSecurityPermissions: minor UI changes" into jb-mr2-dev 2013-04-08 20:08:59 +00:00
Dianne Hackborn
79f7ec70eb Have audio service clean up new receivers in crashing processes.
The new media button receiver with only a pending intent (no
component name) could be left hanging if the process that
registered it went away.  These semantically need to be tied
to the calling process's lifetime; we now clean them up when
the calling process goes away.

Also added some additional cleanup of media button receivers
when packages change (updated, cleared).

And on top of that, a new "media" command for doing media
things.  Currently lets you send media keys and monitor
remote display data.

Oh and finally added a new BaseCommand base class for
implementing these command line utilities.

Change-Id: Iba1d56f10bab1eec4a94a7bb1d1c2ae614c8bcf5
2013-04-08 13:08:37 -07:00
ztenghui
7ce7b0068c Merge "HTML5Audio should handle content URI" into jb-mr2-dev 2013-04-08 19:58:22 +00:00
Romain Guy
dcaa9436fe Merge "Always take padding and margins into account Bug #8565842" into jb-mr2-dev 2013-04-08 19:57:04 +00:00
Romain Guy
76d59a3b7b Always take padding and margins into account
Bug #8565842

Change-Id: I8ee398b5c36b3011950265eb7e22cc8338f1aeee
2013-04-08 12:56:15 -07:00
Daniel Sandler
dc634351d4 Merge "Clean up language in forced foreground service notifications." into jb-mr2-dev 2013-04-08 19:46:02 +00:00
ztenghui
4233ec728d HTML5Audio should handle content URI
Change-Id: Ib7ef4ad5fdd5b6b051ae32b0968a9bddef5c65ba
2013-04-08 11:42:53 -07:00
Baligh Uddin
4c4a07ce1f Import translations. DO NOT MERGE
Change-Id: Ia150446de499f4272f73b1c5f30bf5adc7b0ae39
Auto-generated-cl: translation import
2013-04-08 10:26:44 -07:00
Nick Kralevich
98cbcf1b50 AppSecurityPermissions: minor UI changes
1) Make the box with the permission really go away when a
permission is revoked, not just invisible.
2) Change the order of the buttons, making the negative
button the "revoke" button, and the positive button "ok".

Change-Id: I73694583cbd014d3820f8df6c6b770caae299499
2013-04-08 10:02:08 -07:00
Daniel Sandler
91fe8455d6 Clean up language in forced foreground service notifications.
Old:  [ IC ] %s running
      [ ON ] %s is running

New:  [ IC ] %s is running
      [ ON ] Touch for more information or to stop the app.

Additionally, disallow these misbehaving services from
supplying their own content views; if you attempt to run a
foreground service with icon == 0, this is the notification
you will get, period.

Bug: 8525548
Change-Id: I2bfd7340396ef925885e8c2160a720f9eff07a35
2013-04-08 13:01:02 -04:00
Daniel Sandler
26c1343984 Set FLAG_SHOW_LIGHTS if *either* on or off is nonzero.
Previously they each had to be nonzero, which prevented
using the builder methods to create solid-on LED
notifications.

Change-Id: I30314ec33daa28ee2e1f0b87a184c3540254471c
2013-04-08 14:44:28 +00:00
Chet Haase
edf6f4b49f Make adding views specific to a ViewGroup's overlay
Adding views to views (possible with the new Overlay API) is weird.
This change moves the view-management facilities of Overlay to a subclass
that is specific to the overlay returned from ViewGroup.getOverlay().
So now you can add drawables to all view overlays, but only add/remove
views to/from the overlay returned from ViewGroup.getOverlay().

Also, the previous approach of using an interface for Overlay was
changed to classes for both ViewOverlay and ViewGroupOverlay.

Finally, this change makes not handling touch correctly the proper,
and documented, behavior of overlay views. There are various tricky issues
to sort out with input in overlays (including click handling as well as focus)
and we don't want developers starting to use overlays as some kind of general
container hierarchy, so we're purposely constraining overlays to have visual-only
behavior.

Issue #8459085 Overlay needs to handle touch correctly

Change-Id: I207b8dbf528f87c92369d270d8b0a6556826d207
2013-04-08 07:30:12 -07:00
Nick Kralevich
a56b78dcd1 fix build
Change-Id: I7f3b8a4df84630f40f5a3f19434df86b6287fb75
2013-04-07 11:13:16 -07:00
Nick Kralevich
d7c4186ae0 Merge "AppSecurityPermissions: add support for revoking permissions" into jb-mr2-dev 2013-04-07 17:53:27 +00:00
Kenny Root
8b51475c97 Revert "Remove AndroidKeyStore from API"
This reverts commit ce24985ad636c38b6ee01ec9cdecfb038bfeaeb6.

Change-Id: I02d6492c8db869619694c7209bb37522a7ec5a29
2013-04-06 10:05:31 -07:00
Nick Kralevich
ddfbe00b66 AppSecurityPermissions: add support for revoking permissions
Add UI support for revoking optional permissions. When the user
taps on an optional permission, two new boxes will appear:

  [Cancel] | [Revoke]

Selecting [Revoke] will revoke the permission from the app.

The [Cancel] / [Revoke] options are only shown for apps which support
optional permissions.

Bug: 8332307
Change-Id: I27e374773747737e3a6d7f48ea1448a0178e3393
2013-04-05 18:42:03 -07:00
Adam Powell
e0e2f4fd3a Fix accessibility in action bars and add extra customization
Fix a bug where the content description of the big unified Home/Up
button was not getting set properly.

Add the ability to change the home-as-up glyph from ActionBar.

Add the ability to set a custom action description for the home-as-up
button, useful if the above functionality is used.

Bug 8548229

Change-Id: I0635799772c7234b68247dfc105dce7f11acda32
2013-04-05 16:46:22 -07:00
Michael Wright
bdb706e48d Merge "Pipe through device resolution information" into jb-mr2-dev 2013-04-05 21:43:31 +00:00
Fabrice Di Meglio
c51628aa6f Merge "Fix AlertDialog in RTL mode" into jb-mr2-dev 2013-04-05 21:17:50 +00:00
Jeff Brown
4a706bc6f1 Merge "Correctly manage the lifecycle of IME InputChannels." into jb-mr2-dev 2013-04-05 20:57:01 +00:00
Daniel Sandler
5feceebb89 New NotificationListenerService.
This is the best and only way for apps to listen for
notifications: create a NotificationListenerService, wait
for the NoMan to bind to you (as a result of the user
checking a box somewhere in Settings and agreeing to a
scary dialog box), and you'll start receiving notification
posted and dismissed callbacks. Your service, while enabled,
will also be able to clear one or all notifications.

Use this power wisely.

This change moves StatusBarNotification out of
com.android.internal into android.service.notification.
[Internal customers, including System UI and early users of
the system-only listener binder API, will need to be
updated.]

Bug: 8199624
Change-Id: I1be46f823d4b3ddc901109ec1e085cd6deb740c2
2013-04-05 19:54:44 +00:00
Kristian Monsen
4ac0462e71 Merge "Adding new Chomium-WebView property key, and deprecating old key." into jb-mr2-dev 2013-04-05 17:17:25 +00:00
Ben Gruver
65f420ec98 Merge "Add a config updater component for the intent firewall" into jb-mr2-dev 2013-04-05 16:35:26 +00:00
Baligh Uddin
1cbe12157f Import translations. DO NOT MERGE
Change-Id: Ifb0d09822f93bb719c48bc3e0108e0f81c592c66
Auto-generated-cl: translation import
2013-04-05 08:50:47 -07:00
Jeff Brown
1951ce86c2 Correctly manage the lifecycle of IME InputChannels.
InputChannels are normally duplicated when sent to a remote process
over Binder but this does not happen if the recipient is running within
the system server process.  This causes problems for KeyGuard because the
InputMethodManagerService may accidentally dispose the channel
that KeyGuard is using.

Fixed the lifecycle of InputChannels that are managed by the IME
framework.  We now return a duplicate of the channel to the application
and then take care to dispose of the duplicate when necessary.
In particular, InputBindResult disposes its InputChannel automatically
when returned through Binder (using PARCELABLE_WRITE_RETURN_VALUE).

Bug: 8493879
Change-Id: I08ec3d13268c76f3b56706b4523508bcefa3be79
2013-04-04 22:45:12 -07:00
Ben Gruver
633dc9bcef Add a config updater component for the intent firewall
Change-Id: I43f6defa16691099592bf87e75f2d1a732135cf3
2013-04-04 19:46:22 -07:00
Michael Wright
c6091c64c9 Pipe through device resolution information
Bug: 8424494
Change-Id: Iafeeee0d5cd29342c1cdc86b9616222aaa5d1b94
2013-04-04 18:10:37 -07:00
Nick Kralevich
80fdc9624e Merge "Error on conflicting <uses-permission>" into jb-mr2-dev 2013-04-05 00:24:40 +00:00
Nick Kralevich
73f2d3c79e Error on conflicting <uses-permission>
Don't install packages where we have multiple, conflicting
<uses-permission> lines for the same permission.

For example, a package which contains:

<uses-permission android:name="android.permission.INTERNET" android:required="false" />
<uses-permission android:name="android.permission.INTERNET" android:required="true" />

will now fail to install.

In addition, this change slightly refactors the code, and creates a new
parseUsesPermission() method.

Change-Id: I0f4bb8b51dc4a0c5b73458a70f706e19829275d2
2013-04-04 17:12:00 -07:00
Romain Guy
faec826bd6 Merge "Reduce the size of dirty invalidates" into jb-mr2-dev 2013-04-04 22:47:49 +00:00
Romain Guy
e55945e219 Reduce the size of dirty invalidates
Remove remnants from times long gone. We don't need to redraw the
union of the previous frame's dirty region and the new dirty
region.

Change-Id: I9fb96f99a6a72c2233f9ca563cf6432a42b2b65b
2013-04-04 15:29:09 -07:00
Fabrice Di Meglio
5a78b1b20d Merge "Fix for bug #8146846 Phone App should be mirrored for RTL languages" into jb-mr2-dev 2013-04-04 21:16:43 +00:00
Nick Kralevich
b2c3aa8e32 Merge "PackageParser: ignore <uses-permission> android:required on older apps" into jb-mr2-dev 2013-04-04 20:27:32 +00:00
Nick Kralevich
38f130e19a PackageParser: ignore <uses-permission> android:required on older apps
Don't honor <uses-permission android:required="false"> on older apps.
Lots of apps in the wild are improperly using this, and we don't
want to break them.

Bug: 8528162
Change-Id: I6e0a10bc9feac58d13ef624239c6b91e9fc34590
2013-04-04 13:19:10 -07:00
Chet Haase
77d94957d7 Merge "Adding small animation features" into jb-mr2-dev 2013-04-04 18:24:46 +00:00