From 72c1ca86aa660f04abd303593e3df831e7493926 Mon Sep 17 00:00:00 2001 From: Jay Aliomer Date: Thu, 14 Apr 2022 16:05:00 -0400 Subject: [PATCH] Invalidate empty pages at the start of wallpaper Fixes: 222632463 Test: pick colorful wallpaper and use one page only with widget Change-Id: Ie20786e0ad72926e029bc34ec379426af3001428 --- core/java/android/service/wallpaper/WallpaperService.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java index 5131e4e58f547..425dbb9cb204d 100644 --- a/core/java/android/service/wallpaper/WallpaperService.java +++ b/core/java/android/service/wallpaper/WallpaperService.java @@ -1685,13 +1685,12 @@ public abstract class WallpaperService extends Service { void updatePage(EngineWindowPage currentPage, int pageIndx, int numPages, float xOffsetStep) { - // to save creating a runnable, check twice - long current = System.currentTimeMillis(); + // in case the clock is zero, we start with negative time + long current = SystemClock.elapsedRealtime() - DEFAULT_UPDATE_SCREENSHOT_DURATION; long lapsed = current - currentPage.getLastUpdateTime(); // Always update the page when the last update time is <= 0 // This is important especially when the device first boots - if (lapsed < DEFAULT_UPDATE_SCREENSHOT_DURATION - && currentPage.getLastUpdateTime() > 0) { + if (lapsed < DEFAULT_UPDATE_SCREENSHOT_DURATION) { return; } Surface surface = mSurfaceHolder.getSurface();