History log of /frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0ffd49cbe0ab4c13fd5528abacade898a8cff481 13-Feb-2016 Jorim Jaggi <jjaggi@google.com> Always consume bottom insets when navigation bar is force shown

When an app requests SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION but we
force show the navigation bar, we need to treat for the app like
there is no virtual navigation bar on the device. Because if you
combine it with FLAG_HIDE_NAVIGATION, you'd expect the navigation
bar gets hidden but it doesn't, so there could be content that
overlaps with the navigation bar.

Bug: 27157904
Change-Id: I088e02eae2e723c35e9cb4873de6b1325458533b
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
a4a58efe8203d63a9a6bf78b0fa9f2992b25871b 27-Jan-2016 Jorim Jaggi <jjaggi@google.com> Fix app staying in drag resizing when undocking

When dismissing the docked stack, the fullscreen stack stayed in drag
resize mode because it got a relayout, but because the bounds didn't
change (it switches to the fullscreen layout a bit earlier) it never
called WM.relayoutWindow, so it stayed in drag resize mode indefinitely.

To fix this, introduce forceRelayout in Window.resized(), which makes
sure the client always calls relayoutWindow. Set this to true whenever
drag resizing is changing.

For some very weird reason this also broke that home button was not
responding anymore.

Bug: 26806532
Change-Id: I4b39c1c419a166aa7093c31226f2a4915f642328
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
2e95a488e0a12d4263d101e888fdd89fd123aec3 15-Jan-2016 Jorim Jaggi <jjaggi@google.com> More optimization while dragging docked divider

- Make sure mPendingBackdropFrame gets also set when if the window
triggers a relayout on it's own, so it doesn't call into window manager
all the time.
- Set the insets of the docked divider to empty so we don't trigger a
layout when we are just moving it - it doesn't need it in any case.
- Send a window move message to the divider when it moved
- Update attach info in all move cases, update light center

The whole resize operation now only takes around 4ms per frame, and
leaves a lot more resources for the apps to do configuration changes.

Bug: 25015474
Change-Id: Ica48129570a0fc858a89c21f46abf3442efb0224
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
253a20fad8703e21c7298fe66e0f3f53d4e63c14 03-Nov-2015 Jorim Jaggi <jjaggi@google.com> Fix black holes and flickering in docked resizing

When we start a resize with the docked stack divider,
set the surface background to be full-screen, and use
the traditional surface clipping/positioning in window
manager to adjust the size. This ensures that we don't
have any black holes because of asynchronicity (except
at the very beginning, but this can be worked around
later), and the position of the right/bottom activity
is always in sync with the position of the divider.

Also fix a bug in NonClientDecorView where the first
request to draw was dropped (because the thread hasn't
started up yet), and the main thread was waiting for it
indefinitily.

Bug: 24507122
Change-Id: I623bd48d5be64fac2fba45241b84f265944d200d
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
9f8e1f5d043a8c3980c1cc38779752c11620cf13 02-Jul-2015 Filip Gruszczynski <gruszczy@google.com> am aabc9869: am 03850591: Handle outsets when resized is called due to rotation.

* commit 'aabc9869a95928660271b7022e2756fff2654013':
Handle outsets when resized is called due to rotation.
03850591954faf5280fd581dd04cd6958eda0124 01-Jul-2015 Filip Gruszczynski <gruszczy@google.com> Handle outsets when resized is called due to rotation.

Rotation might change while the wallpaper is displayed. If outsets are
present, this must trigger a resized callback and the wallpaper must
take these accounts immediately into account before requesting relayout.

Bug: 22209764

Change-Id: I97f2670f384ccac792e7c2727eb0ef017ec66188
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
2987f616faca534a792686a53304c9932634310c 01-Jul-2015 Filip Gruszczynski <gruszczy@google.com> resolved conflicts for merge of 300ccf4a to mnc-dev

Change-Id: Ia315e314bfde0c066a2c25d93f8cbdc71fee0a14
0ec1328f85a08a610868856c688ebb8196c79c17 25-Jun-2015 Filip Gruszczynski <gruszczy@google.com> Calculate outset hint when adding window.

Outsets aren't dynamic so they are a great candidate for a hint when the
window is added through the window manager. Thanks to this during first
view hierarchy measure or wallpaper window layout they are immediately
available and don't require multiple measure/layout passes.

Bug: 21593814
Change-Id: I573c15ffbbe4fcd8a6ed9c5e4fcd6cfbbcd7434f
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
2217f61e51ba4b19c56b19297c1e9cf74d7d860f 26-May-2015 Filip Gruszczynski <gruszczy@google.com> Revert "Revert "resolved conflicts for merge of 47249f2a to mnc-dev""

This includes the fix for the broken dialog windows. The outsets will
only be calculated and applied if the window is full screen, since
they don't make much sense otherwise.

This reverts commit 4bb6b751fbbb218e8a298db4aa008472a0aa8d31.

Change-Id: I977a85a78c990c1840784dc0be0dddd5a6d84e6b
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
4bb6b751fbbb218e8a298db4aa008472a0aa8d31 23-May-2015 Dianne Hackborn <hackbod@google.com> Revert "resolved conflicts for merge of 47249f2a to mnc-dev"

This reverts commit c7becb7ee78881646251ff4846e63eb6b96bf7ec, reversing
changes made to 8562b08f04c1309cf40db1e749d612b6824f1d12.
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
c7becb7ee78881646251ff4846e63eb6b96bf7ec 21-May-2015 Filip Gruszczynski <gruszczy@google.com> resolved conflicts for merge of 47249f2a to mnc-dev

This is a merge of chin support.

Change-Id: I436b751b3c4aaa6b46cfcdb475e02eedfa5a5635
3e11bf33a6094da92d97702213aa12c67b21c4d1 20-Apr-2015 Filip Gruszczynski <gruszczy@google.com> Support for devices with a chin.

Information about the chin is now part of the config.xml instead of the
theme. It is retrieved by WindowManagerService and passed to the clients
as insets. Clients can adjust their behavior in a way that makes it
invisible to the user, that part of the surface doesn't actually exist.

Bug: 19908853

Change-Id: Iedf57bf3c848201b854f91ffeb3b59187d375c1f
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
01f280d376218c5a007fc29f70b876375ad24204 19-May-2015 Adam Powell <adamp@google.com> Migrate uses of config_windowIsRound to Configuration.isScreenRound

