Merge "Update WM Jetpack impl to use WindowMetrics" into rvc-dev
This commit is contained in:
@@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user