Commit Graph

24813 Commits

Author SHA1 Message Date
Dianne Hackborn
7d69e8bd21 Merge "Add registering for explicit users." into jb-mr1-dev 2012-09-04 10:40:07 -07:00
Dianne Hackborn
20e809870d Add registering for explicit users.
New API to register as an explicit user, which allows you to
also select ALL to see broadcasts for all users.

New BroadcastReceiver API to find out which user the broadcast
was sent to.

Use this in app widget service to handle per-user package broadcasts
and boot completed broadcasts correctly.

Change-Id: Ibbe28993bd4aa93900c79e412026c27863019eb8
2012-09-04 10:39:21 -07:00
Craig Mautner
e94831e5ed Merge "Minor refactors." into jb-mr1-dev 2012-09-02 07:51:28 -07:00
Craig Mautner
398341927f Minor refactors.
- Refactor DragState to take Display instead of DisplayContent.
- Rename xxxAnimationLw methods in WindowManagerPolicy to xxxPostLayout
to reflect animation refactoring.

Change-Id: I502f2aa45a699ad395a249a12abf9843294623f0
2012-09-02 07:47:24 -07:00
Dianne Hackborn
2701f325a6 Merge "Remove Binder.getOrigCallingUid()." into jb-mr1-dev 2012-08-31 16:23:47 -07:00
Amith Yamasani
430e5b23cf Merge "Centralize the creation of the user system directory" into jb-mr1-dev 2012-08-31 16:22:52 -07:00
Jeff Brown
f83ec83891 Merge "More improvements to the display manager." into jb-mr1-dev 2012-08-31 15:49:17 -07:00
Jeff Brown
3b9a4160c9 Merge "Initial draft of high-level multi-display APIs." into jb-mr1-dev 2012-08-31 15:48:26 -07:00
Jeff Brown
4ed8fe75e1 More improvements to the display manager.
Added more complete support for logical displays with
support for mirroring, rotation and scaling.

Improved the overlay display adapter's touch interactions.

A big change here is that the display manager no longer relies
on a single-threaded model to maintain its synchronization
invariants.  Unfortunately we had to change this so as to play
nice with the fact that the window manager wants to own
the surface flinger transaction around display and surface
manipulations.  As a result, the display manager has to be able
to update displays from the context of any thread.

It would be nice to make this process more cooperative.
There are already several components competing to perform
surface flinger transactions including the window manager,
display manager, electron beam, overlay display window,
and mouse pointer.  They are not manipulating the same surfaces
but they can collide with one another when they make global
changes to the displays.

Change-Id: I04f448594241f2004f6f3d1a81ccd12c566bf296
2012-08-31 15:42:46 -07:00
Jeff Brown
a492c3a7b2 Initial draft of high-level multi-display APIs.
This patch introduces the ability to create a Context that
is bound to a Display.  The context gets its configuration and
metrics from that display and is able to provide a WindowManager
that is bound to the display.

To make it easier to use, we also add a new kind of Dialog
called a Presentation.  Presentation takes care of setting
up the context as needed and watches for significant changes
in the display configuration.  If the display is removed,
then the presentation simply dismisses itself.

Change-Id: Idc54b4ec84b1ff91505cfb78910cf8cd09696d7d
2012-08-31 15:42:45 -07:00
Amith Yamasani
61f57379ca Centralize the creation of the user system directory
Environment.getUserSystemDirectory(int userId)

Use it all relevant places that was hardcoding it.
Also, wipe out the user's system directory when user is removed, otherwise old state
might be transferred to a new user.

Change-Id: I788ce9c4cf9624229e65efa7047bc0c019ccef0a
2012-08-31 15:33:21 -07:00
Dianne Hackborn
4120375d46 Remove Binder.getOrigCallingUid().
Replaced all remaining places that used it with explicit user
specification.

While doing this, I ran into stuff that was creating PendingIntent
objects (that now need to specify the explicit user they are for),
which are also posting notifications...  but have no way to specify
the user for the notification.

So the notification manager in the system process now also gets a
formal concept of a user associated with the notification, which
is passed in to all the necessary aidl calls.  I also removed the
old deprecated aidl interface for posting/cancelling notifications,
since we now always need a user supplied.