Move existing code that previously relied on config_windowIsRound to
use the new Configuration.isScreenRound() method. Also move the system
property override for emulators over to the initial setup of a Display
so that the configuration property is consistent with existing
expectations.

Remove config_windowIsRound from symbols.xml. The symbol now only
exists as a default value redirect for overlays already configured to
supply this value.

Change-Id: I24e6564030a6051c3ac7262868983b43e13eee65
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
4544b927d7f3575bf609490b42d521a12bf95a07 16-Apr-2015 Filip Gruszczynski <gruszczy@google.com> Hold a wake lock while dozing when wallpaper draws.

This mimics what ViewRootImpl does before drawing.

Bug: 20242788
Change-Id: If85ad17113636f74267aedb3af04d0281b57ac0e
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
d66ba06a8727fa27d1f4bcb867be17b5f576384c 23-Mar-2015 Filip Gruszczynski <gruszczy@google.com> Don't use windowOutsetBottom for insets, depend on display padding only.

I am not sure if this is the correct approach to the problem. Right now
we are reporting double chin (60 vs 30). The reason for this is that
we setDisplayPadding from Clockwork Home activity (bottom=30) and add
windowOutsetBottom.

We use display padding to set surface frame size (320x320) and both
outset bottom and display padding for inset. I think we should use only
one of these. I decided to go with display padding, because that's
what was suggested to me the last time I visited this. I removed
the dependency on windowOutsetBottom altogether.

However, I don't feel confident this is the correct way to do this.
We depend on Home activity to send the display padding now to get
the correct result, so wallpapers behind other activities will not
work correctly.

Maybe instead of setting display padding from the outside, the
windowOutsetBottom should be added to display padding bottom for the
purpose of calculating surface frame and generating insets.

Advice on what is the right approach here would be greatly appreciated.

Bug: 19881056
Change-Id: Ifb655528d8f85ef01d942bf1e64e8b08475689ca
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
a0938021718867edd267d4905f3c17ef2944aa65 13-Mar-2015 Griff Hazen <griff@google.com> Allow emulator to select a window outset bottom

And clean up some copied around code.

Bug: 17440607

Change-Id: I5cf9c58b49110c4be1a77dc9c410fedc6b99aef3
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
2ae3805efb920ee032535aad6599049e49525048 09-Dec-2014 Adrian Roos <roosa@google.com> Revert "Add overscan insets to surface frame dimensions in WallpaperService."

This reverts commit a2838dfc2c1c49b6638a59e82cd8758624efd660.

Bug: 18630625
Bug: 18659737
Change-Id: Ic02930e0200498289b781436cda1da6e4e1752bb
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
f675cad8f5f5781a29ccd733570d90bae3fe8d84 03-Dec-2014 Filip Gruszczynski <gruszczy@google.com> am 6e854ce5: Merge "Add overscan insets to surface frame dimensions in WallpaperService." into lmp-sprout-dev

* commit '6e854ce5728086b3bd293cb37bd83ebeef52aca8':
Add overscan insets to surface frame dimensions in WallpaperService.
a2838dfc2c1c49b6638a59e82cd8758624efd660 03-Dec-2014 Filip Gruszczynski <gruszczy@google.com> Add overscan insets to surface frame dimensions in WallpaperService.

Bug: 18595832
Change-Id: Ia5a03cc5e059153d76907627ee0811b0851e35ed
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
5bbb1af74a40f60d6609c2b1c580cb91ffb12c54 24-Nov-2014 Dianne Hackborn <hackbod@google.com> Merge "Work on issue #18486438: Reduce size of bugreport output" into lmp-mr1-dev
b5686d55963e76c801ca0581a1012c5f4aa8d009 24-Nov-2014 Jeff Brown <jeffbrown@google.com> am 3d110b23: Make WallpaperService watch the actual display state.

* commit '3d110b239153a6c7423a99f02ef859201205eee2':
Make WallpaperService watch the actual display state.
3d110b239153a6c7423a99f02ef859201205eee2 22-Nov-2014 Jeff Brown <jeffbrown@google.com> Make WallpaperService watch the actual display state.

Bug: 18471411
Change-Id: Ie9d2e70e4e105dfbb2cb4d9726f632bcf2cc0a31
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
d052a9416ae3f7e42fc1e7de0740021df385ee48 22-Nov-2014 Dianne Hackborn <hackbod@google.com> Work on issue #18486438: Reduce size of bugreport output

Reduce how much stuff ProcessStats spews, and do collapsing of
repeated intent filter targets when dumping IntentResolvers.

Also add to pm's checkout output to include shared user ids,
and fix output formatting in a few places.

Change-Id: Ic9fc6731f0439101ba9343535e66cdbbad47e291
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
37d7a68de7e353c31a3a4736054cd86f0e002eaf 06-Nov-2014 Adrian Roos <roosa@google.com> Fix inset hinting when adding window

Windows with FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS were
getting an incorrect content inset hint, because the
hinting didn't see the adjusted systemUiVisibility.

Also adds hinting for the stable insets.

Bug: 17508238
Change-Id: If9647277feb6811b15665b801accd896c51dbd12
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
067e5f68b9216b233df1c6529db182ff9b2887ab 08-Sep-2014 Dianne Hackborn <hackbod@google.com> Add new wallpaper features for insets and offsets.

Issue #17394151: WallpaperService / Engines need to get notified
of WindowInsets

Issue #17394203 Wallpapers need a system API to be shifted in order
to support burn in protection

Adds a new API on WallpaperManager to set additional offsets to
make wallpapers extend beyond the display size.

Insets are now reported to wallpapers, to use as they may. This
includes information about the above offsets, so they can place
their content within the visible area. And to help with this, also
expose the stable offsets APIs in WindowInsets which is also very
useful information for the wallpaper.

Another new API on WallpaperManager to set a raw offset to apply
to the wallpaper window, forcing it to move on the screen regardless
of what the wallpaper is drawing.

Fix wallpapers when used with overscan enabled, so they still extend
out across the entire screen. Conveniently, the above new window
insets information is very useful for this case as well!

And a new wallpaper test app for all this stuff.

Change-Id: I287ee36581283dd34607609fcd3170d99d120d8e
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
fa10423fa00f3495e451016acba9b6848eb995c9 21-Jun-2014 Adrian Roos <roosa@google.com> Add stable insets for stable system windows

Adds a new kind of inset that only accounts for stable system
windows like the system or navigation bar.

