Merge "Cache IWindow in InputWindowHandle" into sc-v2-dev am: 16805b4c7e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15640823 Change-Id: Ia0a30797a5cd5f24f2469eca45cd28120e96fff9
This commit is contained in:
@@ -49,6 +49,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;
|
||||
@@ -151,7 +156,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();
|
||||
|
||||
}
|
||||
@@ -186,9 +191,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