summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chris Li <lihongyu@google.com> 2023-01-11 12:13:57 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-01-11 12:13:57 +0000
commit26e00d78da6637b18cb9870cd624638544a773b2 (patch)
tree01589276e7dbefcbfbe91e1d197052771715eabd
parent2462720c054607f0f5e562e686c4226da75001c1 (diff)
parent7b75f1351b6eca66fea7867f78e342d3d89357c1 (diff)
Merge "Supply density in Task WindowMetrics"
-rw-r--r--libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java4
-rw-r--r--libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitPresenterTest.java18
2 files changed, 20 insertions, 2 deletions
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
index 668a7d5aa9b6..85a00dfc010c 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
@@ -30,6 +30,7 @@ import android.content.res.Configuration;
import android.graphics.Rect;
import android.os.Bundle;
import android.os.IBinder;
+import android.util.DisplayMetrics;
import android.util.LayoutDirection;
import android.util.Pair;
import android.util.Size;
@@ -972,6 +973,7 @@ class SplitPresenter extends JetpackTaskFragmentOrganizer {
private static WindowMetrics getTaskWindowMetrics(@NonNull Configuration taskConfiguration) {
final Rect taskBounds = taskConfiguration.windowConfiguration.getBounds();
// TODO(b/190433398): Supply correct insets.
- return new WindowMetrics(taskBounds, WindowInsets.CONSUMED);
+ final float density = taskConfiguration.densityDpi * DisplayMetrics.DENSITY_DEFAULT_SCALE;
+ return new WindowMetrics(taskBounds, WindowInsets.CONSUMED, density);
}
}
diff --git a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitPresenterTest.java b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitPresenterTest.java
index f3393c21b1ec..07d01589be5a 100644
--- a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitPresenterTest.java
+++ b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitPresenterTest.java
@@ -66,8 +66,10 @@ import android.graphics.Color;
import android.graphics.Rect;
import android.os.IBinder;
import android.platform.test.annotations.Presubmit;
+import android.util.DisplayMetrics;
import android.util.Pair;
import android.util.Size;
+import android.view.WindowMetrics;
import android.window.TaskFragmentAnimationParams;
import android.window.TaskFragmentInfo;
import android.window.TaskFragmentOperation;
@@ -101,7 +103,6 @@ import java.util.ArrayList;
@RunWith(AndroidJUnit4.class)
public class SplitPresenterTest {
- @Mock
private Activity mActivity;
@Mock
private Resources mActivityResources;
@@ -571,6 +572,21 @@ public class SplitPresenterTest {
splitPairRule, null /* minDimensionsPair */));
}
+ @Test
+ public void testGetTaskWindowMetrics() {
+ final Configuration taskConfig = new Configuration();
+ taskConfig.windowConfiguration.setBounds(TASK_BOUNDS);
+ taskConfig.densityDpi = 123;
+ final TaskContainer.TaskProperties taskProperties = new TaskContainer.TaskProperties(
+ DEFAULT_DISPLAY, taskConfig);
+ doReturn(taskProperties).when(mPresenter).getTaskProperties(mActivity);
+
+ final WindowMetrics windowMetrics = mPresenter.getTaskWindowMetrics(mActivity);
+ assertEquals(TASK_BOUNDS, windowMetrics.getBounds());
+ assertEquals(123 * DisplayMetrics.DENSITY_DEFAULT_SCALE,
+ windowMetrics.getDensity(), 0f);
+ }
+
private Activity createMockActivity() {
final Activity activity = mock(Activity.class);
final Configuration activityConfig = new Configuration();