There is more work that needs to be done here, though.  For example
I think we need to be able to specify USER_ALL for a notification that
should be shown to all users (such as low storage or low battery).
Along with that, the PendingIntent creation needs to be tweaked to
be able to handle USER_CURRENT by evaluating the user at the point the
pending intent is sent.

That's for another change, however.

Change-Id: I468e14dce8def0e13e0870571e7c31ed32b6310c
2012-08-31 15:11:13 -07:00
Adam Powell
89bc8636c5 Merge "Add an OnDismissListener to AutoCompleteTextView" into jb-mr1-dev 2012-08-31 11:26:54 -07:00
Adam Powell
f4247c250d Merge "GestureDetector - Mask action when checking POINTER_UP" into jb-mr1-dev 2012-08-31 11:13:16 -07:00
Adam Powell
f90165aeda GestureDetector - Mask action when checking POINTER_UP
Bug 7088494

Change-Id: I723e9b77f0d0473f9d769e53aaa568c4aaac90aa
2012-08-31 11:11:39 -07:00
rich cannings
a2875f481b Merge "Notify verifiers that verification is complete" into jb-mr1-dev 2012-08-30 20:35:08 -07:00
Chet Haase
6cab6005a8 Merge "Make detachViewFromParent more robust" into jb-mr1-dev 2012-08-30 19:54:32 -07:00
Adam Powell
780c491fb9 Add an OnDismissListener to AutoCompleteTextView
Bug 4551310

Change-Id: I702301ad3360828ec6637b6c09789e00d9661271
2012-08-30 17:46:11 -07:00
Chet Haase
ca479d468b Make detachViewFromParent more robust
Calling detachViewFromParent() without calling remove or attach in the
same drawing frame could, in some situations, cause a crash in the native
DisplayList code. detach/attach are intended to be very lightweight and do
not manage the native DisplayList content the same way that add/remove do.
Nor do they cause an invalidate() or requestLayout(), which would cause the
native structures to get recreated appropriately.

This fix makes this process more robust in two ways:
- DisplayLists should not get finalized (therefore destroying their native
structures) when there are still parent DisplayLists referring to them
(each DisplayList keeps references to its child DisplayLists). This will
prevent the native crash associated with unmatched detach*() calls.
- The docs for detach/attach have been enhanced to make it easier for
developers to understand how to use these methods more correctly and
successfully.

Issue #7064818 detachViewFromParent() should be more robust

Change-Id: I53befc04d5d58c225060f397725566d470488c9b
2012-08-30 17:36:54 -07:00
Amith Yamasani
f203aeef99 Enforce permissions for calls with specified userId
Fix a couple of places where incorrect userIds were being passed in.

Change-Id: I398c676e0488ff7e584be96e96c8b32652134238
2012-08-30 16:08:23 -07:00
rich cannings
d1b5cfc94a Notify verifiers that verification is complete
Send the Intent.ACTION_PACKAGE_VERIFIED to all verifiers when
verification is complete (either one verifier verified the package or a
timeout occurred). Details of what occurred is in a new extra,
PackageManager.EXTRA_VERIFICATION_RESULT.

Bug: 7048930
Change-Id: I4f9855a29b0eb6d77f469891402c69e2e8922945
2012-08-30 16:00:59 -07:00
Romain Guy
0fa814d7e6 Merge "Don't quickReject() children if FLAG_CLIP_CHILDREN isn't set" into jb-mr1-dev 2012-08-30 15:26:57 -07:00
Romain Guy
fbb4321b94 Don't quickReject() children if FLAG_CLIP_CHILDREN isn't set
External report: http://code.google.com/p/android/issues/detail?id=36788

Change-Id: Ibdaecf37ab013e30b16e9dc7a6e50156d72c3e4f
2012-08-30 15:19:27 -07:00
Dianne Hackborn
73365695e4 Merge "Improve multi-user broadcasts." into jb-mr1-dev 2012-08-30 14:56:11 -07:00
Dianne Hackborn
5ac72a2959 Improve multi-user broadcasts.
You can now use ALL and CURRENT when sending broadcasts, to specify
where the broadcast goes.

Sticky broadcasts are now correctly separated per user, and registered
receivers are filtered based on the requested target user.

