Remove losing focus window list

The list was used to delay reporting focus lost to the client until the new focused window has been displayed. This is no logic is no longer needed in WM as focus is now dispatched from ID.

Bug: 151179149
Test: go/wm-smoke
Change-Id: I661a8d3ffa9c233d5f57a0037cb1317f50fa599e
This commit is contained in:
Vishnu Nair
2020-08-07 09:21:26 -07:00
parent 0f60ef818f
commit 396b5d5dc8
2 changed files with 0 additions and 51 deletions

View File

@@ -117,7 +117,6 @@ import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
import static com.android.server.wm.WindowManagerService.H.REPORT_FOCUS_CHANGE;
import static com.android.server.wm.WindowManagerService.H.REPORT_HARD_KEYBOARD_STATUS_CHANGE;
import static com.android.server.wm.WindowManagerService.H.REPORT_LOSING_FOCUS;
import static com.android.server.wm.WindowManagerService.H.UPDATE_MULTI_WINDOW_STACKS;
import static com.android.server.wm.WindowManagerService.H.WINDOW_HIDE_TIMEOUT;
import static com.android.server.wm.WindowManagerService.LAYOUT_REPEAT_THRESHOLD;
@@ -468,12 +467,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
*/
WindowState mLastFocus = null;
/**
* Windows that have lost input focus and are waiting for the new focus window to be displayed
* before they are told about this.
*/
ArrayList<WindowState> mLosingFocus = new ArrayList<>();
/**
* The foreground app of this display. Windows below this app cannot be the focused window. If
* the user taps on the area outside of the task of the focused app, we will notify AM about the
@@ -899,10 +892,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
}
}
if (!mLosingFocus.isEmpty() && w.isFocused() && w.isDisplayedLw()) {
mWmService.mH.obtainMessage(REPORT_LOSING_FOCUS, this).sendToTarget();
}
w.updateResizingWindowIfNeeded();
};
@@ -2919,21 +2908,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
if (mLastFocus != mCurrentFocus) {
pw.print(" mLastFocus="); pw.println(mLastFocus);
}
if (mLosingFocus.size() > 0) {
pw.println();
pw.println(" Windows losing focus:");
for (int i = mLosingFocus.size() - 1; i >= 0; i--) {
final WindowState w = mLosingFocus.get(i);
pw.print(" Losing #"); pw.print(i); pw.print(' ');
pw.print(w);
if (dumpAll) {
pw.println(":");
w.dump(pw, " ", true);
} else {
pw.println();
}
}
}
pw.print(" mFocusedApp="); pw.println(mFocusedApp);
if (mLastStatusBarVisibility != 0) {
pw.print(" mLastStatusBarVisibility=0x");
@@ -3152,7 +3126,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
mCurrentFocus, newFocus, getDisplayId(), Debug.getCallers(4));
final WindowState oldFocus = mCurrentFocus;
mCurrentFocus = newFocus;
mLosingFocus.remove(newFocus);
if (newFocus != null) {
mWinAddedSinceNullFocus.clear();

View File

@@ -4740,7 +4740,6 @@ public class WindowManagerService extends IWindowManager.Stub
final class H extends android.os.Handler {
public static final int REPORT_FOCUS_CHANGE = 2;
public static final int REPORT_LOSING_FOCUS = 3;
public static final int WINDOW_FREEZE_TIMEOUT = 11;
public static final int PERSIST_ANIMATION_SCALE = 14;
@@ -4815,11 +4814,6 @@ public class WindowManagerService extends IWindowManager.Stub
ProtoLog.i(WM_DEBUG_FOCUS_LIGHT, "Focus moving from %s"
+ " to %s displayId=%d", lastFocus, newFocus,
displayContent.getDisplayId());
if (newFocus != null && lastFocus != null && !newFocus.isDisplayedLw()) {
ProtoLog.i(WM_DEBUG_FOCUS_LIGHT, "Delaying loss of focus...");
displayContent.mLosingFocus.add(lastFocus);
lastFocus = null;
}
}
// First notify the accessibility manager for the change so it has
@@ -4842,24 +4836,6 @@ public class WindowManagerService extends IWindowManager.Stub
break;
}
case REPORT_LOSING_FOCUS: {
final DisplayContent displayContent = (DisplayContent) msg.obj;
ArrayList<WindowState> losers;
synchronized (mGlobalLock) {
losers = displayContent.mLosingFocus;
displayContent.mLosingFocus = new ArrayList<>();
}
final int N = losers.size();
for (int i = 0; i < N; i++) {
ProtoLog.i(WM_DEBUG_FOCUS_LIGHT, "Losing delayed focus: %s",
losers.get(i));
losers.get(i).reportFocusChangedSerialized(false);
}
break;
}
case WINDOW_FREEZE_TIMEOUT: {
final DisplayContent displayContent = (DisplayContent) msg.obj;
synchronized (mGlobalLock) {