Merge "Fix DirectReply taking too long in HUNs" into nyc-dev

This commit is contained in:
TreeHugger Robot
2016-04-29 21:32:48 +00:00
committed by Android (Google) Code Review
2 changed files with 8 additions and 4 deletions

View File

@@ -1441,7 +1441,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
public void removeNotification(String key, RankingMap ranking) {
boolean deferRemoval = false;
if (mHeadsUpManager.isHeadsUp(key)) {
deferRemoval = !mHeadsUpManager.removeNotification(key);
// A cancel() in repsonse to a remote input shouldn't be delayed, as it makes the
// sending look longer than it takes.
boolean ignoreEarliestRemovalTime = mRemoteInputController.isSpinning(key)
&& !FORCE_REMOTE_INPUT_HISTORY;
deferRemoval = !mHeadsUpManager.removeNotification(key, ignoreEarliestRemovalTime);
}
if (key.equals(mMediaNotificationKey)) {
clearCurrentMediaNotification();
@@ -2368,7 +2372,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
if (wasHeadsUp) {
if (!shouldPeek) {
// We don't want this to be interrupting anymore, lets remove it
mHeadsUpManager.removeNotification(key);
mHeadsUpManager.removeNotification(key, false /* ignoreEarliestRemovalTime */);
} else {
mHeadsUpManager.updateNotification(entry, alertAgain);
}

View File

@@ -264,9 +264,9 @@ public class HeadsUpManager implements ViewTreeObserver.OnComputeInternalInsetsL
* @return true if the notification was removed and false if it still needs to be kept around
* for a bit since it wasn't shown long enough
*/
public boolean removeNotification(String key) {
public boolean removeNotification(String key, boolean ignoreEarliestRemovalTime) {
if (DEBUG) Log.v(TAG, "remove");
if (wasShownLongEnough(key)) {
if (wasShownLongEnough(key) || ignoreEarliestRemovalTime) {
releaseImmediately(key);
return true;
} else {