diff --git a/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvImpl.java b/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvImpl.java index 59ea358fb4590..6f7bd4146303e 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvImpl.java +++ b/packages/SystemUI/src/com/android/systemui/recents/tv/RecentsTvImpl.java @@ -38,11 +38,14 @@ import com.android.systemui.recents.model.TaskStack; import com.android.systemui.recents.model.ThumbnailData; import com.android.systemui.recents.tv.views.TaskCardView; import com.android.systemui.statusbar.tv.TvStatusBar; +import com.android.systemui.tv.pip.PipManager; public class RecentsTvImpl extends RecentsImpl{ public final static String RECENTS_TV_ACTIVITY = "com.android.systemui.recents.tv.RecentsTvActivity"; + private static final PipManager mPipManager = PipManager.getInstance(); + public RecentsTvImpl(Context context) { super(context); } @@ -120,7 +123,8 @@ public class RecentsTvImpl extends RecentsImpl{ */ private ActivityOptions getThumbnailTransitionActivityOptionsForTV( ActivityManager.RunningTaskInfo runningTask, int numTasks) { - Rect rect = TaskCardView.getStartingCardThumbnailRect(mContext, numTasks); + Rect rect = TaskCardView.getStartingCardThumbnailRect( + mContext, !mPipManager.isPipShown(), numTasks); SystemServicesProxy ssp = Recents.getSystemServices(); ThumbnailData thumbnailData = ssp.getTaskThumbnail(runningTask.id); if (thumbnailData.thumbnail != null) { diff --git a/packages/SystemUI/src/com/android/systemui/recents/tv/views/TaskCardView.java b/packages/SystemUI/src/com/android/systemui/recents/tv/views/TaskCardView.java index ef8a54b753ec9..85fb50ebbb786 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/tv/views/TaskCardView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/tv/views/TaskCardView.java @@ -110,20 +110,24 @@ public class TaskCardView extends LinearLayout { return r; } - public static Rect getStartingCardThumbnailRect(Context context, int numberOfTasks) { + public static Rect getStartingCardThumbnailRect( + Context context, boolean hasFocus, int numberOfTasks) { if(numberOfTasks > 1) { - return getStartingCardThumbnailRectForStartPosition(context); + return getStartingCardThumbnailRectForStartPosition(context, hasFocus); } else { - return getStartingCardThumbnailRectForFocusedPosition(context); + return getStartingCardThumbnailRectForFocusedPosition(context, hasFocus); } } - private static Rect getStartingCardThumbnailRectForStartPosition(Context context) { + private static Rect getStartingCardThumbnailRectForStartPosition( + Context context, boolean hasFocus) { Resources res = context.getResources(); int width = res.getDimensionPixelOffset(R.dimen.recents_tv_card_width); - int totalSpacing = res.getDimensionPixelOffset(R.dimen.recents_tv_gird_card_spacing) * 2 - + res.getDimensionPixelOffset(R.dimen.recents_tv_gird_focused_card_delta); + int totalSpacing = res.getDimensionPixelOffset(R.dimen.recents_tv_gird_card_spacing) * 2; + if (hasFocus) { + totalSpacing += res.getDimensionPixelOffset(R.dimen.recents_tv_gird_focused_card_delta); + } int height = res.getDimensionPixelOffset(R.dimen.recents_tv_screenshot_height); int topMargin = res.getDimensionPixelOffset(R.dimen.recents_tv_gird_row_top_margin); int headerHeight = res.getDimensionPixelOffset(R.dimen.recents_tv_card_extra_badge_size) + @@ -141,12 +145,13 @@ public class TaskCardView extends LinearLayout { topMargin + headerHeight + height); } - private static Rect getStartingCardThumbnailRectForFocusedPosition(Context context) { + private static Rect getStartingCardThumbnailRectForFocusedPosition( + Context context, boolean hasFocus) { Resources res = context.getResources(); TypedValue out = new TypedValue(); res.getValue(R.integer.selected_scale, out, true); - float scale = out.getFloat(); + float scale = hasFocus ? out.getFloat() : 1; int width = res.getDimensionPixelOffset(R.dimen.recents_tv_card_width); int widthDelta = (int) (width * scale - width);