Skip to content

Commit c5058eb

Browse files
committed
bottom sheet info for the currently active addons
1 parent 11aca10 commit c5058eb

File tree

5 files changed

+70
-12
lines changed

5 files changed

+70
-12
lines changed

app/core/core-resources/src/androidMain/res/values-sv-rSE/strings.xml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
<string name="ADDON_BADGE_ACTIVE">Aktiv</string>
2525
<string name="ADDON_CAR_PLUS_DISPLAY_NAME">Bil Plus</string>
2626
<string name="ADDON_FLOW_ADD_TO_INSURANCE_BUTTON">Fortsätt</string>
27+
<string name="ADDON_FLOW_ALREADY_ACTIVE_EXPLANATION_SUBTITLE">Den här tilläggsförsäkringen är aktiv och gäller ihop med din försäkring.\n\nVill du ta bort den behöver du göra det från försäkringen den är kopplad till.</string>
28+
<string name="ADDON_FLOW_ALREADY_ACTIVE_EXPLANATION_TITLE">Tillägget är aktivt</string>
2729
<string name="ADDON_FLOW_CONFIRMATION_BUTTON">Ja, uppgradera mitt skydd</string>
2830
<string name="ADDON_FLOW_CONFIRMATION_DESCRIPTION">Den här uppgraderingen börjar gälla %1$s och kan endast tas bort när din försäkring förnyas eller avslutas.</string>
2931
<string name="ADDON_FLOW_CONFIRMATION_TITLE">Bekräfta uppgraderat skydd</string>
@@ -47,9 +49,9 @@
4749
<string name="ADDON_FLOW_TRAVEL_INFORMATION_CARD_TEXT">Reseskydd Plus är vår utökade reseförsäkring som täcker fler händelser under resan.</string>
4850
<string name="ADDON_FLOW_TRAVEL_INFORMATION_DESCRIPTION">Tilläggsförsäkringen Reseskydd Plus är ett utökat skydd för dig som vill komplettera det grundläggande reseskyddet i din hemförsäkring hos Hedvig.</string>
4951
<string name="ADDON_FLOW_TRAVEL_INFORMATION_TITLE">Vad är Reseskydd Plus?</string>
50-
<string name="ADDON_FLOW_UPDATE_ADDON_DESCRIPTION">Välj vad du vill göra med det här tillägget.</string>
51-
<string name="ADDON_FLOW_UPGRADE_ADDON">Uppgradera tillägg</string>
52-
<string name="ADDON_FLOW_UPGRADE_ADDON_DESCRIPTION">Du kan uppgradera ditt tillägg för att utöka skyddet. Detta tillägg kan bara tas bort när din försäkring förnyas eller sägs upp.</string>
52+
<string name="ADDON_FLOW_UPDATE_ADDON_DESCRIPTION">Välj ett alternativ</string>
53+
<string name="ADDON_FLOW_UPGRADE_ADDON">Utöka skydd</string>
54+
<string name="ADDON_FLOW_UPGRADE_ADDON_DESCRIPTION">Du kan utöka skyddet för det här tillägget. Det kan tas bort vid förnyelse eller uppsägning av försäkringen.</string>
5355
<string name="ADDON_LEARN_MORE_LABEL">Se vad som ingår</string>
5456
<string name="ADDON_REMOVE_CANCEL_BUTTON">Behåll nuvarande skydd</string>
5557
<string name="ADDON_REMOVE_CONFIRM_BUTTON">Avsluta %1$s</string>

