Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
8e3d6d4
Declare `AppMode` class
samiuelson Jan 15, 2025
5ff7d40
Inject `AppMode` into `PaymentsFlowTracker`
samiuelson Jan 15, 2025
39a1f93
Define DI for @PointOfSale and @StoreManagement `PaymentsFlowTracker`…
samiuelson Jan 15, 2025
dfdb3cb
Use @StoreManagementMode version of controller in store management mode
samiuelson Jan 15, 2025
33516f1
Move controller factory to POS and make POS-oriented
samiuelson Jan 15, 2025
8dc9117
Generate POS-scoped payment flow-related analytics events
samiuelson Jan 16, 2025
ecf9ce7
Introduce app mode-specific PaymentsFlowTrackerEventProvider to repla…
samiuelson Jan 16, 2025
b571007
Access analytics events via provider
samiuelson Jan 16, 2025
ae45e60
Access analytics events via provider
samiuelson Jan 16, 2025
4a729d3
Access analytics events via provider
samiuelson Jan 16, 2025
fca1c49
Access analytics events via provider
samiuelson Jan 16, 2025
fa9274e
Access analytics events via provider
samiuelson Jan 16, 2025
4f88246
Access analytics events via provider
samiuelson Jan 16, 2025
564813f
Access analytics events via provider
samiuelson Jan 16, 2025
2b37481
Implement mode-specific `CardReaderTrackCanceledFlowAction` instances
samiuelson Jan 16, 2025
c1ed316
Update PaymentsFlowTrackerTest
samiuelson Jan 16, 2025
97dbbf3
Merge branch 'trunk' into 13302-woo-pos-update-analytics-events-in-re…
samiuelson Jan 17, 2025
cb16feb
Merge branch '13302-woo-pos-update-analytics-events-in-reader-payment…
samiuelson Jan 17, 2025
f514c17
Rename module class and methods
samiuelson Jan 22, 2025
62f5c0d
Merge branch 'trunk' into 13302-woo-pos-update-analytics-events-in-re…
samiuelson Jan 22, 2025
576327b
Revert SingletonComponent, removed by mistake
samiuelson Jan 22, 2025
99913ad
Merge branch '13302-woo-pos-update-analytics-events-in-reader-payment…
samiuelson Jan 22, 2025
d995537
Merge pull request #13333 from woocommerce/woo-pos-update-payment-can…
samiuelson Jan 22, 2025
fe88724
Merge branch 'trunk' into 13302-woo-pos-update-analytics-events-in-re…
samiuelson Jan 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package com.woocommerce.android.di

import com.woocommerce.android.AppPrefsWrapper
import com.woocommerce.android.analytics.AnalyticsTrackerWrapper
import com.woocommerce.android.tools.SelectedSite
import com.woocommerce.android.ui.payments.cardreader.payment.controller.CardReaderTrackCanceledFlowAction
import com.woocommerce.android.ui.payments.receipt.PaymentReceiptHelper
import com.woocommerce.android.ui.payments.tracking.CardReaderTrackingInfoProvider
import com.woocommerce.android.ui.payments.tracking.PaymentsFlowTracker
import com.woocommerce.android.ui.payments.tracking.PaymentsFlowTrackerEventProvider
import com.woocommerce.android.ui.payments.tracking.StoreManagementPaymentsFlowTrackerEventProvider
import com.woocommerce.android.ui.woopos.util.analytics.WooPosPaymentsFlowTrackerEventProvider
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.components.ViewModelComponent
import dagger.hilt.components.SingletonComponent
import javax.inject.Qualifier

