diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java index e10f329d68bc0..9069e5aa54cf8 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskViewThumbnail.java @@ -19,6 +19,7 @@ package com.android.systemui.recents.views; import android.app.ActivityManager; import android.content.Context; import android.content.res.Configuration; +import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapShader; import android.graphics.Canvas; @@ -63,6 +64,8 @@ public class TaskViewThumbnail extends View { @ViewDebug.ExportedProperty(category="recents") private float mThumbnailScale; private float mFullscreenThumbnailScale; + /** The height, in pixels, of the task view's title bar. */ + private int mTitleBarHeight; private boolean mSizeToFit = false; private boolean mOverlayHeaderOnThumbnailActionBar = true; private ActivityManager.TaskThumbnailInfo mThumbnailInfo; @@ -104,11 +107,12 @@ public class TaskViewThumbnail extends View { mDrawPaint.setColorFilter(mLightingColorFilter); mDrawPaint.setFilterBitmap(true); mDrawPaint.setAntiAlias(true); - mCornerRadius = getResources().getDimensionPixelSize( - R.dimen.recents_task_view_rounded_corners_radius); + Resources res = getResources(); + mCornerRadius = res.getDimensionPixelSize(R.dimen.recents_task_view_rounded_corners_radius); mBgFillPaint.setColor(Color.WHITE); - mFullscreenThumbnailScale = context.getResources().getFraction( + mFullscreenThumbnailScale = res.getFraction( com.android.internal.R.fraction.thumbnail_fullscreen_scale, 1, 1); + mTitleBarHeight = res.getDimensionPixelSize(R.dimen.recents_grid_task_view_header_height); } /** @@ -237,7 +241,20 @@ public class TaskViewThumbnail extends View { // If we haven't measured or the thumbnail is invalid, skip the thumbnail drawing // and only draw the background color mThumbnailScale = 0f; - } else if (isStackTask && !mSizeToFit) { + } else if (mSizeToFit) { + // Make sure we fill the entire space regardless of the orientation. + float viewAspectRatio = (float) mTaskViewRect.width() / + (float) (mTaskViewRect.height() - mTitleBarHeight); + float thumbnailAspectRatio = + (float) mThumbnailRect.width() / (float) mThumbnailRect.height(); + if (viewAspectRatio > thumbnailAspectRatio) { + mThumbnailScale = + (float) mTaskViewRect.width() / (float) mThumbnailRect.width(); + } else { + mThumbnailScale = (float) (mTaskViewRect.height() - mTitleBarHeight) + / (float) mThumbnailRect.height(); + } + } else if (isStackTask) { float invThumbnailScale = 1f / mFullscreenThumbnailScale; if (mDisplayOrientation == Configuration.ORIENTATION_PORTRAIT) { if (mThumbnailInfo.screenOrientation == Configuration.ORIENTATION_PORTRAIT) {