summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2011-08-24 20:56:05 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-08-24 20:56:05 -0700
commit6ff0037792619c4441d9d3caa4f9ab4f45c11236 (patch)
tree79494a767588fff0f92eb587b9ae109c64f2e033
parent1fc756da434441708eb557a22363eea7f41f3f73 (diff)
parent07213e6d8895af10951851435adf96a779863f6c (diff)
downloadframeworks_base-6ff0037792619c4441d9d3caa4f9ab4f45c11236.zip
frameworks_base-6ff0037792619c4441d9d3caa4f9ab4f45c11236.tar.gz
frameworks_base-6ff0037792619c4441d9d3caa4f9ab4f45c11236.tar.bz2
Merge "Fix to show the correct HW accel background in the preview window."
-rw-r--r--core/java/android/view/ViewRootImpl.java8
-rw-r--r--services/java/com/android/server/WallpaperManagerService.java20
2 files changed, 20 insertions, 8 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 357b6e4..fdf6ad7 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -575,7 +575,6 @@ public final class ViewRootImpl extends Handler implements ViewParent,
if (hardwareAccelerated) {
if (!HardwareRenderer.isAvailable()) {
- mAttachInfo.mHardwareAccelerationRequested = true;
return;
}
@@ -601,6 +600,13 @@ public final class ViewRootImpl extends Handler implements ViewParent,
mAttachInfo.mHardwareRenderer = HardwareRenderer.createGlRenderer(2, translucent);
mAttachInfo.mHardwareAccelerated = mAttachInfo.mHardwareAccelerationRequested
= mAttachInfo.mHardwareRenderer != null;
+ } else {
+ // We would normally have enabled hardware acceleration, but
+ // haven't because we are in the system process. We still want
+ // what is drawn on the screen to behave as if it is accelerated,
+ // so that our preview starting windows visually match what will
+ // actually be drawn by the app.
+ mAttachInfo.mHardwareAccelerationRequested = true;
}
}
}
diff --git a/services/java/com/android/server/WallpaperManagerService.java b/services/java/com/android/server/WallpaperManagerService.java
index 565063a..6ceccaf 100644
--- a/services/java/com/android/server/WallpaperManagerService.java
+++ b/services/java/com/android/server/WallpaperManagerService.java
@@ -118,9 +118,10 @@ class WallpaperManagerService extends IWallpaperManager.Stub {
File changedFile = new File(WALLPAPER_DIR, path);
if (WALLPAPER_FILE.equals(changedFile)) {
notifyCallbacksLocked();
- if (mWallpaperComponent == null ||
- mWallpaperComponent.equals(mImageWallpaperComponent)) {
- bindWallpaperComponentLocked(mWallpaperComponent, true);
+ if (mWallpaperComponent == null || mImageWallpaperPending) {
+ mImageWallpaperPending = false;
+ bindWallpaperComponentLocked(mImageWallpaperComponent, true);
+ saveSettingsLocked();
}
}
}
@@ -133,7 +134,12 @@ class WallpaperManagerService extends IWallpaperManager.Stub {
int mWidth = -1;
int mHeight = -1;
-
+
+ /**
+ * Client is currently writing a new image wallpaper.
+ */
+ boolean mImageWallpaperPending;
+
/**
* Resource name if using a picture from the wallpaper gallery
*/
@@ -343,6 +349,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub {
}
final long ident = Binder.clearCallingIdentity();
try {
+ mImageWallpaperPending = false;
bindWallpaperComponentLocked(null, false);
} catch (IllegalArgumentException e) {
// This can happen if the default wallpaper component doesn't
@@ -433,9 +440,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub {
try {
ParcelFileDescriptor pfd = updateWallpaperBitmapLocked(name);
if (pfd != null) {
- // Bind the wallpaper to an ImageWallpaper
- bindWallpaperComponentLocked(mImageWallpaperComponent, false);
- saveSettingsLocked();
+ mImageWallpaperPending = true;
}
return pfd;
} finally {
@@ -463,6 +468,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub {
synchronized (mLock) {
final long ident = Binder.clearCallingIdentity();
try {
+ mImageWallpaperPending = false;
bindWallpaperComponentLocked(name, false);
} finally {
Binder.restoreCallingIdentity(ident);