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

Commit db885e22 authored by Selim Cinek's avatar Selim Cinek Committed by Android Git Automerger
Browse files

am a68da938: Merge "Fixed a bug with notification clipping" into lmp-mr1-dev

* commit 'a68da938':
  Fixed a bug with notification clipping
parents a0adb0bd a68da938
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -23,9 +23,7 @@ import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.RippleDrawable;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import com.android.systemui.R;

/**
 * A view that can be used for both the dimmed and normal background of an notification.
+24 −10
Original line number Diff line number Diff line
@@ -200,15 +200,25 @@ public class StackScrollAlgorithm {
            // apply clipping and shadow
            float newNotificationEnd = newYTranslation + newHeight;

            // In the unlocked shade we have to clip a little bit higher because of the rounded
            // corners of the notifications.
            float clippingCorrection = state.dimmed ? 0 : mRoundedRectCornerRadius * state.scale;

            float clipHeight;
            if (previousNotificationIsSwiped) {
                // When the previous notification is swiped, we don't clip the content to the
                // bottom of it.
            float clipHeight = previousNotificationIsSwiped
                    ? newHeight
                    : newNotificationEnd - (previousNotificationEnd - clippingCorrection);
                clipHeight = newHeight;
            } else {
                clipHeight = newNotificationEnd - previousNotificationEnd;
                clipHeight = Math.max(0.0f, clipHeight);
                if (clipHeight != 0.0f) {

                    // In the unlocked shade we have to clip a little bit higher because of the rounded
                    // corners of the notifications, but only if we are not fully overlapped by
                    // the top card.
                    float clippingCorrection = state.dimmed
                            ? 0
                            : mRoundedRectCornerRadius * state.scale;
                    clipHeight += clippingCorrection;
                }
            }

            updateChildClippingAndBackground(state, newHeight, clipHeight,
                    newHeight - (previousNotificationStart - newYTranslation));
@@ -669,7 +679,11 @@ public class StackScrollAlgorithm {
            StackScrollState.ViewState childViewState = resultState.getViewStateForView(child);
            if (i < algorithmState.itemsInTopStack) {
                float stackIndex = algorithmState.itemsInTopStack - i;
                stackIndex = Math.min(stackIndex, MAX_ITEMS_IN_TOP_STACK + 2);

                // Ensure that the topmost item is a little bit higher than the rest when fully
                // scrolled, to avoid drawing errors when swiping it out
                float max = MAX_ITEMS_IN_TOP_STACK + (i == 0 ? 2.5f : 2);
                stackIndex = Math.min(stackIndex, max);
                if (i == 0 && algorithmState.itemsInTopStack < 2.0f) {

                    // We only have the top item and an additional item in the top stack,
+1 −3
Original line number Diff line number Diff line
@@ -119,10 +119,8 @@ public class StackScrollState {
                    }

                    // apply alpha
                    if (!becomesInvisible) {
                    child.setAlpha(newAlpha);
                }
                }

                // apply visibility
                int oldVisibility = child.getVisibility();
+1 −6
Original line number Diff line number Diff line
@@ -477,6 +477,7 @@ public class StackStateAnimator {
                if (newEndValue == 0 && !mWasCancelled) {
                    child.setVisibility(View.INVISIBLE);
                }
                // remove the tag when the animation is finished
                child.setTag(TAG_ANIMATOR_ALPHA, null);
                child.setTag(TAG_START_ALPHA, null);
                child.setTag(TAG_END_ALPHA, null);
@@ -498,13 +499,7 @@ public class StackStateAnimator {
            animator.setStartDelay(delay);
        }
        animator.addListener(getGlobalAnimationFinishedListener());
        // remove the tag when the animation is finished
        animator.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {

            }
        });
        startAnimator(animator);
        child.setTag(TAG_ANIMATOR_ALPHA, animator);
        child.setTag(TAG_START_ALPHA, child.getAlpha());