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

Commit 29f85859 authored by Selim Cinek's avatar Selim Cinek
Browse files

Fixed an issue where the notification icons could overlap the clock

Because we were cancelling an animation but never reseting the translation
we could be stuck in weird transition states.

Fixes: 136117476
Test: lock and unlock quickly with overlapping animations, observe no overlap
Change-Id: Iee389fa77588289417d0e3e5bdc31aeda1aac58a
parent 8c0b496c
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -537,11 +537,7 @@ public class NotificationIconAreaController implements DarkReceiver,
        if (dozeParameters.shouldControlScreenOff()) {
            mAodIcons.setTranslationY(-mAodIconAppearTranslation);
            mAodIcons.setAlpha(0);
            mAodIcons.animate()
                    .setInterpolator(Interpolators.DECELERATE_QUINT)
                    .translationY(0)
                    .setDuration(AOD_ICONS_APPEAR_DURATION)
                    .start();
            animateInAodIconTranslation();
            mAodIcons.animate()
                    .alpha(1)
                    .setInterpolator(Interpolators.LINEAR)
@@ -550,6 +546,14 @@ public class NotificationIconAreaController implements DarkReceiver,
        }
    }

    private void animateInAodIconTranslation() {
        mAodIcons.animate()
                .setInterpolator(Interpolators.DECELERATE_QUINT)
                .translationY(0)
                .setDuration(AOD_ICONS_APPEAR_DURATION)
                .start();
    }

    private void reloadAodColor() {
        mAodIconTint = Utils.getColorAttrDefaultColor(mContext,
                R.attr.wallpaperTextColor);
@@ -606,14 +610,19 @@ public class NotificationIconAreaController implements DarkReceiver,
                        mAodIcons.setAlpha(1.0f);
                        appearAodIcons();
                    } else {
                        // Let's make sure the icon are translated to 0, since we cancelled it above
                        animateInAodIconTranslation();
                        // We were fading out, let's fade in instead
                        CrossFadeHelper.fadeIn(mAodIcons);
                    }
                } else {
                    // Let's make sure the icon are translated to 0, since we cancelled it above
                    animateInAodIconTranslation();
                    CrossFadeHelper.fadeOut(mAodIcons);
                }
            } else {
                mAodIcons.setAlpha(1.0f);
                mAodIcons.setTranslationY(0);
                mAodIcons.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
            }
        }