DO NOT MERGE - 2D Recents: Make sure thumbnail fills task view in all orientations
Bug: 32101881 Test: Checked layout in various situations when switching orientation Change-Id: Iae1f142f6568890512e24787d78cfb1e15280feb
This commit is contained in:
@@ -19,6 +19,7 @@ package com.android.systemui.recents.views;
|
|||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapShader;
|
import android.graphics.BitmapShader;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
@@ -63,6 +64,8 @@ public class TaskViewThumbnail extends View {
|
|||||||
@ViewDebug.ExportedProperty(category="recents")
|
@ViewDebug.ExportedProperty(category="recents")
|
||||||
private float mThumbnailScale;
|
private float mThumbnailScale;
|
||||||
private float mFullscreenThumbnailScale;
|
private float mFullscreenThumbnailScale;
|
||||||
|
/** The height, in pixels, of the task view's title bar. */
|
||||||
|
private int mTitleBarHeight;
|
||||||
private boolean mSizeToFit = false;
|
private boolean mSizeToFit = false;
|
||||||
private boolean mOverlayHeaderOnThumbnailActionBar = true;
|
private boolean mOverlayHeaderOnThumbnailActionBar = true;
|
||||||
private ActivityManager.TaskThumbnailInfo mThumbnailInfo;
|
private ActivityManager.TaskThumbnailInfo mThumbnailInfo;
|
||||||
@@ -104,11 +107,12 @@ public class TaskViewThumbnail extends View {
|
|||||||
mDrawPaint.setColorFilter(mLightingColorFilter);
|
mDrawPaint.setColorFilter(mLightingColorFilter);
|
||||||
mDrawPaint.setFilterBitmap(true);
|
mDrawPaint.setFilterBitmap(true);
|
||||||
mDrawPaint.setAntiAlias(true);
|
mDrawPaint.setAntiAlias(true);
|
||||||
mCornerRadius = getResources().getDimensionPixelSize(
|
Resources res = getResources();
|
||||||
R.dimen.recents_task_view_rounded_corners_radius);
|
mCornerRadius = res.getDimensionPixelSize(R.dimen.recents_task_view_rounded_corners_radius);
|
||||||
mBgFillPaint.setColor(Color.WHITE);
|
mBgFillPaint.setColor(Color.WHITE);
|
||||||
mFullscreenThumbnailScale = context.getResources().getFraction(
|
mFullscreenThumbnailScale = res.getFraction(
|
||||||
com.android.internal.R.fraction.thumbnail_fullscreen_scale, 1, 1);
|
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
|
// If we haven't measured or the thumbnail is invalid, skip the thumbnail drawing
|
||||||
// and only draw the background color
|
// and only draw the background color
|
||||||
mThumbnailScale = 0f;
|
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;
|
float invThumbnailScale = 1f / mFullscreenThumbnailScale;
|
||||||
if (mDisplayOrientation == Configuration.ORIENTATION_PORTRAIT) {
|
if (mDisplayOrientation == Configuration.ORIENTATION_PORTRAIT) {
|
||||||
if (mThumbnailInfo.screenOrientation == Configuration.ORIENTATION_PORTRAIT) {
|
if (mThumbnailInfo.screenOrientation == Configuration.ORIENTATION_PORTRAIT) {
|
||||||
|
|||||||
Reference in New Issue
Block a user