From f3b3b9787747dfc7a15f505744da0821580326f9 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 15 Jul 2024 17:07:50 +0200 Subject: [PATCH] Add preview for Call screen in different PipState. --- .../call/impl/pip/PictureInPictureStateProvider.kt | 10 ++++++++++ .../android/features/call/impl/ui/CallScreenView.kt | 13 +++++++++++++ .../android/tests/konsist/KonsistPreviewTest.kt | 1 + 3 files changed, 24 insertions(+) diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/pip/PictureInPictureStateProvider.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/pip/PictureInPictureStateProvider.kt index 360ee54d3f..8270e27e7d 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/pip/PictureInPictureStateProvider.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/pip/PictureInPictureStateProvider.kt @@ -16,6 +16,16 @@ package io.element.android.features.call.impl.pip +import androidx.compose.ui.tooling.preview.PreviewParameterProvider + +open class PictureInPictureStateProvider : PreviewParameterProvider { + override val values: Sequence + get() = sequenceOf( + aPictureInPictureState(supportPip = true), + aPictureInPictureState(supportPip = true, isInPictureInPicture = true), + ) +} + fun aPictureInPictureState( supportPip: Boolean = false, isInPictureInPicture: Boolean = false, diff --git a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/CallScreenView.kt b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/CallScreenView.kt index 71e6fd0e7b..70ab2e30c2 100644 --- a/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/CallScreenView.kt +++ b/features/call/impl/src/main/kotlin/io/element/android/features/call/impl/ui/CallScreenView.kt @@ -38,6 +38,7 @@ import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.features.call.impl.R import io.element.android.features.call.impl.pip.PictureInPictureEvents import io.element.android.features.call.impl.pip.PictureInPictureState +import io.element.android.features.call.impl.pip.PictureInPictureStateProvider import io.element.android.features.call.impl.pip.aPictureInPictureState import io.element.android.features.call.impl.utils.WebViewWidgetMessageInterceptor import io.element.android.libraries.architecture.AsyncData @@ -195,3 +196,15 @@ internal fun CallScreenViewPreview( requestPermissions = { _, _ -> }, ) } + +@PreviewsDayNight +@Composable +internal fun CallScreenPipViewPreview( + @PreviewParameter(PictureInPictureStateProvider::class) state: PictureInPictureState, +) = ElementPreview { + CallScreenView( + state = aCallScreenState(), + pipState = state, + requestPermissions = { _, _ -> }, + ) +} diff --git a/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistPreviewTest.kt b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistPreviewTest.kt index 52ae3660c6..ccf6754fc5 100644 --- a/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistPreviewTest.kt +++ b/tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistPreviewTest.kt @@ -72,6 +72,7 @@ class KonsistPreviewTest { "AsyncIndicatorLoadingPreview", "BloomInitialsPreview", "BloomPreview", + "CallScreenPipViewPreview", "ColorAliasesPreview", "DefaultRoomListTopBarWithIndicatorPreview", "GradientFloatingActionButtonCircleShapePreview",