From 4100ca0174d751a86851af000e5fbcfd6b23c1e1 Mon Sep 17 00:00:00 2001 From: Vania Desmonda Date: Wed, 26 Jan 2022 10:30:08 +0000 Subject: [PATCH] Fix null pointer exception crashes caused by a mutable variable. Test: atest WallpaperManagerTest Bug: 216055454 Change-Id: I3ebf6a70a58863d7cde006638c272a3942299112 --- .../service/wallpaper/WallpaperService.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java index f2a03558663e8..c91851a8896d2 100644 --- a/core/java/android/service/wallpaper/WallpaperService.java +++ b/core/java/android/service/wallpaper/WallpaperService.java @@ -905,11 +905,12 @@ public abstract class WallpaperService extends Service { if (!ENABLE_WALLPAPER_DIMMING || mBbqSurfaceControl == null) { return; } + + SurfaceControl.Transaction surfaceControlTransaction = new SurfaceControl.Transaction(); // TODO: apply the dimming to preview as well once surface transparency works in // preview mode. if (!isPreview() && mShouldDim) { Log.v(TAG, "Setting wallpaper dimming: " + mWallpaperDimAmount); - SurfaceControl.Transaction surfaceControl = new SurfaceControl.Transaction(); // Animate dimming to gradually change the wallpaper alpha from the previous // dim amount to the new amount only if the dim amount changed. @@ -919,16 +920,15 @@ public abstract class WallpaperService extends Service { ? 0 : DIMMING_ANIMATION_DURATION_MS); animator.addUpdateListener((ValueAnimator va) -> { final float dimValue = (float) va.getAnimatedValue(); - surfaceControl - .setAlpha(mBbqSurfaceControl, 1 - dimValue) - .apply(); + if (mBbqSurfaceControl != null) { + surfaceControlTransaction + .setAlpha(mBbqSurfaceControl, 1 - dimValue).apply(); + } }); animator.start(); } else { Log.v(TAG, "Setting wallpaper dimming: " + 0); - new SurfaceControl.Transaction() - .setAlpha(mBbqSurfaceControl, 1.0f) - .apply(); + surfaceControlTransaction.setAlpha(mBbqSurfaceControl, 1.0f).apply(); } }