Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 92e5a0df authored by Jaewan Kim's avatar Jaewan Kim Committed by Android (Google) Code Review
Browse files

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

parents a11c21b4 ea347d3c
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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) {
+13 −8
Original line number Diff line number Diff line
@@ -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);