From c0c31a23cc66354f6f02221772594cef5ce73441 Mon Sep 17 00:00:00 2001 From: klaus Date: Mon, 10 Mar 2025 16:09:55 +0900 Subject: [PATCH] =?UTF-8?q?Firebase=20=ED=8A=B8=EB=9E=98=ED=82=B9=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20-=20=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85,?= =?UTF-8?q?=20=EB=A1=9C=EA=B7=B8=EC=9D=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +-- .../co/vividnext/sodalive/app/SodaLiveApp.kt | 13 ++----- .../sodalive/tracking/FirebaseTracking.kt | 36 +++++++++++++++++++ .../sodalive/user/login/LoginViewModel.kt | 2 ++ .../sodalive/user/signup/SignUpViewModel.kt | 11 +++--- 5 files changed, 49 insertions(+), 17 deletions(-) create mode 100644 app/src/main/java/kr/co/vividnext/sodalive/tracking/FirebaseTracking.kt diff --git a/app/build.gradle b/app/build.gradle index cf11005..57b2969 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -35,8 +35,8 @@ android { applicationId "kr.co.vividnext.sodalive" minSdk 23 targetSdk 34 - versionCode 149 - versionName "1.30.0" + versionCode 151 + versionName "1.31.0" } buildTypes { diff --git a/app/src/main/java/kr/co/vividnext/sodalive/app/SodaLiveApp.kt b/app/src/main/java/kr/co/vividnext/sodalive/app/SodaLiveApp.kt index 68cd2db..1d65234 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/app/SodaLiveApp.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/app/SodaLiveApp.kt @@ -4,19 +4,17 @@ import android.app.Application import android.content.pm.ApplicationInfo import android.content.pm.PackageManager import android.os.Build -import android.os.Bundle import androidx.appcompat.app.AppCompatDelegate import com.appsflyer.AppsFlyerLib import com.appsflyer.deeplink.DeepLinkResult import com.facebook.FacebookSdk -import com.google.firebase.analytics.ktx.analytics -import com.google.firebase.ktx.Firebase import com.orhanobut.logger.AndroidLogAdapter import com.orhanobut.logger.Logger import kr.co.vividnext.sodalive.BuildConfig import kr.co.vividnext.sodalive.common.ImageLoaderProvider import kr.co.vividnext.sodalive.common.SharedPreferenceManager import kr.co.vividnext.sodalive.di.AppDI +import kr.co.vividnext.sodalive.tracking.FirebaseTracking class SodaLiveApp : Application() { override fun onCreate() { @@ -106,13 +104,6 @@ class SodaLiveApp : Application() { } private fun logUtmInFirebase() { - val firebaseAnalytics = Firebase.analytics - val params = Bundle().apply { - putString("utm_source", SharedPreferenceManager.marketingUtmSource) - putString("utm_medium", SharedPreferenceManager.marketingUtmMedium) - putString("utm_campaign", SharedPreferenceManager.marketingUtmCampaign) - } - - firebaseAnalytics.logEvent("campaign_utm", params) + FirebaseTracking.logUtm() } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/tracking/FirebaseTracking.kt b/app/src/main/java/kr/co/vividnext/sodalive/tracking/FirebaseTracking.kt new file mode 100644 index 0000000..e7f6f9c --- /dev/null +++ b/app/src/main/java/kr/co/vividnext/sodalive/tracking/FirebaseTracking.kt @@ -0,0 +1,36 @@ +package kr.co.vividnext.sodalive.tracking + +import android.os.Bundle +import com.google.firebase.analytics.FirebaseAnalytics +import com.google.firebase.analytics.ktx.analytics +import com.google.firebase.ktx.Firebase +import kr.co.vividnext.sodalive.common.SharedPreferenceManager + +object FirebaseTracking { + fun signUp(method: String) { + val firebaseAnalytics = Firebase.analytics + val params = Bundle().apply { + putString(FirebaseAnalytics.Param.METHOD, method) + } + firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SIGN_UP, params) + } + + fun login(method: String) { + val firebaseAnalytics = Firebase.analytics + val params = Bundle().apply { + putString(FirebaseAnalytics.Param.METHOD, method) + } + firebaseAnalytics.logEvent(FirebaseAnalytics.Event.LOGIN, params) + } + + fun logUtm() { + val firebaseAnalytics = Firebase.analytics + val params = Bundle().apply { + putString("utm_source", SharedPreferenceManager.marketingUtmSource) + putString("utm_medium", SharedPreferenceManager.marketingUtmMedium) + putString("utm_campaign", SharedPreferenceManager.marketingUtmCampaign) + } + + firebaseAnalytics.logEvent("campaign_utm", params) + } +} diff --git a/app/src/main/java/kr/co/vividnext/sodalive/user/login/LoginViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/user/login/LoginViewModel.kt index d2b8f5d..4e9105c 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/user/login/LoginViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/user/login/LoginViewModel.kt @@ -7,6 +7,7 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers import kr.co.vividnext.sodalive.base.BaseViewModel import kr.co.vividnext.sodalive.common.SharedPreferenceManager +import kr.co.vividnext.sodalive.tracking.FirebaseTracking import kr.co.vividnext.sodalive.user.UserRepository class LoginViewModel(private val repository: UserRepository) : BaseViewModel() { @@ -53,6 +54,7 @@ class LoginViewModel(private val repository: UserRepository) : BaseViewModel() { SharedPreferenceManager.nickname = it.data.nickname SharedPreferenceManager.profileImage = it.data.profileImage onSuccess(it.message) + FirebaseTracking.login("email") } else { if (it.message != null) { _toastLiveData.postValue(it.message) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/user/signup/SignUpViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/user/signup/SignUpViewModel.kt index eb5915f..eb68329 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/user/signup/SignUpViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/user/signup/SignUpViewModel.kt @@ -11,6 +11,7 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers import kr.co.vividnext.sodalive.base.BaseViewModel import kr.co.vividnext.sodalive.common.SharedPreferenceManager +import kr.co.vividnext.sodalive.tracking.FirebaseTracking import kr.co.vividnext.sodalive.user.Gender import kr.co.vividnext.sodalive.user.UserRepository import okhttp3.MediaType.Companion.toMediaType @@ -21,8 +22,10 @@ import java.io.File class SignUpViewModel(private val repository: UserRepository) : BaseViewModel() { enum class EmailSignUpStep { - @SerializedName("STEP_1") STEP_1, - @SerializedName("STEP_2") STEP_2 + @SerializedName("STEP_1") + STEP_1, + @SerializedName("STEP_2") + STEP_2 } var email = "" @@ -108,16 +111,16 @@ class SignUpViewModel(private val repository: UserRepository) : BaseViewModel() .observeOn(AndroidSchedulers.mainThread()) .subscribe( { + _isLoading.value = false if (it.success && it.data != null) { SharedPreferenceManager.token = it.data.token SharedPreferenceManager.email = it.data.email SharedPreferenceManager.userId = it.data.userId SharedPreferenceManager.nickname = it.data.nickname SharedPreferenceManager.profileImage = it.data.profileImage - _isLoading.value = false onSuccess(it.message) + FirebaseTracking.signUp("email") } else { - _isLoading.value = false if (it.errorProperty != null && it.message != null) { _signUpErrorLiveData.postValue( SignUpError(it.errorProperty, it.message)