summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorRob Carr <racarr@google.com>2020-12-01 21:38:53 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-12-01 21:38:53 +0000
commit121ded44520e16696e606c13baa5a281b6ae0674 (patch)
tree9c26c3c37e108c199be787392f2a065a6b7ea21f /core/java/android
parent648d4e5e005f2a1422d5e8f8cf7bd4d9c93639e0 (diff)
parentc6036ba887e926cd7912f18ddbc8c81605d0175e (diff)
Merge "WallpaperService: Respond to WM protocol change."
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/service/wallpaper/WallpaperService.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java
index 9a76f19f3e41..37637119c70a 100644
--- a/core/java/android/service/wallpaper/WallpaperService.java
+++ b/core/java/android/service/wallpaper/WallpaperService.java
@@ -199,6 +199,7 @@ public abstract class WallpaperService extends Service {
final InsetsSourceControl[] mTempControls = new InsetsSourceControl[0];
final MergedConfiguration mMergedConfiguration = new MergedConfiguration();
private final Point mSurfaceSize = new Point();
+ private final Point mLastSurfaceSize = new Point();
private final Matrix mTmpMatrix = new Matrix();
private final float[] mTmpValues = new float[9];
@@ -908,6 +909,14 @@ public abstract class WallpaperService extends Service {
if (mSurfaceControl.isValid()) {
mSurfaceHolder.mSurface.copyFrom(mSurfaceControl);
}
+ if (!mLastSurfaceSize.equals(mSurfaceSize)) {
+ mLastSurfaceSize.set(mSurfaceSize.x, mSurfaceSize.y);
+ if (mSurfaceControl != null && mSurfaceControl.isValid()) {
+ SurfaceControl.Transaction t = new SurfaceControl.Transaction();
+ t.setBufferSize(mSurfaceControl, mSurfaceSize.x, mSurfaceSize.y);
+ t.apply();
+ }
+ }
if (DEBUG) Log.v(TAG, "New surface: " + mSurfaceHolder.mSurface
+ ", frame=" + mWinFrames);