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

Commit 5c9248f6 authored by Jim Miller's avatar Jim Miller Committed by Android (Google) Code Review
Browse files

Merge "Fix 4027057: Improve resolution of RecentApps thumbnail images." into honeycomb-mr1

parents 788dd5e0 e70d506a
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -513,9 +513,7 @@ public class RecentAppsPanel extends RelativeLayout implements StatusBarPanel, O
            paint.setFilterBitmap(true);
            paint.setAlpha(255);
            final int srcWidth = thumbnail.getWidth();
            final int height = thumbnail.getHeight();
            final int srcHeight = srcWidth > height ? height
                    : (height - height * srcWidth / height);
            final int srcHeight = thumbnail.getHeight();
            canvas.drawBitmap(thumbnail,
                    new Rect(0, 0, srcWidth-1, srcHeight-1),
                    new RectF(GLOW_PADDING,
+14 −14
Original line number Diff line number Diff line
@@ -4727,7 +4727,15 @@ public class WindowManagerService extends IWindowManager.Stub
        SystemProperties.set(StrictMode.VISUAL_PROPERTY, value);
    }

    public Bitmap screenshotApplications(IBinder appToken, int maxWidth, int maxHeight) {
    /**
     * Takes a snapshot of the screen.  In landscape mode this grabs the whole screen.
     * In portrait mode, it grabs the upper region of the screen based on the vertical dimension
     * of the target image.
     * 
     * @param width the width of the target bitmap
     * @param height the height of the target bitmap
     */
    public Bitmap screenshotApplications(IBinder appToken, int width, int height) {
        if (!checkCallingPermission(android.Manifest.permission.READ_FRAME_BUFFER,
                "screenshotApplications()")) {
            throw new SecurityException("Requires READ_FRAME_BUFFER permission");
@@ -4739,7 +4747,7 @@ public class WindowManagerService extends IWindowManager.Stub
        final Rect frame = new Rect();

        float scale;
        int sw, sh, dw, dh;
        int dw, dh;
        int rot;

        synchronized(mWindowMap) {
@@ -4818,15 +4826,7 @@ public class WindowManagerService extends IWindowManager.Stub
            int fh = frame.height();

            // First try reducing to fit in x dimension.
            scale = maxWidth/(float)fw;
            sw = maxWidth;
            sh = (int)(fh*scale);
            if (sh > maxHeight) {
                // y dimension became too long; constrain by that.
                scale = maxHeight/(float)fh;
                sw = (int)(fw*scale);
                sh = maxHeight;
            }
            scale = width/(float)fw;

            // The screen shot will contain the entire screen.
            dw = (int)(dw*scale);
@@ -4846,7 +4846,7 @@ public class WindowManagerService extends IWindowManager.Stub
            return null;
        }

        Bitmap bm = Bitmap.createBitmap(sw, sh, rawss.getConfig());
        Bitmap bm = Bitmap.createBitmap(width, height, rawss.getConfig());
        Matrix matrix = new Matrix();
        ScreenRotationAnimation.createRotationMatrix(rot, dw, dh, matrix);
        matrix.postTranslate(-(int)(frame.left*scale), -(int)(frame.top*scale));