From df7242e5dd27acfbb9af6c0bf8b4f1bcea94b378 Mon Sep 17 00:00:00 2001 From: Satindar Dhillon Date: Tue, 13 Dec 2022 17:13:18 -0800 Subject: [PATCH] create event tracker class to inject into view models --- .../main/java/app/omnivore/omnivore/AppModule.kt | 15 +-------------- .../omnivore/omnivore/ui/auth/LoginViewModel.kt | 7 ++++++- .../omnivore/omnivore/ui/home/HomeViewModel.kt | 1 - .../app/omnivore/omnivore/ui/root/RootView.kt | 7 +++++++ 4 files changed, 14 insertions(+), 16 deletions(-) diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/AppModule.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/AppModule.kt index 7acc7aad2..ef526af60 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/AppModule.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/AppModule.kt @@ -8,8 +8,6 @@ import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent import javax.inject.Singleton -import com.segment.analytics.kotlin.android.Analytics -import com.segment.analytics.kotlin.core.* @Module @InstallIn(SingletonComponent::class) @@ -27,16 +25,5 @@ object AppModule { @Singleton @Provides - fun provideAnalytics( - @ApplicationContext app: Context - ): Analytics { - val writeKey = app.getString(R.string.segment_write_key) - - // TODO: abstract analytics to custom class - return Analytics(writeKey, app.applicationContext) { - trackApplicationLifecycleEvents = true - application = app.applicationContext - useLifecycleObserver = true - } - } + fun provideAnalytics(@ApplicationContext app: Context) = EventTracker(app) } diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/auth/LoginViewModel.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/auth/LoginViewModel.kt index c11f32a6f..84c29d34f 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/auth/LoginViewModel.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/auth/LoginViewModel.kt @@ -36,7 +36,8 @@ data class PendingEmailUserCreds( @HiltViewModel class LoginViewModel @Inject constructor( - private val datastoreRepo: DatastoreRepository + private val datastoreRepo: DatastoreRepository, + private val eventTracker: EventTracker ): ViewModel() { private var validateUsernameJob: Job? = null @@ -90,6 +91,10 @@ class LoginViewModel @Inject constructor( showSocialLogin() } + fun registerUser() { + // TODO: eventTracker.registerUser() + } + private fun resetState() { validateUsernameJob = null isLoading = false diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/home/HomeViewModel.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/home/HomeViewModel.kt index b2a046dfe..55969a73b 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/home/HomeViewModel.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/home/HomeViewModel.kt @@ -19,7 +19,6 @@ import javax.inject.Inject @HiltViewModel class HomeViewModel @Inject constructor( private val networker: Networker, - private val analytics: com.segment.analytics.kotlin.core.Analytics ): ViewModel() { private var cursor: String? = null private var items: List = listOf() diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/root/RootView.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/root/RootView.kt index c669be8b6..b0abce8d2 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/root/RootView.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/root/RootView.kt @@ -53,6 +53,13 @@ fun RootView( } else { WelcomeScreen(viewModel = loginViewModel) } + + DisposableEffect(hasAuthToken) { + if (hasAuthToken) { + loginViewModel.registerUser() + } + onDispose {} + } } }