Merge "Cache IWindow in InputWindowHandle" into sc-v2-dev

This commit is contained in:
Chavi Weingarten
2021-08-23 21:57:01 +00:00
committed by Android (Google) Code Review

View File

@@ -49,6 +49,11 @@ public final class InputWindowHandle {
*/ */
@Nullable @Nullable
private IBinder windowToken; private IBinder windowToken;
/**
* Used to cache IWindow from the windowToken so we don't need to convert every time getWindow
* is called.
*/
private IWindow window;
// The window name. // The window name.
public String name; public String name;
@@ -151,7 +156,7 @@ public final class InputWindowHandle {
.append(", visible=").append(visible) .append(", visible=").append(visible)
.append(", scaleFactor=").append(scaleFactor) .append(", scaleFactor=").append(scaleFactor)
.append(", transform=").append(transform) .append(", transform=").append(transform)
.append(", windowToken=").append(getWindow()) .append(", windowToken=").append(windowToken)
.toString(); .toString();
} }
@@ -186,9 +191,14 @@ public final class InputWindowHandle {
public void setWindowToken(IWindow iwindow) { public void setWindowToken(IWindow iwindow) {
windowToken = iwindow.asBinder(); windowToken = iwindow.asBinder();
window = iwindow;
} }
public IWindow getWindow() { public IWindow getWindow() {
return IWindow.Stub.asInterface(windowToken); if (window != null) {
return window;
}
window = IWindow.Stub.asInterface(windowToken);
return window;
} }
} }