From d984aac970ed7eeb536662867a596fa21c6b4014 Mon Sep 17 00:00:00 2001 From: mariiapanasetskaia Date: Wed, 20 Nov 2024 15:52:59 +0100 Subject: [PATCH 1/6] delete acc to new ds --- .../feature-delete-account/build.gradle.kts | 4 +- .../deleteaccount/DeleteAccountDestination.kt | 74 ++++++++++--------- 2 files changed, 41 insertions(+), 37 deletions(-) diff --git a/app/feature/feature-delete-account/build.gradle.kts b/app/feature/feature-delete-account/build.gradle.kts index fd9691ddd4..1a80da9f34 100644 --- a/app/feature/feature-delete-account/build.gradle.kts +++ b/app/feature/feature-delete-account/build.gradle.kts @@ -20,7 +20,6 @@ dependencies { implementation(libs.arrow.core) implementation(libs.compose.richtext) implementation(libs.compose.richtextCommonmark) - implementation(libs.compose.richtextMaterial) implementation(libs.coroutines.core) implementation(libs.koin.compose) implementation(libs.koin.core) @@ -28,10 +27,9 @@ dependencies { implementation(projects.apolloCore) implementation(projects.apolloOctopusPublic) implementation(projects.authCorePublic) + implementation(projects.designSystemHedvig) implementation(projects.coreCommonPublic) - implementation(projects.coreDesignSystem) implementation(projects.coreResources) - implementation(projects.coreUi) implementation(projects.moleculeAndroid) implementation(projects.moleculePublic) implementation(projects.navigationCommon) diff --git a/app/feature/feature-delete-account/src/main/kotlin/com/hedvig/android/feature/deleteaccount/DeleteAccountDestination.kt b/app/feature/feature-delete-account/src/main/kotlin/com/hedvig/android/feature/deleteaccount/DeleteAccountDestination.kt index 1e10560f7b..fe5665395d 100644 --- a/app/feature/feature-delete-account/src/main/kotlin/com/hedvig/android/feature/deleteaccount/DeleteAccountDestination.kt +++ b/app/feature/feature-delete-account/src/main/kotlin/com/hedvig/android/feature/deleteaccount/DeleteAccountDestination.kt @@ -6,27 +6,26 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.material3.ButtonColors -import androidx.compose.material3.ButtonDefaults -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Surface -import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.datasource.CollectionPreviewParameterProvider import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.halilibo.richtext.commonmark.Markdown -import com.halilibo.richtext.ui.material3.RichText -import com.hedvig.android.core.designsystem.component.button.HedvigContainedButton -import com.hedvig.android.core.designsystem.component.error.HedvigErrorSection -import com.hedvig.android.core.designsystem.component.progress.HedvigFullScreenCenterAlignedProgress -import com.hedvig.android.core.designsystem.preview.HedvigPreview -import com.hedvig.android.core.designsystem.theme.HedvigTheme -import com.hedvig.android.core.ui.scaffold.HedvigScaffold +import com.hedvig.android.design.system.hedvig.HedvigButton +import com.hedvig.android.design.system.hedvig.HedvigErrorSection +import com.hedvig.android.design.system.hedvig.HedvigFullScreenCenterAlignedProgress +import com.hedvig.android.design.system.hedvig.HedvigPreview +import com.hedvig.android.design.system.hedvig.HedvigRedTextButton +import com.hedvig.android.design.system.hedvig.HedvigScaffold +import com.hedvig.android.design.system.hedvig.HedvigText +import com.hedvig.android.design.system.hedvig.HedvigTheme +import com.hedvig.android.design.system.hedvig.RichText +import com.hedvig.android.design.system.hedvig.Surface import com.hedvig.android.feature.chat.DeleteAccountViewModel import hedvig.resources.R @@ -71,6 +70,7 @@ private fun DeleteAccountScreen( buttonText = stringResource(R.string.general_back_button), onButtonClick = navigateBack, modifier = Modifier.weight(1f), + isButtonRed = false, ) } @@ -85,10 +85,7 @@ private fun DeleteAccountScreen( onButtonClick = initiateAccountDeletion, modifier = Modifier.weight(1f), isButtonLoading = uiState.isPerformingDeletion, - buttonColors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.error, - contentColor = MaterialTheme.colorScheme.onError, - ), + isButtonRed = true, ) } } @@ -102,20 +99,16 @@ private fun DeleteScreenContents( description: String, buttonText: String, onButtonClick: () -> Unit, + isButtonRed: Boolean, modifier: Modifier = Modifier, isButtonLoading: Boolean = false, - buttonColors: ButtonColors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.primary, - contentColor = MaterialTheme.colorScheme.onPrimary, - disabledContainerColor = MaterialTheme.colorScheme.primary.copy(alpha = 0.12f), - disabledContentColor = MaterialTheme.colorScheme.onPrimary.copy(alpha = 0.38f), - ), ) { Column(modifier) { Spacer(Modifier.height(16.dp)) - Text( + HedvigText( text = title, - style = MaterialTheme.typography.headlineMedium, + textAlign = TextAlign.Center, + style = HedvigTheme.typography.headlineMedium, modifier = Modifier .fillMaxWidth() .padding(horizontal = 16.dp), @@ -133,15 +126,26 @@ private fun DeleteScreenContents( Spacer(Modifier.height(16.dp)) Spacer(Modifier.weight(1f)) Spacer(Modifier.height(8.dp)) - HedvigContainedButton( - text = buttonText, - onClick = onButtonClick, - isLoading = isButtonLoading, - colors = buttonColors, - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - ) + if (isButtonRed) { + HedvigRedTextButton( + text = buttonText, + onClick = onButtonClick, + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp), + ) + } else { + HedvigButton( + text = buttonText, + onClick = onButtonClick, + enabled = true, + isLoading = isButtonLoading, + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp), + ) + } + Spacer(Modifier.height(16.dp)) } } @@ -160,8 +164,10 @@ private fun DeleteAccountUiState.CanNotDelete.descriptionStringRes(): Int { return when (this) { DeleteAccountUiState.CanNotDelete.AlreadyRequestedDeletion -> R.string.DELETE_ACCOUNT_PROCESSED_DESCRIPTION + DeleteAccountUiState.CanNotDelete.HasActiveInsurance -> R.string.DELETE_ACCOUNT_YOU_HAVE_ACTIVE_INSURANCE_DESCRIPTION + DeleteAccountUiState.CanNotDelete.HasOngoingClaim -> R.string.DELETE_ACCOUNT_YOU_HAVE_ACTIVE_CLAIM_DESCRIPTION } @@ -173,7 +179,7 @@ private fun PreviewDeleteAccountScreen( @PreviewParameter(DeleteAccountUiStateProvider::class) uiState: DeleteAccountUiState, ) { HedvigTheme { - Surface(color = MaterialTheme.colorScheme.background) { + Surface(color = HedvigTheme.colorScheme.backgroundPrimary) { DeleteAccountScreen(uiState, {}, {}, {}, {}) } } From b070dcbfd3f74227593af79d127bb2fd09670d3e Mon Sep 17 00:00:00 2001 From: mariiapanasetskaia Date: Thu, 21 Nov 2024 13:38:43 +0100 Subject: [PATCH 2/6] textAlign --- .../android/feature/deleteaccount/DeleteAccountDestination.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/feature/feature-delete-account/src/main/kotlin/com/hedvig/android/feature/deleteaccount/DeleteAccountDestination.kt b/app/feature/feature-delete-account/src/main/kotlin/com/hedvig/android/feature/deleteaccount/DeleteAccountDestination.kt index fe5665395d..bdf074f943 100644 --- a/app/feature/feature-delete-account/src/main/kotlin/com/hedvig/android/feature/deleteaccount/DeleteAccountDestination.kt +++ b/app/feature/feature-delete-account/src/main/kotlin/com/hedvig/android/feature/deleteaccount/DeleteAccountDestination.kt @@ -10,7 +10,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.datasource.CollectionPreviewParameterProvider import androidx.compose.ui.unit.dp @@ -107,7 +106,6 @@ private fun DeleteScreenContents( Spacer(Modifier.height(16.dp)) HedvigText( text = title, - textAlign = TextAlign.Center, style = HedvigTheme.typography.headlineMedium, modifier = Modifier .fillMaxWidth() From 299e70754c72be1ebb85bfa7ab3888d6bdf23e6f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 01:20:41 +0000 Subject: [PATCH 3/6] Update all dependencies --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4acd847e52..3db8d9fbe8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -53,8 +53,8 @@ coil = "2.7.0" composeRichtext = "1.0.0-alpha01" coreLibraryDesugaring = "2.1.3" coroutines = "1.9.0" -datadog = "2.15.1" -dependencyAnalysis = "2.4.2" +datadog = "2.16.0" +dependencyAnalysis = "2.5.0" firebaseCrashlyticsBuildtools = "3.0.2" hedvigAuthlib = "1.4.3" junit = "4.13.2" From ab3a8bba53ed19d641519b5f6ae70a9ce90d969a Mon Sep 17 00:00:00 2001 From: stylianosgakis Date: Fri, 22 Nov 2024 14:19:20 +0100 Subject: [PATCH 4/6] Differentiate unathenticated errors from other errors in safeFlow() --- .../hedvig/android/apollo/ApolloCallExt.kt | 51 +++++++++++++++---- .../android/app/apollo/LoggingInterceptor.kt | 17 +++---- .../HasAnyActiveConversationUseCase.kt | 1 + .../feature/home/home/ui/HomePresenterTest.kt | 8 +-- .../eurobonus/EurobonusPresenterTest.kt | 4 +- 5 files changed, 53 insertions(+), 28 deletions(-) diff --git a/app/apollo/apollo-core/src/main/kotlin/com/hedvig/android/apollo/ApolloCallExt.kt b/app/apollo/apollo-core/src/main/kotlin/com/hedvig/android/apollo/ApolloCallExt.kt index 54dc98551e..dd4d9a563f 100644 --- a/app/apollo/apollo-core/src/main/kotlin/com/hedvig/android/apollo/ApolloCallExt.kt +++ b/app/apollo/apollo-core/src/main/kotlin/com/hedvig/android/apollo/ApolloCallExt.kt @@ -39,8 +39,22 @@ sealed interface ApolloOperationError { } } - data class OperationError(private val message: String) : ApolloOperationError { - override val throwable: Throwable? = null + sealed interface OperationError : ApolloOperationError { + object Unathenticated : OperationError { + override val throwable: Throwable? = null + + override fun toString(): String { + return "OperationError.Unathenticated" + } + } + + data class Other(private val message: String) : OperationError { + override val throwable: Throwable? = null + + override fun toString(): String { + return "OperationError.Other(message=$message)" + } + } } } @@ -103,6 +117,17 @@ fun ErrorMessage(apolloOperationError: ApolloOperationError): ErrorMessage = obj } } +@JvmInline +value class ExtensionErrorType(val value: String) { + companion object { + val Unauthenticated = ExtensionErrorType("UNAUTHENTICATED") + } +} + +fun Error.extensionErrorType(): ExtensionErrorType? { + return extensions?.get("errorType")?.let { ExtensionErrorType(it.toString()) } +} + // https://www.apollographql.com/docs/kotlin/essentials/errors/#truth-table private fun IorRaise>.parseResponse(response: ApolloResponse): D { val exception = response.exception @@ -129,14 +154,18 @@ private fun IorRaise>.parseRespon private fun List?.mapToOperationErrors(): Nel? { if (this == null) return null return map { error -> - ApolloOperationError.OperationError( - buildString { - append(error.message) - if (error.extensions != null) { - append(error.extensions!!.toList().joinToString(prefix = " ext: [", postfix = "]", separator = ", ")) - } - }, - ) + if (error.extensionErrorType() == ExtensionErrorType.Unauthenticated) { + ApolloOperationError.OperationError.Unathenticated + } else { + ApolloOperationError.OperationError.Other( + buildString { + append(error.message) + if (error.extensions != null) { + append(error.extensions!!.toList().joinToString(prefix = " ext: [", postfix = "]", separator = ", ")) + } + }, + ) + } }.toNonEmptyListOrNull() } @@ -145,7 +174,7 @@ private fun List?.mapToOperationErrors(): Nel? { */ private fun IorNel.iorToEither(): Either { return mapLeft { errors -> - ApolloOperationError.OperationError( + ApolloOperationError.OperationError.Other( errors.joinToString(prefix = " [", postfix = "]", separator = ", ") { it.toString() }, ) }.toEither() diff --git a/app/app/src/main/kotlin/com/hedvig/android/app/apollo/LoggingInterceptor.kt b/app/app/src/main/kotlin/com/hedvig/android/app/apollo/LoggingInterceptor.kt index 6623d442e4..0294a801b1 100644 --- a/app/app/src/main/kotlin/com/hedvig/android/app/apollo/LoggingInterceptor.kt +++ b/app/app/src/main/kotlin/com/hedvig/android/app/apollo/LoggingInterceptor.kt @@ -8,6 +8,8 @@ import com.apollographql.apollo.api.Operation.Data import com.apollographql.apollo.exception.CacheMissException import com.apollographql.apollo.interceptor.ApolloInterceptor import com.apollographql.apollo.interceptor.ApolloInterceptorChain +import com.hedvig.android.apollo.ExtensionErrorType +import com.hedvig.android.apollo.extensionErrorType import com.hedvig.android.auth.AuthTokenService import com.hedvig.android.core.tracking.ErrorSource import com.hedvig.android.core.tracking.logError @@ -103,20 +105,13 @@ private data class LoggableGraphqlError( ) data class Extensions( - val errorType: ErrorType?, + val errorType: ExtensionErrorType?, val uncategorizedExtensions: Map?, - ) { - @JvmInline - value class ErrorType(val value: String) { - companion object { - val Unauthenticated = ErrorType("UNAUTHENTICATED") - } - } - } + ) } private fun List.isUnathenticated(): Boolean { - return any { it.extensions.errorType == LoggableGraphqlError.Extensions.ErrorType.Unauthenticated } + return any { it.extensions.errorType == ExtensionErrorType.Unauthenticated } } private fun ApolloKotlinError.toGraphqlError(): LoggableGraphqlError { @@ -125,7 +120,7 @@ private fun ApolloKotlinError.toGraphqlError(): LoggableGraphqlError { locations = this.locations?.map { LoggableGraphqlError.Location(it.line, it.column) }, paths = this.path?.map { LoggableGraphqlError.Path(it.toString()) }, extensions = LoggableGraphqlError.Extensions( - errorType = this.extensions?.get("errorType")?.let { LoggableGraphqlError.Extensions.ErrorType(it.toString()) }, + errorType = this.extensionErrorType(), uncategorizedExtensions = this.extensions?.minus("errorType"), ), ) diff --git a/app/data/data-conversations/src/main/kotlin/com/hedvig/android/data/conversations/HasAnyActiveConversationUseCase.kt b/app/data/data-conversations/src/main/kotlin/com/hedvig/android/data/conversations/HasAnyActiveConversationUseCase.kt index 8d69c2c54c..00378477f7 100644 --- a/app/data/data-conversations/src/main/kotlin/com/hedvig/android/data/conversations/HasAnyActiveConversationUseCase.kt +++ b/app/data/data-conversations/src/main/kotlin/com/hedvig/android/data/conversations/HasAnyActiveConversationUseCase.kt @@ -26,6 +26,7 @@ class HasAnyActiveConversationUseCase( either { val data = result .onLeft { apolloOperationError -> + if (apolloOperationError is ApolloOperationError.OperationError.Unathenticated) return@onLeft logcat(LogPriority.ERROR, apolloOperationError.throwable) { "isEligibleToShowTheChatIcon cant determine if the chat icon should be shown. $apolloOperationError" } diff --git a/app/feature/feature-home/src/test/kotlin/com/hedvig/android/feature/home/home/ui/HomePresenterTest.kt b/app/feature/feature-home/src/test/kotlin/com/hedvig/android/feature/home/home/ui/HomePresenterTest.kt index 92001a0ac3..6155b0a690 100644 --- a/app/feature/feature-home/src/test/kotlin/com/hedvig/android/feature/home/home/ui/HomePresenterTest.kt +++ b/app/feature/feature-home/src/test/kotlin/com/hedvig/android/feature/home/home/ui/HomePresenterTest.kt @@ -47,14 +47,14 @@ internal class HomePresenterTest { assertThat(awaitItem()).isEqualTo(HomeUiState.Loading) assertThat(getHomeDataUseCase.forceNetworkFetchTurbine.awaitItem()).isFalse() - getHomeDataUseCase.responseTurbine.add(ApolloOperationError.OperationError("").left()) + getHomeDataUseCase.responseTurbine.add(ApolloOperationError.OperationError.Other("").left()) assertThat(awaitItem()).isInstanceOf() sendEvent(HomeEvent.RefreshData) assertThat(getHomeDataUseCase.forceNetworkFetchTurbine.awaitItem()).isTrue() assertThat(awaitItem()).isInstanceOf() - getHomeDataUseCase.responseTurbine.add(ApolloOperationError.OperationError("").left()) + getHomeDataUseCase.responseTurbine.add(ApolloOperationError.OperationError.Other("").left()) assertThat(awaitItem()).isInstanceOf() } } @@ -72,7 +72,7 @@ internal class HomePresenterTest { homePresenter.test(HomeUiState.Loading) { assertThat(awaitItem()).isEqualTo(HomeUiState.Loading) - getHomeDataUseCase.responseTurbine.add(ApolloOperationError.OperationError("").left()) + getHomeDataUseCase.responseTurbine.add(ApolloOperationError.OperationError.Other("").left()) assertThat(awaitItem()).isInstanceOf() sendEvent(HomeEvent.RefreshData) @@ -208,7 +208,7 @@ internal class HomePresenterTest { homePresenter.test(HomeUiState.Loading) { assertThat(awaitItem()).isEqualTo(HomeUiState.Loading) - getHomeDataUseCase.responseTurbine.add(ApolloOperationError.OperationError("").left()) + getHomeDataUseCase.responseTurbine.add(ApolloOperationError.OperationError.Other("").left()) assertThat(awaitItem()).isInstanceOf() getHomeDataUseCase.responseTurbine.add(someIrrelevantHomeDataInstance.right()) diff --git a/app/feature/feature-profile/src/test/kotlin/com/hedvig/android/feature/profile/eurobonus/EurobonusPresenterTest.kt b/app/feature/feature-profile/src/test/kotlin/com/hedvig/android/feature/profile/eurobonus/EurobonusPresenterTest.kt index 85e85f0003..d2febd3c69 100644 --- a/app/feature/feature-profile/src/test/kotlin/com/hedvig/android/feature/profile/eurobonus/EurobonusPresenterTest.kt +++ b/app/feature/feature-profile/src/test/kotlin/com/hedvig/android/feature/profile/eurobonus/EurobonusPresenterTest.kt @@ -73,7 +73,7 @@ class EurobonusPresenterTest { ), ) { awaitItem() - getEurobonusDataUseCase.responseTurbine.add(ApolloOperationError.OperationError("msg").left()) + getEurobonusDataUseCase.responseTurbine.add(ApolloOperationError.OperationError.Other("msg").left()) assertThat(awaitItem()).isEqualTo( EurobonusUiState( canSubmit = false, @@ -151,7 +151,7 @@ class EurobonusPresenterTest { awaitItem() sendEvent(EurobonusEvent.SubmitEditedEurobonus) awaitItem() - updateEurobonusNumberUseCase.responseTurbine.add(ApolloOperationError.OperationError("msg").left()) + updateEurobonusNumberUseCase.responseTurbine.add(ApolloOperationError.OperationError.Other("msg").left()) assertThat(awaitItem().hasError).isEqualTo(true) } } From a9de9a6dd76db09cca2c98465ee2d06676c8dc99 Mon Sep 17 00:00:00 2001 From: mariiapanasetskaia Date: Fri, 22 Nov 2024 15:44:16 +0100 Subject: [PATCH 5/6] change tab size --- .../insurances/insurancedetail/ContractDetailDestination.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/feature/feature-insurances/src/main/kotlin/com/hedvig/android/feature/insurances/insurancedetail/ContractDetailDestination.kt b/app/feature/feature-insurances/src/main/kotlin/com/hedvig/android/feature/insurances/insurancedetail/ContractDetailDestination.kt index c1b1d02d98..cd81c67e28 100644 --- a/app/feature/feature-insurances/src/main/kotlin/com/hedvig/android/feature/insurances/insurancedetail/ContractDetailDestination.kt +++ b/app/feature/feature-insurances/src/main/kotlin/com/hedvig/android/feature/insurances/insurancedetail/ContractDetailDestination.kt @@ -343,7 +343,7 @@ private fun PagerSelector(pagerState: PagerState, modifier: Modifier = Modifier) } }, modifier = modifier.fillMaxWidth(), - tabSize = TabSize.Medium, + tabSize = TabSize.Small, tabStyle = Filled, ) } From 821511cbd0ae88cb4e5734e3e159a874e68859ea Mon Sep 17 00:00:00 2001 From: mariiapanasetskaia Date: Mon, 25 Nov 2024 15:17:26 +0100 Subject: [PATCH 6/6] fix not showing underAgedInfo --- .../android/data/productvariant/ProductVariant.kt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/data/data-product-variant/data-product-variant-public/src/main/kotlin/com/hedvig/android/data/productvariant/ProductVariant.kt b/app/data/data-product-variant/data-product-variant-public/src/main/kotlin/com/hedvig/android/data/productvariant/ProductVariant.kt index ec412affea..407944e9c2 100644 --- a/app/data/data-product-variant/data-product-variant-public/src/main/kotlin/com/hedvig/android/data/productvariant/ProductVariant.kt +++ b/app/data/data-product-variant/data-product-variant-public/src/main/kotlin/com/hedvig/android/data/productvariant/ProductVariant.kt @@ -108,12 +108,13 @@ fun ProductVariantFragment.toProductVariant() = ProductVariant( url = document.url, type = @Suppress("ktlint:standard:max-line-length") when (document.type) { - InsuranceDocumentType.TERMS_AND_CONDITIONS -> com.hedvig.android.data.productvariant.InsuranceVariantDocument.InsuranceDocumentType.TERMS_AND_CONDITIONS - InsuranceDocumentType.PRE_SALE_INFO_EU_STANDARD -> com.hedvig.android.data.productvariant.InsuranceVariantDocument.InsuranceDocumentType.PRE_SALE_INFO_EU_STANDARD - InsuranceDocumentType.PRE_SALE_INFO -> com.hedvig.android.data.productvariant.InsuranceVariantDocument.InsuranceDocumentType.PRE_SALE_INFO - InsuranceDocumentType.GENERAL_TERMS -> com.hedvig.android.data.productvariant.InsuranceVariantDocument.InsuranceDocumentType.GENERAL_TERMS - InsuranceDocumentType.PRIVACY_POLICY -> com.hedvig.android.data.productvariant.InsuranceVariantDocument.InsuranceDocumentType.PRIVACY_POLICY - InsuranceDocumentType.UNKNOWN__ -> com.hedvig.android.data.productvariant.InsuranceVariantDocument.InsuranceDocumentType.UNKNOWN__ + InsuranceDocumentType.TERMS_AND_CONDITIONS -> InsuranceVariantDocument.InsuranceDocumentType.TERMS_AND_CONDITIONS + InsuranceDocumentType.PRE_SALE_INFO_EU_STANDARD -> InsuranceVariantDocument.InsuranceDocumentType.PRE_SALE_INFO_EU_STANDARD + InsuranceDocumentType.PRE_SALE_INFO -> InsuranceVariantDocument.InsuranceDocumentType.PRE_SALE_INFO + InsuranceDocumentType.GENERAL_TERMS -> InsuranceVariantDocument.InsuranceDocumentType.GENERAL_TERMS + InsuranceDocumentType.PRIVACY_POLICY -> InsuranceVariantDocument.InsuranceDocumentType.PRIVACY_POLICY + InsuranceDocumentType.UNKNOWN__ -> InsuranceVariantDocument.InsuranceDocumentType.UNKNOWN__ + InsuranceDocumentType.SCAR_TABLE -> InsuranceVariantDocument.InsuranceDocumentType.UNKNOWN__ }, ) },