Bug: 15457292
Change-Id: I681b711f6f40a94c25b7acd3a44eb3539486afab
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
6090995951c6e2e4dcf38102f01793f8a94166e1 19-Nov-2013 John Spurlock <jspurlock@google.com> Remove unused imports from frameworks/base.

Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
f9e989d5f09e72f5c9a59d713521f37d3fdd93dd 05-Apr-2013 Jeff Brown <jeffbrown@google.com> 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
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
c4aad01cbbb69c916ef323693e1fd0560b0eccba 23-Feb-2013 Dianne Hackborn <hackbod@google.com> Formalize overscan metrics.

The window manager now maintains and reports a new formal
"overscan insets" for each window, much like the existing
content and visible insets. This is used to correctly
position the various UI elements in the various combination
of layout options. In particular, this allows us to have
an activity that is using fitSystemWindows to have the content
of its UI extend out to the visible content part of the screen
while still positioning its fixed UI elements inside the
standard content rect (and the entire window extending all
the way into the overscan area to fill the screen as desired).

Okay, maybe that is not written so clearly. Well, it made
my head hurt too, so suffer!

The key thing is that windows now need to know about three
rectangles: the overall rectangle of the window, the rectangle
inside of the overscan area, and the rectangle inside of the
content area. The FLAG_LAYOUT_IN_OVERSCAN option controls
whether the second rectangle is pushed out to fill the entire
overscan area.

Also did some improvements to debug dumping in the window
manager.

Change-Id: Ib2368c4aff5709d00662c799507c37b6826929fd
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
b84b9c21919a067ee989f70667c1cfa2f817c46e 11-Dec-2012 Mita Yun <mitayun@google.com> am 81f82d29: am aa8dc2ee: Removed mCallbackLooper from WallpaperService

* commit '81f82d29ed3c93704c4fa0cbfeb48a675b71c349':
Removed mCallbackLooper from WallpaperService
aa8dc2ee18c15a5c7fb897d2f41116950fd30fe6 11-Dec-2012 Mita Yun <mitayun@google.com> Removed mCallbackLooper from WallpaperService

Change-Id: Icb060a9225dbe7e848bbe80e6a9ab28fcfb59969
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
d44280e28884085f014806d53413ec5a68d0ac25 11-Dec-2012 Mita Yun <mitayun@google.com> resolved conflicts for merge of ebcbfb3f to master

Change-Id: I0658dd4a1418fbad91d9663e5b52418a979dc683
ed218c706d9e91e75b94c448cee2e6150aaee57f 07-Dec-2012 Mita Yun <mitayun@google.com> Use asynchronous messages for input method events.

Improves the throughput of IME event handling by ensuring that
input events do not get serialized behind UI traversal and
drawing messages such as when the UI is animating.

Added support for creating an asynchronous Handler as part of a
HandlerCaller. It turns out we should be using an asynchronous
Handler not only in IME dispatch but also in accessibility and
wallpaper events where HandlerCaller is used. So fixed those
services to also use an asynchronous Handler.

Change-Id: I0b19140c9d5ca6ee300c1a150c48312fd55ed8eb
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
b1ef36965bf17e791afd16a9a34bcbb32f495f68 17-Nov-2012 Craig Mautner <cmautner@google.com> Refactor unused methods and unnecessary members.

ImageWallpaper runs on the main thread now and doesn't need to add
callbacks on different threads or lock against concurrent access.

Bug 7326921 fixed.

Change-Id: I6097e1dff8af743a4fb81b697efee0e02667125b
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
bce0cbb40d060f71a7de86d5668eb690e7073c19 05-Oct-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7275122: Wall paper jank when switching users

Change-Id: I2677c7641a01b4afe89db29cb5fc1af876f9d078
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
5dc5a00e7ebadc085ded7e29feacd17e53698486 16-Sep-2012 Dianne Hackborn <hackbod@google.com> More multi-user stuff.

- New public APIs to find out when a user goes to the foreground,
background, and is first initializing.
- New activity manager callback to be involved in the user switch
process, allowing other services to let it know when it is safe
to stop freezing the screen.
- Wallpaper service now implements this to handle its user switch,
telling the activity manager when it is done. (Currently this is
only handling the old wallpaper going away, we need a little more
work to correctly wait for the new wallpaper to get added.)
- Lock screen now implements the callback to do its user switch. It
also now locks itself when this happens, instead of relying on
some other entity making sure it is locked.
- Pre-boot broadcasts now go to all users.
- WallpaperManager now has an API to find out if a named wallpaper is
in use by any users.

Change-Id: I27877aef1d82126c0a1428c3d1861619ee5f8653
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
98365d7663cbd82979a5700faf0050220b01084d 20-Aug-2012 Jeff Brown <jeffbrown@google.com> Refactor for multi-display support.

Split WindowManagerImpl into two parts, the WindowManager
interface implementation remains where it is but the global
communications with the window manager are now handled by
the WindowManagerGlobal class. This change greatly simplifies
the challenge of having separate WindowManager instances
for each Context.

Removed WindowManagerImpl.getDefault(). This represents the
bulk of this change. Most of the usages of this method were
either to perform global functions (now handled by WindowManagerGlobal)
or to obtain the default display (now handled by DisplayManager).

Explicitly associate each new window with a display and make
the Display object available to the View hierarchy.

Add stubs for some new display manager API features.

Start to split apart the concepts of display id and layer stack.
since they operate at different layers of abstraction.
While it's true that each logical display uniquely corresponds to a
surface flinger layer stack, it is not necessarily the case that
they must use the same ids. Added Display.getLayerStack()
and started using it in places where it was relatively easy to do.

Change-Id: I29ed909114dec86807c4d3a5059c3fa0358bea61
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
758143ecfedbe08cc6c4fed0ad8ad7a854194ca4 07-Aug-2012 Svetoslav Ganov <svetoslavganov@google.com> Window position not reported if the window is not moved.

1.If a window is shown but never moved the window window
is never notified for its current location. Therefore,
accessibility nodes do not contain correct bounds in
screen coordinates.

bug:6926295

Change-Id: I7df18b095d33ecafffced75aba9e4f4693b0c393
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
6881a10557acf3b0270de54799d6f19437acf584 27-Jul-2012 Craig Mautner <cmautner@google.com> Small step towards supporting multiple displays

