Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 13123412 authored by Alex Florescu's avatar Alex Florescu Committed by Android (Google) Code Review
Browse files

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

parents 0fcc5910 dc40780d
Loading
Loading
Loading
Loading
+5 −11
Original line number Diff line number Diff line
@@ -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
        }

+10 −2
Original line number Diff line number Diff line
@@ -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) {