Merge "Deferring wallpaper update to improve workspace scrolling (issue 5506959)" into ics-mr1

This commit is contained in:
Adam Cohen
2011-11-10 19:27:58 -08:00
committed by Android (Google) Code Review

View File

@@ -212,7 +212,11 @@ public class WallpaperManager {
*/
mHandler.sendEmptyMessage(MSG_CLEAR_WALLPAPER);
}
public Handler getHandler() {
return mHandler;
}
public Bitmap peekWallpaperBitmap(Context context, boolean returnDefault) {
synchronized (this) {
if (mWallpaper != null) {
@@ -604,7 +608,7 @@ public class WallpaperManager {
// Ignore
}
}
/**
* Set the position of the current wallpaper within any larger space, when
* that wallpaper is visible behind the given window. The X and Y offsets
@@ -619,16 +623,23 @@ public class WallpaperManager {
* @param yOffset The offset along the Y dimension, from 0 to 1.
*/
public void setWallpaperOffsets(IBinder windowToken, float xOffset, float yOffset) {
try {
//Log.v(TAG, "Sending new wallpaper offsets from app...");
ViewRootImpl.getWindowSession(mContext.getMainLooper()).setWallpaperPosition(
windowToken, xOffset, yOffset, mWallpaperXStep, mWallpaperYStep);
//Log.v(TAG, "...app returning after sending offsets!");
} catch (RemoteException e) {
// Ignore.
}
final IBinder fWindowToken = windowToken;
final float fXOffset = xOffset;
final float fYOffset = yOffset;
sGlobals.getHandler().post(new Runnable() {
public void run() {
try {
//Log.v(TAG, "Sending new wallpaper offsets from app...");
ViewRootImpl.getWindowSession(mContext.getMainLooper()).setWallpaperPosition(
fWindowToken, fXOffset, fYOffset, mWallpaperXStep, mWallpaperYStep);
//Log.v(TAG, "...app returning after sending offsets!");
} catch (RemoteException e) {
// Ignore.
}
}
});
}
/**
* For applications that use multiple virtual screens showing a wallpaper,
* specify the step size between virtual screens. For example, if the