Change-Id: I353449c2b464394988c7e0203656b5851a0c9127
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
aac0d4ed026d1cfbcf3fa81c6e4eb96f4347ca17 20-Jul-2012 Fabrice Di Meglio <fdimeglio@google.com> Replace left/right with start/end for Gravity / LayoutParams / Padding

- see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi)

Change-Id: Id9af5375fb9b0edeae5232c77e52ecd497bd2e67
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
5702d4dfb5b81491f873a3617f8d8fc8dc5279e6 30-Jun-2012 Craig Mautner <cmautner@google.com> Notify client side of window movement.

Add a one way method to notify Views that the window has moved
on the screen. Fixes issues arising from the IME popping up and
translating the window that uses it. Accessibility was left unaware
of these movements and was drawing the box around the wrong widgets.
Similarly PopupWindow used getLocationOnScreen to determine how
much screen real estate was above and below the anchor point to
determine where to put an anchored window.

Fixes bug 6623031.

Change-Id: I4731a94d5424c1ec77bf1729fba8fc9ea34cae46
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
85afd1b6f871d471fdff1980134676a5f1690525 13-May-2012 Dianne Hackborn <hackbod@google.com> Implement new window cropping.

The window manager now performs the crop internally, evaluating
it every animation from, to be able to update it along with
the surface position.

Change-Id: I960a2161b9defb6fba4840fa35aee4e411c39b32
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
5c58de3a523a384c47b0b1e0f5dd9728a74cd9f7 29-Apr-2012 Dianne Hackborn <hackbod@google.com> Add system insets to windows.

This will be used to determine which parts of a window a completely
hidden by system UI elements (status bar, nav bar, system bar) so
that they can be clipped out from rendering.

Change-Id: I2c6c6ac67dbdfeed82d2c089ef806fb483165bd9
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
35be7560300a97fc3675bdd325910f28827d9508 19-Apr-2012 Jeff Sharkey <jsharkey@android.com> Move SystemUI out of system UID.

Add permissions for various things it pokes. Create new permission
to control launching non-exported activities from recents. Hidden
API to relax WallpaperService checks.

Change-Id: I547fdcd7c213dd153ae101533ce7c56cd8f86a0d
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
32cbc3855c2a971aa5a801fd339fb6a37db91a1a 01-Dec-2011 Jeff Brown <jeffbrown@google.com> Refactor InputQueue as InputEventReceiver.

This change simplifies the code associated with receiving input
events from input channels and makes it more robust. It also
does a better job of ensuring that input events are properly
recycled (sometimes we dropped them on the floor).

This change also adds a sequence number to all events, which is
handy for determining whether we are looking at the same event or a
new one, particularly when events are recycled.

Change-Id: I4ebd88f73b5f77f3e150778cd550e7f91956aac2
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
4952dfd16a0f839559ffa78f5016394caf85294f 01-Dec-2011 Jeff Brown <jeffbrown@google.com> Ensure input events are processed in-order in the application.

As it turns out, it used to be possible for there to be multiple
input events simultaneously in flight in an application. Although
it worked, it made it hard to reason about what was going on.
The problem was somewhat exacerbated by the introduction of a
queue of "InputEventMessage" objects as part of an earlier latency
optimization.

This change restores order from chaos and greatly simplifies the
invariants related to input event dispatch within the application.

Change-Id: I6de5fe61c1fe2ac3dd33edf770d949044df8a019
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
6d05fd3c795088ac60f86382df5a66d631e8a0cb 19-Nov-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5588689: Black camera preview after coming back from gmail

Make surface management between SurfaceView and the window manager
much more controlled, to ensure that SurfaceView always gets to report
the current surface is destroyed before the window manager actually
destroys it.

Also a small tweak to allow windows that have a wallpaper background
to still have a preview window. This makes launching home after it
has been killed feel much more responsive.

Change-Id: I0d22cf178a499601a770cb1dbadef7487e392d85
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
a8e5a2bcd6a0d35893187c6df42425c03be005da 28-Oct-2011 Chet Haase <chet@google.com> Optimize handling of scrolled wallpapers

Swiping the home screen causes the WindowManagerService to do
a bunch of work to keep the wallpapers in sync. First, it lays out
and places all windows. Also, it notifies the SystemUI process that
the wallpaper position has changed.

The layout/place operation is too much work - we only need to set
the position values for the wallpaper, not relayout the whole system.

The notification mechanism must exist, but should be optional. Most
wallpapers don't care (especially static ImageWallpapers). So we'll
give them a new API (WallpaperService.Engine.setWantsOffsets()) to
allow wallpapers to opt out of this process and avoid the performance
overhead.

Change-Id: I66c38375438937f14f6f5550565b28eb204b1e06
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
9a230e01a1237749a8a19a5de8d46531b0c8ca6a 06-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately

This cleans up how ui flags are managed between the client and window manager.
It still reports the global UI mode state to the callback, but we now only clear
certain flags when the system goes out of a state (currently this just means the
hide nav bar mode), and don't corrupt other flags in the application when the
global state changes.

Also introduces a sequence number between the app and window manager, to avoid
using bad old data coming from the app during these transitions.

Change-Id: I40bbd12d9b7b69fc0ff1c7dc0cb58a933d4dfb23
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
9fe6cb5cc2cc86a370d47afc44d27fa7086a15be 09-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5273986: The power usage of the mp3 background playback...

...increased from ~50mA to 260mA

Change-Id: I24d7188185f4ec5ff9e1f29c15472ae56c851e5e
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
9e4e727b4a164c17944e8ae6eb2d2532a98737f8 30-Aug-2011 Dianne Hackborn <hackbod@google.com> Fix issues #5233826 and #5209847 -- live wallpapers.

5233826 when a live wallpaper starts, it does so regardless of its visibility

The WallpaperService is now very forceful about telling a wallpaper it is
not visible when it first starts.

5209847 Make launcher turn off the wallpaper in all apps.

Fix a bug in the window manager that would not correctly handle the wallpaper
flag changing.

Change-Id: Ie3314043a84664be72a1304a1705408efd789a15
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
527de8e3de4c2bad9ba0fc0e50f8fb3f95ba4681 23-Aug-2011 Dianne Hackborn <hackbod@google.com> Debugging for issue #5180240: Wallpaper continues to consume CPU when screen off

Add debug dump to the wallpaper service.

Change-Id: I01502b10de93b6f9d2315fd66776f3f2210e6696
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
6dd005b48138708762bfade0081d031a2a4a3822 18-Jul-2011 Dianne Hackborn <hackbod@google.com> I. Can. Not. Stand. ViewAncestor.

