diff --git a/paymentsheet-example/src/main/java/com/stripe/android/paymentsheet/example/playground/settings/ConfirmationTokenSettingsDefinition.kt b/paymentsheet-example/src/main/java/com/stripe/android/paymentsheet/example/playground/settings/ConfirmationTokenSettingsDefinition.kt index 9193c8a9c65..be700c53aea 100644 --- a/paymentsheet-example/src/main/java/com/stripe/android/paymentsheet/example/playground/settings/ConfirmationTokenSettingsDefinition.kt +++ b/paymentsheet-example/src/main/java/com/stripe/android/paymentsheet/example/playground/settings/ConfirmationTokenSettingsDefinition.kt @@ -5,7 +5,7 @@ import com.stripe.android.paymentsheet.example.playground.model.CheckoutRequest internal object ConfirmationTokenSettingsDefinition : BooleanSettingsDefinition( key = "confirmationToken", displayName = "Use Confirmation Token", - defaultValue = false, + defaultValue = true, ) { override fun applicable(configurationData: PlaygroundConfigurationData): Boolean { return configurationData.integrationType.isPaymentFlow() @@ -14,4 +14,10 @@ internal object ConfirmationTokenSettingsDefinition : BooleanSettingsDefinition( override fun configure(value: Boolean, checkoutRequestBuilder: CheckoutRequest.Builder) { checkoutRequestBuilder.isConfirmationToken(value) } + + override fun valueUpdated(value: Boolean, playgroundSettings: PlaygroundSettings) { + if (value) { + playgroundSettings[CustomerSessionSettingsDefinition] = true + } + } } diff --git a/paymentsheet-example/src/main/java/com/stripe/android/paymentsheet/example/playground/settings/SettingsUI.kt b/paymentsheet-example/src/main/java/com/stripe/android/paymentsheet/example/playground/settings/SettingsUI.kt index e01262f1c69..3abb3dde97a 100644 --- a/paymentsheet-example/src/main/java/com/stripe/android/paymentsheet/example/playground/settings/SettingsUI.kt +++ b/paymentsheet-example/src/main/java/com/stripe/android/paymentsheet/example/playground/settings/SettingsUI.kt @@ -34,8 +34,22 @@ internal fun SettingsUi( ) { val configurationData by playgroundSettings.configurationData.collectAsState() val displayableDefinitions by playgroundSettings.displayableDefinitions.collectAsState() - val filteredDefinitions = remember(displayableDefinitions, searchQuery) { - displayableDefinitions.filter { it.displayName.matchesQuery(searchQuery) } + val confirmationTokenEnabled by playgroundSettings[ConfirmationTokenSettingsDefinition].collectAsState() + + val filteredDefinitions = remember( + displayableDefinitions, + searchQuery, + confirmationTokenEnabled + ) { + displayableDefinitions + .filter { definition -> + // Hide CustomerSessionSettingsDefinition when ConfirmationToken is enabled + if (definition == CustomerSessionSettingsDefinition && confirmationTokenEnabled) { + false + } else { + definition.displayName.matchesQuery(searchQuery) + } + } } Column(