app/core/core-resources/src/androidMain/res/values/strings.xml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
<string name="ADDON_BADGE_ACTIVE">Active</string>
2525
<string name="ADDON_CAR_PLUS_DISPLAY_NAME">Car Plus</string>
2626
<string name="ADDON_FLOW_ADD_TO_INSURANCE_BUTTON">Continue</string>
27+
<string name="ADDON_FLOW_ALREADY_ACTIVE_EXPLANATION_SUBTITLE">This addon is active and linked to your insurance.\n\nTo remove it, go to the insurance it’s linked to.</string>
28+
<string name="ADDON_FLOW_ALREADY_ACTIVE_EXPLANATION_TITLE">The addon is active</string>
2729
<string name="ADDON_FLOW_CONFIRMATION_BUTTON">Yes, upgrade my coverage</string>
2830
<string name="ADDON_FLOW_CONFIRMATION_DESCRIPTION">This upgrade will take effect from %1$s and can only be removed when your insurance is renewed or cancelled.</string>
2931
<string name="ADDON_FLOW_CONFIRMATION_TITLE">Confirm upgraded coverage</string>
@@ -47,9 +49,9 @@
4749
<string name="ADDON_FLOW_TRAVEL_INFORMATION_CARD_TEXT">Travel Insurance Plus is our extended travel insurance, for extra coverage on your trip.</string>
4850
<string name="ADDON_FLOW_TRAVEL_INFORMATION_DESCRIPTION">Travel Insurance Plus is extended coverage for those who want to add to the basic travel coverage included in their Hedvig Home Insurance.</string>
4951
<string name="ADDON_FLOW_TRAVEL_INFORMATION_TITLE">What is Travel Insurance Plus?</string>
50-
<string name="ADDON_FLOW_UPDATE_ADDON_DESCRIPTION">Select what you\'d like to do with this addon.</string>
51-
<string name="ADDON_FLOW_UPGRADE_ADDON">Upgrade addon</string>
52-
<string name="ADDON_FLOW_UPGRADE_ADDON_DESCRIPTION">You can upgrade your addon to extend the coverage. This addon can only be removed when your insurance is renewed or cancelled.</string>
52+
<string name="ADDON_FLOW_UPDATE_ADDON_DESCRIPTION">Select an option</string>
53+
<string name="ADDON_FLOW_UPGRADE_ADDON">Extend coverage</string>
54+
<string name="ADDON_FLOW_UPGRADE_ADDON_DESCRIPTION">You can extend the coverage of this addon. It can only be removed when your insurance is renewed or cancelled.</string>
5355
<string name="ADDON_LEARN_MORE_LABEL">See what\'s included</string>
5456
<string name="ADDON_REMOVE_CANCEL_BUTTON">Keep current coverage</string>
5557
<string name="ADDON_REMOVE_CONFIRM_BUTTON">Cancel %1$s</string>

app/core/core-resources/src/commonMain/composeResources/values-sv-rSE/strings.xml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
<string name="ADDON_BADGE_ACTIVE">Aktiv</string>
2525
<string name="ADDON_CAR_PLUS_DISPLAY_NAME">Bil Plus</string>
2626
<string name="ADDON_FLOW_ADD_TO_INSURANCE_BUTTON">Fortsätt</string>
27+
<string name="ADDON_FLOW_ALREADY_ACTIVE_EXPLANATION_SUBTITLE">Den här tilläggsförsäkringen är aktiv och gäller ihop med din försäkring.\n\nVill du ta bort den behöver du göra det från försäkringen den är kopplad till.</string>
28+
<string name="ADDON_FLOW_ALREADY_ACTIVE_EXPLANATION_TITLE">Tillägget är aktivt</string>
2729
<string name="ADDON_FLOW_CONFIRMATION_BUTTON">Ja, uppgradera mitt skydd</string>
2830
<string name="ADDON_FLOW_CONFIRMATION_DESCRIPTION">Den här uppgraderingen börjar gälla %1$s och kan endast tas bort när din försäkring förnyas eller avslutas.</string>
2931
<string name="ADDON_FLOW_CONFIRMATION_TITLE">Bekräfta uppgraderat skydd</string>
@@ -47,9 +49,9 @@
4749
<string name="ADDON_FLOW_TRAVEL_INFORMATION_CARD_TEXT">Reseskydd Plus är vår utökade reseförsäkring som täcker fler händelser under resan.</string>
4850
<string name="ADDON_FLOW_TRAVEL_INFORMATION_DESCRIPTION">Tilläggsförsäkringen Reseskydd Plus är ett utökat skydd för dig som vill komplettera det grundläggande reseskyddet i din hemförsäkring hos Hedvig.</string>
4951
<string name="ADDON_FLOW_TRAVEL_INFORMATION_TITLE">Vad är Reseskydd Plus?</string>
50-
<string name="ADDON_FLOW_UPDATE_ADDON_DESCRIPTION">Välj vad du vill göra med det här tillägget.</string>
51-
<string name="ADDON_FLOW_UPGRADE_ADDON">Uppgradera tillägg</string>
52-
<string name="ADDON_FLOW_UPGRADE_ADDON_DESCRIPTION">Du kan uppgradera ditt tillägg för att utöka skyddet. Detta tillägg kan bara tas bort när din försäkring förnyas eller sägs upp.</string>
52+
<string name="ADDON_FLOW_UPDATE_ADDON_DESCRIPTION">Välj ett alternativ</string>
53+
<string name="ADDON_FLOW_UPGRADE_ADDON">Utöka skydd</string>
54+
<string name="ADDON_FLOW_UPGRADE_ADDON_DESCRIPTION">Du kan utöka skyddet för det här tillägget. Det kan tas bort vid förnyelse eller uppsägning av försäkringen.</string>
5355
<string name="ADDON_LEARN_MORE_LABEL">Se vad som ingår</string>
5456
<string name="ADDON_REMOVE_CANCEL_BUTTON">Behåll nuvarande skydd</string>
5557
<string name="ADDON_REMOVE_CONFIRM_BUTTON">Avsluta %1$s</string>

