Merge "Fix thumbnail transition animation when Recents is shown with PIP" into nyc-dev am: 92e5a0dfa6

am: 79bcd943ef

* commit '79bcd943ef9341e5a1e4472d94e1eb21e43852e8':
  Fix thumbnail transition animation when Recents is shown with PIP

Change-Id: I235dc4af4f02c5e61f633cce32d61c91c809ff2e
This commit is contained in:
Jaewan Kim
2016-05-05 05:02:52 +00:00
committed by android-build-merger
2 changed files with 18 additions and 9 deletions

View File

@@ -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) {

View File

@@ -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);