Loading core/java/android/app/WallpaperColors.java +8 −1 Original line number Diff line number Diff line Loading @@ -144,6 +144,13 @@ public final class WallpaperColors implements Parcelable { * @param bitmap Source where to extract from. */ public static WallpaperColors fromBitmap(@NonNull Bitmap bitmap) { return fromBitmap(bitmap, false /* computeHints */); } /** * @hide */ public static WallpaperColors fromBitmap(@NonNull Bitmap bitmap, boolean computeHints) { if (bitmap == null) { throw new IllegalArgumentException("Bitmap can't be null"); } Loading Loading @@ -193,7 +200,7 @@ public final class WallpaperColors implements Parcelable { } } int hints = calculateDarkHints(bitmap); int hints = computeHints ? calculateDarkHints(bitmap) : 0; if (shouldRecycle) { bitmap.recycle(); Loading services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -458,7 +458,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub if (cropFile != null) { Bitmap bitmap = BitmapFactory.decodeFile(cropFile); if (bitmap != null) { colors = WallpaperColors.fromBitmap(bitmap); colors = WallpaperColors.fromBitmap(bitmap, true /* computeHints */); bitmap.recycle(); } } Loading services/tests/servicestests/src/com/android/server/wallpaper/WallpaperServiceTests.java +15 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import android.app.WallpaperColors; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Handler; import android.os.Message; import android.os.SystemClock; Loading Loading @@ -85,4 +87,17 @@ public class WallpaperServiceTests { assertEquals("OnComputeColors should have been deferred.", 0, eventCountdown.getCount()); } @Test public void testFromDrawableTest_doesntComputeHints() { WallpaperColors wallpaperColors = WallpaperColors.fromDrawable( new ColorDrawable(Color.BLACK)); assertEquals("WallpaperColors should not support dark theme.", 0, wallpaperColors.getColorHints() & WallpaperColors.HINT_SUPPORTS_DARK_THEME); wallpaperColors = WallpaperColors.fromDrawable( new ColorDrawable(Color.WHITE)); assertEquals("WallpaperColors should not support dark text.", 0, wallpaperColors.getColorHints() & WallpaperColors.HINT_SUPPORTS_DARK_TEXT); } } Loading
core/java/android/app/WallpaperColors.java +8 −1 Original line number Diff line number Diff line Loading @@ -144,6 +144,13 @@ public final class WallpaperColors implements Parcelable { * @param bitmap Source where to extract from. */ public static WallpaperColors fromBitmap(@NonNull Bitmap bitmap) { return fromBitmap(bitmap, false /* computeHints */); } /** * @hide */ public static WallpaperColors fromBitmap(@NonNull Bitmap bitmap, boolean computeHints) { if (bitmap == null) { throw new IllegalArgumentException("Bitmap can't be null"); } Loading Loading @@ -193,7 +200,7 @@ public final class WallpaperColors implements Parcelable { } } int hints = calculateDarkHints(bitmap); int hints = computeHints ? calculateDarkHints(bitmap) : 0; if (shouldRecycle) { bitmap.recycle(); Loading
services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -458,7 +458,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub if (cropFile != null) { Bitmap bitmap = BitmapFactory.decodeFile(cropFile); if (bitmap != null) { colors = WallpaperColors.fromBitmap(bitmap); colors = WallpaperColors.fromBitmap(bitmap, true /* computeHints */); bitmap.recycle(); } } Loading
services/tests/servicestests/src/com/android/server/wallpaper/WallpaperServiceTests.java +15 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import android.app.WallpaperColors; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Handler; import android.os.Message; import android.os.SystemClock; Loading Loading @@ -85,4 +87,17 @@ public class WallpaperServiceTests { assertEquals("OnComputeColors should have been deferred.", 0, eventCountdown.getCount()); } @Test public void testFromDrawableTest_doesntComputeHints() { WallpaperColors wallpaperColors = WallpaperColors.fromDrawable( new ColorDrawable(Color.BLACK)); assertEquals("WallpaperColors should not support dark theme.", 0, wallpaperColors.getColorHints() & WallpaperColors.HINT_SUPPORTS_DARK_THEME); wallpaperColors = WallpaperColors.fromDrawable( new ColorDrawable(Color.WHITE)); assertEquals("WallpaperColors should not support dark text.", 0, wallpaperColors.getColorHints() & WallpaperColors.HINT_SUPPORTS_DARK_TEXT); } }