From 97160480c1a9d43e02dc174b34d9105dae9c91dc Mon Sep 17 00:00:00 2001 From: Brandon McAnsh Date: Sun, 26 Jul 2026 12:24:31 -0400 Subject: [PATCH 1/2] fix(tips): make routes dismissable via gestures Signed-off-by: Brandon McAnsh --- .../src/main/kotlin/com/flipcash/app/core/tipping/TipStep.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/flipcash/core/src/main/kotlin/com/flipcash/app/core/tipping/TipStep.kt b/apps/flipcash/core/src/main/kotlin/com/flipcash/app/core/tipping/TipStep.kt index 7a389d112..d3b30dcfd 100644 --- a/apps/flipcash/core/src/main/kotlin/com/flipcash/app/core/tipping/TipStep.kt +++ b/apps/flipcash/core/src/main/kotlin/com/flipcash/app/core/tipping/TipStep.kt @@ -8,7 +8,7 @@ import kotlinx.parcelize.Parcelize import kotlinx.serialization.Serializable @Serializable -sealed interface TipStep : FlowStep, Parcelable, NonDismissableRoute, NonDraggableRoute { +sealed interface TipStep : FlowStep, Parcelable { @Parcelize @Serializable From eb738c605588253dedc9b1a677418e0357fd10e6 Mon Sep 17 00:00:00 2001 From: Brandon McAnsh Date: Sun, 26 Jul 2026 12:24:52 -0400 Subject: [PATCH 2/2] feat(tips): vibrate on scanned/resolved tip card like a bill Signed-off-by: Brandon McAnsh --- apps/flipcash/shared/tipping/build.gradle.kts | 1 + .../kotlin/com/flipcash/shared/tipping/TippingCoordinator.kt | 3 +++ 2 files changed, 4 insertions(+) diff --git a/apps/flipcash/shared/tipping/build.gradle.kts b/apps/flipcash/shared/tipping/build.gradle.kts index 2276a8fa1..15b98bd5d 100644 --- a/apps/flipcash/shared/tipping/build.gradle.kts +++ b/apps/flipcash/shared/tipping/build.gradle.kts @@ -19,6 +19,7 @@ dependencies { implementation(project(":apps:flipcash:shared:tokens")) implementation(project(":apps:flipcash:shared:userflags")) implementation(project(":libs:messaging")) + implementation(project(":libs:vibrator:bindings")) implementation(project(":services:flipcash")) implementation(project(":services:opencode")) } diff --git a/apps/flipcash/shared/tipping/src/main/kotlin/com/flipcash/shared/tipping/TippingCoordinator.kt b/apps/flipcash/shared/tipping/src/main/kotlin/com/flipcash/shared/tipping/TippingCoordinator.kt index 34aa0b992..d56fcf7ce 100644 --- a/apps/flipcash/shared/tipping/src/main/kotlin/com/flipcash/shared/tipping/TippingCoordinator.kt +++ b/apps/flipcash/shared/tipping/src/main/kotlin/com/flipcash/shared/tipping/TippingCoordinator.kt @@ -28,6 +28,7 @@ import com.getcode.opencode.model.financial.Fiat import com.getcode.opencode.model.financial.Token import com.getcode.opencode.utils.combine import com.getcode.util.resources.ResourceHelper +import com.getcode.util.vibration.Vibrator import com.getcode.view.LoadingSuccessState import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -72,6 +73,7 @@ class TippingCoordinator @Inject constructor( private val resources: ResourceHelper, private val purchaseMethodController: PurchaseMethodController, private val analytics: FlipcashAnalyticsService, + private val vibrator: Vibrator, ) : TipSelectionHolder { /** The signed-in user's id ([UserManager.accountId]), or null if unavailable. */ val currentUserId: ID? @@ -287,6 +289,7 @@ class TippingCoordinator @Inject constructor( // the amount entry's below-min / over-balance gates and confirmTip. _canTip.value = tokenCoordinator.hasGiveableBalance() _userId.value = userId + vibrator.vibrate() } .map { tipCard(userId, it) }