Skip to content

Commit 108993f

Browse files
committed
chore: add analytics events for give/grab start
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 47aeaf9 commit 108993f

4 files changed

Lines changed: 23 additions & 0 deletions

File tree

apps/flipcash/shared/analytics/src/main/kotlin/com/flipcash/app/analytics/Analytics.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import com.getcode.opencode.model.financial.LocalFiat
1414
import com.getcode.solana.keys.Mint
1515

1616
interface FlipcashAnalyticsService : AnalyticsService {
17+
fun transferStart(event: Analytics.Transfer.Initiate)
1718
fun transfer(event: Analytics.Transfer, amount: LocalFiat?, successful: Boolean = true, error: Throwable? = null)
1819
fun transfer(event: Analytics.Transfer, fiat: Fiat?, successful: Boolean = true, error: Throwable? = null)
1920
fun paidForAccount(price: Double, currency: CurrencyCode, owner: KeyPair)
@@ -40,6 +41,11 @@ interface FlipcashAnalyticsService : AnalyticsService {
4041
object Analytics {
4142

4243
sealed interface Transfer {
44+
sealed interface Initiate: Transfer {
45+
data object GrabBillStart: Initiate
46+
data object GiveBillStart: Initiate
47+
}
48+
4349
data class GrabBill(val time: Long? = null) : Transfer
4450
data object GiveBill : Transfer
4551
data object Withdrawal : Transfer
@@ -70,6 +76,7 @@ class StubFlipcashAnalytics : FlipcashAnalyticsService {
7076
override fun unintentionalLogout() = Unit
7177
override fun action(action: AppAction, source: AppActionSource?) = Unit
7278

79+
override fun transferStart(event: Analytics.Transfer.Initiate) = Unit
7380
override fun transfer(event: Analytics.Transfer, amount: LocalFiat?, successful: Boolean, error: Throwable?) = Unit
7481
override fun transfer(event: Analytics.Transfer, fiat: Fiat?, successful: Boolean, error: Throwable?) = Unit
7582
override fun paidForAccount(price: Double, currency: CurrencyCode, owner: KeyPair) = Unit

apps/flipcash/shared/analytics/src/main/kotlin/com/flipcash/app/analytics/Events.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ internal sealed interface AnalyticsEvent {
7676

7777
sealed interface Transfer : AnalyticsEvent
7878

79+
data object GrabBillStart: Transfer {
80+
override val name = "Grab Bill Start"
81+
}
82+
7983
data class GrabBill(val time: Long?) : Transfer {
8084
override val name = "Grab Bill"
8185
override fun toProperties() = buildMap {
@@ -87,6 +91,10 @@ internal sealed interface AnalyticsEvent {
8791
override val name = "Give Bill"
8892
}
8993

94+
data object GiveBillStart : Transfer {
95+
override val name = "Give Bill Start"
96+
}
97+
9098
data object Withdrawal : Transfer {
9199
override val name = "Withdrawal"
92100
}
@@ -281,7 +289,9 @@ internal fun Fiat.asProperties(): Map<String, String> {
281289
}
282290

283291
internal fun Analytics.Transfer.toAnalyticsEvent(): AnalyticsEvent = when (this) {
292+
is Analytics.Transfer.Initiate.GrabBillStart -> AnalyticsEvent.GrabBillStart
284293
is Analytics.Transfer.GrabBill -> AnalyticsEvent.GrabBill(time = time)
294+
is Analytics.Transfer.Initiate.GiveBillStart -> AnalyticsEvent.GiveBillStart
285295
is Analytics.Transfer.GiveBill -> AnalyticsEvent.GiveBill
286296
is Analytics.Transfer.Withdrawal -> AnalyticsEvent.Withdrawal
287297
is Analytics.Transfer.ClaimedCashLink -> AnalyticsEvent.ClaimedCashLink

apps/flipcash/shared/analytics/src/main/kotlin/com/flipcash/app/analytics/internal/MixpanelAnalyticsDelegate.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ internal class MixpanelAnalyticsDelegate @Inject constructor(
5656
track(name = action.value)
5757
}
5858

59+
override fun transferStart(event: Analytics.Transfer.Initiate) {
60+
track(event.toAnalyticsEvent())
61+
}
62+
5963
override fun transfer(
6064
event: Analytics.Transfer,
6165
amount: LocalFiat?,

apps/flipcash/shared/session/src/main/kotlin/com/flipcash/app/session/internal/RealSessionController.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,7 @@ class RealSessionController @Inject constructor(
356356
}
357357

358358
private fun awaitBillGrab(bill: Bill, owner: AccountCluster) {
359+
analytics.transferStart(Analytics.Transfer.Initiate.GiveBillStart)
359360
billController.awaitGrab(
360361
amount = bill.amount,
361362
token = bill.token,
@@ -781,6 +782,7 @@ class RealSessionController @Inject constructor(
781782
)
782783
val owner = userManager.accountCluster ?: return
783784

785+
analytics.transferStart(Analytics.Transfer.Initiate.GrabBillStart)
784786
billController.attemptGrab(
785787
owner = owner,
786788
payload = payload,

0 commit comments

Comments
 (0)