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 @@ -217,6 +217,14 @@ object AnalyticsConstant {
const val CALLVAN_WRITE_DONE = "callvan_write_done"
const val CALLVAN_WRITE_BACK = "callvan_write_back"
}

object Category {
const val CATEGORY_TIMETABLE = "category_timetable"
const val CATEGORY_LOST_PROPERTY = "category_lost_property"
const val CATEGORY_CAMPUS = "category_campus"
const val CATEGORY_TRANSPORTATION = "category_transportation"
const val CATEGORY_ETC = "category_etc"
}
Comment on lines +221 to +227

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Info] 잘 작성된 코드 — Category 상수 구조

Label.Category nested object를 별도로 분리한 구조가 깔끔합니다. 기존 Label의 flat 상수들과 섞이지 않아 가독성이 좋고, 향후 카테고리 관련 이벤트가 늘어날 때 확장하기 용이한 구조입니다. 👍

}

const val PREVIOUS_PAGE = "previous_page"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package `in`.koreatech.koin.feature.category

import androidx.lifecycle.ViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import `in`.koreatech.koin.core.analytics.AnalyticsConstant
import `in`.koreatech.koin.core.analytics.EventLogger
import `in`.koreatech.koin.domain.usecase.token.IsTokenSavedInDeviceUseCase
import `in`.koreatech.koin.feature.category.component.CategoryMenuId
import javax.inject.Inject
Expand All @@ -25,6 +27,23 @@ class CategoryViewModel @Inject constructor(
}

fun onMenuClick(id: CategoryMenuId) = intent {
logCategoryMenuClick(id)
postSideEffect(CategorySideEffect.NavigateToMenu(id))
}

private fun logCategoryMenuClick(id: CategoryMenuId) {
val (label, value) = when (id) {
CategoryMenuId.TIMETABLE -> AnalyticsConstant.Label.Category.CATEGORY_TIMETABLE to "시간표"
CategoryMenuId.LOST_AND_FOUND -> AnalyticsConstant.Label.Category.CATEGORY_LOST_PROPERTY to "분실물"
CategoryMenuId.OPERATING_INFO -> AnalyticsConstant.Label.Category.CATEGORY_CAMPUS to "교내 시설물 정보"
CategoryMenuId.DINING -> AnalyticsConstant.Label.Category.CATEGORY_CAMPUS to "식단"
CategoryMenuId.STORE -> AnalyticsConstant.Label.Category.CATEGORY_CAMPUS to "주변상점"
CategoryMenuId.BUS_TIMETABLE -> AnalyticsConstant.Label.Category.CATEGORY_TRANSPORTATION to "버스 시간표"
CategoryMenuId.TRANSPORT_SEARCH -> AnalyticsConstant.Label.Category.CATEGORY_TRANSPORTATION to "교통편 조회하기"
CategoryMenuId.CALLVAN -> AnalyticsConstant.Label.Category.CATEGORY_TRANSPORTATION to "콜벤팟 모집"
CategoryMenuId.HOUSING -> AnalyticsConstant.Label.Category.CATEGORY_ETC to "복덕방"
CategoryMenuId.KOIN_BUSINESS -> AnalyticsConstant.Label.Category.CATEGORY_ETC to "코인 for Business"
}
EventLogger.logCampusClickEvent(label, value)
}
}
Loading