Merge "Only cache mini bitmap wallpaper when there are widgets" into sc-v2-dev
This commit is contained in:
@@ -127,7 +127,12 @@ public class ImageWallpaper extends WallpaperService {
|
||||
setFixedSizeAllowed(true);
|
||||
updateSurfaceSize();
|
||||
|
||||
mRenderer.setOnBitmapChanged(this::updateMiniBitmap);
|
||||
mRenderer.setOnBitmapChanged(b -> {
|
||||
mLocalColorsToAdd.addAll(mColorAreas);
|
||||
if (mLocalColorsToAdd.size() > 0) {
|
||||
updateMiniBitmapAndNotify(b);
|
||||
}
|
||||
});
|
||||
getDisplayContext().getSystemService(DisplayManager.class)
|
||||
.registerDisplayListener(this, mWorker.getThreadHandler());
|
||||
Trace.endSection();
|
||||
@@ -171,7 +176,7 @@ public class ImageWallpaper extends WallpaperService {
|
||||
computeAndNotifyLocalColors(new ArrayList<>(mColorAreas), mMiniBitmap));
|
||||
}
|
||||
|
||||
private void updateMiniBitmap(Bitmap b) {
|
||||
private void updateMiniBitmapAndNotify(Bitmap b) {
|
||||
if (b == null) return;
|
||||
int size = Math.min(b.getWidth(), b.getHeight());
|
||||
float scale = 1.0f;
|
||||
@@ -233,6 +238,9 @@ public class ImageWallpaper extends WallpaperService {
|
||||
Bitmap bitmap = mMiniBitmap;
|
||||
if (bitmap == null) {
|
||||
mLocalColorsToAdd.addAll(regions);
|
||||
mRenderer.use(b -> {
|
||||
updateMiniBitmapAndNotify(b);
|
||||
});
|
||||
} else {
|
||||
computeAndNotifyLocalColors(regions, bitmap);
|
||||
}
|
||||
|
||||
@@ -66,6 +66,13 @@ public class ImageWallpaperRenderer implements GLWallpaperRenderer {
|
||||
mOnBitmapUpdated = c;
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
public void use(Consumer<Bitmap> c) {
|
||||
mTexture.use(c);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isWcgContent() {
|
||||
return mTexture.isWcgContent();
|
||||
|
||||
Reference in New Issue
Block a user