Merge "Update WM Jetpack impl to use WindowMetrics" into rvc-dev

This commit is contained in:
Chris Li
2020-05-15 04:49:40 +00:00
committed by Android (Google) Code Review

View File

@@ -30,6 +30,8 @@ import android.os.IBinder;
import android.view.DisplayInfo; import android.view.DisplayInfo;
import android.view.Surface; import android.view.Surface;
import androidx.annotation.Nullable;
/** /**
* Toolkit class for calculation of the display feature bounds within the window. * Toolkit class for calculation of the display feature bounds within the window.
* NOTE: This sample implementation only works for Activity windows, because there is no public APIs * NOTE: This sample implementation only works for Activity windows, because there is no public APIs
@@ -84,7 +86,7 @@ class ExtensionHelper {
/** Transform rectangle from absolute coordinate space to the window coordinate space. */ /** Transform rectangle from absolute coordinate space to the window coordinate space. */
static void transformToWindowSpaceRect(Rect inOutRect, IBinder windowToken) { static void transformToWindowSpaceRect(Rect inOutRect, IBinder windowToken) {
Rect windowRect = getWindowRect(windowToken); Rect windowRect = getWindowBounds(windowToken);
if (windowRect == null) { if (windowRect == null) {
inOutRect.setEmpty(); inOutRect.setEmpty();
return; return;
@@ -101,13 +103,12 @@ class ExtensionHelper {
* Get the current window bounds in absolute coordinates. * Get the current window bounds in absolute coordinates.
* NOTE: Only works with Activity windows. * NOTE: Only works with Activity windows.
*/ */
private static Rect getWindowRect(IBinder windowToken) { @Nullable
private static Rect getWindowBounds(IBinder windowToken) {
Activity activity = ActivityThread.currentActivityThread().getActivity(windowToken); Activity activity = ActivityThread.currentActivityThread().getActivity(windowToken);
final Rect windowRect = new Rect(); return activity != null
if (activity != null) { ? activity.getWindowManager().getCurrentWindowMetrics().getBounds()
activity.getWindow().getDecorView().getWindowDisplayFrame(windowRect); : null;
}
return windowRect;
} }
/** /**