diff --git a/features/messages/impl/build.gradle.kts b/features/messages/impl/build.gradle.kts index 01482d0df5..dd2b695022 100644 --- a/features/messages/impl/build.gradle.kts +++ b/features/messages/impl/build.gradle.kts @@ -61,6 +61,7 @@ dependencies { implementation(projects.libraries.uiUtils) implementation(projects.libraries.testtags) implementation(projects.features.networkmonitor.api) + implementation(projects.features.wallet.impl) implementation(projects.services.analytics.compose) implementation(projects.services.appnavstate.api) implementation(projects.services.toolbox.api) diff --git a/features/wallet/api/src/main/kotlin/io/element/android/features/wallet/api/timeline/TimelineItemPaymentContent.kt b/features/wallet/api/src/main/kotlin/io/element/android/features/wallet/api/timeline/TimelineItemPaymentContent.kt index 8b0ceffcee..97419456a6 100644 --- a/features/wallet/api/src/main/kotlin/io/element/android/features/wallet/api/timeline/TimelineItemPaymentContent.kt +++ b/features/wallet/api/src/main/kotlin/io/element/android/features/wallet/api/timeline/TimelineItemPaymentContent.kt @@ -72,7 +72,8 @@ data class TimelineItemPaymentContent( } companion object { - const val EVENT_TYPE = "m.payment.cardano" + /** Custom event type for Cardano payment requests (reverse-domain format) */ + const val EVENT_TYPE = "co.sulkta.payment.request" private const val LOVELACE_PER_ADA = 1_000_000.0 /** diff --git a/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/cardano/DefaultTransactionBuilder.kt b/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/cardano/DefaultTransactionBuilder.kt index e770a2253f..6dc06a0a40 100644 --- a/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/cardano/DefaultTransactionBuilder.kt +++ b/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/cardano/DefaultTransactionBuilder.kt @@ -13,8 +13,8 @@ import com.bloxbean.cardano.client.backend.factory.BackendFactory import com.bloxbean.cardano.client.function.helper.SignerProviders import com.bloxbean.cardano.client.quicktx.QuickTxBuilder import com.bloxbean.cardano.client.quicktx.Tx -import dev.zacsweeny.metro.ContributesBinding -import dev.zacsweeny.metro.SessionScope +import dev.zacsweers.metro.ContributesBinding +import dev.zacsweers.metro.SessionScope import io.element.android.features.wallet.api.CardanoClient import io.element.android.features.wallet.api.CardanoException import io.element.android.features.wallet.api.PaymentRequest diff --git a/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/cardano/KoiosCardanoClient.kt b/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/cardano/KoiosCardanoClient.kt index 1a2149cd41..570a7584ed 100644 --- a/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/cardano/KoiosCardanoClient.kt +++ b/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/cardano/KoiosCardanoClient.kt @@ -8,8 +8,8 @@ package io.element.android.features.wallet.impl.cardano import com.bloxbean.cardano.client.backend.api.BackendService import com.bloxbean.cardano.client.backend.factory.BackendFactory -import dev.zacsweeny.metro.ContributesBinding -import dev.zacsweeny.metro.SessionScope +import dev.zacsweers.metro.ContributesBinding +import dev.zacsweers.metro.SessionScope import io.element.android.features.wallet.api.CardanoClient import io.element.android.features.wallet.api.CardanoException import io.element.android.features.wallet.api.ProtocolParameters diff --git a/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/cardano/PaymentStatusPoller.kt b/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/cardano/PaymentStatusPoller.kt index 4778ec5c5d..7e8aa07cab 100644 --- a/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/cardano/PaymentStatusPoller.kt +++ b/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/cardano/PaymentStatusPoller.kt @@ -6,9 +6,9 @@ package io.element.android.features.wallet.impl.cardano -import dev.zacsweeny.metro.AppScope -import dev.zacsweeny.metro.ContributesBinding -import dev.zacsweeny.metro.SingleIn +import dev.zacsweers.metro.ContributesBinding +import dev.zacsweers.metro.SessionScope +import dev.zacsweers.metro.SingleIn import io.element.android.features.wallet.api.CardanoClient import io.element.android.features.wallet.api.PaymentStatusPoller import io.element.android.features.wallet.api.TxStatus @@ -21,8 +21,8 @@ import javax.inject.Inject /** * Default implementation of [PaymentStatusPoller]. */ -@SingleIn(AppScope::class) -@ContributesBinding(AppScope::class) +@SingleIn(SessionScope::class) +@ContributesBinding(SessionScope::class) class DefaultPaymentStatusPoller @Inject constructor( private val cardanoClient: CardanoClient, ) : PaymentStatusPoller { diff --git a/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/di/WalletModule.kt b/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/di/WalletModule.kt index 59f0ce2584..eaabdbfb8c 100644 --- a/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/di/WalletModule.kt +++ b/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/di/WalletModule.kt @@ -6,11 +6,11 @@ package io.element.android.features.wallet.impl.di -import dev.zacsweeny.metro.AppScope -import dev.zacsweeny.metro.ContributesTo -import dev.zacsweeny.metro.ObjectFactory -import dev.zacsweeny.metro.Provides -import dev.zacsweeny.metro.SingleIn +import dev.zacsweers.metro.AppScope +import dev.zacsweers.metro.ContributesTo +import dev.zacsweers.metro.ObjectFactory +import dev.zacsweers.metro.Provides +import dev.zacsweers.metro.SingleIn import kotlinx.serialization.json.Json /** diff --git a/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/payment/DefaultPaymentEventSender.kt b/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/payment/DefaultPaymentEventSender.kt index faf4a71cff..8b153ef355 100644 --- a/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/payment/DefaultPaymentEventSender.kt +++ b/features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/payment/DefaultPaymentEventSender.kt @@ -6,17 +6,17 @@ package io.element.android.features.wallet.impl.payment -import com.squareup.anvil.annotations.ContributesBinding -import dev.zacsweers.metro.Inject +import dev.zacsweers.metro.ContributesBinding +import dev.zacsweers.metro.SessionScope import io.element.android.features.wallet.api.PaymentCardStatus import io.element.android.features.wallet.api.PaymentEventSender import io.element.android.features.wallet.api.PaymentRequest import io.element.android.features.wallet.api.SignedTransaction import io.element.android.features.wallet.api.timeline.TimelineItemPaymentContent -import io.element.android.libraries.di.SessionScope import io.element.android.libraries.matrix.api.timeline.Timeline import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json +import javax.inject.Inject /** * Default implementation of [PaymentEventSender]. @@ -26,9 +26,8 @@ import kotlinx.serialization.json.Json * Event type: co.sulkta.payment.request * Event content: JSON-serialized [PaymentEventData] */ -@Inject @ContributesBinding(SessionScope::class) -class DefaultPaymentEventSender : PaymentEventSender { +class DefaultPaymentEventSender @Inject constructor() : PaymentEventSender { private val json = Json { encodeDefaults = true ignoreUnknownKeys = true diff --git a/features/wallet/impl/src/test/kotlin/io/element/android/features/wallet/impl/timeline/TimelineItemPaymentContentTest.kt b/features/wallet/impl/src/test/kotlin/io/element/android/features/wallet/impl/timeline/TimelineItemPaymentContentTest.kt index fb222699fe..a7bdce24f6 100644 --- a/features/wallet/impl/src/test/kotlin/io/element/android/features/wallet/impl/timeline/TimelineItemPaymentContentTest.kt +++ b/features/wallet/impl/src/test/kotlin/io/element/android/features/wallet/impl/timeline/TimelineItemPaymentContentTest.kt @@ -98,9 +98,9 @@ class TimelineItemPaymentContentTest { } @Test - fun `type returns m_payment_cardano`() { + fun `type returns payment event type`() { val content = createContent() - assertThat(content.type).isEqualTo("m.payment.cardano") + assertThat(content.type).isEqualTo("co.sulkta.payment.request") } @Test