Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
b87c36b
feat: Padding 적용 대신 consume padding 적용
rhkrwngud445 Aug 1, 2025
6a34e47
feat: Home 배경 적용
rhkrwngud445 Aug 1, 2025
2dcad66
feat: 상단 문구 작업
rhkrwngud445 Aug 3, 2025
43baec1
feat: Modifier onNoRippleClick 추가
rhkrwngud445 Aug 3, 2025
4ac3e3f
feat: 홈 바텀 시트 추가
rhkrwngud445 Aug 3, 2025
5a9e312
fix: 외부 modifier을 받아 사용하도록 변경
rhkrwngud445 Aug 3, 2025
d27a66a
feat: contact 모델 추가
rhkrwngud445 Aug 6, 2025
db8a3ad
feat: AddContactButton 추가
rhkrwngud445 Aug 7, 2025
9529884
chore: image 네이밍 수정
rhkrwngud445 Aug 7, 2025
c87143b
feat: 이미지 리소스 추가
rhkrwngud445 Aug 10, 2025
1c770b5
feat: addContactImage 추가
rhkrwngud445 Aug 10, 2025
b4b77dc
feat: contactItem 추가
rhkrwngud445 Aug 10, 2025
8da9be0
feat: conatct 컴포넌트 구성
rhkrwngud445 Aug 10, 2025
066fb81
feat: Modifier dropShadow 확장함수 추가
rhkrwngud445 Aug 10, 2025
27279e4
feat: MonthlyContact 이미지 에셋 추가
rhkrwngud445 Aug 10, 2025
dca3714
feat: MonthlyContact 모델 추가
rhkrwngud445 Aug 10, 2025
34d2043
fix: ContactItem 색상 수정
rhkrwngud445 Aug 10, 2025
d5f62d0
feat: 이번달 챙길 사람 UI 구성
rhkrwngud445 Aug 10, 2025
51e9702
feat: minsdk 27으로 업
rhkrwngud445 Aug 10, 2025
b528a68
chore: minsdk 27으로 업그레이드
rhkrwngud445 Aug 10, 2025
a57ea2e
feat: 챙김빈도에 따른 아이콘 변화 구성
rhkrwngud445 Aug 10, 2025
3c6ea4b
feat: 클릭 이벤트 구성
rhkrwngud445 Aug 10, 2025
9934d47
fix: noRippleClick 이벤트 연결
rhkrwngud445 Aug 10, 2025
8d955ce
refactor: 기본 디자인시스템에서 제공하는 color 블랙 색상으로 변경
rhkrwngud445 Aug 10, 2025
b0db42c
refactor: formatter 생성방식 변경
rhkrwngud445 Aug 10, 2025
c8f9d56
refactor: testable한 구조로 수정
rhkrwngud445 Aug 10, 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
2 changes: 1 addition & 1 deletion Near/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ android {

defaultConfig {
applicationId = "com.alarmy.near"
minSdk = 24
minSdk = 27
targetSdk = 35
versionCode = 1
versionName = "1.0"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.alarmy.near.model

enum class ContactFrequency {
LOW,
MIDDLE,
HIGH,
}
22 changes: 22 additions & 0 deletions Near/app/src/main/java/com/alarmy/near/model/ContactSummary.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.alarmy.near.model

import androidx.compose.runtime.Immutable
import java.time.LocalDate
import java.time.format.DateTimeFormatter

@Immutable
data class ContactSummary(
val id: String,
val name: String,
val profileImageUrl: String,
val lastContactedAt: LocalDate,
val isContacted: Boolean,
val contactFrequency: ContactFrequency,
) {
val formattedDate: String
get() = lastContactedAt.format(formatter)

companion object {
private val formatter = DateTimeFormatter.ofPattern("MMM d, yyyy")
}
}
32 changes: 32 additions & 0 deletions Near/app/src/main/java/com/alarmy/near/model/MonthlyContact.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.alarmy.near.model

import java.time.LocalDate
import java.time.format.DateTimeFormatter
import java.time.temporal.ChronoUnit

data class MonthlyContact(
val friendId: String,
val name: String,
val type: String,
val nextContactAt: String,
) {
fun daysUntilNextContact(today: LocalDate): String {
val daysBetween = getDaysBetween(today)
return when {
daysBetween == 0L -> "D-day"
daysBetween > 0L -> "D-$daysBetween"
else -> "D+${-daysBetween}" // 과거 날짜
}
}

fun isNextContactDay(today: LocalDate): Boolean = getDaysBetween(today) == 0L

private fun getDaysBetween(today: LocalDate): Long {
val targetDate = LocalDate.parse(nextContactAt, formatter)
return ChronoUnit.DAYS.between(today, targetDate)
}

companion object {
private val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
}
}
Loading