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
This change refactors keyguard to be more modular and maintainable. More
specifically, it replaces the top-level view with just one device-dependent
view that contains two views: a widget area and a security area.
The widget area can be populated with custom widgets.
The security area contains the current security method as dictated by
the stored password quality.
This change contains both the old and the new keyguard with the old keyguard
still enabled. The new keyguard will be enabled in a subsequent change.
Change-Id: Id75286113771ca1407e9db182172b580f870b612
In some cases bitmap's pixels where freed during encoding, which
caused a null pointer dereference.
This fix makes sure that underlaying buffer is locked for the whole
process of compression.
Change-Id: I0ac56821f5d333072271dc2670fa30f1562adfa3
Add a useful (if somewhat dangerous) method which will help
replace similarly dangerous code patterns in a few different places.
Change-Id: If1295f7ab9652c906ce718d94eb7914d143e1939
Creates a defult.xml setting for WiFi sleep policy.
It is now possible, through device overlays, to change
the default sleep policy to e.g. never in order to improve
user experience of WiFi.
Change-Id: Ie459b8e70fdbc7c605452fe0692d7bc26460e939
When the second user downloads a new wallpaper service, Wallpaper
service needs to query the correct user's package state to figure
out if it is available and bind to it.
Change-Id: Ifb95db1c859887f996f5b2e821b4b46510ee7016
This solves the problems around active pointer tracking when the
caller may skip events in the MotionEvent stream and replaces the
old implementation with a much simpler algorithm.
Change-Id: I6b15a2e215cab7b9559db800fcc57374702357fc
Since the Recents is now an activity running in the respective user's sandbox,
it shouldn't use the special API to get the current user's recent tasks.
Otherwise it causes all users to fetch the state of the current foreground user
instead of their own recents.
Change-Id: Ice8c2978e6a7ae71c44666c79a19ac07a2cbea1b
Store the userId in the PendingIntentRecord.Key, so that it doesn't match
an identical pending intent from another user.
Change-Id: Icfc39e0f717c902dc3a60bdf5283a3402bbd2eaa
The WindowManager retrieved from the activity Context with
getSystemService is incorrect for a Toast. Because it contains
a parent window when addView is called its LayoutParams.token
is set to the value of the parent window. Then when an Activity
is dismissed WindowManagerGlobal.closeAll() sees the incorrect
token and incorrectly closes the Toast.
This fix uses the application Context instead of the activity
Context to retrieve a WindowManager with no parent window. This
leaves the token unchanged and keeps from dismissing the toast when
the activity is closed.
Fixes bug 7048792.
Change-Id: I92c3095d8fabd6e9e4206e9bc8e917885ab322a9