diff --git a/app/src/main/java/com/sopt/geonppang/data/model/response/ResponseSignup.kt b/app/src/main/java/com/sopt/geonppang/data/model/response/ResponseSignup.kt index 967c1f9d..140cfbff 100644 --- a/app/src/main/java/com/sopt/geonppang/data/model/response/ResponseSignup.kt +++ b/app/src/main/java/com/sopt/geonppang/data/model/response/ResponseSignup.kt @@ -18,6 +18,7 @@ data class ResponseSignup( ) fun toSignUpInfo() = SignUpInfo( + memberId = data.memberId, role = data.role, type = data.type ) diff --git a/app/src/main/java/com/sopt/geonppang/domain/model/SignUpInfo.kt b/app/src/main/java/com/sopt/geonppang/domain/model/SignUpInfo.kt index 7d53940f..92ea9192 100644 --- a/app/src/main/java/com/sopt/geonppang/domain/model/SignUpInfo.kt +++ b/app/src/main/java/com/sopt/geonppang/domain/model/SignUpInfo.kt @@ -1,6 +1,7 @@ package com.sopt.geonppang.domain.model data class SignUpInfo( + val memberId: Int, val role: String, val type: String, ) diff --git a/app/src/main/java/com/sopt/geonppang/presentation/auth/AuthViewModel.kt b/app/src/main/java/com/sopt/geonppang/presentation/auth/AuthViewModel.kt index cc17e6a5..d7dc02a9 100644 --- a/app/src/main/java/com/sopt/geonppang/presentation/auth/AuthViewModel.kt +++ b/app/src/main/java/com/sopt/geonppang/presentation/auth/AuthViewModel.kt @@ -35,9 +35,8 @@ class AuthViewModel @Inject constructor( val passwordCheck = MutableStateFlow("") val nickname = MutableStateFlow("") - - private val _flag = MutableStateFlow("") - val flag get() = _flag + private val _memberId = MutableStateFlow(null) + val memberId get() = _memberId.asStateFlow() private val _authRoleType = MutableStateFlow(null) val authRoleType get() = _authRoleType.asStateFlow() @@ -159,6 +158,9 @@ class AuthViewModel @Inject constructor( gpDataSource.refreshToken = BEARER_PREFIX + refreshToken } _signUpState.value = UiState.Success(true) + if (platformType == PlatformType.NONE) { + _memberId.value = responseBody?.memberId + } } .onFailure { throwable -> Timber.e(throwable.message) @@ -172,6 +174,7 @@ class AuthViewModel @Inject constructor( authRepository.settingNickname(RequestNicknameSetting(nickname)) .onSuccess { response -> val responseHeader = response.headers() + val responseBody = response.body() val accessToken = responseHeader[AUTHORIZATION].toString() val refreshToken = responseHeader[AUTHORIZATION_REFRESH].toString() gpDataSource.accessToken = BEARER_PREFIX + accessToken @@ -180,6 +183,7 @@ class AuthViewModel @Inject constructor( _signUpState.value = UiState.Success(true) // 소셜 회원가입 시 자동 로그인 설정 setAutoLogin() + _memberId.value = responseBody?.data?.memberId } .onFailure { throwable -> Timber.e(throwable.message) diff --git a/app/src/main/java/com/sopt/geonppang/presentation/auth/SignActivity.kt b/app/src/main/java/com/sopt/geonppang/presentation/auth/SignActivity.kt index 58414686..88d141a1 100644 --- a/app/src/main/java/com/sopt/geonppang/presentation/auth/SignActivity.kt +++ b/app/src/main/java/com/sopt/geonppang/presentation/auth/SignActivity.kt @@ -55,6 +55,7 @@ class SignActivity : AuthRoleType.USER -> { authViewModel.setAutoLogin() + AmplitudeUtils.trackEvent(LOGIN_APP) moveToMain() } @@ -89,5 +90,6 @@ class SignActivity : const val SIGNUP_TYPE = "signup type" const val EMAIL = "EMAIL" const val KAKAO = "KAKAO" + const val LOGIN_APP = "login_app" } } diff --git a/app/src/main/java/com/sopt/geonppang/presentation/auth/SignUpActivity.kt b/app/src/main/java/com/sopt/geonppang/presentation/auth/SignUpActivity.kt index 8de7d798..834ee43e 100644 --- a/app/src/main/java/com/sopt/geonppang/presentation/auth/SignUpActivity.kt +++ b/app/src/main/java/com/sopt/geonppang/presentation/auth/SignUpActivity.kt @@ -20,7 +20,6 @@ import kotlinx.coroutines.flow.onEach class SignUpActivity : BindingActivity(R.layout.activity_signup) { private val viewModel: AuthViewModel by viewModels() - private var flag = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -75,7 +74,6 @@ class SignUpActivity : ) tvEmailErrorMsg.text = getString(R.string.email_validate_to_use) tvEmailErrorMsg.visibility = View.VISIBLE - flag = true } } diff --git a/app/src/main/java/com/sopt/geonppang/presentation/auth/SignUpNicknameActivity.kt b/app/src/main/java/com/sopt/geonppang/presentation/auth/SignUpNicknameActivity.kt index f34312db..47db7b6c 100644 --- a/app/src/main/java/com/sopt/geonppang/presentation/auth/SignUpNicknameActivity.kt +++ b/app/src/main/java/com/sopt/geonppang/presentation/auth/SignUpNicknameActivity.kt @@ -82,6 +82,9 @@ class SignUpNicknameActivity : viewModel.initNickname() } }.launchIn(lifecycleScope) + viewModel.memberId.flowWithLifecycle(lifecycle).onEach { memberId -> + AmplitudeUtils.setUserId(GUNBBANG + memberId) + }.launchIn(lifecycleScope) } private fun completeSignUp() { @@ -125,5 +128,6 @@ class SignUpNicknameActivity : const val PASSWORD = "password" const val COMPLETE_NICKNAME = "complete_nickname" const val COMPLETE_SIGNUP = "complete_signup" + const val GUNBBANG = "gunbbang" } } diff --git a/app/src/main/java/com/sopt/geonppang/util/AmplitudeUtils.kt b/app/src/main/java/com/sopt/geonppang/util/AmplitudeUtils.kt index 155e7203..e5252f5c 100644 --- a/app/src/main/java/com/sopt/geonppang/util/AmplitudeUtils.kt +++ b/app/src/main/java/com/sopt/geonppang/util/AmplitudeUtils.kt @@ -30,4 +30,8 @@ object AmplitudeUtils { fun trackEventWithMapProperties(eventName: String, properties: Map) { amplitude.track(eventName, properties) } + + fun setUserId(userId: String) { + amplitude.setUserId(userId) + } }