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

Commit 519ad488 authored by John Reck's avatar John Reck
Browse files

Switch to public API version

Use the public API version of the same thing that the private API
access was doing. No behavior change.

Test: built
Change-Id: I4a9032cfb1d4e699f72df3b079ef363d308419e8
parent d3905e65
Loading
Loading
Loading
Loading
+10 −15
Original line number Diff line number Diff line
@@ -20,14 +20,13 @@ import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.TypeEvaluator;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Picture;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.view.DisplayListCanvas;
import android.view.RenderNode;
import android.view.ThreadedRenderer;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
@@ -128,10 +127,8 @@ public class TransitionUtils {
        }
        int bitmapWidth = (int) (width * scale);
        int bitmapHeight = (int) (height * scale);
        final RenderNode node = RenderNode.create("TransitionUtils", hostView);
        node.setLeftTopRightBottom(0, 0, width, height);
        node.setClipToBounds(false);
        final DisplayListCanvas canvas = node.start(width, height);
        final Picture picture = new Picture();
        final Canvas canvas = picture.beginRecording(width, height);
        // Do stuff with the canvas
        Rect existingBounds = drawable.getBounds();
        int left = existingBounds.left;
@@ -141,8 +138,8 @@ public class TransitionUtils {
        drawable.setBounds(0, 0, bitmapWidth, bitmapHeight);
        drawable.draw(canvas);
        drawable.setBounds(left, top, right, bottom);
        node.end(canvas);
        return ThreadedRenderer.createHardwareBitmap(node, width, height);
        picture.endRecording();
        return Bitmap.createBitmap(picture);
    }

    /**
@@ -183,14 +180,12 @@ public class TransitionUtils {
            matrix.postTranslate(-bounds.left, -bounds.top);
            matrix.postScale(scale, scale);

            final RenderNode node = RenderNode.create("TransitionUtils", view);
            node.setLeftTopRightBottom(0, 0, bitmapWidth, bitmapHeight);
            node.setClipToBounds(false);
            final DisplayListCanvas canvas = node.start(bitmapWidth, bitmapHeight);
            final Picture picture = new Picture();
            final Canvas canvas = picture.beginRecording(bitmapWidth, bitmapHeight);
            canvas.concat(matrix);
            view.draw(canvas);
            node.end(canvas);
            bitmap = ThreadedRenderer.createHardwareBitmap(node, bitmapWidth, bitmapHeight);
            picture.endRecording();
            bitmap = Bitmap.createBitmap(picture);
        }
        if (addToOverlay) {
            sceneRoot.getOverlay().remove(view);
+6 −15
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Point;
import android.graphics.Picture;
import android.graphics.Rect;
import android.os.Debug;
import android.os.Handler;
@@ -1782,27 +1782,18 @@ public class ViewDebug {
     * @hide
     */
    public static class HardwareCanvasProvider implements CanvasProvider {

        private View mView;
        private Point mSize;
        private RenderNode mNode;
        private DisplayListCanvas mCanvas;
        private Picture mPicture;

        @Override
        public Canvas getCanvas(View view, int width, int height) {
            mView = view;
            mSize = new Point(width, height);
            mNode = RenderNode.create("ViewDebug", mView);
            mNode.setLeftTopRightBottom(0, 0, width, height);
            mNode.setClipToBounds(false);
            mCanvas = mNode.start(width, height);
            return mCanvas;
            mPicture = new Picture();
            return mPicture.beginRecording(width, height);
        }

        @Override
        public Bitmap createBitmap() {
            mNode.end(mCanvas);
            return ThreadedRenderer.createHardwareBitmap(mNode, mSize.x, mSize.y);
            mPicture.endRecording();
            return Bitmap.createBitmap(mPicture);
        }
    }