It was done so we would have the name "ViewRoot" available for a
public API. However, the name "ViewAncestor" just makes no sense.
So instead, change it to ViewRootImpl.

Change-Id: If9599ca67896f339f6fefa7d1dde121201171d97
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
24572375323dee79e3b456af07640ca194fd40bf 10-Jun-2011 Jeff Brown <jeffbrown@google.com> Optimize orientation changes.

Modified setRotation to allow it to restart a rotation in
progress as long as the rotation animation has not yet started.
This enables the system to recover more quickly from mispredicted
orientation changes.

Removed the call to System.gc() when freezing the display, which
added 60-80ms before we even started the orientation change.
We used to need this to make it less likely that an upcoming GC
would cause a pause during the window animation, but this is
not longer a concern with the concurrent GC in place.

Changed the wallpaper surface to be 32bit. This accelerates
drawing and improves the overall appearance slightly.

Reduced code duplication in the WallpaperManager.

Change-Id: Ic6e5e8bdce4b970b11badddd0355baaed40df88a
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
c6cc0f8c19d9eccf408a443fa2bf668af261dcd0 12-Apr-2011 Joe Onorato <joeo@google.com> Rename ViewRoot to ViewAncestor.

ViewRoot is about to be a new public class for poking at ViewAncestor.

Change-Id: Ie95d707c6d8bbb48f78d093d7b2667851812a7d5
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
33bbfd2232ea9eaae9a9d87a05a95a430f09bd83 25-Feb-2011 Jeff Brown <jeffbrown@google.com> Add support for mouse hover and scroll wheel.

Dispatch ACTION_HOVER_MOVE and ACTION_SCROLL through the View
hierarchy as onGenericTouchEvent. Pointer events dispatched
this way are delivered to the view under the pointer. Non-pointer
events continue to be delivered to the focused view.

Added scroll wheel support to AbsListView, ScrollView,
HorizontalScrollView and WebView. Shift+VSCROLL is translated
to HSCROLL as appropriate.

Added logging of new pointer events in PointerLocationView.

Fixed a problem in EventHub when a USB device is removed that
resulted in a long stream of ENODEV errors being logged until INotify
noticed the device was gone.

Note that the new events are not supported by wallpapers at this time
because the wallpaper engine only delivers touch events.

Make all mouse buttons behave identically. (Effectively we only
support one button.)

Change-Id: I9ab445ffb63c813fcb07db6693987b02475f3756
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
3b723ace405305e61ab25f96cb8ee1a321edcf9b 02-Feb-2011 Michael Jurka <mikejurka@google.com> am 46ab5e13: Merge "add missing call to superclass method" into honeycomb

* commit '46ab5e13f27324d634ff27b7fd75c5d432b915bf':
add missing call to superclass method
b8f939fb5759fc25fced8df3304d6288b0c25430 02-Feb-2011 Michael Jurka <mikejurka@google.com> add missing call to superclass method
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
d48ba867d69159542cf967d5fcaba41c5474f134 02-Feb-2011 Dianne Hackborn <hackbod@google.com> am e77f9914: Merge "Whoops, need to put this check back." into honeycomb

* commit 'e77f99144f015d9044909a4c128fa916465b0671':
Whoops, need to put this check back.
a48a37f025dd875bfb1e46b673a3a54fb8e6b26b 02-Feb-2011 Dianne Hackborn <hackbod@google.com> Whoops, need to put this check back.

We still don't want third party wallpapers to be able to do this,
since it can't work with all window animations.

Change-Id: I97c8ef78c36bd89bf47a7c4533ed1c244dcff4a6
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
2a70a1e349cb982ae68196195d4745474d8f2568 02-Feb-2011 Dianne Hackborn <hackbod@google.com> am bd77ed7f: Merge "Make image wallpaper use a big surface." into honeycomb

* commit 'bd77ed7fff87b79008e3b071115674dff2721994':
Make image wallpaper use a big surface.
f185552f63fe4a4a1a8de602bc6fc6e57d3ff7fe 02-Feb-2011 Dianne Hackborn <hackbod@google.com> Make image wallpaper use a big surface.

Change-Id: I119f2bfee5fde08040520bd0da8574194a893ab5
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
391ef42c92ab97e5c22a720973790696d30576ca 25-Jan-2011 Jeff Brown <jeffbrown@google.com> am 3168a137: Merge "Fix surface frame size reporting." into honeycomb

* commit '3168a13723ff0f3f87937457fe33c3518caa4bb9':
Fix surface frame size reporting.
30bc34f191ca8a009af313fc751e5b4bff6e39a1 25-Jan-2011 Jeff Brown <jeffbrown@google.com> Fix surface frame size reporting.

The SurfaceHolder provided by the wallpaper service was not reporting
the correct size in getSurfaceFrame(). This broke an optimization in
the ImageWallpaper. The old code happened to work because calling
lockCanvas on the SurfaceHolder with a null dirty rectangle happened
to have the side-effect of updating the SurfaceHolder's surface frame
size field because it passed mSurfaceFrame as the dirty rect, causing
mSurfaceFrame to be set to the size of the region to be drawn.

However, relying on this side-effect is wrong. Among other things,
the dirty region could actually be smaller than the surface frame.

This patch fixes WallpaperService, SurfaceView and ViewRoot to ensure
that the surface frame size is always set explicitly and is not modified
by calls to lockCanvas.

Change-Id: I10948f5ec269409ceaf0f7d32b3f6731e9499ebc
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
b841fa63026803093c093ad25ab0ccbd4c49e45b 13-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> am 54f428a6: am bdb7aee0: Merge "Fix for crash when setting live wallpaper."

* commit '54f428a63f33f4722c09b7688e6ca7960394f81f':
Fix for crash when setting live wallpaper.
d9463f50c8c1aa8969502b117777a4c185971c08 12-Jan-2011 Mattias Petersson <mattias.petersson@sonyericsson.com> Fix for crash when setting live wallpaper.

This fix prevents a crash that sometimes happens when setting a
live wallpaper. It happened when pressing "Set wallpaper" button
in the live wallpaper preview activity, before the preview was
fully loaded.

The crash happened in native code while updating the wallpaper
surface when calling mInputChannel.registerInputChannel(),
because the previous call to
mSession.add(mWindow, mLayout, View.VISIBLE, mContentInsets,
mInputChannel)
had failed. The fix aborts the surface update when it is not
possible to add the window.

