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

Commit 7608c744 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Switch to public API version"

parents a5e2155b 519ad488
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);
    }
}