New Context APIs for more kinds of sending broadcasts as users.

Updating a bunch of system code that sends broadcasts to explicitly
specify which user the broadcast goes to.

Made a single version of the code for interpreting the requested
target user ID that all entries to activity manager (start activity,
send broadcast, start service) use.

Change-Id: Ie29f02dd5242ef8c8fa56c54593a315cd2574e1c
2012-08-30 14:33:22 -07:00
Craig Mautner
8b300ed14f Merge "Don't die(immediate) if from performTraversals." into jb-mr1-dev 2012-08-30 13:33:20 -07:00
Adam Powell
7a8b68c432 Merge "Use focal point for scrolling in GestureDetector" into jb-mr1-dev 2012-08-30 12:40:40 -07:00
John Reck
fef288b01c am 8f58dfa9: am da5cd308: am ae03afda: Merge "onSavePassword dialog can leak when WebViewClassic is destroyed."
* commit '8f58dfa975d01c5c50de513848a6aa8a4460d32c':
  onSavePassword dialog can leak when WebViewClassic is destroyed.
2012-08-30 11:45:47 -07:00
John Reck
da5cd30802 am ae03afda: Merge "onSavePassword dialog can leak when WebViewClassic is destroyed."
* commit 'ae03afda41ace0721e48ed15ce35345bfa033116':
  onSavePassword dialog can leak when WebViewClassic is destroyed.
2012-08-30 11:41:38 -07:00
Craig Mautner
df2390adc3 Don't die(immediate) if from performTraversals.
The Drive application was calling PopupWindow.dismiss from within
onMeasure. This caused dispatchDetachedFromWindow to be called
from within performTraversals. Since dispatchDetachedFromWindow
destroys much of what performTraversals uses this was a disaster
waiting to happen.

This fix adds a check for seeing if die(immediate=true) is being
called from within performTraversals. If it is then die doesn't
execute doDie immediately, but instead treats it as a call to
die(immediate=false).

Fixes bug 6836841.

Change-Id: I833289e12c19fd33c17a715b2ed2adcf8388573a
2012-08-30 10:54:45 -07:00
Jeff Sharkey
e217ee4d7a Access to all users' external storage.
System services holding this permission have external storage bound
one level higher, giving them access to all users' files.

Bug: 7003520
Change-Id: Ib2bcb8455740c713ebd01f71c9a2b89b4e642832
2012-08-30 10:37:51 -07:00
Chet Haase
451da77972 Merge "Add getter for animateFirstView property of ViewAnimator" into jb-mr1-dev 2012-08-30 10:30:28 -07:00
Chet Haase
201501f11e Add getter for animateFirstView property of ViewAnimator
Tooling for xml properties is easier/better if we can properly reflect the
xml properties at the Java language API level as well. We had setters/getters
for the other properties of ViewAnimator, but only a setter for the
animateFirstView property.

Issue #6104327 Inconsistency between XML API and Java API for widgets - ViewAnimator

Change-Id: Iede7231fa433ce14f7a8299da4cedd4720370bc8
2012-08-30 09:51:08 -07:00
Johan Redestig
8655e9085c onSavePassword dialog can leak when WebViewClassic is destroyed.
The AlertDialog creates in onSavePassword method leaks if
WebViewClassic is destroyed when the dialog is shown.

Change-Id: I81f20e1dd138467a6413766c0a081b389b334ae0
2012-08-30 10:13:41 +02:00
Romain Guy
7808581ca3 Merge "Pre-multiply color components for 2-stop gradients Bug #7033344" into jb-mr1-dev 2012-08-29 21:56:44 -07:00
Romain Guy
d679b57ef2 Pre-multiply color components for 2-stop gradients
Bug #7033344

Change-Id: Ia168501f1dc56ba7a1bb0c55078320432309a66a
2012-08-29 21:56:18 -07:00
Adam Powell
05a1e1f64e Use focal point for scrolling in GestureDetector
Remove workaround for obsolete touchscreen hardware. Provide a better
focal point for scroll events.