Change-Id: I0e79a851e5c7f7b15eb07043c63d1f4d78f14616
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
9f3bdfe3eb04723efa07a2d0e6a7709da1191fa5 13-Oct-2010 Jeff Brown <jeffbrown@google.com> Add method for sending wallpaper commands directly to an engine.

This enables the livewallpaper preview activity to send tap commands to the
wallpaper so that the preview is more interactive.

Also add a command for sending secondary pointer taps for multitouch
enabled wallpapers.

Change-Id: I9fa10cc47d92dfa9f1a1208aba44c66943eee3ec
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
3915bb845b032dc184dba5e60970b803390ca3ed 05-Nov-2010 Jeff Brown <jeffbrown@google.com> Tell system server whether the app handled input events.

Refactored ViewRoot, NativeActivity and related classes to tell the
dispatcher whether an input event was actually handled by the application.

This will be used to move more of the global default key processing
into the system server instead of the application.

Change-Id: If06b98b6f45c543e5ac5b1eae2b3baf9371fba28
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
dcfae5c0fdc917f15a3e9ab75ee1d819b6db26ba 29-Oct-2010 Joe Onorato <joeo@android.com> Report the new size to wallpapers when the requested size changed.

We were telling the app, but we weren't saving the data for ourselves.
This also tells them to re-scroll when there's a new size.

Bug: 3144373
Change-Id: I9d12b714119ff02dd7d7f1cfa997d8a44475b9e9
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
840db1f678ed15f0f3e9c58310b1e80ebb1f331a 22-Oct-2010 Jeff Brown <jeffbrown@google.com> Fix a race condition in wallpaper move throttling.

Bug: 3099316
Change-Id: Ia3221975b5be7fae8359d6ab531bbecd0e29aee9
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
62bf4a0283e855e2fb5f40f36909501e5b4a09eb 09-Sep-2010 Mathias Agopian <mathias@google.com> Force wallpaper surface to 565.

This is to maintain backward compatibility with badly programmed
GL wallpapers. Wallpapers can call SurfaceHolder.setFormat() to
request a different format.

Change-Id: Ib42b0cf6c7040d1300cad239c3acfd5c4c6cd326
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
c5ed5910c9ef066cec6a13bbb404ec57b1e92637 15-Jul-2010 Jeff Brown <jeffbrown@google.com> Add support for new input sources.

Added several new coordinate values to MotionEvents to capture
touch major/minor area, tool major/minor area and orientation.

Renamed NDK input constants per convention.

Added InputDevice class in Java which will eventually provide
useful information about available input devices.

Added APIs for manufacturing new MotionEvent objects with multiple
pointers and all necessary coordinate data.

Fixed a bug in the input dispatcher where it could get stuck with
a pointer down forever.

Fixed a bug in the WindowManager where the input window list could
end up containing stale removed windows.

Fixed a bug in the WindowManager where the input channel was being
removed only after the final animation transition had taken place
which caused spurious WINDOW DIED log messages to be printed.

Change-Id: Ie55084da319b20aad29b28a0499b8dd98bb5da68
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
1d28f9c0aabee7f9e1c38451a4baf13109244c18 14-Jul-2010 Dianne Hackborn <hackbod@google.com> Fix docs build.

Change-Id: Ibb8e1e4b18ec1e92e28d354cdcce37676056b348
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
d76b67c340d1564abf8d14d976fdaf83bf2b3320 14-Jul-2010 Dianne Hackborn <hackbod@google.com> IME events are now dispatched to native applications.

And also:

- APIs to show and hide the IME, and control its interaction with the app.
- APIs to tell the app when its window resizes and needs to be redrawn.
- API to tell the app the content rectangle of its window (to layout
around the IME or status bar).

There is still a problem with IME interaction -- we need a way for the
app to deliver events to the IME before it handles them, so that for
example the back key will close the IME instead of finishing the app.

Change-Id: I37b75fc2ec533750ef36ca3aedd2f0cc0b5813cd
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
00fa7bdd69f0868fd17ea7c881c771d785b2fbbd 03-Jul-2010 Jeff Brown <jeffbrown@google.com> More native input dispatch work.

Removed old input dispatch code.
Refactored the policy callbacks.
Pushed a tiny bit of the power manager state down to native.
Fixed long press on MENU.
Made the virtual key detection and cancelation a bit more precise.

Change-Id: I5d8c1062f7ea0ab3b54c6fadb058c4d5f5a9e02e
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
349703effce5acc53ed96f7ed8556131f0c65e18 22-Jun-2010 Jeff Brown <jeffbrown@google.com> Native input event dispatching.

Target identification is now fully native.
Fixed a couple of minor issues related to input injection.
Native input enabled by default, can be disabled by setting
WindowManagerPolicy.ENABLE_NATIVE_INPUT_DISPATCH to false.

Change-Id: I7edf66ed3e987cc9306ad4743ac57a116af452ff
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
46b9ac0ae2162309774a7478cd9d4e578747bfc2 23-Apr-2010 Jeff Brown <jeffbrown@google.com> Native input dispatch rewrite work in progress.

The old dispatch mechanism has been left in place and continues to
be used by default for now. To enable native input dispatch,
edit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.

Includes part of the new input event NDK API. Some details TBD.

To wire up input dispatch, as the ViewRoot adds a window to the
window session it receives an InputChannel object as an output
argument. The InputChannel encapsulates the file descriptors for a
shared memory region and two pipe end-points. The ViewRoot then
provides the InputChannel to the InputQueue. Behind the
scenes, InputQueue simply attaches handlers to the native PollLoop object
that underlies the MessageQueue. This way MessageQueue doesn't need
to know anything about input dispatch per-se, it just exposes (in native
code) a PollLoop that other components can use to monitor file descriptor
state changes.

There can be zero or more targets for any given input event. Each
input target is specified by its input channel and some parameters
including flags, an X/Y coordinate offset, and the dispatch timeout.
An input target can request either synchronous dispatch (for foreground apps)
or asynchronous dispatch (fire-and-forget for wallpapers and "outside"
targets). Currently, finding the appropriate input targets for an event
requires a call back into the WindowManagerServer from native code.
In the future this will be refactored to avoid most of these callbacks
except as required to handle pending focus transitions.

End-to-end event dispatch mostly works!

To do: event injection, rate limiting, ANRs, testing, optimization, etc.

