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

Commit 44a36944 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Only relayout when mIgnoredSlots changes"

parents cc2e26cd 51dfd53f
Loading
Loading
Loading
Loading
+28 −12
Original line number Diff line number Diff line
@@ -217,26 +217,38 @@ public class StatusIconContainer extends AlphaOptimizedLinearLayout {
     * frameworks/base/core/res/res/values/config.xml
     */
    public void addIgnoredSlot(String slotName) {
        addIgnoredSlotInternal(slotName);
        boolean added = addIgnoredSlotInternal(slotName);
        if (added) {
            requestLayout();
        }
    }

    /**
     * Add a list of slots to be ignored
     * @param slots names of the icons to ignore
     */
    public void addIgnoredSlots(List<String> slots) {
        boolean willAddAny = false;
        for (String slot : slots) {
            addIgnoredSlotInternal(slot);
            willAddAny |= addIgnoredSlotInternal(slot);
        }

        if (willAddAny) {
            requestLayout();
        }
    }

    private void addIgnoredSlotInternal(String slotName) {
        if (!mIgnoredSlots.contains(slotName)) {
            mIgnoredSlots.add(slotName);
    /**
     *
     * @param slotName
     * @return
     */
    private boolean addIgnoredSlotInternal(String slotName) {
        if (mIgnoredSlots.contains(slotName)) {
            return false;
        }
        mIgnoredSlots.add(slotName);
        return true;
    }

    /**
@@ -245,10 +257,11 @@ public class StatusIconContainer extends AlphaOptimizedLinearLayout {
     * @param slotName name of the icon slot to remove from the ignored list
     */
    public void removeIgnoredSlot(String slotName) {
        mIgnoredSlots.remove(slotName);

        boolean removed = mIgnoredSlots.remove(slotName);
        if (removed) {
            requestLayout();
        }
    }

    /**
     * Remove a list of slots from the list of ignored icon slots.
@@ -256,12 +269,15 @@ public class StatusIconContainer extends AlphaOptimizedLinearLayout {
     * @param slots name of the icon slots to remove from the ignored list
     */
    public void removeIgnoredSlots(List<String> slots) {
        boolean removedAny = false;
        for (String slot : slots) {
            mIgnoredSlots.remove(slot);
            removedAny |= mIgnoredSlots.remove(slot);
        }

        if (removedAny) {
            requestLayout();
        }
    }

    /**
     * Sets the list of ignored icon slots clearing the current list.