diff --git a/app/feature/feature-insurance-certificate/build.gradle.kts b/app/feature/feature-insurance-certificate/build.gradle.kts index 7196af60e0..954a4d16db 100644 --- a/app/feature/feature-insurance-certificate/build.gradle.kts +++ b/app/feature/feature-insurance-certificate/build.gradle.kts @@ -1,5 +1,6 @@ plugins { - id("hedvig.android.library") + id("hedvig.multiplatform.library") + id("hedvig.multiplatform.library.android") id("hedvig.gradle.plugin") } @@ -11,35 +12,42 @@ hedvig { viewModels() } -android { - testOptions.unitTests.isReturnDefaultValues = true - testOptions.unitTests.isIncludeAndroidResources = true -} - -dependencies { - implementation(libs.arrow.core) - implementation(libs.arrow.fx) - implementation(libs.kotlinx.serialization.core) - implementation(projects.apolloCore) - implementation(projects.apolloOctopusPublic) - implementation(projects.coreCommonPublic) - implementation(projects.coreFileUpload) - implementation(projects.coreResources) - implementation(projects.designSystemHedvig) - implementation(projects.moleculePublic) - implementation(projects.navigationCommon) - implementation(projects.navigationCompose) - implementation(projects.navigationCore) - - testImplementation(libs.apollo.testingSupport) - testImplementation(libs.assertK) - testImplementation(libs.coroutines.test) - testImplementation(libs.junit) - testImplementation(libs.testParameterInjector) - testImplementation(libs.turbine) - testImplementation(projects.apolloOctopusTest) - testImplementation(projects.apolloTest) - testImplementation(projects.coreCommonTest) - testImplementation(projects.loggingTest) - testImplementation(projects.moleculeTest) +kotlin { + sourceSets { + commonMain.dependencies { + implementation(libs.apollo.api) + implementation(libs.apollo.runtime) + implementation(libs.arrow.core) + implementation(libs.arrow.fx) + implementation(libs.jetbrains.compose.foundation) + implementation(libs.jetbrains.compose.runtime) + implementation(libs.jetbrains.compose.ui) + implementation(libs.jetbrains.compose.ui.tooling.preview) + implementation(libs.jetbrains.lifecycle.runtime.compose) + implementation(libs.kotlinx.serialization.core) + implementation(projects.apolloCore) + implementation(projects.apolloOctopusPublic) + implementation(projects.coreCommonPublic) + implementation(projects.coreFileUpload) + implementation(projects.coreResources) + implementation(projects.designSystemHedvig) + implementation(projects.moleculePublic) + implementation(projects.navigationCommon) + implementation(projects.navigationCompose) + implementation(projects.navigationCore) + } + jvmTest.dependencies { + implementation(libs.apollo.testingSupport) + implementation(libs.assertK) + implementation(libs.coroutines.test) + implementation(libs.junit) + implementation(libs.testParameterInjector) + implementation(libs.turbine) + implementation(projects.apolloOctopusTest) + implementation(projects.apolloTest) + implementation(projects.coreCommonTest) + implementation(projects.loggingTest) + implementation(projects.moleculeTest) + } + } } diff --git a/app/feature/feature-insurance-certificate/src/main/AndroidManifest.xml b/app/feature/feature-insurance-certificate/src/androidMain/AndroidManifest.xml similarity index 100% rename from app/feature/feature-insurance-certificate/src/main/AndroidManifest.xml rename to app/feature/feature-insurance-certificate/src/androidMain/AndroidManifest.xml diff --git a/app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/navigation/InsuranceEvidenceEntries.kt b/app/feature/feature-insurance-certificate/src/androidMain/kotlin/com/hedvig/android/feature/insurance/certificate/navigation/InsuranceEvidenceEntries.kt similarity index 95% rename from app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/navigation/InsuranceEvidenceEntries.kt rename to app/feature/feature-insurance-certificate/src/androidMain/kotlin/com/hedvig/android/feature/insurance/certificate/navigation/InsuranceEvidenceEntries.kt index 31174b69c8..0637db8550 100644 --- a/app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/navigation/InsuranceEvidenceEntries.kt +++ b/app/feature/feature-insurance-certificate/src/androidMain/kotlin/com/hedvig/android/feature/insurance/certificate/navigation/InsuranceEvidenceEntries.kt @@ -10,6 +10,7 @@ import com.hedvig.android.navigation.common.HedvigNavKey import com.hedvig.android.navigation.compose.Backstack import com.hedvig.core.common.android.sharePDF import dev.zacsweers.metrox.viewmodel.metroViewModel +import java.io.File fun EntryProviderScope.insuranceEvidenceEntries(backstack: Backstack, applicationId: String) { entry { @@ -27,7 +28,7 @@ fun EntryProviderScope.insuranceEvidenceEntries(backstack: Backsta viewModel = viewModel, navigateUp = backstack::navigateUp, onShareInsuranceEvidence = { - context.sharePDF(it, applicationId) + context.sharePDF(File(it.path), applicationId) }, ) } diff --git a/app/feature/feature-insurance-certificate/src/main/graphql/InsuranceEvidenceCreate.graphql b/app/feature/feature-insurance-certificate/src/commonMain/graphql/InsuranceEvidenceCreate.graphql similarity index 100% rename from app/feature/feature-insurance-certificate/src/main/graphql/InsuranceEvidenceCreate.graphql rename to app/feature/feature-insurance-certificate/src/commonMain/graphql/InsuranceEvidenceCreate.graphql diff --git a/app/feature/feature-insurance-certificate/src/main/graphql/InsuranceEvidenceInitialData.graphql b/app/feature/feature-insurance-certificate/src/commonMain/graphql/InsuranceEvidenceInitialData.graphql similarity index 100% rename from app/feature/feature-insurance-certificate/src/main/graphql/InsuranceEvidenceInitialData.graphql rename to app/feature/feature-insurance-certificate/src/commonMain/graphql/InsuranceEvidenceInitialData.graphql diff --git a/app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/data/GenerateInsuranceEvidenceUseCase.kt b/app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/data/GenerateInsuranceEvidenceUseCase.kt similarity index 100% rename from app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/data/GenerateInsuranceEvidenceUseCase.kt rename to app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/data/GenerateInsuranceEvidenceUseCase.kt diff --git a/app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/data/GetInsuranceEvidenceInitialEmailUseCase.kt b/app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/data/GetInsuranceEvidenceInitialEmailUseCase.kt similarity index 100% rename from app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/data/GetInsuranceEvidenceInitialEmailUseCase.kt rename to app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/data/GetInsuranceEvidenceInitialEmailUseCase.kt diff --git a/app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/navigation/InsuranceEvidenceDeepLinks.kt b/app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/navigation/InsuranceEvidenceDeepLinks.kt similarity index 100% rename from app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/navigation/InsuranceEvidenceDeepLinks.kt rename to app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/navigation/InsuranceEvidenceDeepLinks.kt diff --git a/app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/navigation/InsuranceEvidenceDestination.kt b/app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/navigation/InsuranceEvidenceDestination.kt similarity index 100% rename from app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/navigation/InsuranceEvidenceDestination.kt rename to app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/navigation/InsuranceEvidenceDestination.kt diff --git a/app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/ui/email/InsuranceEvidenceEmailInputDestination.kt b/app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/ui/email/InsuranceEvidenceEmailInputDestination.kt similarity index 100% rename from app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/ui/email/InsuranceEvidenceEmailInputDestination.kt rename to app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/ui/email/InsuranceEvidenceEmailInputDestination.kt diff --git a/app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/ui/email/InsuranceEvidenceEmailInputViewModel.kt b/app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/ui/email/InsuranceEvidenceEmailInputViewModel.kt similarity index 98% rename from app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/ui/email/InsuranceEvidenceEmailInputViewModel.kt rename to app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/ui/email/InsuranceEvidenceEmailInputViewModel.kt index 0e3f090f80..3d4dce386d 100644 --- a/app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/ui/email/InsuranceEvidenceEmailInputViewModel.kt +++ b/app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/ui/email/InsuranceEvidenceEmailInputViewModel.kt @@ -19,7 +19,7 @@ import com.hedvig.android.molecule.public.MoleculePresenterScope import com.hedvig.android.molecule.public.MoleculeViewModel import com.hedvig.android.navigation.compose.Backstack import com.hedvig.android.navigation.compose.navigateAndPopUpTo -import com.hedvig.core.common.android.validation.validateEmail +import com.hedvig.core.common.android.validation.isValidEmail import dev.zacsweers.metro.Inject import hedvig.resources.PROFILE_MY_INFO_INVALID_EMAIL import hedvig.resources.Res @@ -61,7 +61,7 @@ internal class InsuranceEvidenceEmailInputPresenter( val successScreenState = currentState as? InsuranceEvidenceEmailInputState.Success ?: return val email = successScreenState.email if (email != null && - validateEmail(email).isSuccessful + isValidEmail(email) ) { generateCertificateInputData = email generateIteration++ diff --git a/app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/ui/overview/InsuranceEvidenceOverviewDestination.kt b/app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/ui/overview/InsuranceEvidenceOverviewDestination.kt similarity index 95% rename from app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/ui/overview/InsuranceEvidenceOverviewDestination.kt rename to app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/ui/overview/InsuranceEvidenceOverviewDestination.kt index d43316ea39..9e077743a8 100644 --- a/app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/ui/overview/InsuranceEvidenceOverviewDestination.kt +++ b/app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/ui/overview/InsuranceEvidenceOverviewDestination.kt @@ -12,6 +12,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle +import com.hedvig.android.core.fileupload.DownloadedFile import com.hedvig.android.design.system.hedvig.EmptyState import com.hedvig.android.design.system.hedvig.EmptyStateDefaults.EmptyStateIconStyle.SUCCESS import com.hedvig.android.design.system.hedvig.HedvigButton @@ -29,7 +30,6 @@ import hedvig.resources.CERTIFICATES_EMAIL_SENT import hedvig.resources.INSURANCE_EVIDENCE_EMAIL_SENT_DESCRIPTION import hedvig.resources.Res import hedvig.resources.general_close_button -import java.io.File import org.jetbrains.compose.resources.stringResource @Composable @@ -37,7 +37,7 @@ internal fun InsuranceEvidenceOverviewDestination( insuranceEvidenceUrl: String, viewModel: InsuranceEvidenceOverviewViewModel, navigateUp: () -> Unit, - onShareInsuranceEvidence: (File) -> Unit, + onShareInsuranceEvidence: (DownloadedFile) -> Unit, ) { val uiState by viewModel.uiState.collectAsStateWithLifecycle() InsuranceEvidenceOverview( @@ -58,7 +58,7 @@ internal fun InsuranceEvidenceOverview( insuranceEvidenceUrl: String, onDownloadCertificate: (String) -> Unit, navigateUp: () -> Unit, - onShareInsuranceEvidence: (File) -> Unit, + onShareInsuranceEvidence: (DownloadedFile) -> Unit, onRetry: () -> Unit, ) { when (uiState) { @@ -81,7 +81,7 @@ internal fun InsuranceEvidenceOverview( is Success -> { LaunchedEffect(uiState.insuranceEvidenceUri) { uiState.insuranceEvidenceUri?.let { - onShareInsuranceEvidence(File(it.path)) + onShareInsuranceEvidence(it) } } HedvigScaffold( @@ -101,7 +101,7 @@ internal fun InsuranceEvidenceOverview( text = stringResource(Res.string.CERTIFICATES_DOWNLOAD), onClick = { if (uiState.insuranceEvidenceUri != null) { - onShareInsuranceEvidence(File(uiState.insuranceEvidenceUri.path)) + onShareInsuranceEvidence(uiState.insuranceEvidenceUri) } else { onDownloadCertificate(insuranceEvidenceUrl) } diff --git a/app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/ui/overview/InsuranceEvidenceOverviewViewModel.kt b/app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/ui/overview/InsuranceEvidenceOverviewViewModel.kt similarity index 100% rename from app/feature/feature-insurance-certificate/src/main/kotlin/com/hedvig/android/feature/insurance/certificate/ui/overview/InsuranceEvidenceOverviewViewModel.kt rename to app/feature/feature-insurance-certificate/src/commonMain/kotlin/com/hedvig/android/feature/insurance/certificate/ui/overview/InsuranceEvidenceOverviewViewModel.kt diff --git a/app/feature/feature-insurance-certificate/src/test/kotlin/InsuranceEvidenceEmailInputPresenterTest.kt b/app/feature/feature-insurance-certificate/src/jvmTest/kotlin/InsuranceEvidenceEmailInputPresenterTest.kt similarity index 100% rename from app/feature/feature-insurance-certificate/src/test/kotlin/InsuranceEvidenceEmailInputPresenterTest.kt rename to app/feature/feature-insurance-certificate/src/jvmTest/kotlin/InsuranceEvidenceEmailInputPresenterTest.kt diff --git a/app/feature/feature-insurance-certificate/src/test/kotlin/InsuranceEvidenceOverviewPresenterTest.kt b/app/feature/feature-insurance-certificate/src/jvmTest/kotlin/InsuranceEvidenceOverviewPresenterTest.kt similarity index 100% rename from app/feature/feature-insurance-certificate/src/test/kotlin/InsuranceEvidenceOverviewPresenterTest.kt rename to app/feature/feature-insurance-certificate/src/jvmTest/kotlin/InsuranceEvidenceOverviewPresenterTest.kt diff --git a/app/feature/feature-insurance-certificate/src/test/kotlin/com/hedvig/android/feature/insurance/certificate/data/GenerateInsuranceEvidenceUseCaseTest.kt b/app/feature/feature-insurance-certificate/src/jvmTest/kotlin/com/hedvig/android/feature/insurance/certificate/data/GenerateInsuranceEvidenceUseCaseTest.kt similarity index 100% rename from app/feature/feature-insurance-certificate/src/test/kotlin/com/hedvig/android/feature/insurance/certificate/data/GenerateInsuranceEvidenceUseCaseTest.kt rename to app/feature/feature-insurance-certificate/src/jvmTest/kotlin/com/hedvig/android/feature/insurance/certificate/data/GenerateInsuranceEvidenceUseCaseTest.kt diff --git a/app/feature/feature-insurance-certificate/src/test/kotlin/com/hedvig/android/feature/insurance/certificate/data/GetInsuranceEvidenceInitialEmailUseCaseTest.kt b/app/feature/feature-insurance-certificate/src/jvmTest/kotlin/com/hedvig/android/feature/insurance/certificate/data/GetInsuranceEvidenceInitialEmailUseCaseTest.kt similarity index 100% rename from app/feature/feature-insurance-certificate/src/test/kotlin/com/hedvig/android/feature/insurance/certificate/data/GetInsuranceEvidenceInitialEmailUseCaseTest.kt rename to app/feature/feature-insurance-certificate/src/jvmTest/kotlin/com/hedvig/android/feature/insurance/certificate/data/GetInsuranceEvidenceInitialEmailUseCaseTest.kt