+6 −9
Original line number Diff line number Diff line
@@ -38,10 +38,12 @@ import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Picture;
import android.graphics.PixelFormat;
import android.graphics.PointF;
import android.graphics.Rect;
@@ -57,13 +59,10 @@ import android.provider.MediaStore;
import android.util.DisplayMetrics;
import android.util.Slog;
import android.view.Display;
import android.view.DisplayListCanvas;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.RenderNode;
import android.view.Surface;
import android.view.SurfaceControl;
import android.view.ThreadedRenderer;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
@@ -233,14 +232,12 @@ class SaveImageInBackgroundTask extends AsyncTask<Void, Void, Void> {
     */
    private Bitmap generateAdjustedHwBitmap(Bitmap bitmap, int width, int height, Matrix matrix,
            Paint paint, int color) {
        RenderNode node = RenderNode.create("ScreenshotCanvas", null);
        node.setLeftTopRightBottom(0, 0, width, height);
        node.setClipToBounds(false);
        DisplayListCanvas canvas = node.start(width, height);
        Picture picture = new Picture();
        Canvas canvas = picture.beginRecording(width, height);
        canvas.drawColor(color);
        canvas.drawBitmap(bitmap, matrix, paint);
        node.end(canvas);
        return ThreadedRenderer.createHardwareBitmap(node, width, height);
        picture.endRecording();
        return Bitmap.createBitmap(picture);
    }

    @Override
+7 −11
Original line number Diff line number Diff line
@@ -78,9 +78,12 @@ import android.app.ActivityManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.GraphicBuffer;
import android.graphics.Path;
import android.graphics.Picture;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Binder;
@@ -96,11 +99,8 @@ import android.util.Slog;
import android.util.SparseArray;
import android.util.proto.ProtoOutputStream;
import android.view.AppTransitionAnimationSpec;
import android.view.DisplayListCanvas;
import android.view.IAppTransitionAnimationSpecsFuture;
import android.view.RemoteAnimationAdapter;
import android.view.RenderNode;
import android.view.ThreadedRenderer;
import android.view.WindowManager.TransitionFlags;
import android.view.WindowManager.TransitionType;
import android.view.animation.AlphaAnimation;
@@ -973,11 +973,8 @@ public class AppTransition implements Dump {
        final int width = frame.width();
        final int height = frame.height();

        final RenderNode node = RenderNode.create("CrossProfileAppsThumbnail", null);
        node.setLeftTopRightBottom(0, 0, width, height);
        node.setClipToBounds(false);

        final DisplayListCanvas canvas = node.start(width, height);
        final Picture picture = new Picture();
        final Canvas canvas = picture.beginRecording(width, height);
        canvas.drawColor(Color.argb(0.6f, 0, 0, 0));
        final int thumbnailSize = mService.mContext.getResources().getDimensionPixelSize(
                com.android.internal.R.dimen.cross_profile_apps_thumbnail_size);
@@ -988,10 +985,9 @@ public class AppTransition implements Dump {
                (width + thumbnailSize) / 2,
                (height + thumbnailSize) / 2);
        drawable.draw(canvas);
        node.end(canvas);
        picture.endRecording();

        return ThreadedRenderer.createHardwareBitmap(node, width, height)
                .createGraphicBufferHandle();
        return Bitmap.createBitmap(picture).createGraphicBufferHandle();
    }

    Animation createCrossProfileAppsThumbnailAnimationLocked(Rect appRect) {
+5 −6
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.GraphicBuffer;
import android.graphics.Paint;
import android.graphics.Picture;
import android.graphics.PixelFormat;
import android.graphics.SurfaceTexture;
import android.os.Bundle;
@@ -47,10 +48,8 @@ public class DrawIntoHwBitmapActivity extends Activity {
    }

    Bitmap createBitmap() {
        RenderNode node = RenderNode.create("HwuiCanvas", null);
        node.setLeftTopRightBottom(0, 0, 500, 500);
        node.setClipToBounds(false);
        DisplayListCanvas canvas = node.start(500, 500);
        Picture picture = new Picture();
        Canvas canvas = picture.beginRecording(500, 500);
        Paint p = new Paint();
        p.setColor(Color.BLACK);
        p.setTextSize(20 * getResources().getDisplayMetrics().density);
@@ -59,7 +58,7 @@ public class DrawIntoHwBitmapActivity extends Activity {
        canvas.drawRect(0, 0, 500, 100, p);
        p.setColor(Color.BLACK);
        canvas.drawText("Hello, World!", 0, 90, p);
        node.end(canvas);
        return ThreadedRenderer.createHardwareBitmap(node, 500, 500);
        picture.endRecording();
        return Bitmap.createBitmap(picture);
    }
}