Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
0146d07
FEATURE: 보고서 화면 달력 UI 초안 구현
l5x5l Jul 12, 2026
abc612f
FEATURE: 월별 활동일지 API — 뱃지 · 감정구슬 관련 API호출 로직, UseCase 클래스 구현
l5x5l Jul 14, 2026
7f1aa11
FEATURE: 뱃지 · 월별 감정구슬 호출 UseCase를 SummaryScreenViewModel에 연결
l5x5l Jul 14, 2026
33f7d50
FIX: 월별 감정구슬 조회 데이터 캐싱 로직을 SummaryViewModel 내부에서 ActivityLogLocalData…
l5x5l Jul 15, 2026
5648999
FIX: 월별 뱃지 조회 API 응답값 수정 반영
l5x5l Jul 19, 2026
841ef76
FIX: 추후 BadgeType 추가로 인해 서버 응답 파싱 실패시 사용할 BadgeType Unknown 타입 추가
l5x5l Jul 19, 2026
b192ee4
FEATURE: Badge 표시 UI 구현
l5x5l Jul 21, 2026
a5f94b0
FIX: Badge 표시 UI 수정
l5x5l Jul 22, 2026
0104ed3
Feat: HomeNavigator에 리포트 화면 추가
l5x5l Jul 22, 2026
4a4454f
Feat: 달력 내 감정구슬을 등록일 및 이전/이후 일자 클릭시 로직 구현
l5x5l Jul 26, 2026
c466aca
FIX: 당일 감정구슬 조회 바텀시트 내 감정구슬 이미지 표시 부분 구현
l5x5l Jul 26, 2026
513d4bb
FIX: 감정구슬 등록시 해당 감정구슬이 등록된 월의 감정구슬 리스트를 제거함으로써 리포트 화면 진입시 다시 해당 월의 감정…
l5x5l Jul 27, 2026
f0901c3
FIX: 감정구슬 갱신 관련 불필요 UseCase 제거
l5x5l Jul 27, 2026
d8529d2
FIX: 달력 내 이전/이후 달에 해당하는 날자 중 감정구슬이 등록된 경우 강조 표시되도록 수정
l5x5l Jul 29, 2026
89fa372
FIX: 감정구슬 선택 화면에서 드래그 기반 화면 표시 조건을 600dp에서 700dp로 변경 및 UI 간격 세부 조정
l5x5l Jul 30, 2026
308bd8a
FIX: pagerState.currentPageOffsetFraction 참조로 인한 불필요 recomposition 감소
l5x5l Jul 30, 2026
133b893
FIX: SummaryBadgeView내 Background의 modifier height 속성 제거, SummaryCale…
l5x5l Aug 1, 2026
fb07c1f
FIX: 감정구슬 등록 후 캐시 무효화 메서드를 월별 감정 구슬 조회 로직과 동일한 mutex를 사용하여 동기화하도록 수정
l5x5l Aug 1, 2026
f22d5cc
FIX: 월별 감정구슬 조회 UseCase 및 Repository 메서드를 기존 LocalDate기반에서 YearMonth …
l5x5l Aug 1, 2026
5ce0978
FIX: EmotionDayBottomSheet에서 감정 구슬 이미지 표시 방식을 서버에서 전달받은 이미지 전체를 그대로 표…
l5x5l Aug 1, 2026
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
@@ -1,5 +1,9 @@
package com.threegap.bitnagil.di.data

