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();