From dd299503cc174055639e9d028e8526c23414de8a Mon Sep 17 00:00:00 2001 From: hue Date: Tue, 15 Apr 2025 14:59:47 -0400 Subject: [PATCH] Update message when editing Case against old Incident --- app/build.gradle.kts | 2 +- .../core/network/model/NetworkErrorsTest.kt | 2 +- .../caseeditor/CreateEditCaseViewModel.kt | 2 +- .../caseeditor/ui/CreateEditCaseScreen.kt | 57 +++++++++++++------ 4 files changed, 43 insertions(+), 20 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d985b1445..9d8fb95c0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,7 +14,7 @@ plugins { android { defaultConfig { - val buildVersion = 246 + val buildVersion = 247 applicationId = "com.crisiscleanup" versionCode = buildVersion versionName = "0.9.${buildVersion - 168}" diff --git a/core/network/src/test/java/com/crisiscleanup/core/network/model/NetworkErrorsTest.kt b/core/network/src/test/java/com/crisiscleanup/core/network/model/NetworkErrorsTest.kt index efeb593b9..a22211f09 100644 --- a/core/network/src/test/java/com/crisiscleanup/core/network/model/NetworkErrorsTest.kt +++ b/core/network/src/test/java/com/crisiscleanup/core/network/model/NetworkErrorsTest.kt @@ -20,4 +20,4 @@ class NetworkErrorsTest { errors, ) } -} \ No newline at end of file +} diff --git a/feature/caseeditor/src/main/java/com/crisiscleanup/feature/caseeditor/CreateEditCaseViewModel.kt b/feature/caseeditor/src/main/java/com/crisiscleanup/feature/caseeditor/CreateEditCaseViewModel.kt index 71b3750b4..f6ba6457a 100644 --- a/feature/caseeditor/src/main/java/com/crisiscleanup/feature/caseeditor/CreateEditCaseViewModel.kt +++ b/feature/caseeditor/src/main/java/com/crisiscleanup/feature/caseeditor/CreateEditCaseViewModel.kt @@ -116,7 +116,7 @@ class CreateEditCaseViewModel @Inject constructor( ) : EditCaseBaseViewModel(editableWorksiteProvider, translator, logger), CaseCameraMediaManager { private val caseEditorArgs = CaseEditorArgs(savedStateHandle) private var worksiteIdArg = caseEditorArgs.worksiteId - private val isCreateWorksite: Boolean + val isCreateWorksite: Boolean get() = worksiteIdArg == null private val hasNewWorksitePhotosImages: Boolean diff --git a/feature/caseeditor/src/main/java/com/crisiscleanup/feature/caseeditor/ui/CreateEditCaseScreen.kt b/feature/caseeditor/src/main/java/com/crisiscleanup/feature/caseeditor/ui/CreateEditCaseScreen.kt index 5e05e2785..722349897 100644 --- a/feature/caseeditor/src/main/java/com/crisiscleanup/feature/caseeditor/ui/CreateEditCaseScreen.kt +++ b/feature/caseeditor/src/main/java/com/crisiscleanup/feature/caseeditor/ui/CreateEditCaseScreen.kt @@ -377,23 +377,12 @@ private fun ColumnScope.FullEditView( BusyIndicatorFloatingTopCenter(isLoadingWorksite) if (incidentCreation.isOldIncident && !hasConfirmedDormantIncident) { - val t = LocalAppTranslator.current - CrisisCleanupAlertDialog( - title = t("~~Old Incident"), - confirmButton = { - CrisisCleanupTextButton(text = t("actions.yes")) { - hasConfirmedDormantIncident = true - } - }, - dismissButton = { - CrisisCleanupTextButton( - text = t("actions.no"), - onClick = onBack, - ) - }, - text = t("~~{incident_name} was created {relative_time}. Continue creating a Case for {incident_name}?") - .replace("{incident_name}", caseData.incident.shortName) - .replace("{relative_time}", incidentCreation.relativeTime), + ConfirmOldIncidentDialog( + isCreateWorksite = viewModel.isCreateWorksite, + incidentName = caseData.incident.shortName, + incidentCreateRelativeTime = incidentCreation.relativeTime, + onConfirm = { hasConfirmedDormantIncident = true }, + onAbort = onBack, ) } } @@ -441,6 +430,40 @@ private fun ColumnScope.FullEditView( } } +@Composable +private fun ConfirmOldIncidentDialog( + isCreateWorksite: Boolean, + incidentName: String, + incidentCreateRelativeTime: String, + onConfirm: () -> Unit, + onAbort: () -> Unit, +) { + val t = LocalAppTranslator.current + val confirmContinueKey = if (isCreateWorksite) { + "~~{incident_name} was created {relative_time}. Continue creating a Case for {incident_name}?" + } else { + "~~{incident_name} was created {relative_time}. Continue editing this Case for {incident_name}?" + } + CrisisCleanupAlertDialog( + title = t("~~Old Incident"), + confirmButton = { + CrisisCleanupTextButton( + text = t("actions.yes"), + onClick = onConfirm, + ) + }, + dismissButton = { + CrisisCleanupTextButton( + text = t("actions.no"), + onClick = onAbort, + ) + }, + text = t(confirmContinueKey) + .replace("{incident_name}", incidentName) + .replace("{relative_time}", incidentCreateRelativeTime), + ) +} + private fun LazyListScope.sectionSeparator(key: String) { item( key,