Merge "Fix thumbnail transition animation when Recents is shown with PIP" into nyc-dev
am: 92e5a0dfa6
* commit '92e5a0dfa66f5cb454ce1bbe7246e806b2517e85':
Fix thumbnail transition animation when Recents is shown with PIP
Change-Id: I21de87dfcd366b9622b1d55fa88b5c9b08289b1d
This commit is contained in:
@@ -38,11 +38,14 @@ import com.android.systemui.recents.model.TaskStack;
|
|||||||
import com.android.systemui.recents.model.ThumbnailData;
|
import com.android.systemui.recents.model.ThumbnailData;
|
||||||
import com.android.systemui.recents.tv.views.TaskCardView;
|
import com.android.systemui.recents.tv.views.TaskCardView;
|
||||||
import com.android.systemui.statusbar.tv.TvStatusBar;
|
import com.android.systemui.statusbar.tv.TvStatusBar;
|
||||||
|
import com.android.systemui.tv.pip.PipManager;
|
||||||
|
|
||||||
public class RecentsTvImpl extends RecentsImpl{
|
public class RecentsTvImpl extends RecentsImpl{
|
||||||
public final static String RECENTS_TV_ACTIVITY =
|
public final static String RECENTS_TV_ACTIVITY =
|
||||||
"com.android.systemui.recents.tv.RecentsTvActivity";
|
"com.android.systemui.recents.tv.RecentsTvActivity";
|
||||||
|
|
||||||
|
private static final PipManager mPipManager = PipManager.getInstance();
|
||||||
|
|
||||||
public RecentsTvImpl(Context context) {
|
public RecentsTvImpl(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
}
|
}
|
||||||
@@ -120,7 +123,8 @@ public class RecentsTvImpl extends RecentsImpl{
|
|||||||
*/
|
*/
|
||||||
private ActivityOptions getThumbnailTransitionActivityOptionsForTV(
|
private ActivityOptions getThumbnailTransitionActivityOptionsForTV(
|
||||||
ActivityManager.RunningTaskInfo runningTask, int numTasks) {
|
ActivityManager.RunningTaskInfo runningTask, int numTasks) {
|
||||||
Rect rect = TaskCardView.getStartingCardThumbnailRect(mContext, numTasks);
|
Rect rect = TaskCardView.getStartingCardThumbnailRect(
|
||||||
|
mContext, !mPipManager.isPipShown(), numTasks);
|
||||||
SystemServicesProxy ssp = Recents.getSystemServices();
|
SystemServicesProxy ssp = Recents.getSystemServices();
|
||||||
ThumbnailData thumbnailData = ssp.getTaskThumbnail(runningTask.id);
|
ThumbnailData thumbnailData = ssp.getTaskThumbnail(runningTask.id);
|
||||||
if (thumbnailData.thumbnail != null) {
|
if (thumbnailData.thumbnail != null) {
|
||||||
|
|||||||
@@ -110,20 +110,24 @@ public class TaskCardView extends LinearLayout {
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Rect getStartingCardThumbnailRect(Context context, int numberOfTasks) {
|
public static Rect getStartingCardThumbnailRect(
|
||||||
|
Context context, boolean hasFocus, int numberOfTasks) {
|
||||||
if(numberOfTasks > 1) {
|
if(numberOfTasks > 1) {
|
||||||
return getStartingCardThumbnailRectForStartPosition(context);
|
return getStartingCardThumbnailRectForStartPosition(context, hasFocus);
|
||||||
} else {
|
} 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();
|
Resources res = context.getResources();
|
||||||
|
|
||||||
int width = res.getDimensionPixelOffset(R.dimen.recents_tv_card_width);
|
int width = res.getDimensionPixelOffset(R.dimen.recents_tv_card_width);
|
||||||
int totalSpacing = res.getDimensionPixelOffset(R.dimen.recents_tv_gird_card_spacing) * 2
|
int totalSpacing = res.getDimensionPixelOffset(R.dimen.recents_tv_gird_card_spacing) * 2;
|
||||||
+ res.getDimensionPixelOffset(R.dimen.recents_tv_gird_focused_card_delta);
|
if (hasFocus) {
|
||||||
|
totalSpacing += res.getDimensionPixelOffset(R.dimen.recents_tv_gird_focused_card_delta);
|
||||||
|
}
|
||||||
int height = res.getDimensionPixelOffset(R.dimen.recents_tv_screenshot_height);
|
int height = res.getDimensionPixelOffset(R.dimen.recents_tv_screenshot_height);
|
||||||
int topMargin = res.getDimensionPixelOffset(R.dimen.recents_tv_gird_row_top_margin);
|
int topMargin = res.getDimensionPixelOffset(R.dimen.recents_tv_gird_row_top_margin);
|
||||||
int headerHeight = res.getDimensionPixelOffset(R.dimen.recents_tv_card_extra_badge_size) +
|
int headerHeight = res.getDimensionPixelOffset(R.dimen.recents_tv_card_extra_badge_size) +
|
||||||
@@ -141,12 +145,13 @@ public class TaskCardView extends LinearLayout {
|
|||||||
topMargin + headerHeight + height);
|
topMargin + headerHeight + height);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Rect getStartingCardThumbnailRectForFocusedPosition(Context context) {
|
private static Rect getStartingCardThumbnailRectForFocusedPosition(
|
||||||
|
Context context, boolean hasFocus) {
|
||||||
Resources res = context.getResources();
|
Resources res = context.getResources();
|
||||||
|
|
||||||
TypedValue out = new TypedValue();
|
TypedValue out = new TypedValue();
|
||||||
res.getValue(R.integer.selected_scale, out, true);
|
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 width = res.getDimensionPixelOffset(R.dimen.recents_tv_card_width);
|
||||||
int widthDelta = (int) (width * scale - width);
|
int widthDelta = (int) (width * scale - width);
|
||||||
|
|||||||
Reference in New Issue
Block a user