Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
1f23e2a
chore: 1.2.3 (9) 버전 코드 변경
DongChyeon Nov 8, 2025
ff64a0d
chore/#231: AndroidJUnitRunner를 testInstrumentationRunner의 기본값으로 설정
DongChyeon Nov 11, 2025
1f05120
test/#231: 다음 세션이 없을 때 출석 버튼 미노출 테스트 추가
DongChyeon Nov 11, 2025
2c1d8d9
fix/#231: 세션 진행 상태를 서버에서 한글, 영어로 주는 상황에 대해 매핑 설정
DongChyeon Nov 11, 2025
fe51484
fix/#231: 세션 상태에 따른 칩 색깔 수정
DongChyeon Nov 11, 2025
e837c66
fix/#231: TodaySessionCard 컴포넌트 간격 수정
DongChyeon Nov 11, 2025
1dee4ed
test/#231: 오늘 세션 출석 상태에 따른 UI 표시 테스트 추가
DongChyeon Nov 11, 2025
7ffed81
feat/#231: UpcomingSession 진행 상황, 공지사항 필드값 추가
DongChyeon Nov 14, 2025
7bd810d
feat/#231: HomeViewModel 불필요한 API 호출 제거
DongChyeon Nov 14, 2025
9281e16
feat/#231: notices, todaySession을 upcomingSession를 사용
DongChyeon Nov 14, 2025
51ef220
feat/#231: home 모듈 문자열 리소스 정리
DongChyeon Nov 14, 2025
a3ada7d
refactor/#231: 사용하지 않는 UI, 클래스 정리
DongChyeon Nov 14, 2025
7be6506
test/#231: 다음 세션이 없을 때 상세보기 미노출 테스트 추가
DongChyeon Nov 14, 2025
0ad8ba9
test/#231: 누락된 assertExists 추가
DongChyeon Nov 14, 2025
72996ce
refactor/#231: 홈 화면 UI 공통 문자열 리소스 적용 및 ProfileSection 제거
DongChyeon Nov 15, 2025
6d1cb45
refactor/#231: 출석 상태 텍스트를 테스트 라벨 대상으로 테스트
DongChyeon Nov 16, 2025
5857880
Merge pull request #232 from YAPP-admin/feature/#231-attendance-statu…
DongChyeon Nov 16, 2025
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
4 changes: 2 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ android {

defaultConfig {
applicationId = "com.yapp.app.official"
versionCode = 8
versionName = "1.1.3"
versionCode = 9
versionName = "1.2.3"

targetSdk = 35

Expand Down
1 change: 1 addition & 0 deletions build-logic/src/main/java/com/yapp/KotlinAndroid.kt
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ internal fun Project.configureKotlinAndroid() {
}
}

defaultConfig.testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
configureKotlinCommon(jvmTarget = JvmTarget.JVM_17)
val libs = extensions.libs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,5 @@ fun SessionResponse.Session.toHomeSessionModel(): HomeSession {

fun String.toSessionProgressPhase() =
SessionProgressPhase.entries.firstOrNull { it.title == this }
?: SessionProgressPhase.PENDING
?: SessionProgressPhase.entries.firstOrNull { it.name == this }
?: SessionProgressPhase.NONE
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ data class UpcomingSessionAttendanceResponse(
val place: String?,
val relativeDays: Int,
val canCheckIn: Boolean,
val status: String?
val status: String?,
val progressPhase: String,
val notices: List<UpcomingSessionNoticeResponse>
) {
fun toUpcomingSessionInfoModel() = UpcomingSessionInfo(
sessionId = sessionId,
Expand All @@ -31,6 +33,8 @@ data class UpcomingSessionAttendanceResponse(
location = place,
remainingDays = max(0, -relativeDays),
canCheckIn = canCheckIn,
status = status.toAttendanceStatus()
status = status.toAttendanceStatus(),
progressPhase = progressPhase.toSessionProgressPhase(),
notices = notices.map { it.toModel() }
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.yapp.core.data.remote.model.response

import com.yapp.model.UpcomingSessionNotice
import kotlinx.serialization.Serializable

@Serializable
data class UpcomingSessionNoticeResponse(
val id: String,
val title: String
)

fun UpcomingSessionNoticeResponse.toModel() = UpcomingSessionNotice(
id = id,
title = title,
)
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
Expand Down Expand Up @@ -46,6 +47,7 @@ fun YappSolidButtonBasic(
CompositionLocalProvider(value = LocalRippleConfiguration provides colors.ripple) {
Box(
modifier = modifier
.semantics(mergeDescendants = true) {}
.clip(shape = shape)
.background(colors.backgroundColor(enable = enable))
.yappClickable(
Expand Down
18 changes: 5 additions & 13 deletions core/model/src/main/java/com/yapp/model/Sessions.kt
Original file line number Diff line number Diff line change
@@ -1,18 +1,10 @@
package com.yapp.model

import java.time.LocalDate

data class HomeSessionDetail(
val notices: List<NoticeInfo>
)
data class HomeSessionList(
val sessions: List<HomeSession>,
val upcomingSessionId: String?,
val upcomingNotice: List<NoticeInfo> = emptyList()
) {
val lastSessions: HomeSession?
get() = sessions.find { session -> LocalDate.parse(session.date) == LocalDate.now() }
}
)

data class HomeSession(
val id: String,
Expand All @@ -37,9 +29,9 @@ data class HomeSession(
}

enum class SessionProgressPhase(val title: String) {
DONE("완료"),
DONE("종료"),
ONGOING("진행 중"),
TODAY("당일"),
UPCOMING("임박"),
NONE("없음"),
PENDING("예정");
PENDING("예정"),
NONE("없음");
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,7 @@ data class UpcomingSessionInfo(
val location: String?,
val remainingDays: Int,
val canCheckIn: Boolean,
val status: AttendanceStatus?
val status: AttendanceStatus?,
val progressPhase: SessionProgressPhase,
val notices: List<UpcomingSessionNotice>
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.yapp.model

data class UpcomingSessionNotice(
val id: String,
val title: String,
)
32 changes: 19 additions & 13 deletions core/ui/src/main/java/com/yapp/core/ui/component/SessionChip.kt
Original file line number Diff line number Diff line change
@@ -1,50 +1,56 @@
package com.yapp.core.ui.component

import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.yapp.core.designsystem.component.chip.ChipColorType
import com.yapp.core.designsystem.component.chip.YappChipSmall
import com.yapp.core.designsystem.theme.YappTheme
import com.yapp.model.SessionProgressPhase

@Composable
fun SessionChip(
modifier: Modifier = Modifier,
progressPhase: SessionProgressPhase,
) {
val colorType = when (progressPhase) {
SessionProgressPhase.TODAY -> {
ChipColorType.Main
val (colorType, isFill) = when (progressPhase) {
SessionProgressPhase.TODAY, SessionProgressPhase.ONGOING -> {
ChipColorType.Main to true
}
SessionProgressPhase.DONE, SessionProgressPhase.PENDING -> {
ChipColorType.Gray
SessionProgressPhase.DONE -> {
ChipColorType.Gray to true
}
SessionProgressPhase.UPCOMING -> {
ChipColorType.Sub
SessionProgressPhase.PENDING -> {
ChipColorType.Sub to false
}
SessionProgressPhase.NONE -> {
ChipColorType.Yellow
ChipColorType.Yellow to true
}
}

YappChipSmall(
modifier = modifier,
text = progressPhase.title,
colorType = colorType,
isFill = true
isFill = isFill
)
}

@Preview(showBackground = true)
@Composable
private fun SessionChipPreview() {
YappBackground {
Row {
YappTheme {
Column(
verticalArrangement = Arrangement.spacedBy(4.dp),
) {
SessionChip(progressPhase = SessionProgressPhase.TODAY)
SessionChip(progressPhase = SessionProgressPhase.DONE)
SessionChip(progressPhase = SessionProgressPhase.PENDING)
SessionChip(progressPhase = SessionProgressPhase.UPCOMING)
SessionChip(progressPhase = SessionProgressPhase.ONGOING)
SessionChip(progressPhase = SessionProgressPhase.NONE)
}
}
}
Expand Down

This file was deleted.

Loading