import com.threegap.bitnagil.data.activitylog.datasource.ActivityLogLocalDataSource
import com.threegap.bitnagil.data.activitylog.datasource.ActivityLogRemoteDataSource
import com.threegap.bitnagil.data.activitylog.datasourceImpl.ActivityLogLocalDataSourceImpl
import com.threegap.bitnagil.data.activitylog.datasourceImpl.ActivityLogRemoteDataSourceImpl
import com.threegap.bitnagil.data.address.datasource.AddressDataSource
import com.threegap.bitnagil.data.address.datasource.LocationDataSource
import com.threegap.bitnagil.data.address.datasourceImpl.AddressDataSourceImpl
Expand Down Expand Up @@ -93,4 +97,12 @@ abstract class DataSourceModule {
@Binds
@Singleton
abstract fun bindReportDataSource(impl: ReportDataSourceImpl): ReportDataSource

@Binds
@Singleton
abstract fun bindActivityLogRemoteDataSource(impl: ActivityLogRemoteDataSourceImpl): ActivityLogRemoteDataSource

@Binds
@Singleton
abstract fun bindActivityLogLocalDataSource(impl: ActivityLogLocalDataSourceImpl): ActivityLogLocalDataSource
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.threegap.bitnagil.di.data

import com.threegap.bitnagil.data.activitylog.repositoryImpl.ActivityLogRepositoryImpl
import com.threegap.bitnagil.data.address.repositoryImpl.AddressRepositoryImpl
import com.threegap.bitnagil.data.auth.repositoryimpl.AuthRepositoryImpl
import com.threegap.bitnagil.data.emotion.repositoryImpl.EmotionRepositoryImpl
Expand All @@ -10,6 +11,7 @@ import com.threegap.bitnagil.data.report.repositoryImpl.ReportRepositoryImpl
import com.threegap.bitnagil.data.routine.repositoryImpl.RoutineRepositoryImpl
import com.threegap.bitnagil.data.user.repositoryImpl.UserRepositoryImpl
import com.threegap.bitnagil.data.version.repositoryImpl.VersionRepositoryImpl
import com.threegap.bitnagil.domain.activitylog.repository.ActivityLogRepository
import com.threegap.bitnagil.domain.address.repository.AddressRepository
import com.threegap.bitnagil.domain.auth.repository.AuthRepository
import com.threegap.bitnagil.domain.emotion.repository.EmotionRepository
Expand Down Expand Up @@ -69,4 +71,8 @@ abstract class RepositoryModule {
@Binds
@Singleton
abstract fun bindReportRepository(impl: ReportRepositoryImpl): ReportRepository

@Binds
@Singleton
abstract fun bindActivityLogRepository(impl: ActivityLogRepositoryImpl): ActivityLogRepository
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.threegap.bitnagil.di.data

import com.threegap.bitnagil.data.activitylog.service.ActivityLogService
import com.threegap.bitnagil.data.address.service.AddressService
import com.threegap.bitnagil.data.auth.service.AuthService
import com.threegap.bitnagil.data.auth.service.LoginService
Expand Down Expand Up @@ -74,4 +75,8 @@ object ServiceModule {
@Provides
@Singleton
fun provideReportService(@Auth retrofit: Retrofit): ReportService = retrofit.create()

@Provides
@Singleton
fun provideActivityLogService(@Auth retrofit: Retrofit): ActivityLogService = retrofit.create()
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import com.threegap.bitnagil.designsystem.modifier.clickableWithoutRipple
import com.threegap.bitnagil.presentation.screen.home.HomeScreenContainer
import com.threegap.bitnagil.presentation.screen.mypage.MyPageScreenContainer
import com.threegap.bitnagil.presentation.screen.recommendroutine.RecommendRoutineScreenContainer
import com.threegap.bitnagil.presentation.screen.summary.SummaryScreenContainer
import com.threegap.bitnagil.presentation.util.statusbar.NavStatusBarEffect
import com.threegap.bitnagil.presentation.util.toast.GlobalBitnagilToast

Expand Down Expand Up @@ -101,6 +102,12 @@ fun HomeNavHost(
navigateToReportHistory = navigateToReportHistory,
)
}

composable<HomeRoute.Summary> {
SummaryScreenContainer(
navigateToYouthPolicies = {} // todo - 청년공고 화면 구현 후 연결 필요
)
}
}
},
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ class HomeNavigator(
destination?.hasRoute(HomeRoute.Home::class) == true -> HomeRoute.Home
destination?.hasRoute(HomeRoute.RecommendRoutine::class) == true -> HomeRoute.RecommendRoutine
destination?.hasRoute(HomeRoute.MyPage::class) == true -> HomeRoute.MyPage
destination?.hasRoute(HomeRoute.Summary::class) == true -> HomeRoute.Summary
else -> null
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ sealed interface HomeRoute {
data object MyPage : HomeRoute {
override val showFloatingButton: Boolean = false
}

@Serializable
data object Summary : HomeRoute {
override val showFloatingButton: Boolean = false
}
}

data class HomeTab(
Expand All @@ -32,5 +37,6 @@ data class HomeTab(
val homeTabList = listOf(
HomeTab(HomeRoute.Home, "홈", R.drawable.ic_home),
HomeTab(HomeRoute.RecommendRoutine, "추천 루틴", R.drawable.ic_routine_recommend),
HomeTab(HomeRoute.Summary, "리포트", R.drawable.ic_report),
HomeTab(HomeRoute.MyPage, "마이페이지", R.drawable.ic_profile),
)
37 changes: 37 additions & 0 deletions app/src/main/res/drawable/ic_report.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M8.807,3.07C8.407,3.07 8.407,3.07 8.007,3.07C7.737,3.07 7.507,3.44 7.297,3.44C7.017,3.44 6.777,3.27 6.577,3.29C6.297,3.32 6.037,3.32 5.847,3.41C5.657,3.51 5.367,3.55 5.217,3.7C5.067,3.85 4.947,4.11 4.857,4.3C4.757,4.49 4.617,4.76 4.587,5.04C4.567,5.24 4.867,5.5 4.867,5.78C4.867,5.99 4.647,6.23 4.647,6.5C4.647,6.9 5.067,6.9 5.067,7.3C5.067,7.7 4.777,7.7 4.777,8.1C4.777,8.5 4.697,8.5 4.697,8.9C4.697,9.3 5.017,9.3 5.017,9.7C5.017,10.1 4.547,10.1 4.547,10.5C4.547,10.9 4.927,10.9 4.927,11.3C4.927,11.7 4.917,11.7 4.917,12.1C4.917,12.5 4.837,12.5 4.837,12.9C4.837,13.3 4.747,13.3 4.747,13.7C4.747,14.1 4.747,14.1 4.747,14.5C4.747,14.9 4.627,14.9 4.627,15.3C4.627,15.7 4.817,15.7 4.817,16.1C4.817,16.37 4.777,16.61 4.787,16.82C4.787,17.1 4.727,17.34 4.747,17.54C4.777,17.82 4.927,18.02 5.017,18.21C5.117,18.4 5.137,18.66 5.287,18.81C5.437,18.96 5.627,19.12 5.817,19.21C6.007,19.31 6.267,19.44 6.537,19.47C6.737,19.49 6.987,19.17 7.267,19.17C7.477,19.17 7.717,19.26 7.987,19.26C8.387,19.26 8.387,19.28 8.787,19.28"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="#171719"
android:strokeLineCap="round"/>
<path
android:pathData="M20.528,4.41C20.428,4.22 20.178,4.21 20.038,4.06C19.898,3.91 19.858,3.7 19.668,3.61C19.478,3.51 19.298,3.53 19.018,3.5C18.818,3.48 18.608,3.29 18.328,3.28C18.118,3.28 17.878,3.21 17.608,3.21C17.208,3.21 17.208,3.55 16.808,3.55C16.408,3.55 16.408,3.14 16.008,3.14C15.608,3.14 15.608,3.27 15.208,3.27C14.808,3.27 14.808,3.12 14.408,3.12C14.008,3.12 14.008,3.09 13.608,3.09C13.208,3.09 13.208,3.09 12.808,3.09C12.408,3.09 12.408,3.27 12.008,3.27C11.608,3.27 11.608,3.11 11.208,3.11C10.808,3.11 10.808,3.11 10.408,3.11C10.008,3.11 10.008,3.3 9.608,3.3C9.208,3.3 9.268,3.2 8.978,3.48C8.688,3.76 8.528,3.7 8.528,4.1C8.528,4.5 8.768,4.5 8.768,4.9C8.768,5.3 8.508,5.3 8.508,5.7C8.508,6.1 8.548,6.1 8.548,6.49C8.548,6.88 8.768,6.89 8.768,7.29C8.768,7.69 9.028,7.69 9.028,8.09C9.028,8.49 9.048,8.49 9.048,8.89C9.048,9.29 8.748,9.29 8.748,9.69C8.748,10.09 9.018,10.09 9.018,10.49C9.018,10.89 9.018,10.89 9.018,11.29C9.018,11.69 8.758,11.69 8.758,12.09C8.758,12.49 8.758,12.49 8.758,12.89C8.758,13.29 8.638,13.29 8.638,13.69C8.638,14.09 8.858,14.09 8.858,14.49C8.858,14.89 8.658,14.89 8.658,15.29C8.658,15.69 8.608,15.69 8.608,16.09C8.608,16.49 8.998,16.49 8.998,16.89C8.998,17.29 8.928,17.29 8.928,17.69C8.928,18.09 8.928,18.09 8.928,18.5C8.928,18.91 8.368,19.15 8.648,19.44C8.928,19.73 9.178,19.07 9.578,19.07C9.978,19.07 9.978,19.35 10.378,19.35C10.778,19.35 10.778,19.45 11.178,19.45C11.578,19.45 11.578,19.53 11.978,19.53C12.378,19.53 12.378,19.56 12.778,19.56C13.178,19.56 13.178,19.3 13.578,19.3C13.978,19.3 13.978,19.41 14.378,19.41C14.778,19.41 14.778,19.34 15.178,19.34C15.578,19.34 15.578,19.06 15.978,19.06C16.378,19.06 16.378,19.34 16.778,19.34C17.178,19.34 17.178,19.34 17.578,19.34C17.848,19.34 18.088,19.46 18.298,19.45C18.578,19.45 18.808,19.3 19.008,19.28C19.288,19.25 19.568,19.32 19.758,19.23C19.948,19.13 20.178,19.01 20.328,18.86C20.478,18.71 20.548,18.45 20.638,18.26C20.738,18.07 20.968,17.85 20.998,17.57C21.018,17.37 20.948,17.12 20.948,16.84C20.948,16.63 20.748,16.39 20.748,16.12C20.748,15.72 20.698,15.72 20.698,15.32C20.698,14.92 20.638,14.92 20.638,14.52C20.638,14.12 20.528,14.12 20.528,13.72C20.528,13.32 21.048,13.32 21.048,12.92C21.048,12.52 21.028,12.52 21.028,12.12C21.028,11.72 20.998,11.72 20.998,11.32C20.998,10.92 21.038,10.92 21.038,10.52C21.038,10.12 20.938,10.12 20.938,9.72C20.938,9.32 20.938,9.32 20.938,8.92C20.938,8.52 20.988,8.52 20.988,8.12C20.988,7.72 20.958,7.72 20.958,7.31C20.958,6.9 21.038,6.91 21.038,6.5C21.038,6.23 20.818,6 20.808,5.79C20.808,5.51 20.588,5.3 20.568,5.1C20.538,4.82 20.588,4.62 20.488,4.43L20.528,4.41Z"
android:fillColor="#171719"/>
<path
android:pathData="M20.528,4.41C20.428,4.22 20.178,4.21 20.038,4.06C19.898,3.91 19.858,3.7 19.668,3.61C19.478,3.51 19.298,3.53 19.018,3.5C18.818,3.48 18.608,3.29 18.328,3.28C18.118,3.28 17.878,3.21 17.608,3.21C17.208,3.21 17.208,3.55 16.808,3.55C16.408,3.55 16.408,3.14 16.008,3.14C15.608,3.14 15.608,3.27 15.208,3.27C14.808,3.27 14.808,3.12 14.408,3.12C14.008,3.12 14.008,3.09 13.608,3.09C13.208,3.09 13.208,3.09 12.808,3.09C12.408,3.09 12.408,3.27 12.008,3.27C11.608,3.27 11.608,3.11 11.208,3.11C10.808,3.11 10.808,3.11 10.408,3.11C10.008,3.11 10.008,3.3 9.608,3.3C9.208,3.3 9.268,3.2 8.978,3.48C8.688,3.76 8.528,3.7 8.528,4.1C8.528,4.5 8.768,4.5 8.768,4.9C8.768,5.3 8.508,5.3 8.508,5.7C8.508,6.1 8.548,6.1 8.548,6.49C8.548,6.88 8.768,6.89 8.768,7.29C8.768,7.69 9.028,7.69 9.028,8.09C9.028,8.49 9.048,8.49 9.048,8.89C9.048,9.29 8.748,9.29 8.748,9.69C8.748,10.09 9.018,10.09 9.018,10.49C9.018,10.89 9.018,10.89 9.018,11.29C9.018,11.69 8.758,11.69 8.758,12.09C8.758,12.49 8.758,12.49 8.758,12.89C8.758,13.29 8.638,13.29 8.638,13.69C8.638,14.09 8.858,14.09 8.858,14.49C8.858,14.89 8.658,14.89 8.658,15.29C8.658,15.69 8.608,15.69 8.608,16.09C8.608,16.49 8.998,16.49 8.998,16.89C8.998,17.29 8.928,17.29 8.928,17.69C8.928,18.09 8.928,18.09 8.928,18.5C8.928,18.91 8.368,19.15 8.648,19.44C8.928,19.73 9.178,19.07 9.578,19.07C9.978,19.07 9.978,19.35 10.378,19.35C10.778,19.35 10.778,19.45 11.178,19.45C11.578,19.45 11.578,19.53 11.978,19.53C12.378,19.53 12.378,19.56 12.778,19.56C13.178,19.56 13.178,19.3 13.578,19.3C13.978,19.3 13.978,19.41 14.378,19.41C14.778,19.41 14.778,19.34 15.178,19.34C15.578,19.34 15.578,19.06 15.978,19.06C16.378,19.06 16.378,19.34 16.778,19.34C17.178,19.34 17.178,19.34 17.578,19.34C17.848,19.34 18.088,19.46 18.298,19.45C18.578,19.45 18.808,19.3 19.008,19.28C19.288,19.25 19.568,19.32 19.758,19.23C19.948,19.13 20.178,19.01 20.328,18.86C20.478,18.71 20.548,18.45 20.638,18.26C20.738,18.07 20.968,17.85 20.998,17.57C21.018,17.37 20.948,17.12 20.948,16.84C20.948,16.63 20.748,16.39 20.748,16.12C20.748,15.72 20.698,15.72 20.698,15.32C20.698,14.92 20.638,14.92 20.638,14.52C20.638,14.12 20.528,14.12 20.528,13.72C20.528,13.32 21.048,13.32 21.048,12.92C21.048,12.52 21.028,12.52 21.028,12.12C21.028,11.72 20.998,11.72 20.998,11.32C20.998,10.92 21.038,10.92 21.038,10.52C21.038,10.12 20.938,10.12 20.938,9.72C20.938,9.32 20.938,9.32 20.938,8.92C20.938,8.52 20.988,8.52 20.988,8.12C20.988,7.72 20.958,7.72 20.958,7.31C20.958,6.9 21.038,6.91 21.038,6.5C21.038,6.23 20.818,6 20.808,5.79C20.808,5.51 20.588,5.3 20.568,5.1C20.538,4.82 20.588,4.62 20.488,4.43L20.528,4.41Z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="#171719"
android:strokeLineCap="round"/>
<path
android:pathData="M12.809,10.25C13.209,10.25 13.209,10 13.609,10C14.009,10 14.009,10.36 14.409,10.36C14.809,10.36 14.809,10.43 15.209,10.43C15.609,10.43 15.609,10.14 16.009,10.14C16.409,10.14 16.409,10.27 16.809,10.27"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
<path
android:pathData="M12.809,7.39C13.209,7.39 13.209,7.49 13.609,7.49C14.009,7.49 14.009,7.17 14.409,7.17C14.809,7.17 14.809,7.39 15.209,7.39C15.609,7.39 15.609,7.41 16.009,7.41C16.409,7.41 16.409,7.09 16.809,7.09"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
</vector>
Loading
Loading