Loading core/java/android/service/wallpaper/WallpaperService.java +18 −1 Original line number Diff line number Diff line Loading @@ -868,6 +868,11 @@ public abstract class WallpaperService extends Service { * This will trigger a {@link #onComputeColors()} call. */ public void notifyColorsChanged() { if (mDestroyed) { Log.i(TAG, "Ignoring notifyColorsChanged(), Engine has already been destroyed."); return; } final long now = mClockFunction.get(); if (now - mLastColorInvalidation < NOTIFY_COLORS_RATE_LIMIT_MS) { Log.w(TAG, "This call has been deferred. You should only call " Loading Loading @@ -2226,7 +2231,11 @@ public abstract class WallpaperService extends Service { } } void detach() { /** * @hide */ @VisibleForTesting public void detach() { if (mDestroyed) { return; } Loading Loading @@ -2442,6 +2451,14 @@ public abstract class WallpaperService extends Service { } public void reportShown() { if (mEngine == null) { Log.i(TAG, "Can't report null engine as shown."); return; } if (mEngine.mDestroyed) { Log.i(TAG, "Engine was destroyed before we could draw."); return; } if (!mShownReported) { mShownReported = true; Trace.beginSection("WPMS.mConnection.engineShown"); Loading tests/Internal/src/android/service/wallpaper/OWNERS 0 → 100644 +4 −0 Original line number Diff line number Diff line dupin@google.com santie@google.com pomini@google.com poultney@google.com No newline at end of file tests/Internal/src/android/service/wallpaper/WallpaperServiceTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -85,4 +85,17 @@ public class WallpaperServiceTest { assertEquals("onAmbientModeChanged should have been called", 2, zoomChangedCount[0]); } @Test public void testNotifyColorsOfDestroyedEngine_doesntCrash() { WallpaperService service = new WallpaperService() { @Override public Engine onCreateEngine() { return new Engine(); } }; WallpaperService.Engine engine = service.onCreateEngine(); engine.detach(); engine.notifyColorsChanged(); } } Loading
core/java/android/service/wallpaper/WallpaperService.java +18 −1 Original line number Diff line number Diff line Loading @@ -868,6 +868,11 @@ public abstract class WallpaperService extends Service { * This will trigger a {@link #onComputeColors()} call. */ public void notifyColorsChanged() { if (mDestroyed) { Log.i(TAG, "Ignoring notifyColorsChanged(), Engine has already been destroyed."); return; } final long now = mClockFunction.get(); if (now - mLastColorInvalidation < NOTIFY_COLORS_RATE_LIMIT_MS) { Log.w(TAG, "This call has been deferred. You should only call " Loading Loading @@ -2226,7 +2231,11 @@ public abstract class WallpaperService extends Service { } } void detach() { /** * @hide */ @VisibleForTesting public void detach() { if (mDestroyed) { return; } Loading Loading @@ -2442,6 +2451,14 @@ public abstract class WallpaperService extends Service { } public void reportShown() { if (mEngine == null) { Log.i(TAG, "Can't report null engine as shown."); return; } if (mEngine.mDestroyed) { Log.i(TAG, "Engine was destroyed before we could draw."); return; } if (!mShownReported) { mShownReported = true; Trace.beginSection("WPMS.mConnection.engineShown"); Loading
tests/Internal/src/android/service/wallpaper/OWNERS 0 → 100644 +4 −0 Original line number Diff line number Diff line dupin@google.com santie@google.com pomini@google.com poultney@google.com No newline at end of file
tests/Internal/src/android/service/wallpaper/WallpaperServiceTest.java +13 −0 Original line number Diff line number Diff line Loading @@ -85,4 +85,17 @@ public class WallpaperServiceTest { assertEquals("onAmbientModeChanged should have been called", 2, zoomChangedCount[0]); } @Test public void testNotifyColorsOfDestroyedEngine_doesntCrash() { WallpaperService service = new WallpaperService() { @Override public Engine onCreateEngine() { return new Engine(); } }; WallpaperService.Engine engine = service.onCreateEngine(); engine.detach(); engine.notifyColorsChanged(); } }