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:
Jaewan Kim
2016-05-05 05:00:17 +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);