Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd6207ef authored by Jay Aliomer's avatar Jay Aliomer
Browse files

Only cache mini bitmap wallpaper when there are widgets

Fixes: 202868359
Test: test with coral
Change-Id: If83a8c95a3318d4de4e7e717ac6b9ac236036e3c
parent 684c0b4a
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -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);
                }
+7 −0
Original line number Diff line number Diff line
@@ -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();