Fix null pointer exception crashes caused by a mutable variable.

Test: atest WallpaperManagerTest
Bug: 216055454
Change-Id: I3ebf6a70a58863d7cde006638c272a3942299112
This commit is contained in:
Vania Desmonda
2022-01-26 10:30:08 +00:00
parent 8b3a90c864
commit 4100ca0174

View File

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