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

Commit 895f57f6 authored by Winson Chung's avatar Winson Chung
Browse files

Bound the thumbnail insets to the launcher insets

- We currently end up using the launcher insets when swiping
  up into overview due to how we scale the target rect to
  the source bounds, but the thumbnail crop is calculated
  only from the task thumbnail insets.  For apps that are
  letterboxed, this results in a jump after the transition
  completes when we crop too far (including the letterbox)
  and end up showing the task background.

  For now, since we are just cropping by the launcher
  insets, we can also take the min of those and the
  thumbnail insets to calculate the thumbnail view crop.

Bug: 151770104
Test: Test swiping up with a normal app, a letterboxed app
      (like authenticator), an app that has no insets (like
Change-Id: I08342b19c54f9078be4613fca9024e2558403bc9
parent 0199fa46
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -195,11 +195,6 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc
        updateThumbnailPaintFilter();
    }

    public void setSaturation(float saturation) {
        mSaturation = saturation;
        updateThumbnailPaintFilter();
    }

    public TaskOverlay getTaskOverlay() {
        return mOverlay;
    }
@@ -447,8 +442,8 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc
            mClipBottom = -1;

            float scale = thumbnailData.scale;
            Rect thumbnailInsets = thumbnailData.insets;

            Rect activityInsets = dp.getInsets();
            Rect thumbnailInsets = getBoundedInsets(activityInsets, thumbnailData.insets);
            final float thumbnailWidth = thumbnailPosition.width()
                    - (thumbnailInsets.left + thumbnailInsets.right) * scale;
            final float thumbnailHeight = thumbnailPosition.height()
@@ -521,6 +516,13 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc
            mIsOrientationChanged = isOrientationDifferent;
        }

        private Rect getBoundedInsets(Rect activityInsets, Rect insets) {
            return new Rect(Math.min(insets.left, activityInsets.left),
                    Math.min(insets.top, activityInsets.top),
                    Math.min(insets.right, activityInsets.right),
                    Math.min(insets.bottom, activityInsets.bottom));
        }

        private int getRotationDelta(int oldRotation, int newRotation) {
            int delta = newRotation - oldRotation;
            if (delta < 0) delta += 4;