Change-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
dc8a7f69d7df5f1ca29763995a0d55acf7936fc6 10-May-2010 Dianne Hackborn <hackbod@google.com> Add new API to take over a window's Surface.

Change-Id: Iad6245faadc95f19ea63c8e229a1c02e9188f69e
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
18ee31e89766ec78f1c25f4e307306a16fe35818 28-Apr-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2594388: WallpaperService doesn't always call onSurfaceDestroyed()

Take care of the window manager destroying a surface, to report to the
app that it has been destroyed. Make sure to perform a traversal when
becoming visible to re-create the surface if needed.

Change-Id: If3bc05e0106f90d4c3bad2d7575212667680fbc8
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
ba3e31d9eed67291a51b501d12fdc27625af688e 23-Apr-2010 Dianne Hackborn <hackbod@google.com> Some debugging help for issue #2594388

WallpaperService doesn't always call onSurfaceDestroyed()

Just helps us see a little better what is going on.

Change-Id: Ibe8efd9e343e880ca31df446c8b36c7fa3722e87
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
694f79b5d1196640d1beb680b7d1fc68e6e77cbd 18-Mar-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2519590: Lock screen stuck in landscape mode

Well, mostly. There is still a problem here where the first time
you show the lock screen it just doesn't draw itself. I assume
this is something breaking in the view hierarchy as it floounders
around removing and adding new views as it is first being shown...
but no idea at this point what is the actual case.

Change-Id: Iba99ae3242931c8673b17b106c86fc99e2c52abe
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
04cde3413cbdb004642267f3d2139e90f9c1072e 05-Mar-2010 Romain Guy <romainguy@android.com> Report an offset change in a live wallpaper when the wallpaper is resized.
Bug #2489288

Prior to this change, changing the display's orientation would not send an offset
change, which could cause live wallpapers relying on pixel offsets to display the
wrong position.
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
e36d6e277e49475076b7872d36ea6a5c5b996e9d 18-Feb-2010 Dianne Hackborn <hackbod@google.com> Work on issue #2263557: PMF3000 showing hybrid of portrait and landscape modes

This is a bunch of reworking of how configuration changes are handled:

- When orientation is changing (for whatever reason), the window manager no
longer tries to pre-emptively compute a new configuration. Instead, it
just determines change is happening and tells the window manager.
- The activity manager is now responsible for giving the window manager the
final configuration it is using. This is both so it knows whem the
activity manager is done with its configuration updates, and so the window
manager can use the "real" configuration.
- When an orientation or other configuration change is happening, freeze the
screen and keep it frozen until the activity manager has given us the
final configuration.
- The window manager can now send new configurations to its clients during
its layout pass, as part of a resize, if it has determined that it has
changed. This allows for a new View.onConfigurationChanged() API for any
view to easily find out when the configuration has changed.
- ViewRoot now also works with the activity thread to make sure the process's
current resources are updated to the new configuration when it receives one
from a window. This ensures that at the time onConfigurationChanged() and
other view callbacks are happening, the correct configuration is in force.
- There is now a sequence number associated with Configuration, which
ActivityThread uses to avoid using stale configurations. This is needed now
that it can receive configurations asynchronously from both the window
manager and activity manager.
- The hack for keeping the locale has been removed, and underlying problem
fixed by having Configuration initialize its locale to "unknown" instead of
a valid default value.
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
d68478467e3f837511196c80891d7245d0e163df 13-Jan-2010 Dianne Hackborn <hackbod@google.com> First pass at new device policy and administration APIs.

This adds new DevicAdmin, DevicePolicyManager, and DeviceAdminInfo classes.
See the java docs for each on documentation on them. Basically: a DeviceAdmin
is what you derive from to administer a device; DevicePolicyManager is what you
use to apply and check your policy requirements and perform other administration
tasks.
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
980a938c1c9a6a5791a8240e5a1e6638ab28dc77 09-Jan-2010 Romain Guy <romainguy@android.com> Deprecate fill_parent and introduce match_parent.
Bug: #2361749.
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
af1f42be96a6ffa7a9b63e199e1614281ea3282d 21-Nov-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2271668: Live Wallpaper Force-Close when changing from live wallpaper to picasa wallpaper

The detach of the wallpaper engine was coming in after the containing
service was destroyed. This was possible because these are different
IPC interfaces so will not be serialized. The fix is to keep track
of all of the active engines in the serice, and detach any remaining
ones when the service is destroyed.

Change-Id: I8810786a777dd4f7b15cfbd2e0da25866a4f3ec5
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
e4260f4e7da4da32bfab2737018cf9cf75215894 19-Nov-2009 Dianne Hackborn <hackbod@google.com> Fix build.

Change-Id: I3aeb4f374a99d5872ba19c04624aa1b5ca6cd5d0
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
23ef7b4836d66d31430fedee2aac36275bb30d4b 19-Nov-2009 Dianne Hackborn <hackbod@google.com> Fix most of issue #2271640: Fix wallpaper etc docs

Only thing remaining is the live wallpaper feature.

Change-Id: I8854c7978999d759bf618307f4f984c9c89d3fc8
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
6adba2467ca524b4c4f3d775de6aa10a9ad57aea 10-Nov-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2170897: wallpaper touch-up event not seen when exiting lock screen

Make sure to deliver events to the wallpaper until the final up.

Also fix behavior in the case where a window goes away while the pointer is still
down in it, which is a fairly novel situation introduced by the new lock screen.

Also add infrastructure for delivering motion events during preview.

Change-Id: I0de7979be27e00caf0b1eff794ea899a815142f6
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
bf6956b1d95442e9d9c483894d578fe6b7044cbb 10-Nov-2009 Marco Nelissen <marcone@google.com> Add a way for wallpapers to know the delta between virtual screens.
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
13bf8260134d516cbcc982d360d9f21067f47fa6 06-Nov-2009 Dianne Hackborn <hackbod@google.com> Fix SDK build: a few things missing, a link that was wrong.

Change-Id: I55c9c510b3f0866ce6085927afa00b9fb69dd8c5
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
274b120f3975c8db6daeeab51a5fe08d6dede479 06-Nov-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2243096: Need to expose live wallpaper APIs in SDK

Change-Id: I7e996bf549922c1bb8e8c00d051650ffe12d818c
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
7580493b014a2c7ea883cd291255798dc72ebbff 21-Oct-2009 Dianne Hackborn <hackbod@google.com> Implement feature #2117336: Create event communication APIs for live wallpaper

