Merge "Cache IWindow in InputWindowHandle" into sc-v2-dev am: 16805b4c7e am: 16a27e576d
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15640823 Change-Id: Iddf97951d52d494af882abb4d5f25fdfe24468cb
This commit is contained in:
@@ -47,6 +47,11 @@ public final class InputWindowHandle {
|
||||
*/
|
||||
@Nullable
|
||||
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.
|
||||
public String name;
|
||||
@@ -145,7 +150,7 @@ public final class InputWindowHandle {
|
||||
.append(", visible=").append(visible)
|
||||
.append(", scaleFactor=").append(scaleFactor)
|
||||
.append(", transform=").append(transform)
|
||||
.append(", windowToken=").append(getWindow())
|
||||
.append(", windowToken=").append(windowToken)
|
||||
.toString();
|
||||
|
||||
}
|
||||
@@ -180,9 +185,14 @@ public final class InputWindowHandle {
|
||||
|
||||
public void setWindowToken(IWindow iwindow) {
|
||||
windowToken = iwindow.asBinder();
|
||||
window = iwindow;
|
||||
}
|
||||
|
||||
public IWindow getWindow() {
|
||||
return IWindow.Stub.asInterface(windowToken);
|
||||
if (window != null) {
|
||||
return window;
|
||||
}
|
||||
window = IWindow.Stub.asInterface(windowToken);
|
||||
return window;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user