diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/network/di/NaviPayModule.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/network/di/NaviPayModule.kt index 3b15b457b5..3298731ff4 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/network/di/NaviPayModule.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/network/di/NaviPayModule.kt @@ -66,6 +66,7 @@ import dagger.Binds import dagger.Module import dagger.Provides import dagger.hilt.InstallIn +import dagger.hilt.android.components.ViewModelComponent import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent import javax.inject.Qualifier @@ -227,6 +228,29 @@ object NaviPayNetworkModule { naviPayAppEncryptedDatabase.validateVpaDao() } +@Module +@InstallIn(ViewModelComponent::class) +abstract class NaviPayViewModelScopedModule { + @Binds + abstract fun bindPhoneContacts( + phoneContactManagerImpl: PhoneContactManagerImpl + ): PhoneContactManager + + @Binds + abstract fun bindPermissionStateProvider( + permissionStateProviderImpl: PermissionStateProviderImpl + ): PermissionStateProvider + + @Binds abstract fun bindImageCache(imageCacheImpl: ImageCacheImpl): ImageCache + + @Binds abstract fun bindSmsManager(smsManagerImpl: SmsManagerImpl): SmsManager + + @Binds + abstract fun bindNetworkConnectivity( + naviPayNetworkConnectivityImpl: NaviPayNetworkConnectivityImpl + ): NaviPayNetworkConnectivity +} + @Module @InstallIn(SingletonComponent::class) abstract class NaviPayDeviceModule { @@ -241,37 +265,16 @@ abstract class NaviPayDeviceModule { npciSessionHandlerImpl: NpciSessionHandlerImpl ): NpciSessionHandler - @Singleton - @Binds - abstract fun bindPhoneContacts( - phoneContactManagerImpl: PhoneContactManagerImpl - ): PhoneContactManager - @Singleton @Binds abstract fun bindVpaQrCodeManager(vpaQRCodeManagerImpl: VpaQRCodeManagerImpl): VpaQRCodeManager - @Singleton - @Binds - abstract fun bindNetworkConnectivity( - naviPayNetworkConnectivityImpl: NaviPayNetworkConnectivityImpl - ): NaviPayNetworkConnectivity - - @Singleton - @Binds - abstract fun bindPermissionStateProvider( - permissionStateProviderImpl: PermissionStateProviderImpl - ): PermissionStateProvider - - @Singleton @Binds abstract fun bindImageCache(imageCacheImpl: ImageCacheImpl): ImageCache - - @Singleton @Binds abstract fun bindSmsManager(smsManagerImpl: SmsManagerImpl): SmsManager - @Singleton @Binds abstract fun bindNaviPayWidgetManager( naviPayWidgetManagerImpl: NaviPayWidgetManagerImpl - ): NaviPayWidgetManager + ): NaviPayWidgetManager // TODO : Move this to view model scoped once delayed onboarding + // experiment is at 100% } @Qualifier @Retention(AnnotationRetention.BINARY) annotation class NaviPayRetrofit