Merge "[DO NOT MERGE] Allow multiple toasts for the focused app" into cw-f-dev

This commit is contained in:
TreeHugger Robot
2017-04-12 21:00:21 +00:00
committed by Android (Google) Code Review

View File

@@ -719,16 +719,21 @@ 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) {
return true;
}
if (window.mAttrs.type == TYPE_TOAST && window.getOwningUid() == uid
&& !window.isRemovedOrHidden()) { && !window.isRemovedOrHidden()) {
return false; alreadyHasToastWindow = true;
} }
} }
return true; return !alreadyHasToastWindow;
} }
void scheduleToastWindowsTimeoutIfNeededLocked(WindowState oldFocus, void scheduleToastWindowsTimeoutIfNeededLocked(WindowState oldFocus,