app/core/core-resources/src/commonMain/composeResources/values/strings.xml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
<string name="ADDON_BADGE_ACTIVE">Active</string>
2525
<string name="ADDON_CAR_PLUS_DISPLAY_NAME">Car Plus</string>
2626
<string name="ADDON_FLOW_ADD_TO_INSURANCE_BUTTON">Continue</string>
27+
<string name="ADDON_FLOW_ALREADY_ACTIVE_EXPLANATION_SUBTITLE">This addon is active and linked to your insurance.\n\nTo remove it, go to the insurance it’s linked to.</string>
28+
<string name="ADDON_FLOW_ALREADY_ACTIVE_EXPLANATION_TITLE">The addon is active</string>
2729
<string name="ADDON_FLOW_CONFIRMATION_BUTTON">Yes, upgrade my coverage</string>
2830
<string name="ADDON_FLOW_CONFIRMATION_DESCRIPTION">This upgrade will take effect from %1$s and can only be removed when your insurance is renewed or cancelled.</string>
2931
<string name="ADDON_FLOW_CONFIRMATION_TITLE">Confirm upgraded coverage</string>
@@ -47,9 +49,9 @@
4749
<string name="ADDON_FLOW_TRAVEL_INFORMATION_CARD_TEXT">Travel Insurance Plus is our extended travel insurance, for extra coverage on your trip.</string>
4850
<string name="ADDON_FLOW_TRAVEL_INFORMATION_DESCRIPTION">Travel Insurance Plus is extended coverage for those who want to add to the basic travel coverage included in their Hedvig Home Insurance.</string>
4951
<string name="ADDON_FLOW_TRAVEL_INFORMATION_TITLE">What is Travel Insurance Plus?</string>
50-
<string name="ADDON_FLOW_UPDATE_ADDON_DESCRIPTION">Select what you'd like to do with this addon.</string>
51-
<string name="ADDON_FLOW_UPGRADE_ADDON">Upgrade addon</string>
52-
<string name="ADDON_FLOW_UPGRADE_ADDON_DESCRIPTION">You can upgrade your addon to extend the coverage. This addon can only be removed when your insurance is renewed or cancelled.</string>
52+
<string name="ADDON_FLOW_UPDATE_ADDON_DESCRIPTION">Select an option</string>
53+
<string name="ADDON_FLOW_UPGRADE_ADDON">Extend coverage</string>
54+
<string name="ADDON_FLOW_UPGRADE_ADDON_DESCRIPTION">You can extend the coverage of this addon. It can only be removed when your insurance is renewed or cancelled.</string>
5355
<string name="ADDON_LEARN_MORE_LABEL">See what's included</string>
5456
<string name="ADDON_REMOVE_CANCEL_BUTTON">Keep current coverage</string>
5557
<string name="ADDON_REMOVE_CONFIRM_BUTTON">Cancel %1$s</string>

