Skip to content

Commit 4ab2df4

Browse files
authored
Merge pull request #60 from near-Contact-Reminder/qa/#58-qa_except_contact
[QA] 연락처 외 수정사항 반영
2 parents c7ed1aa + baebe46 commit 4ab2df4

File tree

17 files changed

+967
-621
lines changed

17 files changed

+967
-621
lines changed

Near/app/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ android {
1818
applicationId = "com.alarmy.near"
1919
minSdk = 27
2020
targetSdk = 35
21-
versionCode = 3
21+
versionCode = 4
2222
versionName = "1.0"
2323

2424
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

Near/app/src/main/java/com/alarmy/near/data/mapper/FriendMapper.kt

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ import com.alarmy.near.network.response.AnniversaryEntity
1313
import com.alarmy.near.network.response.ContactFrequencyEntity
1414
import com.alarmy.near.network.response.FriendEntity
1515
import com.alarmy.near.utils.logger.NearLog
16+
import java.time.LocalDate
17+
import java.time.format.DateTimeFormatter
18+
import java.util.Locale
1619

1720
fun FriendEntity.toModel(): Friend =
1821
Friend(
@@ -26,8 +29,25 @@ fun FriendEntity.toModel(): Friend =
2629
memo = memo,
2730
phone = phone,
2831
lastContactAt = lastContactAt,
32+
isContactToday = lastContactAt?.isToday() ?: false,
33+
lastContactFormat = lastContactAt?.contactFormat(),
2934
)
3035

36+
fun String.contactFormat(): String {
37+
val inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
38+
val outputFormatter = DateTimeFormatter.ofPattern("M월 d일")
39+
40+
val date = LocalDate.parse(this, inputFormatter)
41+
return date.format(outputFormatter)
42+
}
43+
44+
private fun String.isToday(): Boolean {
45+
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.KOREA)
46+
val targetDate = LocalDate.parse(this, formatter)
47+
val today = LocalDate.now()
48+
return targetDate == today
49+
}
50+
3151
fun ContactFrequencyEntity.toModel(): ContactFrequency =
3252
ContactFrequency(
3353
reminderInterval = contactWeek.toReminderInterval(),
@@ -46,7 +66,7 @@ fun Friend.toRequest(): FriendRequest =
4666
name = name,
4767
relation = relation.toString(),
4868
contactFrequency = contactFrequency.toRequest(),
49-
birthday = birthday,
69+
birthday = birthday?.replace(".", "-"),
5070
anniversaryList = anniversaryList.map { it.toRequest() },
5171
memo = memo,
5272
phone = phone,

Near/app/src/main/java/com/alarmy/near/model/Friend.kt

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,9 @@ data class Friend(
2222
val memo: String?,
2323
val phone: String?,
2424
val lastContactAt: String?, // "2025-07-16"
25-
) : Parcelable {
26-
val isContactedToday: Boolean
27-
get() = lastContactAt?.isToday() ?: false
28-
29-
private fun String.isToday(): Boolean {
30-
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.KOREA)
31-
val targetDate = LocalDate.parse(this, formatter)
32-
val today = LocalDate.now()
33-
return targetDate == today
34-
}
35-
}
25+
val lastContactFormat: String? = null, // 친구 상세에 쓰이는 포맷 TODO 추후 UI 모델 분리
26+
val isContactToday: Boolean? = null, // 친구 상세에 쓰이는 포맷 TODO 추후 UI 모델 분리
27+
) : Parcelable
3628

3729
@Serializable
3830
@Parcelize

Near/app/src/main/java/com/alarmy/near/presentation/feature/friendprofile/FriendProfileScreen.kt

Lines changed: 308 additions & 227 deletions
Large diffs are not rendered by default.

Near/app/src/main/java/com/alarmy/near/presentation/feature/friendprofile/FriendProfileViewModel.kt

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import kotlinx.coroutines.flow.launchIn
2121
import kotlinx.coroutines.flow.onEach
2222
import kotlinx.coroutines.flow.receiveAsFlow
2323
import kotlinx.coroutines.flow.update
24-
import kotlinx.coroutines.launch
2524
import java.time.LocalDate
2625
import java.time.format.DateTimeFormatter
2726
import java.util.Locale
@@ -118,6 +117,10 @@ class FriendProfileViewModel
118117
friend =
119118
it.friend.copy(
120119
lastContactAt = getTodayDashFormat(),
120+
lastContactFormat = it.friend.lastContactAt?.contactFormat(),
121+
isContactToday =
122+
it.friend.lastContactAt?.isToday()
123+
?: false,
121124
),
122125
)
123126
}
@@ -146,4 +149,19 @@ class FriendProfileViewModel
146149
_friendFlow.update { (it as FriendState.Success).copy(friend = friend) }
147150
}
148151
}
152+
153+
fun String.contactFormat(): String {
154+
val inputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
155+
val outputFormatter = DateTimeFormatter.ofPattern("M월 d일")
156+
157+
val date = LocalDate.parse(this, inputFormatter)
158+
return date.format(outputFormatter)
159+
}
160+
161+
private fun String.isToday(): Boolean {
162+
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.KOREA)
163+
val targetDate = LocalDate.parse(this, formatter)
164+
val today = LocalDate.now()
165+
return targetDate == today
149166
}
167+
}

Near/app/src/main/java/com/alarmy/near/presentation/feature/friendprofileedittor/FriendProfileEditorScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -576,7 +576,7 @@ fun FriendProfileEditorScreen(
576576
style = NearTheme.typography.B2_14_MEDIUM,
577577
color = NearTheme.colors.GRAY01_888888,
578578
)
579-
Spacer(modifier = Modifier.width(23.dp))
579+
Spacer(modifier = Modifier.width(62.dp))
580580
NearLimitedTextField(
581581
modifier =
582582
Modifier

Near/app/src/main/java/com/alarmy/near/presentation/feature/friendprofileedittor/FriendProfileEditorViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,6 @@ class FriendProfileEditorViewModel
202202

203203
companion object {
204204
private const val MAX_NAME_LENGTH = 20
205-
private const val MAX_MEMO_LENGTH = 200
205+
private const val MAX_MEMO_LENGTH = 100
206206
}
207207
}

Near/app/src/main/java/com/alarmy/near/presentation/feature/friendprofileedittor/uistate/FriendProfileEditorUIState.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ fun FriendProfileEditorUIState.toModel(
5252
relation = relation,
5353
contactFrequency =
5454
contactFrequency,
55-
birthday = birthday.value?.replace(".", "-"),
55+
birthday = birthday.value?.replace("-", "."),
5656
anniversaryList =
5757
anniversaries.map {
5858
Anniversary(

0 commit comments

Comments
 (0)