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 @@ -45,10 +45,13 @@ import com.eatssu.android.presentation.cafeteria.review.list.component.OthersRev
import com.eatssu.android.presentation.cafeteria.review.list.component.ReviewItem
import com.eatssu.android.presentation.cafeteria.review.list.component.ReviewProgressBar
import com.eatssu.android.presentation.cafeteria.review.report.ReportActivity
import com.eatssu.android.presentation.util.TrackScreenViewEvent
import com.eatssu.android.presentation.util.showToast
import com.eatssu.common.EventLogger
import com.eatssu.common.UiEvent
import com.eatssu.common.UiState
import com.eatssu.common.enums.MenuType
import com.eatssu.common.enums.ScreenId
import com.eatssu.design_system.component.DelayedLoadingIndicator
import com.eatssu.design_system.component.EatSsuButton
import com.eatssu.design_system.component.EatSsuTopBar
Expand All @@ -75,6 +78,9 @@ fun ReviewListScreen(
viewModel.getReview(menuType, id)
}

// Screen View 로깅
TrackScreenViewEvent(ScreenId.REVIEW_V2_VIEW)

val reviewListState by viewModel.uiState.collectAsStateWithLifecycle()
val uiEvent by viewModel.uiEvent.collectAsStateWithLifecycle(initialValue = null)

