From 74d2afdf0bc94c22e6cdce40854ff58ba5715de3 Mon Sep 17 00:00:00 2001 From: Richard MacGregor Date: Fri, 17 Apr 2015 09:26:36 -0700 Subject: [PATCH] WindowManagerService not propagating X and Y steps WindowManagerService received X and Y offset steps but failed to pass them off to the relavent wallpaperservice. Live wallpapers expect a valid value for xOffsetStep and yOffsetStep when the WallpaperService.Engine::onOffsetsChanged function is called As specified here: https://developer.android.com/reference/android/service/wallpaper/WallpaperService.Engine.html onOffsetsChanged(float,float, float, float, int, int) See bug report: https://code.google.com/p/android/issues/detail?id=173607 Change-Id: I532dedf2db055e27d6eca813e30346e37f52dc65 (cherry picked from commit e03ea68d0a7f7d7c60663feae587225cca3a3a5b) --- .../com/android/server/wm/WindowManagerService.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 63c4461aef021..001a6f8011edd 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -2206,6 +2206,16 @@ public class WindowManagerService extends IWindowManager.Stub } else if (changingTarget.mWallpaperDisplayOffsetY != Integer.MIN_VALUE) { mLastWallpaperDisplayOffsetY = changingTarget.mWallpaperDisplayOffsetY; } + if (target.mWallpaperXStep >= 0) { + mLastWallpaperXStep = target.mWallpaperXStep; + } else if (changingTarget.mWallpaperXStep >= 0) { + mLastWallpaperXStep = changingTarget.mWallpaperXStep; + } + if (target.mWallpaperYStep >= 0) { + mLastWallpaperYStep = target.mWallpaperYStep; + } else if (changingTarget.mWallpaperYStep >= 0) { + mLastWallpaperYStep = changingTarget.mWallpaperYStep; + } } int curTokenIndex = mWallpaperTokens.size();