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) { public void removeNotification(String key, RankingMap ranking) {
boolean deferRemoval = false; boolean deferRemoval = false;
if (mHeadsUpManager.isHeadsUp(key)) { 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)) { if (key.equals(mMediaNotificationKey)) {
clearCurrentMediaNotification(); clearCurrentMediaNotification();
@@ -2368,7 +2372,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
if (wasHeadsUp) { if (wasHeadsUp) {
if (!shouldPeek) { if (!shouldPeek) {
// We don't want this to be interrupting anymore, lets remove it // We don't want this to be interrupting anymore, lets remove it
mHeadsUpManager.removeNotification(key); mHeadsUpManager.removeNotification(key, false /* ignoreEarliestRemovalTime */);
} else { } else {
mHeadsUpManager.updateNotification(entry, alertAgain); 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 * @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 * 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 (DEBUG) Log.v(TAG, "remove");
if (wasShownLongEnough(key)) { if (wasShownLongEnough(key) || ignoreEarliestRemovalTime) {
releaseImmediately(key); releaseImmediately(key);
return true; return true;
} else { } else {