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.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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user