@Module
@InstallIn(ViewModelComponent::class, SingletonComponent::class)
class AppModePaymentsFlowTrackingModule {
@Provides
fun provideDefaultPaymentsFlowTrackerEventProvider(): PaymentsFlowTrackerEventProvider =
StoreManagementPaymentsFlowTrackerEventProvider()

@Provides
@PointOfSaleMode
fun providePointOfSaleModePaymentsFlowTrackerEventProvider(): PaymentsFlowTrackerEventProvider =
WooPosPaymentsFlowTrackerEventProvider()

@Provides
@StoreManagementMode
fun provideStoreManagementModePaymentsFlowTrackerEventProvider(): PaymentsFlowTrackerEventProvider =
StoreManagementPaymentsFlowTrackerEventProvider()

@Provides
@PointOfSaleMode
@Suppress("LongParameterList")
fun providePointOfSaleModePaymentsFlowTracker(
trackerWrapper: AnalyticsTrackerWrapper,
appPrefsWrapper: AppPrefsWrapper,
selectedSite: SelectedSite,
cardReaderTrackingInfoProvider: CardReaderTrackingInfoProvider,
paymentReceiptHelper: PaymentReceiptHelper,
@PointOfSaleMode paymentsFlowTrackerEventProvider: PaymentsFlowTrackerEventProvider,
): PaymentsFlowTracker = PaymentsFlowTracker(
trackerWrapper = trackerWrapper,
appPrefsWrapper = appPrefsWrapper,
selectedSite = selectedSite,
cardReaderTrackingInfoProvider = cardReaderTrackingInfoProvider,
paymentReceiptHelper = paymentReceiptHelper,
eventProvider = paymentsFlowTrackerEventProvider,
)

@Provides
@StoreManagementMode
@Suppress("LongParameterList")
fun provideStoreManagementModePaymentsFlowTracker(
trackerWrapper: AnalyticsTrackerWrapper,
appPrefsWrapper: AppPrefsWrapper,
selectedSite: SelectedSite,
cardReaderTrackingInfoProvider: CardReaderTrackingInfoProvider,
paymentReceiptHelper: PaymentReceiptHelper,
@StoreManagementMode paymentsFlowTrackerEventProvider: PaymentsFlowTrackerEventProvider,
): PaymentsFlowTracker = PaymentsFlowTracker(
trackerWrapper = trackerWrapper,
appPrefsWrapper = appPrefsWrapper,
selectedSite = selectedSite,
cardReaderTrackingInfoProvider = cardReaderTrackingInfoProvider,
paymentReceiptHelper = paymentReceiptHelper,
eventProvider = paymentsFlowTrackerEventProvider,
)

@Provides
@PointOfSaleMode
fun providePointOfSaleModeCardReaderTrackCanceledFlowAction(
@PointOfSaleMode tracker: PaymentsFlowTracker
): CardReaderTrackCanceledFlowAction = CardReaderTrackCanceledFlowAction(tracker)

@Provides
@StoreManagementMode
fun provideStoreManagementModeCardReaderTrackCanceledFlowAction(
@StoreManagementMode tracker: PaymentsFlowTracker
): CardReaderTrackCanceledFlowAction = CardReaderTrackCanceledFlowAction(tracker)
}

@Qualifier
@Retention(AnnotationRetention.BINARY)
annotation class PointOfSaleMode

@Qualifier
@Retention(AnnotationRetention.BINARY)
annotation class StoreManagementMode
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import androidx.lifecycle.map
import com.woocommerce.android.AppPrefs
import com.woocommerce.android.cardreader.CardReaderManager
import com.woocommerce.android.cardreader.payments.PaymentData
import com.woocommerce.android.di.StoreManagementMode
import com.woocommerce.android.tools.SelectedSite
import com.woocommerce.android.ui.orders.details.OrderDetailRepository
import com.woocommerce.android.ui.payments.cardreader.CardReaderCountryConfigProvider
Expand Down Expand Up @@ -42,8 +43,8 @@ class CardReaderPaymentViewModel @Inject constructor(
appPrefs: AppPrefs = AppPrefs,
paymentCollectibilityChecker: CardReaderPaymentCollectibilityChecker,
interacRefundableChecker: CardReaderInteracRefundableChecker,
tracker: PaymentsFlowTracker,
trackCancelledFlow: CardReaderTrackCanceledFlowAction,
@StoreManagementMode tracker: PaymentsFlowTracker,
@StoreManagementMode trackCancelledFlow: CardReaderTrackCanceledFlowAction,
currencyFormatter: CurrencyFormatter,
errorMapper: CardReaderPaymentErrorMapper,
interacRefundErrorMapper: CardReaderInteracRefundErrorMapper,
Expand Down
Loading
Loading