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

Commit 6f9e856f authored by Evan Laird's avatar Evan Laird
Browse files

Limit number of notification etc dots to 1

Paramterize the total space consumed by the overflow area

Changed MAX_DOTS to 1

Also changed the overflow logic in the static case so that the overflow
dots in the status bar will always show up the same distance from the
last visible icon.

Test: visual
Change-Id: I5849cbea2e4e4251c96dd40100a763ac71429c65
Fixes: 79937209
parent 6433ac13
Loading
Loading
Loading
Loading
+15 −9
Original line number Diff line number Diff line
@@ -129,13 +129,14 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout {

    public static final int MAX_VISIBLE_ICONS_WHEN_DARK = 5;
    public static final int MAX_STATIC_ICONS = 4;
    private static final int MAX_DOTS = 3;
    private static final int MAX_DOTS = 1;

    private boolean mIsStaticLayout = true;
    private final HashMap<View, IconState> mIconStates = new HashMap<>();
    private int mDotPadding;
    private int mStaticDotRadius;
    private int mStaticDotDiameter;
    private int mOverflowWidth;
    private int mActualLayoutWidth = NO_VALUE;
    private float mActualPaddingEnd = NO_VALUE;
    private float mActualPaddingStart = NO_VALUE;
@@ -230,7 +231,7 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout {
            int top = (int) (centerY - height / 2.0f);
            child.layout(0, top, width, top + height);
            if (i == 0) {
                mIconSize = child.getWidth();
                setIconSize(child.getWidth());
            }
        }
        getLocationOnScreen(mAbsolutePosition);
@@ -239,6 +240,11 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout {
        }
    }

    private void setIconSize(int size) {
        mIconSize = size;
        mOverflowWidth = mIconSize + (MAX_DOTS - 1) * (mStaticDotDiameter + mDotPadding);
    }

    private void updateState() {
        resetViewStates();
        calculateIconTranslations();
@@ -391,12 +397,12 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout {
            iconState.visibleState = StatusBarIconView.STATE_ICON;

            boolean isOverflowing =
                    (translationX >= (noOverflowAfter ? layoutEnd - mIconSize : overflowStart));
                    (translationX > (noOverflowAfter ? layoutEnd - mIconSize
                            : overflowStart - mIconSize));
            if (firstOverflowIndex == -1 && (forceOverflow || isOverflowing)) {
                firstOverflowIndex = noOverflowAfter && !forceOverflow ? i - 1 : i;
                mVisualOverflowStart = layoutEnd - mIconSize
                        - 2 * (mStaticDotDiameter + mDotPadding);
                if (forceOverflow) {
                mVisualOverflowStart = layoutEnd - mOverflowWidth;
                if (forceOverflow || mIsStaticLayout) {
                    mVisualOverflowStart = Math.min(translationX, mVisualOverflowStart);
                }
            }
@@ -408,7 +414,7 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout {
            for (int i = firstOverflowIndex; i < childCount; i++) {
                View view = getChildAt(i);
                IconState iconState = mIconStates.get(view);
                int dotWidth = mStaticDotRadius * 2 + mDotPadding;
                int dotWidth = mStaticDotDiameter + mDotPadding;
                iconState.xTranslation = translationX;
                if (mNumDots < MAX_DOTS) {
                    if (mNumDots == 0 && iconState.iconAppearAmount < 0.8f) {
@@ -536,7 +542,7 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout {
    }

    private float getMaxOverflowStart() {
        return getLayoutEnd() - mIconSize * (2 + OVERFLOW_EARLY_AMOUNT);
        return getLayoutEnd() - mOverflowWidth;
    }

    public void setChangingViewPositions(boolean changingViewPositions) {
@@ -607,7 +613,7 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout {
            return 0;
        }

        int collapsedPadding = mIconSize + 2 * (mStaticDotDiameter + mDotPadding);
        int collapsedPadding = mOverflowWidth;

        if (collapsedPadding + getFinalTranslationX() > getWidth()) {
            collapsedPadding = getWidth() - getFinalTranslationX();