From 0c0af3d1bed6c86ddbd298322d99b5a50a4a4c2c Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Wed, 9 Apr 2025 12:38:12 +0200 Subject: [PATCH] LayerDrawable: handle null Drawables This fixes a NullPointerException with the SponsorBlock UI of the Tubular NewPipe fork --- .../android/graphics/drawable/LayerDrawable.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/api-impl/android/graphics/drawable/LayerDrawable.java b/src/api-impl/android/graphics/drawable/LayerDrawable.java index 4ca375b0..2f117e23 100644 --- a/src/api-impl/android/graphics/drawable/LayerDrawable.java +++ b/src/api-impl/android/graphics/drawable/LayerDrawable.java @@ -78,13 +78,17 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { int length = layers.length; ChildDrawable[] r = new ChildDrawable[length]; + int j = 0; for (int i = 0; i < length; i++) { - r[i] = new ChildDrawable(); - r[i].mDrawable = layers[i]; + if (layers[i] == null) + continue; + r[j] = new ChildDrawable(); + r[j].mDrawable = layers[i]; layers[i].setCallback(this); mLayerState.mChildrenChangingConfigurations |= layers[i].getChangingConfigurations(); + j++; } - mLayerState.mNum = length; + mLayerState.mNum = j; mLayerState.mChildren = r; ensurePadding();