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

Commit 34899502 authored by Johannes Gallmann's avatar Johannes Gallmann Committed by Automerger Merge Worker
Browse files

Merge "Sensitive Notification Reveal Animation Preparations" into tm-qpr-dev am: f382bb46

parents 36a2b8f0 f382bb46
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -117,6 +117,9 @@ object Flags {
    val ANIMATED_NOTIFICATION_SHADE_INSETS =
        unreleasedFlag(270682168, "animated_notification_shade_insets", teamfood = true)

    // TODO(b/268005230): Tracking Bug
    @JvmField val SENSITIVE_REVEAL_ANIM = unreleasedFlag(268005230, "sensitive_reveal_anim")

    // 200 - keyguard/lockscreen
    // ** Flag retired **
    // public static final BooleanFlag KEYGUARD_LAYOUT =
+13 −6
Original line number Diff line number Diff line
@@ -2805,9 +2805,10 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
        int intrinsicBefore = getIntrinsicHeight();
        mSensitive = sensitive;
        mSensitiveHiddenInGeneral = hideSensitive;
        if (intrinsicBefore != getIntrinsicHeight()) {
            // The animation has a few flaws and is highly visible, so jump cut instead.
            notifyHeightChanged(false /* needsAnimation */);
        int intrinsicAfter = getIntrinsicHeight();
        if (intrinsicBefore != intrinsicAfter) {
            boolean needsAnimation = mFeatureFlags.isEnabled(Flags.SENSITIVE_REVEAL_ANIM);
            notifyHeightChanged(needsAnimation);
        }
    }

@@ -2864,13 +2865,19 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
        View[] publicViews = new View[]{mPublicLayout};
        View[] hiddenChildren = showingPublic ? privateViews : publicViews;
        View[] shownChildren = showingPublic ? publicViews : privateViews;
        // disappear/appear overlap: 10 percent of duration
        long overlap = duration / 10;
        // disappear duration: 1/3 of duration + half of overlap
        long disappearDuration = duration / 3 + overlap / 2;
        // appear duration: 2/3 of duration + half of overlap
        long appearDuration = (duration - disappearDuration) + overlap / 2;
        for (final View hiddenView : hiddenChildren) {
            hiddenView.setVisibility(View.VISIBLE);
            hiddenView.animate().cancel();
            hiddenView.animate()
                    .alpha(0f)
                    .setStartDelay(delay)
                    .setDuration(duration)
                    .setDuration(disappearDuration)
                    .withEndAction(() -> {
                        hiddenView.setVisibility(View.INVISIBLE);
                        resetAllContentAlphas();
@@ -2882,8 +2889,8 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
            showView.animate().cancel();
            showView.animate()
                    .alpha(1f)
                    .setStartDelay(delay)
                    .setDuration(duration);
                    .setStartDelay(delay + duration - appearDuration)
                    .setDuration(appearDuration);
        }
    }

+1 −0
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ public class ExpandableNotificationRowTest extends SysuiTestCase {

        FakeFeatureFlags fakeFeatureFlags = new FakeFeatureFlags();
        fakeFeatureFlags.set(Flags.NOTIFICATION_ANIMATE_BIG_PICTURE, true);
        fakeFeatureFlags.set(Flags.SENSITIVE_REVEAL_ANIM, false);
        mNotificationTestHelper.setFeatureFlags(fakeFeatureFlags);
    }