Change-Id: I879acb4cfd23bd3762d0332e4df2203d913ae869
2012-08-29 20:35:10 -07:00
Dianne Hackborn
12631ec35e Merge "Start implementing concept of "running" users." into jb-mr1-dev 2012-08-29 18:15:07 -07:00
Jeff Brown
f404d10225 Merge "Fix build for some javac compilers." into jb-mr1-dev 2012-08-29 17:00:30 -07:00
Jeff Brown
29d8d267dd Fix build for some javac compilers.
It seems some compiler versions don't like trailing
commas in attribute lists.  Weird.

Change-Id: I3a05f49a2e94f63fe1662d14c1d8a7ee249d8a16
2012-08-29 16:59:27 -07:00
Matthew Xie
9e3045c75c Merge "Turn off verbose debug message in BluetoothAdapter Change-Id: I30245ab911b5428f7af38f195b941db02d36b18f" into jb-mr1-dev 2012-08-29 16:30:14 -07:00
Irfan Sheriff
a28c18fc61 Merge "Fix DHCP handling at disconnect/reconnect" into jb-mr1-dev 2012-08-29 15:55:43 -07:00
Matthew Xie
3b6214f373 Turn off verbose debug message in BluetoothAdapter
Change-Id: I30245ab911b5428f7af38f195b941db02d36b18f
2012-08-29 15:47:41 -07:00
Jeff Brown
d5ea3b4647 Merge "Add initial multi-display support." into jb-mr1-dev 2012-08-29 15:43:55 -07:00
Jeff Brown
731b8996ea Merge "Run with scissors." into jb-mr1-dev 2012-08-29 15:41:57 -07:00
Selim Gurun
8506ce1a3f Merge "Provide referer to browser on download request." into jb-mr1-dev 2012-08-29 15:39:11 -07:00
Irfan Sheriff
6bfc88876a Fix DHCP handling at disconnect/reconnect
Wifi can have a quick disconnection followed by a reconnection. We used to
create a new DHCP state machine thread for every new connection and
never really waited until it quit after disconnect. This may have lead to
situations where repeated disconnect/reconnects resulted in multiple dhcp
start calls.

We now keep the statemachine after a disconnect and only shut it at supplicant
stop.

Bug: 6417686
Change-Id: Icf66efdc654be886e3eb46c81f09f8cce536f2f6
2012-08-29 15:35:57 -07:00
Jeff Brown
bd6e1500ae Add initial multi-display support.
Split the DisplayManager into two parts.  One part is bound
to a Context and takes care of Display compatibility and
caching Display objects on behalf of the Context.  The other
part is global and takes care of communicating with the
DisplayManagerService, handling callbacks, and caching
DisplayInfo objects on behalf of the process.

Implemented support for enumerating Displays and getting
callbacks when displays are added, removed or changed.

Elaborated the roles of DisplayManagerService, DisplayAdapter,
and DisplayDevice.  We now support having multiple display
adapters registered, each of which can register multiple display
devices and configure them dynamically.

Added an OverlayDisplayAdapter which is used to simulate
secondary displays by means of overlay windows.  Different
configurations of overlays can be selected using a new
setting in the Developer Settings panel.  The overlays can
be repositioned and resized by the user for convenience.

At the moment, all displays are mirrors of display 0 and
no display transformations are applied.  This will be improved
in future patches.

Refactored the way that the window manager creates its threads.
The OverlayDisplayAdapter needs to be able to use hardware
acceleration so it must share the same UI thread as the Keyguard
and window manager policy.  We now handle this explicitly as
part of starting up the system server.  This puts us in a
better position to consider how we might want to share (or not
share) Loopers among components.

Overlay displays are disabled when in safe mode or in only-core
mode to reduce the number of dependencies started in these modes.

Change-Id: Ic2a661d5448dde01b095ab150697cb6791d69bb5
2012-08-29 15:34:17 -07:00
Svetoslav Ganov
f0340d156c Merge "Don't overwrite accessibility delegates in AbsListView items." into jb-mr1-dev 2012-08-29 14:21:18 -07:00
Jean-Baptiste Queru
69626dab17 am 4a4edbbf: am 7fecf5f4: Merge "Make addAddress locale safe"
* commit '4a4edbbfce2e1a8b34b5b9ff2793eace303dae5a':
  Make addAddress locale safe
2012-08-29 13:03:41 -07:00