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

Commit a54d7db2 authored by Lucas Dupin's avatar Lucas Dupin Committed by android-build-merger
Browse files

Merge "Fix issue where guts would require bouncer" into pi-dev

am: a42d8f6e

Change-Id: I31cba04ac9e513f83a1ed8def893fd086c17ff26
parents 5e38cbb8 a42d8f6e
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -185,6 +185,11 @@ public class AppOpsInfo extends LinearLayout implements NotificationGuts.GutsCon
        return false;
    }

    @Override
    public boolean shouldBeSaved() {
        return false;
    }

    @Override
    public View getContentView() {
        return this;
+20 −8
Original line number Diff line number Diff line
@@ -63,12 +63,12 @@ public class NotificationGuts extends FrameLayout {
        public void setGutsParent(NotificationGuts listener);

        /**
         * @return the view to be shown in the notification guts.
         * Return the view to be shown in the notification guts.
         */
        public View getContentView();

        /**
         * @return the actual height of the content.
         * Return the actual height of the content.
         */
        public int getActualHeight();

@@ -83,16 +83,21 @@ public class NotificationGuts extends FrameLayout {
        public boolean handleCloseControls(boolean save, boolean force);

        /**
         * @return whether the notification associated with these guts is set to be removed.
         * Return whether the notification associated with these guts is set to be removed.
         */
        public boolean willBeRemoved();

        /**
         * @return whether these guts are a leavebehind (e.g. {@link NotificationSnooze}).
         * Return whether these guts are a leavebehind (e.g. {@link NotificationSnooze}).
         */
        public default boolean isLeavebehind() {
            return false;
        }

        /**
         * Return whether something changed and needs to be saved, possibly requiring a bouncer.
         */
        boolean shouldBeSaved();
    }

    public interface OnGutsClosedListener {
@@ -201,12 +206,19 @@ public class NotificationGuts extends FrameLayout {
        setExposed(true /* exposed */, needsFalsingProtection);
    }

    /**
     * Hide controls if they are visible
     * @param leavebehinds true if leavebehinds should be closed
     * @param controls true if controls should be closed
     * @param x x coordinate to animate the close circular reveal with
     * @param y y coordinate to animate the close circular reveal with
     * @param force whether the guts should be force-closed regardless of state.
     */
    public void closeControls(boolean leavebehinds, boolean controls, int x, int y, boolean force) {
        if (mGutsContent != null) {
            if (mGutsContent.isLeavebehind() && leavebehinds) {
                closeControls(x, y, true /* save */, force);
            } else if (!mGutsContent.isLeavebehind() && controls) {
                closeControls(x, y, true /* save */, force);
            if ((mGutsContent.isLeavebehind() && leavebehinds)
                    || (!mGutsContent.isLeavebehind() && controls)) {
                closeControls(x, y, mGutsContent.shouldBeSaved(), force);
            }
        }
    }
+5 −0
Original line number Diff line number Diff line
@@ -485,6 +485,11 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G
        return hasImportanceChanged();
    }

    @Override
    public boolean shouldBeSaved() {
        return hasImportanceChanged();
    }

    @Override
    public View getContentView() {
        return this;
+5 −0
Original line number Diff line number Diff line
@@ -431,6 +431,11 @@ public class NotificationSnooze extends LinearLayout
        return true;
    }

    @Override
    public boolean shouldBeSaved() {
        return true;
    }

    public class NotificationSnoozeOption implements SnoozeOption {
        private SnoozeCriterion mCriterion;
        private int mMinutesToSnoozeFor;