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

Commit dc40780d authored by Thales Lima's avatar Thales Lima Committed by Uwais Ashraf
Browse files

Fix TaskView cropping for mediaprojection

This swap the current implementation with a correct from launcher

Fix: 271410803
Test: trigger screen record/share for single app
Change-Id: If435261165afe7c5d8d5d984b65e5d0053d1ad34
parent 0af48756
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) {