@@ -2,6 +2,8 @@ package com.viskit.login
22
33import android.util.Log
44import androidx.lifecycle.viewModelScope
5+ import com.amplitude.android.Amplitude
6+ import com.amplitude.android.events.Identify
57import com.viskit.auth.repository.AuthRepository
68import com.viskit.model.AuthEntity
79import com.viskit.model.exception.ApiError
@@ -15,18 +17,21 @@ import javax.inject.Inject
1517class LoginViewModel @Inject constructor(
1618 private val authRepository : AuthRepository ,
1719 private val userRepository : UserRepository ,
20+ private val amplitude : Amplitude ,
1821) : BaseViewModel<LoginState, LoginSideEffect>(LoginState ()) {
1922
2023 fun splashScreen () {
2124 intent { copy(splash = false ) }
2225 }
26+
2327 fun startKakaoLogin () {
2428 postSideEffect(LoginSideEffect .StartLogin )
2529 }
2630
2731 fun autoLoginCheck () {
2832 viewModelScope.launch {
2933 authRepository.getLocalData().onSuccess {
34+ updateAmplitudeUserId(it.userid)
3035 if (it.accessToken.isNotBlank() && it.isSignedUp) postSideEffect(LoginSideEffect .LoginSuccess )
3136 }
3237 }
@@ -44,6 +49,7 @@ class LoginViewModel @Inject constructor(
4449 authRepository.signIn()
4550 .onSuccess {
4651 userRepository.saveUserId(it.userid)
52+ updateAmplitudeUserId(it.userid)
4753 authRepository.saveLocalData(AuthEntity (it.accessToken, it.refreshToken, it.isSignedUp))
4854 if (it.isSignedUp) {
4955 postSideEffect(LoginSideEffect .LoginSuccess )
@@ -65,4 +71,12 @@ class LoginViewModel @Inject constructor(
6571 }
6672 }
6773 }
74+
75+ private fun updateAmplitudeUserId (userId : Long ) {
76+ if (userId == 0L ) return
77+ amplitude.setUserId(String .format(" %05d" , userId))
78+ val identify = Identify ()
79+ identify.set(" user_name" , String .format(" %05d" , userId))
80+ amplitude.identify(identify)
81+ }
6882}
0 commit comments