Merge "Fix TaskView cropping for mediaprojection" into tm-qpr-dev am: 1312341210
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21751162 Change-Id: I2e1270d0c97092122df43cf9201031b6f835bf57 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -19,12 +19,11 @@ package com.android.systemui.mediaprojection.appselector.view
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import android.graphics.Rect
|
import android.graphics.Rect
|
||||||
|
import android.view.WindowInsets.Type
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import com.android.internal.R as AndroidR
|
|
||||||
import com.android.systemui.mediaprojection.appselector.MediaProjectionAppSelectorScope
|
import com.android.systemui.mediaprojection.appselector.MediaProjectionAppSelectorScope
|
||||||
import com.android.systemui.mediaprojection.appselector.view.TaskPreviewSizeProvider.TaskPreviewSizeListener
|
import com.android.systemui.mediaprojection.appselector.view.TaskPreviewSizeProvider.TaskPreviewSizeListener
|
||||||
import com.android.systemui.shared.recents.utilities.Utilities.isLargeScreen
|
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.CallbackController
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController
|
import com.android.systemui.statusbar.policy.ConfigurationController
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener
|
import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener
|
||||||
@@ -62,17 +61,12 @@ constructor(
|
|||||||
val width = windowMetrics.bounds.width()
|
val width = windowMetrics.bounds.width()
|
||||||
var height = maximumWindowHeight
|
var height = maximumWindowHeight
|
||||||
|
|
||||||
// TODO(b/271410803): Read isTransientTaskbar from Launcher
|
|
||||||
val isLargeScreen = isLargeScreen(context)
|
val isLargeScreen = isLargeScreen(context)
|
||||||
val isTransientTaskbar =
|
if (isLargeScreen) {
|
||||||
QuickStepContract.isGesturalMode(
|
|
||||||
context.resources.getInteger(
|
|
||||||
com.android.internal.R.integer.config_navBarInteractionMode
|
|
||||||
)
|
|
||||||
)
|
|
||||||
if (isLargeScreen && !isTransientTaskbar) {
|
|
||||||
val taskbarSize =
|
val taskbarSize =
|
||||||
context.resources.getDimensionPixelSize(AndroidR.dimen.taskbar_frame_height)
|
windowManager.currentWindowMetrics.windowInsets
|
||||||
|
.getInsets(Type.tappableElement())
|
||||||
|
.bottom
|
||||||
height -= taskbarSize
|
height -= taskbarSize
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,12 +19,14 @@ package com.android.systemui.mediaprojection.appselector.view
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
|
import android.graphics.Insets
|
||||||
import android.graphics.Rect
|
import android.graphics.Rect
|
||||||
import android.util.DisplayMetrics.DENSITY_DEFAULT
|
import android.util.DisplayMetrics.DENSITY_DEFAULT
|
||||||
|
import android.view.WindowInsets
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import android.view.WindowMetrics
|
import android.view.WindowMetrics
|
||||||
|
import androidx.core.view.WindowInsetsCompat.Type
|
||||||
import androidx.test.filters.SmallTest
|
import androidx.test.filters.SmallTest
|
||||||
import com.android.internal.R
|
|
||||||
import com.android.systemui.SysuiTestCase
|
import com.android.systemui.SysuiTestCase
|
||||||
import com.android.systemui.mediaprojection.appselector.view.TaskPreviewSizeProvider.TaskPreviewSizeListener
|
import com.android.systemui.mediaprojection.appselector.view.TaskPreviewSizeProvider.TaskPreviewSizeListener
|
||||||
import com.android.systemui.statusbar.policy.FakeConfigurationController
|
import com.android.systemui.statusbar.policy.FakeConfigurationController
|
||||||
@@ -94,7 +96,13 @@ class TaskPreviewSizeProviderTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun givenTaskbarSize(size: Int) {
|
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) {
|
private fun givenDisplay(width: Int, height: Int, isTablet: Boolean = false) {
|
||||||
|
|||||||
Reference in New Issue
Block a user