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,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) {