Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
b1b5276
초대장 생성 후 홈으로 갈 때 바텀 시트 펼쳐져있는 이슈 수정
eshc123 Aug 20, 2025
6d3c144
Merge pull request #63 from Nexters/feature/home-clear-after-create-p…
eshc123 Aug 20, 2025
fa3bf03
백그라운드에서 푸시 알림 클릭 시 딥링크 이동이 되지 않는 이슈 수정
eshc123 Aug 20, 2025
270c684
홈 모임 목록 위치 및 마진 조정
eshc123 Aug 20, 2025
122cb2a
홈 모임 목록 컴포넌트 배경 알파값 조정
eshc123 Aug 20, 2025
3570f06
모임 상세 조회 Response 수정
eshc123 Aug 20, 2025
9450f55
모임 상세 화면일 때 방장일 때 모임 알림 설정 보이도록 수정
eshc123 Aug 20, 2025
1b5ef53
모임 상세 화면에서 멤버 목록에 '나' 표시
eshc123 Aug 20, 2025
17eda27
홈 모임 목록 하단 패딩 수정
eshc123 Aug 20, 2025
4287f36
홈 화면 텍스트 수정
eshc123 Aug 20, 2025
340cb25
홈 화면 텍스트 수정
eshc123 Aug 20, 2025
78acf12
Merge pull request #64 from Nexters/fix/push-background
eshc123 Aug 20, 2025
d9d9ad7
Merge pull request #65 from Nexters/feature/alarm-setting
eshc123 Aug 20, 2025
ce969c9
홈 화면 배경 알파 수정
eshc123 Aug 20, 2025
136defe
Merge pull request #66 from Nexters/fix/home-design
eshc123 Aug 20, 2025
68881ad
버전 코드, 이름 변경
eshc123 Aug 20, 2025
f86cc05
로그인 애니메이션 추가
eshc123 Aug 21, 2025
af6939d
Merge pull request #68 from Nexters/feature/login-animation
eshc123 Aug 21, 2025
7043354
버전 코드 변경
eshc123 Aug 21, 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
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ fun ApplicationExtension.configureDefaultConfig() {
defaultConfig {
applicationId = "com.plottwist.tuk"
targetSdk = 36
versionCode = 8
versionName = "1.0.3"
versionCode = 10
versionName = "1.0.4"

vectorDrawables {
useSupportLibrary = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,17 @@ fun GatheringDetailData.toDomainModel() : GatheringDetail {
gatheringIntervalDays = this.gatheringIntervalDays,
sentProposalCount = this.sentProposalCount,
receivedProposalCount = this.receivedProposalCount,
members = this.members.map { it.toDomainModel() }
members = this.members.map { it.toDomainModel() },
isHost = this.isHost
)
}

fun GatheringMemberData.toDomainModel() : GatheringMember {
return GatheringMember(
memberId = this.memberId,
memberName = this.memberName
memberName = this.memberName,
isHost = this.isHost,
isMe = this.isMe
)
}

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion core/designsystem/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<string name="home_bottom_sheet_stop_text">멈추기</string>
<string name="home_bottom_create_gathering_description">모임을 생성하고\n넌지시 만남을 제안해 보세요</string>
<string name="home_bottom_create_gathering_button_text">모임 생성하기</string>
<string name="home_last_alarm">마지막 알람</string>
<string name="home_last_alarm">마지막 연락</string>
<string name="home_random_proposal_description_prefix">말이 안되는거 알지만\n\n\n우리,</string>
<string name="home_random_proposal_description_suffix">어때</string>
<string name="home_proposals">받은 초대장</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,15 @@ data class GatheringDetail(
val gatheringIntervalDays: Long = 0,
val sentProposalCount: Int = 0,
val receivedProposalCount: Int = 0,
val members: List<GatheringMember> = emptyList()
val members: List<GatheringMember> = emptyList(),
val isHost: Boolean = false
)

data class GatheringMember(
val memberId: Long = 0,
val memberName: String = ""
val memberName: String = "",
val isHost: Boolean = false,
val isMe: Boolean = false
)

data class Purposes(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,14 @@ data class GatheringDetailData(
val gatheringIntervalDays: Long,
val sentProposalCount: Int,
val receivedProposalCount: Int,
val members: List<GatheringMemberData>
val members: List<GatheringMemberData>,
val isHost: Boolean
)

@Serializable
data class GatheringMemberData(
val memberId: Long,
val memberName: String
val memberName: String,
val isHost: Boolean,
val isMe: Boolean
)
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.plottwist.core.push

import android.app.PendingIntent
import android.content.Intent
import com.google.firebase.messaging.Constants
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
import com.plottwist.core.notification.TukNotificationManager
Expand All @@ -15,20 +16,16 @@ class TukFirebaseMessagingService : FirebaseMessagingService() {
@Inject
lateinit var tukNotificationManager: TukNotificationManager


override fun onNewToken(token: String) {
super.onNewToken(token)
}

override fun onMessageReceived(message: RemoteMessage) {
super.onMessageReceived(message)

message.notification?.let { notificationMessage ->
val title = notificationMessage.title ?: TukNotificationManager.DEFAULT_TITLE
val description = notificationMessage.body ?: TukNotificationManager.DEFAULT_DESCRIPTION
val deeplink = message.data.get("deepLink") ?: ""
sendNotification(title, description, deeplink)
}
val title = message.data.get("title") ?: ""
val description = message.data.get("body") ?: ""
val deeplink = message.data.get("deepLink") ?: ""
sendNotification(title, description, deeplink)
}

private fun sendNotification(title: String, description: String, deeplink: String) {
Expand All @@ -52,4 +49,17 @@ class TukFirebaseMessagingService : FirebaseMessagingService() {
)
)
}


override fun handleIntent(intent: Intent?) {
val newIntent = intent?.apply {
val newExtras = extras?.apply {
remove(Constants.MessageNotificationKeys.ENABLE_NOTIFICATION)
remove("gcm.notification.e")
}
replaceExtras(newExtras)
}
super.handleIntent(newIntent)

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn
Expand Down Expand Up @@ -82,6 +84,7 @@ fun GatheringDetailScreen(
lastAlarm = state.gatheringDetail.lastPushRelativeTime,
sentProposalCount = state.gatheringDetail.sentProposalCount,
receivedProposalCount = state.gatheringDetail.receivedProposalCount,
isHost = state.gatheringDetail.isHost,
onAlarmSettingClick = {
viewModel.handleAction(GatheringDetailAction.ClickAlarmSetting)
},
Expand Down Expand Up @@ -110,6 +113,7 @@ private fun GatheringDetailScreen(
lastAlarm: String,
sentProposalCount: Int,
receivedProposalCount: Int,
isHost: Boolean,
onAlarmSettingClick: () -> Unit,
onProposalClick: () -> Unit,
onSentProposalClick: () -> Unit,
Expand Down Expand Up @@ -138,10 +142,14 @@ private fun GatheringDetailScreen(
}

item(key = Items.ALARM_SETTING) {
GatheringAlarmSetting(
modifier = Modifier.padding(top = 24.dp),
onClick = onAlarmSettingClick
)
if(isHost) {
GatheringAlarmSetting(
modifier = Modifier.padding(top = 24.dp),
onClick = onAlarmSettingClick
)
} else {
Spacer(modifier = Modifier.fillMaxWidth().height(44.dp))
}
}

item(key = Items.GATHERING_INFO) {
Expand Down Expand Up @@ -243,6 +251,7 @@ private fun GatheringDetailScreenPreview() {
lastAlarm = "3달 전",
sentProposalCount = 99,
receivedProposalCount = 99,
isHost = true,
onAlarmSettingClick = {},
onProposalClick = {},
onSentProposalClick = {},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon
Expand All @@ -22,7 +23,9 @@ import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.plottwist.core.designsystem.R
import com.plottwist.core.designsystem.foundation.TukColorTokens.Gray300
import com.plottwist.core.designsystem.foundation.type.TukPretendardTypography
import com.plottwist.core.designsystem.foundation.type.TukSerifTypography
import com.plottwist.core.domain.model.GatheringMember
Expand Down Expand Up @@ -59,15 +62,37 @@ fun GatheringMembers(
)

members.forEach { member ->
Text(
text = member.memberName,
style = TukPretendardTypography.body16R,
color = Color(0xFF1f1f1f)
)
Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(5.dp)
){
Text(
text = member.memberName,
style = TukPretendardTypography.body16R,
color = Color(0xFF1f1f1f)
)
if(member.isMe){
MemberMarkAsMe()
}
}

}
}
}

@Composable
fun MemberMarkAsMe(modifier: Modifier = Modifier) {
Text(
modifier = modifier.background(
color = Gray300,
shape = CircleShape
).padding(horizontal = 5.dp),
text = "나",
style = TukPretendardTypography.body12M.copy(
fontSize = 10.sp
)
)
}

@Composable
fun InvitationMemberText(
Expand Down
38 changes: 26 additions & 12 deletions feature/home/src/main/java/com/plottwist/feature/home/HomeScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -317,27 +317,41 @@ private fun HomeScreen(
HomeAppBar(onMyPageClick)

Column(
modifier = Modifier.fillMaxSize().padding(
bottom = BOTTOM_SHEET_PEEK_HEIGHT.dp
).verticalScroll(verticalScrollState)
modifier = Modifier
.fillMaxSize()
.padding(
bottom = BOTTOM_SHEET_PEEK_HEIGHT.dp
)
.verticalScroll(verticalScrollState)
) {
HomeTitle(
modifier = Modifier.height(HOME_TITLE_HEIGHT.dp),
name = if(userName is UiState.Success) userName.value else ""
)

HomeContent(
modifier = Modifier
.padding(
top = homeContentTopPadding - HOME_TITLE_HEIGHT.dp - 40.dp,
bottom = 40.dp
),
gatherings = if(gatherings is UiState.Success) gatherings.value else Gatherings(),
if(gatherings is UiState.Success && gatherings.value.gatheringOverviews.size >= 2) {
HomeContent(
modifier = Modifier
.padding(top = 80.dp, bottom = 80.dp),
gatherings = gatherings.value,
onAddGatheringClick = onAddGatheringClick,
onGatheringClick = onGatheringClick
)
)
}
}
}
if(gatherings !is UiState.Success || gatherings.value.gatheringOverviews.size < 2){
HomeContent(
modifier = Modifier.align(Alignment.Center),
gatherings = if(gatherings is UiState.Success && gatherings.value.gatheringOverviews.size <= 1) {
gatherings.value
} else {
Gatherings()
},
onAddGatheringClick = onAddGatheringClick,
onGatheringClick = onGatheringClick
)
}

if(proposalTags is UiState.Success) {
HomeBottomSheet(
modifier = Modifier
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.plottwist.core.designsystem.R
import com.plottwist.core.designsystem.foundation.TukColorTokens.Gray000
import com.plottwist.core.designsystem.foundation.TukColorTokens.Gray800
import com.plottwist.core.designsystem.foundation.TukColorTokens.Gray900
import com.plottwist.core.designsystem.foundation.type.TukPretendardTypography
import com.plottwist.core.domain.model.Gatherings

Expand All @@ -46,7 +48,7 @@ fun GatheringsCard(
blur = 6.dp
)
.background(
color = Color(0x35FFFFFF),
color = Color(0x88FFFFFF),
shape = RoundedCornerShape(20.dp)
)
.border(
Expand All @@ -63,7 +65,7 @@ fun GatheringsCard(
)
if(gatherings.gatheringOverviews.isNotEmpty()) {
HorizontalDivider(
color = Color(0xFFEFEFEF)
color = Color(0xFFEAEAEA)
)

gatherings.gatheringOverviews.forEach { gathering ->
Expand Down Expand Up @@ -107,7 +109,7 @@ fun CreateGatheringText(
Text(
text = "모임 생성",
style = TukPretendardTypography.body14R,
color = Color(0xFF1F1F1F)
color = Gray900
)
}
}
Expand All @@ -123,7 +125,7 @@ fun GatheringItem(
modifier
.fillMaxWidth()
.clip(RoundedCornerShape(20.dp))
.padding(vertical = 12.dp)
.padding(vertical = 6.dp)
.clickable(
interactionSource = null,
indication = null
Expand All @@ -142,22 +144,22 @@ fun GatheringItem(
style = TukPretendardTypography.body14M,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
color = Color(0xFF1f1f1f)
color = Gray900
)

Row (
horizontalArrangement = Arrangement.spacedBy(5.dp)
) {
Text(
text = stringResource(R.string.home_last_alarm),
style = TukPretendardTypography.body14R,
color = Color(0xFF888888)
style = TukPretendardTypography.body12R,
color = Gray800
)

Text(
text = lastAlarm,
style = TukPretendardTypography.body14R,
color = Color(0xFF888888)
style = TukPretendardTypography.body12R,
color = Gray800
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ import androidx.compose.ui.unit.IntOffset
import androidx.compose.ui.unit.dp
import com.plottwist.core.designsystem.R
import com.plottwist.core.designsystem.foundation.TukColorTokens.Gray800
import com.plottwist.core.designsystem.foundation.TukColorTokens.Gray900
import com.plottwist.core.designsystem.foundation.type.TukSerifTypography
import com.plottwist.core.ui.extension.borderExceptBottom
import com.plottwist.core.ui.extension.dropShadow
Expand Down Expand Up @@ -264,7 +265,8 @@ fun DraggableBottomSheet(
) {
Text(
text = stringResource(R.string.home_bottom_sheet_nudging_text),
style = TukSerifTypography.body14R
style = TukSerifTypography.body14R,
color = Gray900
)
}
}
Expand Down
Loading
Loading