Merge "Fix TaskView cropping for mediaprojection" into tm-qpr-dev

This commit is contained in:
Alex Florescu
2023-03-22 14:45:45 +00:00
committed by Android (Google) Code Review
2 changed files with 15 additions and 13 deletions

View File

@@ -19,12 +19,11 @@ package com.android.systemui.mediaprojection.appselector.view
import android.content.Context
import android.content.res.Configuration
import android.graphics.Rect
import android.view.WindowInsets.Type
import android.view.WindowManager
import com.android.internal.R as AndroidR
import com.android.systemui.mediaprojection.appselector.MediaProjectionAppSelectorScope
import com.android.systemui.mediaprojection.appselector.view.TaskPreviewSizeProvider.TaskPreviewSizeListener
import com.android.systemui.shared.recents.utilities.Utilities.isLargeScreen
import com.android.systemui.shared.system.QuickStepContract
import com.android.systemui.statusbar.policy.CallbackController
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener
@@ -62,17 +61,12 @@ constructor(
val width = windowMetrics.bounds.width()
var height = maximumWindowHeight
// TODO(b/271410803): Read isTransientTaskbar from Launcher
val isLargeScreen = isLargeScreen(context)
val isTransientTaskbar =
QuickStepContract.isGesturalMode(
context.resources.getInteger(
com.android.internal.R.integer.config_navBarInteractionMode
)
)
if (isLargeScreen && !isTransientTaskbar) {
if (isLargeScreen) {
val taskbarSize =
context.resources.getDimensionPixelSize(AndroidR.dimen.taskbar_frame_height)
windowManager.currentWindowMetrics.windowInsets
.getInsets(Type.tappableElement())
.bottom
height -= taskbarSize
}

View File

@@ -19,12 +19,14 @@ package com.android.systemui.mediaprojection.appselector.view
import android.content.Context
import android.content.res.Configuration
import android.content.res.Resources
import android.graphics.Insets
import android.graphics.Rect
import android.util.DisplayMetrics.DENSITY_DEFAULT
import android.view.WindowInsets
import android.view.WindowManager
import android.view.WindowMetrics
import androidx.core.view.WindowInsetsCompat.Type
import androidx.test.filters.SmallTest
import com.android.internal.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.mediaprojection.appselector.view.TaskPreviewSizeProvider.TaskPreviewSizeListener
import com.android.systemui.statusbar.policy.FakeConfigurationController
@@ -94,7 +96,13 @@ class TaskPreviewSizeProviderTest : SysuiTestCase() {
}
private fun givenTaskbarSize(size: Int) {
whenever(resources.getDimensionPixelSize(eq(R.dimen.taskbar_frame_height))).thenReturn(size)
val windowInsets =
WindowInsets.Builder()
.setInsets(Type.tappableElement(), Insets.of(Rect(0, 0, 0, size)))
.build()
val windowMetrics = WindowMetrics(windowManager.maximumWindowMetrics.bounds, windowInsets)
whenever(windowManager.maximumWindowMetrics).thenReturn(windowMetrics)
whenever(windowManager.currentWindowMetrics).thenReturn(windowMetrics)
}
private fun givenDisplay(width: Int, height: Int, isTablet: Boolean = false) {