app/feature/feature-addon-purchase/src/main/kotlin/com/hedvig/android/feature/addon/purchase/ui/customize/CustomizeAddonDestination.kt

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.hedvig.android.feature.addon.purchase.ui.customize
22

33
import androidx.compose.foundation.border
4+
import androidx.compose.foundation.clickable
45
import androidx.compose.foundation.layout.Arrangement
56
import androidx.compose.foundation.layout.Box
67
import androidx.compose.foundation.layout.Column
8+
import androidx.compose.foundation.layout.PaddingValues
79
import androidx.compose.foundation.layout.Row
810
import androidx.compose.foundation.layout.Spacer
911
import androidx.compose.foundation.layout.WindowInsets
@@ -25,6 +27,7 @@ import androidx.compose.runtime.LaunchedEffect
2527
import androidx.compose.runtime.getValue
2628
import androidx.compose.ui.Alignment
2729
import androidx.compose.ui.Modifier
30+
import androidx.compose.ui.draw.clip
2831
import androidx.compose.ui.draw.shadow
2932
import androidx.compose.ui.semantics.clearAndSetSemantics
3033
import androidx.compose.ui.semantics.contentDescription
@@ -48,13 +51,15 @@ import com.hedvig.android.data.contract.ContractGroup
4851
import com.hedvig.android.data.contract.ContractType
4952
import com.hedvig.android.data.productvariant.AddonVariant
5053
import com.hedvig.android.data.productvariant.ProductVariant
54+
import com.hedvig.android.design.system.hedvig.ButtonDefaults
5155
import com.hedvig.android.design.system.hedvig.ButtonDefaults.ButtonSize.Large
5256
import com.hedvig.android.design.system.hedvig.Checkbox
5357
import com.hedvig.android.design.system.hedvig.CheckboxOption
5458
import com.hedvig.android.design.system.hedvig.DropdownDefaults.DropdownSize.Small
5559
import com.hedvig.android.design.system.hedvig.DropdownDefaults.DropdownStyle.Label
5660
import com.hedvig.android.design.system.hedvig.DropdownItem.SimpleDropdownItem
5761
import com.hedvig.android.design.system.hedvig.DropdownWithDialog
62+
import com.hedvig.android.design.system.hedvig.HedvigBottomSheet
5863
import com.hedvig.android.design.system.hedvig.HedvigButton
5964
import com.hedvig.android.design.system.hedvig.HedvigButtonGhostWithBorder
6065
import com.hedvig.android.design.system.hedvig.HedvigErrorSection
@@ -83,6 +88,7 @@ import com.hedvig.android.design.system.hedvig.a11y.accessibilityForDropdown
8388
import com.hedvig.android.design.system.hedvig.a11y.getPerMonthDescription
8489
import com.hedvig.android.design.system.hedvig.icon.Close
8590
import com.hedvig.android.design.system.hedvig.icon.HedvigIcons
91+
import com.hedvig.android.design.system.hedvig.rememberHedvigBottomSheetState
8692
import com.hedvig.android.feature.addon.purchase.data.AddonOffer.Selectable
8793
import com.hedvig.android.feature.addon.purchase.data.AddonOfferDeflectType
8894
import com.hedvig.android.feature.addon.purchase.data.AddonQuote
@@ -100,6 +106,8 @@ import com.hedvig.android.feature.addon.purchase.ui.customize.CustomizeTravelAdd
100106
import com.hedvig.android.feature.addon.purchase.ui.customize.CustomizeTravelAddonEvent.SetSelectedOptionBackToPreviouslyChosen
101107
import com.hedvig.android.feature.addon.purchase.ui.customize.CustomizeTravelAddonEvent.SubmitSelected
102108
import hedvig.resources.ADDON_BADGE_ACTIVE
109+
import hedvig.resources.ADDON_FLOW_ALREADY_ACTIVE_EXPLANATION_SUBTITLE
110+
import hedvig.resources.ADDON_FLOW_ALREADY_ACTIVE_EXPLANATION_TITLE
103111
import hedvig.resources.ADDON_FLOW_COVER_BUTTON
104112
import hedvig.resources.ADDON_FLOW_PRICE_LABEL
105113
import hedvig.resources.ADDON_FLOW_SELECT_BUTTON
@@ -562,11 +570,44 @@ private fun ToggleableAddons(
562570
onToggleOption(addonQuote)
563571
},
564572
enabled = true,
573+
onBadgeClick = {
574+
onToggleOption(addonQuote)
575+
}
565576
)
566577
if (index != addonOptions.lastIndex) {
567578
Spacer(Modifier.height(4.dp))
568579
}
569580
}
581+
582+
val alreadyActiveAddonBottomSheetState = rememberHedvigBottomSheetState<Unit>()
583+
HedvigBottomSheet(
584+
alreadyActiveAddonBottomSheetState,
585+
contentPadding = PaddingValues(horizontal = 16.dp),
586+
) { _ ->
587+
Column {
588+
FlowHeading(
589+
title = stringResource(Res.string.ADDON_FLOW_ALREADY_ACTIVE_EXPLANATION_TITLE),
590+
description = null,
591+
baseStyle = HedvigTheme.typography.bodySmall
592+
)
593+
HedvigText(
594+
stringResource(Res.string.ADDON_FLOW_ALREADY_ACTIVE_EXPLANATION_SUBTITLE),
595+
color = HedvigTheme.colorScheme.textSecondary
596+
)
597+
Spacer(Modifier.height(32.dp))
598+
HedvigButton(
599+
text = stringResource(Res.string.general_close_button),
600+
enabled = true,
601+
buttonStyle = ButtonDefaults.ButtonStyle.Secondary,
602+
onClick = {
603+
alreadyActiveAddonBottomSheetState.dismiss()
604+
},
605+
modifier = Modifier.fillMaxWidth()
606+
)
607+
Spacer(Modifier.height(16.dp))
608+
}
609+
}
610+
570611
currentlyActiveAddons.forEachIndexed { index, activeAddon ->
571612
Spacer(Modifier.height(4.dp))
572613
AddonCheckbox(
@@ -578,6 +619,9 @@ private fun ToggleableAddons(
578619
selected = true,
579620
enabled = false,
580621
onCheckboxSelected = {},
622+
onBadgeClick = {
623+
alreadyActiveAddonBottomSheetState.show(Unit)
624+
}
581625
)
582626
if (index != currentlyActiveAddons.lastIndex) {
583627
Spacer(Modifier.height(4.dp))
@@ -592,8 +636,11 @@ private fun AddonCheckbox(
592636
selected: Boolean,
593637
enabled: Boolean,
594638
onCheckboxSelected: () -> Unit,
639+
onBadgeClick: () -> Unit,
640+
modifier: Modifier = Modifier
595641
) {
596642
Checkbox(
643+
modifier = modifier,
597644
option = CheckboxOption(
598645
text = option.title,
599646
label = option.description,
@@ -609,6 +656,9 @@ private fun AddonCheckbox(
609656
stringResource(Res.string.ADDON_BADGE_ACTIVE),
610657
size = HighLightSize.Small,
611658
color = HighlightLabelDefaults.HighlightColor.Green(HighlightLabelDefaults.HighlightShade.MEDIUM),
659+
modifier = Modifier
660+
.clip(HedvigTheme.shapes.cornerXSmall)
661+
.clickable(enabled = true, onClick = onBadgeClick)
612662
)
613663
}
614664

0 commit comments

Comments
 (0)