diff --git a/src/Core/AndroidNative/maui/build.gradle b/src/Core/AndroidNative/maui/build.gradle index 01a23cd69568..07b6de29bc60 100644 --- a/src/Core/AndroidNative/maui/build.gradle +++ b/src/Core/AndroidNative/maui/build.gradle @@ -31,5 +31,6 @@ dependencies { annotationProcessor 'com.github.bumptech.glide:compiler:4.15.1' implementation 'androidx.appcompat:appcompat:1.3.1' + implementation 'androidx.window:window:1.1.0' implementation 'com.google.android.material:material:1.4.0' } diff --git a/src/Core/AndroidNative/maui/src/main/java/com/microsoft/maui/PlatformInterop.java b/src/Core/AndroidNative/maui/src/main/java/com/microsoft/maui/PlatformInterop.java index 47ceeb07dfb2..efabc48bd757 100644 --- a/src/Core/AndroidNative/maui/src/main/java/com/microsoft/maui/PlatformInterop.java +++ b/src/Core/AndroidNative/maui/src/main/java/com/microsoft/maui/PlatformInterop.java @@ -1,5 +1,6 @@ package com.microsoft.maui; +import android.app.Activity; import android.content.Context; import android.content.res.ColorStateList; import android.graphics.BlendMode; @@ -10,6 +11,7 @@ import android.graphics.Path; import android.graphics.PathEffect; import android.graphics.PorterDuff; +import android.graphics.Rect; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.graphics.drawable.PaintDrawable; @@ -35,6 +37,7 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.widget.ViewPager2; +import androidx.window.layout.WindowMetricsCalculator; import com.bumptech.glide.Glide; import com.bumptech.glide.RequestBuilder; @@ -550,6 +553,19 @@ public static void setLengthFilter(@NonNull EditText editText, int maxLength) } } + /** + * Computes the current WindowMetrics' bounds + * @param activity + * @return Rect value of the bounds + */ + @NonNull + public static Rect getCurrentWindowMetrics(Activity activity) { + return WindowMetricsCalculator.Companion + .getOrCreate() + .computeCurrentWindowMetrics(activity) + .getBounds(); + } + private static class ColorStates { static final int[] EMPTY = new int[] { }; diff --git a/src/Core/src/Platform/Android/ActivityExtensions.cs b/src/Core/src/Platform/Android/ActivityExtensions.cs index e2541772c469..4535153d0765 100644 --- a/src/Core/src/Platform/Android/ActivityExtensions.cs +++ b/src/Core/src/Platform/Android/ActivityExtensions.cs @@ -1,4 +1,3 @@ -using AndroidX.Window.Layout; using Microsoft.Maui.Graphics; namespace Microsoft.Maui.Platform @@ -7,9 +6,7 @@ internal static partial class ActivityExtensions { internal static Rect GetWindowFrame(this Android.App.Activity activity) { - var wmc = WindowMetricsCalculator.Companion.OrCreate; - var wm = wmc.ComputeCurrentWindowMetrics(activity); - var bounds = wm.Bounds; + var bounds = PlatformInterop.GetCurrentWindowMetrics(activity); return activity.FromPixels(bounds); } diff --git a/src/Core/src/maui.aar b/src/Core/src/maui.aar index 2e2f215cfd29..a20ba6c2f036 100644 Binary files a/src/Core/src/maui.aar and b/src/Core/src/maui.aar differ