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

Commit b0195376 authored by Jon Miranda's avatar Jon Miranda
Browse files

Fix badged icons / icons with notification dot being cropped.

For icons, we use radius = 0 during the reveal animation so
that the entire view will be visible.

Fixes: 276625136
Test: - have work profile icon or badged shortcut in taskbar/hotseat
      - swipe up to close
      - also check swipe back to close
      - ensure entire icon is visible at the end of the animation so
        that there is a clean handoff
      - run same test with icons that have notification dot
Flag: ENABLE_TRANSIENT_TASKBAR true

Change-Id: I3fef1eede5cac189dab1bf1be4ebd048720727c7
parent 8e307ba5
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -286,7 +286,7 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar
    }

    private ValueAnimator createRevealAnimForView(View view, boolean isStashed, float newWidth,
            boolean shouldStartAlign) {
            boolean isQsb) {
        Rect viewBounds = new Rect(0, 0, view.getWidth(), view.getHeight());
        int centerY = viewBounds.centerY();
        int halfHandleHeight = mStashedHandleHeight / 2;
@@ -295,7 +295,8 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar

        final int left;
        final int right;
        if (shouldStartAlign) {
        // QSB will crop from the 'start' whereas all other icons will crop from the center.
        if (isQsb) {
            if (mIsRtl) {
                right = viewBounds.right;
                left = (int) (right - newWidth);
@@ -311,7 +312,10 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar
        }

        Rect stashedRect = new Rect(left, top, right, bottom);
        float radius = viewBounds.height() / 2f;
        // QSB radius can be > 0 since it does not have any UI elements outside of it bounds.
        float radius = isQsb
                ? viewBounds.height() / 2f
                : 0f;
        float stashedRadius = stashedRect.height() / 2f;

        return new RoundedRectRevealOutlineProvider(radius, stashedRadius, viewBounds, stashedRect)