Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ import com.runnect.runnect.binding.BindingActivity
import com.runnect.runnect.data.dto.CourseData
import com.runnect.runnect.databinding.ActivityCountDownBinding
import com.runnect.runnect.presentation.run.RunActivity
import com.runnect.runnect.util.analytics.Analytics
import com.runnect.runnect.util.analytics.EventName
import com.runnect.runnect.util.analytics.EventName.Param
import com.runnect.runnect.util.extension.getCompatibleParcelableExtra
import timber.log.Timber

Expand All @@ -21,6 +24,11 @@ class CountDownActivity: BindingActivity<ActivityCountDownBinding>(R.layout.acti
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

Analytics.logEvent(
EventName.VIEW_COUNTDOWN,
Param.COURSE_ID to courseData?.courseId
)

val intentToRun = Intent(this, RunActivity::class.java)
val numList = arrayListOf(
AppCompatResources.getDrawable(this, R.drawable.anim_num1),
Expand All @@ -32,6 +40,10 @@ class CountDownActivity: BindingActivity<ActivityCountDownBinding>(R.layout.acti
}

override fun onBackPressed() {
Analytics.logEvent(
EventName.CLICK_CANCEL_COUNTDOWN,
Param.COURSE_ID to courseData?.courseId
)
finish()
overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,10 @@ import com.runnect.runnect.presentation.profile.ProfileActivity
import com.runnect.runnect.presentation.scheme.SchemeActivity
import com.runnect.runnect.presentation.state.UiStateV2
import com.runnect.runnect.util.analytics.Analytics
import com.runnect.runnect.util.analytics.EventName
import com.runnect.runnect.util.analytics.EventName.EVENT_CLICK_SHARE
import com.runnect.runnect.util.analytics.EventName.EVENT_CLICK_USER_PROFILE
import com.runnect.runnect.util.analytics.EventName.Param
import com.runnect.runnect.util.analytics.EventName.VIEW_COURSE_DETAIL
import com.runnect.runnect.util.custom.dialog.CommonDialogFragment
import com.runnect.runnect.util.custom.dialog.CommonDialogText
Expand Down Expand Up @@ -187,6 +189,11 @@ class CourseDetailActivity :
}

private fun navigateToCountDownScreen() {
Analytics.logEvent(
EventName.CLICK_RUN_FROM_DETAIL,
Param.COURSE_ID to courseDetail.courseId,
Param.DISTANCE_M to courseDetail.distance
)
Intent(
this@CourseDetailActivity,
CountDownActivity::class.java
Expand Down Expand Up @@ -545,6 +552,12 @@ class CourseDetailActivity :
val response = state.data
binding.tvCourseDetailScrapCount.text = response.scrapCount.toString()
binding.ivCourseDetailScrap.isSelected = response.scrapTF
if (!response.scrapTF) {
Analytics.logEvent(
EventName.CLICK_UNSCRAP,
Param.COURSE_ID to publicCourseId
)
}
}

is UiStateV2.Failure -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ import com.runnect.runnect.presentation.discover.pick.adapter.DiscoverPickAdapte
import com.runnect.runnect.presentation.discover.upload.DiscoverUploadActivity
import com.runnect.runnect.presentation.search.SearchActivity
import com.runnect.runnect.presentation.state.UiStateV2
import com.runnect.runnect.util.analytics.Analytics
import com.runnect.runnect.util.analytics.EventName
import com.runnect.runnect.util.custom.deco.GridSpacingItemDecoration
import com.runnect.runnect.util.extension.applyScreenEnterAnimation
import com.runnect.runnect.util.extension.navigateToPreviousScreenWithAnimation
Expand All @@ -30,6 +32,7 @@ class DiscoverPickActivity :
super.onCreate(savedInstanceState)
binding.vm = viewModel
binding.lifecycleOwner = this
Analytics.logEvent(EventName.VIEW_DISCOVER_PICK)

initLayout()
addListener()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ import com.runnect.runnect.presentation.discover.model.EditableDiscoverCourse
import com.runnect.runnect.presentation.discover.search.adapter.DiscoverSearchAdapter
import com.runnect.runnect.presentation.state.UiStateV2
import com.runnect.runnect.util.analytics.Analytics
import com.runnect.runnect.util.analytics.EventName
import com.runnect.runnect.util.analytics.EventName.EVENT_CLICK_TRY_SEARCH_COURSE
import com.runnect.runnect.util.analytics.EventName.Param
import com.runnect.runnect.util.analytics.EventName.VIEW_COURSE_SEARCH
import com.runnect.runnect.util.custom.deco.GridSpacingItemDecoration
import com.runnect.runnect.util.extension.applyScreenEnterAnimation
Expand Down Expand Up @@ -173,6 +175,11 @@ class DiscoverSearchActivity :
dismissProgressBar()
showRecyclerView()
searchAdapter.submitList(state.data)
Analytics.logEvent(
EventName.ACTION_COURSE_SEARCH_EXECUTE,
Param.KEYWORD to binding.etDiscoverSearchTitle.text.toString(),
Param.RESULT_COUNT to (state.data?.size ?: 0)
)
}

else -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ import com.runnect.runnect.presentation.event.ScreenRefreshEvent
import com.runnect.runnect.presentation.event.ScreenRefreshEventBus
import com.runnect.runnect.presentation.state.UiState
import com.runnect.runnect.util.analytics.Analytics
import com.runnect.runnect.util.analytics.EventName
import com.runnect.runnect.util.analytics.EventName.EVENT_CLICK_COURSE_UPLOAD
import com.runnect.runnect.util.analytics.EventName.Param
import com.runnect.runnect.util.analytics.EventName.VIEW_COURSE_UPLOAD
import com.runnect.runnect.util.extension.applyScreenExitAnimation
import com.runnect.runnect.util.extension.getCompatibleParcelableExtra
Expand Down Expand Up @@ -113,6 +115,11 @@ class DiscoverUploadActivity :
}

private fun handleReturnToDiscover() {
Analytics.logEvent(
EventName.ACTION_COURSE_UPLOAD_COMPLETE,
Param.COURSE_ID to viewModel.id,
Param.DISTANCE_M to uploadCourse?.distance?.toDoubleOrNull()
)
showToast("업로드 완료!")
binding.indeterminateBar.isVisible = false

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.runnect.runnect.presentation.draw

import kotlin.math.roundToInt
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.Color
Expand Down Expand Up @@ -49,6 +50,7 @@ import com.runnect.runnect.presentation.state.UiState
import com.runnect.runnect.util.DepartureSetMode
import com.runnect.runnect.util.analytics.Analytics
import com.runnect.runnect.util.analytics.EventName
import com.runnect.runnect.util.analytics.EventName.Param
import com.runnect.runnect.util.custom.dialog.RequireLoginDialogFragment
import com.runnect.runnect.util.extension.PermissionUtil
import com.runnect.runnect.util.extension.hideKeyboard
Expand Down Expand Up @@ -110,6 +112,7 @@ class DrawActivity : BindingActivity<ActivityDrawBinding>(R.layout.activity_draw
binding.model = viewModel
binding.lifecycleOwner = this

Analytics.logEvent(EventName.VIEW_COURSE_DRAWING)
initMapView()
getSearchIntent()
addObserver()
Expand Down Expand Up @@ -492,6 +495,14 @@ class DrawActivity : BindingActivity<ActivityDrawBinding>(R.layout.activity_draw
UiState.Loading -> showLoadingBar()
UiState.Success -> {
hideLoadingBar()
val distanceM = ((viewModel.distanceSum.value ?: 0f) * 1000f).roundToInt()
Analytics.logEvent(
EventName.ACTION_COURSE_DRAWING_COMPLETE,
Param.COURSE_ID to viewModel.uploadCourseId,
Param.DISTANCE_M to distanceM,
Param.POINT_COUNT to touchList.size,
Param.DEPARTURE_NAME to viewModel.departureName
)
notifyCreateFinish()
}

Expand Down Expand Up @@ -552,6 +563,12 @@ class DrawActivity : BindingActivity<ActivityDrawBinding>(R.layout.activity_draw
dialog.dismiss()
}
}
val resultDistanceM = ((viewModel.distanceSum.value ?: 0f) * 1000f).roundToInt()
Analytics.logEvent(
EventName.VIEW_COURSE_COMPLETE_RESULT,
Param.COURSE_ID to viewModel.uploadCourseId,
Param.DISTANCE_M to resultDistanceM
)
dialog.show()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,10 @@ import com.runnect.runnect.databinding.ActivityEndRunBinding
import com.runnect.runnect.presentation.MainActivity
import com.runnect.runnect.presentation.state.UiState
import com.runnect.runnect.util.analytics.Analytics
import com.runnect.runnect.util.analytics.EventName
import com.runnect.runnect.util.analytics.EventName.EVENT_CLICK_BACK_RUNNING_TRACKING
import com.runnect.runnect.util.analytics.EventName.EVENT_CLICK_STORE_RUNNING_TRACKING
import com.runnect.runnect.util.analytics.EventName.Param
import com.runnect.runnect.util.custom.toast.RunnectToast
import com.runnect.runnect.util.extension.hideKeyboard
import com.runnect.runnect.util.extension.round
Expand Down Expand Up @@ -60,6 +62,15 @@ class EndRunActivity: BindingActivity<ActivityEndRunBinding>(R.layout.activity_e
backBtn()
editTextController()
getIntentValue()

val totalTimeSec = ((runToEndRunData.timerHour ?: 0) * 3600) + ((runToEndRunData.timerMinute ?: 0) * 60) + (runToEndRunData.timerSecond ?: 0)
Analytics.logEvent(
EventName.VIEW_END_RUN,
Param.COURSE_ID to runToEndRunData.courseId,
Param.TOTAL_DISTANCE_M to runToEndRunData.totalDistance,
Param.TOTAL_TIME_SEC to totalTimeSec
)

setTimerViewModelValue()
transferMinuteForCalcPace()
setPaceViewModelValue()
Expand Down Expand Up @@ -157,6 +168,10 @@ class EndRunActivity: BindingActivity<ActivityEndRunBinding>(R.layout.activity_e
private fun saveRecord() {
binding.btnEndRunSave.setOnClickListener {
Analytics.logClickedItemEvent(EVENT_CLICK_STORE_RUNNING_TRACKING)
Analytics.logEvent(
EventName.CLICK_SAVE_RUN_RECORD,
Param.COURSE_ID to viewModel.courseId.value
)
viewModel.postRecord(
RequestPostRunningHistory(
courseId = viewModel.courseId.value!!,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ import com.runnect.runnect.binding.BindingActivity
import com.runnect.runnect.databinding.ActivityGiveNicknameBinding
import com.runnect.runnect.presentation.MainActivity
import com.runnect.runnect.presentation.state.UiState
import com.runnect.runnect.util.analytics.Analytics
import com.runnect.runnect.util.analytics.EventName
import com.runnect.runnect.util.analytics.EventName.Param
import com.runnect.runnect.util.extension.hideKeyboard
import com.runnect.runnect.util.extension.showToast
import com.runnect.runnect.util.preference.AuthUtil.saveToken
Expand All @@ -24,6 +27,7 @@ class GiveNicknameActivity :
super.onCreate(savedInstanceState)
binding.vm = viewModel
binding.lifecycleOwner = this
Analytics.logEvent(EventName.VIEW_GIVE_NICKNAME)
addListener()
addObserver()
}
Expand Down Expand Up @@ -70,6 +74,10 @@ class GiveNicknameActivity :
}

private fun handleSuccessfulSignup() {
Analytics.logEvent(
EventName.ACTION_NICKNAME_COMPLETE,
Param.NICKNAME_LENGTH to (viewModel.nickName.value?.length ?: 0)
)
saveSignTokenInfo()
showToast("회원가입 되었습니다")
binding.indeterminateBar.isVisible = false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,10 @@ import com.runnect.runnect.databinding.ActivityLoginBinding
import com.runnect.runnect.presentation.MainActivity
import com.runnect.runnect.presentation.state.UiState
import com.runnect.runnect.util.analytics.Analytics
import com.runnect.runnect.util.analytics.EventName
import com.runnect.runnect.util.analytics.EventName.EVENT_CLICK_VISITOR
import com.runnect.runnect.util.analytics.EventName.EVENT_VIEW_SOCIAL_LOGIN
import com.runnect.runnect.util.analytics.EventName.Param
import com.runnect.runnect.util.extension.showSnackbar
import com.runnect.runnect.util.extension.showToast
import com.runnect.runnect.util.preference.AuthUtil.getAccessToken
Expand Down Expand Up @@ -106,19 +108,37 @@ class LoginActivity :
}
}
viewModel.errorMessage.observe(this) {
val method = if (::socialLogin.isInitialized && socialLogin is GoogleLogin) "google" else "kakao"
Analytics.logEvent(
EventName.ACTION_LOGIN_FAIL,
Param.METHOD to method,
Param.ERROR_CODE to "LOGIN_FAIL"
)
showSnackbar(binding.root, it)
Timber.tag(ContentValues.TAG).d("로그인 통신 실패: $it")
}
}

private fun handleSuccessfulLogin() {
val method = if (::socialLogin.isInitialized && socialLogin is GoogleLogin) "google" else "kakao"
Analytics.logEvent(
EventName.ACTION_LOGIN_SUCCESS,
Param.METHOD to method,
Param.IS_NEW_USER to false
)
saveSignTokenInfo()
moveToMain()
Toast.makeText(this@LoginActivity, MESSAGE_LOGIN_SUCCESS, Toast.LENGTH_SHORT).show()
binding.indeterminateBar.isVisible = false
}

private fun handleSuccessfulSignup() {
val method = if (::socialLogin.isInitialized && socialLogin is GoogleLogin) "google" else "kakao"
Analytics.logEvent(
EventName.ACTION_LOGIN_SUCCESS,
Param.METHOD to method,
Param.IS_NEW_USER to true
)
saveSignTokenInfo()
moveToGiveNickName()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ import com.runnect.runnect.R
import com.runnect.runnect.binding.BindingActivity
import com.runnect.runnect.databinding.ActivityMyPageEditNameBinding
import com.runnect.runnect.presentation.state.UiState
import com.runnect.runnect.util.analytics.Analytics
import com.runnect.runnect.util.analytics.EventName
import com.runnect.runnect.util.analytics.EventName.Param
import com.runnect.runnect.util.extension.hideKeyboard
import com.runnect.runnect.util.extension.showToast
import dagger.hilt.android.AndroidEntryPoint
Expand All @@ -25,6 +28,7 @@ class MyPageEditNameActivity :
super.onCreate(savedInstanceState)
binding.vm = viewModel
binding.lifecycleOwner = this
Analytics.logEvent(EventName.VIEW_EDIT_PROFILE)
initLayout()
addListener()
addObserver()
Expand Down Expand Up @@ -66,6 +70,10 @@ class MyPageEditNameActivity :
UiState.Loading -> binding.indeterminateBar.isVisible = true
UiState.Success -> {
binding.indeterminateBar.isVisible = false
Analytics.logEvent(
EventName.ACTION_EDIT_PROFILE_COMPLETE,
Param.CHANGED_FIELDS to "nickname"
)
setResult(
RESULT_OK,
Intent().putExtra(EXTRA_NICK_NAME, viewModel.nickName.value)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ import com.runnect.runnect.data.dto.HistoryInfoDTO
import com.runnect.runnect.databinding.ActivityMyHistoryDetailBinding
import com.runnect.runnect.presentation.mypage.history.MyHistoryActivity
import com.runnect.runnect.presentation.state.UiStateV2
import com.runnect.runnect.util.analytics.Analytics
import com.runnect.runnect.util.analytics.EventName
import com.runnect.runnect.util.analytics.EventName.Param
import com.runnect.runnect.util.custom.dialog.CommonDialogFragment
import com.runnect.runnect.util.custom.dialog.CommonDialogText
import com.runnect.runnect.util.custom.popup.PopupItem
Expand Down Expand Up @@ -51,6 +54,10 @@ class MyHistoryDetailActivity :
val runningHistory: HistoryInfoDTO? =
bundle?.getCompatibleSerializableExtra(HISTORY_BUNDLE_KEY)
initRunningHistory(runningHistory)
Analytics.logEvent(
EventName.VIEW_MY_HISTORY_DETAIL,
Param.RECORD_ID to runningHistory?.id
)
enterReadMode()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ import com.runnect.runnect.data.dto.RewardStampDTO
import com.runnect.runnect.databinding.ActivityMyRewardBinding
import com.runnect.runnect.presentation.mypage.reward.adapter.MyRewardAdapter
import com.runnect.runnect.presentation.state.UiState
import com.runnect.runnect.util.analytics.Analytics
import com.runnect.runnect.util.analytics.EventName
import com.runnect.runnect.util.custom.deco.GridSpacingItemDecoration
import com.runnect.runnect.util.extension.getStampResId
import com.runnect.runnect.util.extension.navigateToPreviousScreenWithAnimation
Expand Down Expand Up @@ -44,6 +46,7 @@ class MyRewardActivity : BindingActivity<ActivityMyRewardBinding>(R.layout.activ
super.onCreate(savedInstanceState)
binding.vm = viewModel
binding.lifecycleOwner = this
Analytics.logEvent(EventName.VIEW_MY_REWARD)
viewModel.getStampList()

initLayout()
Expand Down
Loading
Loading