Note: currently only implements an async version (no result), and not yet
actually tested.

Change-Id: Id47ed045a4b0eb309ea8c58daf41a0e03eff1d3a
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
ae87bd089aaa2f30b4e0d68fff25ea725a14aa9e 17-Sep-2009 Marco Nelissen <marcone@google.com> Fix typo
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
19382ac1a4e4e7c23a1346d299368763f149de9c 12-Sep-2009 Dianne Hackborn <hackbod@google.com> Some optizations to wallpaper drawing/scrolling.

First, fix some issues with the final wallpaper bitmap
we use: ensure it is always 16bpp, and make sure dithering
of its bitmap is turned off. We take of dithering
when loading, to make sure we don't use it when drawing.

Also add new APIs to return the wallpaper with the equivalent
of Launcher's old FastBitmapDrawable. As doing this, also load
the default wallpaper the same way as custom ones, taking care to
resize it as needed at load time.

Finally implement a mechanism for the window manager to wait
for the wallpaper to redraw at its new position before returning
from the application's call to change the offset. This ensures
that the wallpaper better tracks the application. Note that there
is a timeout in this wait that is relatively short, and if it
expires we will run for a while without waiting.

Change-Id: Ife449437746da85958bd447e0a6cf3d2223b398c
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
bcbcaa7edd32ba67c6290d79f7e7821c4b5b39ac 10-Sep-2009 Dianne Hackborn <hackbod@google.com> Wallpapers, animations, pending intent.

Some more tweaks and fixes to wallpapers. Make sure wallpapers are
told they are not visible when the screen is off. Add some new animations
for transitions across tasks, and fiddle with many of the existing
animations. Clean up the relationship between translucent activities
and animations. Add new API to start a PendingIntent from an
activity.

Change-Id: Ie0bf45fe44081bb6982c75361257a55d9cd9d863
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
eb034652c2037a47ebfd99779e8383bb8bb528af 07-Sep-2009 Dianne Hackborn <hackbod@google.com> Implement all of the infrastructure for configuring wallpapers.

Actually being able to configure a wallpaper relies on additional
work in the launcher and wallpapers that will be in another change.
Also note that this breaks all existing wallpapers, since they now
need to include a meta-data item about themselves. This also
will be fixed in another change.

Change-Id: I97d2c2bd07237abc32f92b9147c32530a2f73c71
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
0586a1b77a788a119166a37fccd909bf9ed65f23 07-Sep-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2095422: Some fades from opaque to transparent don't work

ViewRoot was using Surface.clear(), which has different behavior
in different processes -- in the system process it would kill the
surface, causing all windows in that process to immediately disappear
instead of animating away.

This change makes Surface.release() public and uses that instead. It
also renames Surface.clear() to Surface.destroy().

Also fixed some issues in the window manager that were causing the
wallpaper to not get immediately resized when the orientation changes
and its target window is removed and re-added.

Change-Id: I2a992e365cf5747511f0bf1193db32dc2525b218
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
284ac93aa30642fda87d5c40263a1263677c21cd 28-Aug-2009 Dianne Hackborn <hackbod@google.com> More work on wallpapers: animations, lifecycle, scaling, etc.

Yet more work on improving the behavior of wallpapers. This fixes a few
problems in their lifecycle (corresponding change in the picker also
required for this), makes their animations better for hardware that supports
alpha fades, adds animations for the wallpapers themselves, eliminates
fixed size wallpapers, and adjusts the API for retrieving a wallpaper
bitmap to take care of scaling the raw wallpaper image to match the current
desired width and height.

Change-Id: If1c0aaceba4ea4e175dcb7a8416ca7ddbb9bfa6f
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
3be63c09309b21c01b535271625d4c39045690e5 21-Aug-2009 Dianne Hackborn <hackbod@google.com> Infrastructure for supporting wallpaper previews.

Various things that will allow us to show previews of wallpapers.
Also some fixes to animations across wallpapers.
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
cbf15048240ecf460957ac3de98a7efbccbbb754 19-Aug-2009 Dianne Hackborn <hackbod@google.com> Don't call onSurfaceChanged() if nothing interesting has changed.
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
8df8b2b405c60cacf7a66c4e2ca078dd3d7ec7bd 18-Aug-2009 Dianne Hackborn <hackbod@google.com> Allow wallpapers to get touch events.
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
7341d7a104b47996445d069a695e155a07184606 14-Aug-2009 Dianne Hackborn <hackbod@google.com> More work on wallpapers.

- Do better about figuring out when to stop them and other related window
management.
- Fix problem where we were not redrawing the surface when the orientation
changed. This was the cause of the device hang.
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
72c82ab9923025a91bbabb32e56bfea27bfd083b 12-Aug-2009 Dianne Hackborn <hackbod@google.com> Report wallpaper offset to the wallpaper, use this in the image wallpaper.

Wallpapers can now be just the size of the screen, and get told when their
scroll position should change to do the updating on their own.
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
759a39e8d2a8b27ef07e102394629dce68aa186b 10-Aug-2009 Dianne Hackborn <hackbod@google.com> Live wallpapers become a little more real.

This adds a new theme for having a wallpaper, and fixes up the window manager
to do the right thing when transitioning between a windows with and without
wallpapers (between two windows with wallpapers is not yet addressed).

The wallpaper API now has callbacks to tell you when to start/stop animating.

Also fiddle the image wallpaper to be a little more interesting.
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 09-Aug-2009 Dianne Hackborn <hackbod@google.com> Very primitive wallpapers in a surface.

This is all of the basic pieces:

- The WallpaperService now creates a surface with the window manager for its
contents.
- There is a simple service that displays a bitmap.
- The wallpaper manager takes care of starting and stopping the service.
- The window manager knows about wallpaper windows and how to layer them with
the windows that want to be shown on top of wallpaper.

Lots and lots of issues remain, but at this point you can actually write a
wallpaper service, select it in the UI, and see it behind an activity.
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java
8cc6a5026aeb5cf9cc36529426fe0cc66714f5fb 06-Aug-2009 Dianne Hackborn <hackbod@google.com> First bit of wallpaper work.

This is mostly refactoring, adding a new WallpaperManager class that takes care
of the old wallpaper APIs on Context, so we don't need to pollute Context with
various new wallpaper APIs as they are needed. Also adds the first little
definition of a wallpaper service, which is not yet used or useful.
/frameworks/base/core/java/android/service/wallpaper/WallpaperService.java