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

This commit is contained in:
TreeHugger Robot
2018-05-18 00:51:36 +00:00
committed by Android (Google) Code Review
4 changed files with 35 additions and 8 deletions

View File

@@ -185,6 +185,11 @@ public class AppOpsInfo extends LinearLayout implements NotificationGuts.GutsCon
return false; return false;
} }
@Override
public boolean shouldBeSaved() {
return false;
}
@Override @Override
public View getContentView() { public View getContentView() {
return this; return this;

View File

@@ -63,12 +63,12 @@ public class NotificationGuts extends FrameLayout {
public void setGutsParent(NotificationGuts listener); 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(); public View getContentView();
/** /**
* @return the actual height of the content. * Return the actual height of the content.
*/ */
public int getActualHeight(); public int getActualHeight();
@@ -83,16 +83,21 @@ public class NotificationGuts extends FrameLayout {
public boolean handleCloseControls(boolean save, boolean force); 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(); 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() { public default boolean isLeavebehind() {
return false; return false;
} }
/**
* Return whether something changed and needs to be saved, possibly requiring a bouncer.
*/
boolean shouldBeSaved();
} }
public interface OnGutsClosedListener { public interface OnGutsClosedListener {
@@ -201,12 +206,19 @@ public class NotificationGuts extends FrameLayout {
setExposed(true /* exposed */, needsFalsingProtection); 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) { public void closeControls(boolean leavebehinds, boolean controls, int x, int y, boolean force) {
if (mGutsContent != null) { if (mGutsContent != null) {
if (mGutsContent.isLeavebehind() && leavebehinds) { if ((mGutsContent.isLeavebehind() && leavebehinds)
closeControls(x, y, true /* save */, force); || (!mGutsContent.isLeavebehind() && controls)) {
} else if (!mGutsContent.isLeavebehind() && controls) { closeControls(x, y, mGutsContent.shouldBeSaved(), force);
closeControls(x, y, true /* save */, force);
} }
} }
} }

View File

@@ -485,6 +485,11 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G
return hasImportanceChanged(); return hasImportanceChanged();
} }
@Override
public boolean shouldBeSaved() {
return hasImportanceChanged();
}
@Override @Override
public View getContentView() { public View getContentView() {
return this; return this;

View File

@@ -431,6 +431,11 @@ public class NotificationSnooze extends LinearLayout
return true; return true;
} }
@Override
public boolean shouldBeSaved() {
return true;
}
public class NotificationSnoozeOption implements SnoozeOption { public class NotificationSnoozeOption implements SnoozeOption {
private SnoozeCriterion mCriterion; private SnoozeCriterion mCriterion;
private int mMinutesToSnoozeFor; private int mMinutesToSnoozeFor;