[DO NOT MERGE] Allow multiple toasts for the focused app

am: 296a60acc3

Change-Id: If076e3af0033447eb074ba45721205974cb763a4
This commit is contained in:
Svet Ganov
2016-12-06 15:39:01 +00:00
committed by android-build-merger

View File

@@ -719,17 +719,22 @@ class DisplayContent {
boolean canAddToastWindowForUid(int uid) { boolean canAddToastWindowForUid(int uid) {
// We allow one toast window per UID being shown at a time. // We allow one toast window per UID being shown at a time.
WindowList windows = getWindowList(); // Also if the app is focused adding more than one toast at
final int windowCount = windows.size(); // a time for better backwards compatibility.
boolean alreadyHasToastWindow = false;
final int windowCount = mWindows.size();
for (int i = 0; i < windowCount; i++) { for (int i = 0; i < windowCount; i++) {
WindowState window = windows.get(i); final WindowState window = mWindows.get(i);
if (window.mAttrs.type == TYPE_TOAST && window.mOwnerUid == uid if (window.isFocused() && window.getOwningUid() == uid) {
&& !window.isRemovedOrHidden()) {
return false;
}
}
return true; return true;
} }
if (window.mAttrs.type == TYPE_TOAST && window.getOwningUid() == uid
&& !window.isRemovedOrHidden()) {
alreadyHasToastWindow = true;
}
}
return !alreadyHasToastWindow;
}
void scheduleToastWindowsTimeoutIfNeededLocked(WindowState oldFocus, void scheduleToastWindowsTimeoutIfNeededLocked(WindowState oldFocus,
WindowState newFocus) { WindowState newFocus) {