Expand Down Expand Up @@ -153,6 +159,7 @@ internal fun ReviewListScreen(
text = "리뷰 작성하기",
onClick = {
onReviewWriteButtonClick()
EventLogger.writeReview() //작성 하러가기가 이벤트임
},
modifier = Modifier
.padding(24.dp)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,11 @@ import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.eatssu.android.domain.model.Review
import com.eatssu.android.presentation.cafeteria.review.write.component.MenuLikeButtonItem
import com.eatssu.android.presentation.util.TrackScreenViewEvent
import com.eatssu.android.presentation.util.showToast
import com.eatssu.common.UiEvent
import com.eatssu.common.UiState
import com.eatssu.common.enums.ScreenId
import com.eatssu.design_system.component.CloseTopBar
import com.eatssu.design_system.component.EatSsuButton
import com.eatssu.design_system.component.RatingBarMedium
Expand All @@ -54,6 +56,9 @@ fun ModifyReviewScreen(
val context = LocalContext.current
val ui by viewModel.uiState.collectAsStateWithLifecycle()

// Screen View 로깅
TrackScreenViewEvent(ScreenId.REVIEW_V2_MODIFY)

// 최초 1회 초기화
LaunchedEffect(Unit) {
viewModel.init(initialRating, initialContent, menuLikeInfoList)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,12 @@ import coil.compose.AsyncImage
import com.eatssu.android.R
import com.eatssu.android.domain.model.MenuMini
import com.eatssu.android.presentation.cafeteria.review.write.component.MenuLikeButtonItem
import com.eatssu.android.presentation.util.TrackScreenViewEvent
import com.eatssu.android.presentation.util.showToast
import com.eatssu.common.UiEvent
import com.eatssu.common.UiState
import com.eatssu.common.enums.MenuType
import com.eatssu.common.enums.ScreenId
import com.eatssu.design_system.component.CloseTopBar
import com.eatssu.design_system.component.EatSsuButton
import com.eatssu.design_system.component.RatingBarMedium
Expand Down Expand Up @@ -71,6 +73,9 @@ fun WriteReviewScreen(
ActivityResultContracts.GetContent()
) { uri: Uri? -> viewModel.setSelectedImage(uri) }

// Screen View 로깅
TrackScreenViewEvent(ScreenId.REVIEW_V2_WRITE)

// 처음 진입 시, 메뉴 불러오기: 기본찬(김치, 단무지, 밥) 등을 거르기 위함
LaunchedEffect(menuType, id, menuName) {
viewModel.loadMenuList(menuType, id, menuName)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import com.eatssu.android.domain.model.MenuMini
import com.eatssu.android.domain.usecase.menu.GetValidMenusOfMealUseCase
import com.eatssu.android.domain.usecase.review.GetImageUrlUseCase
import com.eatssu.android.domain.usecase.review.WriteReviewUseCase
import com.eatssu.common.EventLogger
import com.eatssu.common.UiEvent
import com.eatssu.common.UiState
import com.eatssu.common.enums.MenuType
Expand Down Expand Up @@ -150,6 +151,13 @@ class WriteReviewViewModel @Inject constructor(
return@launch
}

// 리뷰 작성 완료 로깅
EventLogger.completeReview(
rating = editing.rating.toLong(),
likes = editing.likedMenuIds.size.toLong(),
photoAttached = editing.selectedImageUri != null
)

_uiEvent.emit(UiEvent.ShowToast("리뷰가 작성되었습니다.", ToastType.SUCCESS))
_uiEvent.emit(UiEvent.NavigateBack)
}
Expand Down
19 changes: 3 additions & 16 deletions core/common/src/main/java/com/eatssu/common/EventLogger.kt
Original file line number Diff line number Diff line change
Expand Up @@ -64,23 +64,11 @@ object EventLogger {
}
}

fun writeReview() { //todo v2로 바꿀시 v1 제거
logEvent(EventType.WRITE_REVIEW_V1)
fun writeReview() {
logEvent(EventType.WRITE_REVIEW_V2)
}

fun completeReviewV1(
rating: Long,
selection: Long,
photoAttached: Boolean,
) {
logEvent(EventType.COMPLETE_REVIEW_V1) {
param("rating", rating)
param("selection", selection)
param("photo_attached", if (photoAttached) 1 else 0)
}
}

fun completeReviewV2(
fun completeReview(
rating: Long,
likes: Long,
photoAttached: Boolean,
Expand All @@ -92,7 +80,6 @@ object EventLogger {
}
}


fun clickMap() {
logEvent(EventType.CLICK_MAP)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ enum class EventType(val value: String) {
CLICK_DAY("click_day"),
CLICK_MENU("click_menu"),
WRITE_REVIEW_V1("write_review_v1"),
WRITE_REVIEW_V2("write_review_v2"),
COMPLETE_REVIEW_V1("complete_review_v1"),
COMPLETE_REVIEW_V2("complete_review_v2"),
CLICK_MAP("click_map"),
Expand Down
29 changes: 15 additions & 14 deletions core/common/src/main/java/com/eatssu/common/enums/ScreenId.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,21 @@ enum class ScreenId(val value: String) {
HOME_MAIN("MNU_001000"),
HOME_INFO("MNU_002000"),

REVIEW_V1_VIEW("REV_001000_V1"),
REVIEW_V1_WRITE("REV_001001_V1"),
REVIEW_V1_WRITE_RATE("REV_001002_V1"),
REVIEW_V1_LOGIN_REQUIRED("REV_001003_V1"), // TODO: 필수 로그인이라 사용하지 않음
REVIEW_V1_MODIFY("REV_001004_V1"), // TODO: Figma에 존재하지 않음

REVIEW_V2_1("REV_001000_V2"),
REVIEW_V3_1("REV_001000_V3"),
REVIEW_V2_3("REV_001001"),
REVIEW_V2_4("REV_003001"),
REVIEW_V2_5("REV_001003"),

// V1과 V2가 같음
REVIEW_REPORT("REV_002000"),
// REVIEW_V1_VIEW("REV_001000_V1"),
// REVIEW_V1_WRITE("REV_001001_V1"),
// REVIEW_V1_WRITE_RATE("REV_001002_V1"),
// REVIEW_V1_LOGIN_REQUIRED("REV_001003_V1"), // TODO: 필수 로그인이라 사용하지 않음
// REVIEW_V1_MODIFY("REV_001004_V1"), // TODO: Figma에 존재하지 않음

REVIEW_V2_VIEW("REV_001000_V2"),
REVIEW_V2_WRITE("REV_001001_V2"),
REVIEW_V2_MODIFY("REV_003000_V2"),

// REVIEW_V3_VIEW("REV_001000_V3"), // todo 사진 모아보기가 있는 v3 버전
// REVIEW_V3_PHOTO("REV_003000"), //todo 포토리뷰
// REVIEW_V3_PHOTO_DETAIL("REV_003001"), //todo 포토리뷰

REVIEW_REPORT("REV_002000"), // V1과 V2가 같음

MAP_MAIN("MAP_001000"),
MAP_DETAIL("MAP_001001"),
Expand Down