Skip to content

Commit

Permalink
[PC-476] Splash에서 ValueTalk, ValuePick을 받도록 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
tgyuuAn committed Feb 1, 2025
1 parent 7255242 commit a7633bf
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 51 deletions.
1 change: 0 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission
android:name="android.permission.POST_NOTIFICATIONS"
tools:targetApi="33" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class MatchingRepositoryImpl @Inject constructor(
private val matchingDataSource: MatchingDataSource,
private val localMatchingDataSource: LocalMatchingDataSource,
) : MatchingRepository {
override suspend fun loadValuePick(): Result<Unit> = suspendRunCatching {
override suspend fun loadValuePicks(): Result<Unit> = suspendRunCatching {
val valuePicks = matchingDataSource.loadValuePicks()
.getOrThrow()
.toDomain()
Expand All @@ -43,7 +43,7 @@ class MatchingRepositoryImpl @Inject constructor(
localMatchingDataSource.replaceValuePicks(valuePickEntities)
}

override suspend fun loadValueTalk(): Result<Unit> = suspendRunCatching {
override suspend fun loadValueTalks(): Result<Unit> = suspendRunCatching {
val valueTalks = matchingDataSource.loadValueTalks()
.getOrThrow()
.toDomain()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class MatchingRepositoryImplTest {
coEvery { localMatchingDataSource.replaceValuePicks(any()) } returns Result.success(Unit)

// when
val result = matchingRepository.loadValuePick()
val result = matchingRepository.loadValuePicks()

// then
assertTrue(result.isSuccess)
Expand Down Expand Up @@ -86,7 +86,7 @@ class MatchingRepositoryImplTest {
coEvery { localMatchingDataSource.replaceValueTalks(any()) } returns Result.success(Unit)

// when
val result = matchingRepository.loadValueTalk()
val result = matchingRepository.loadValueTalks()

// then
assertTrue(result.isSuccess)
Expand Down Expand Up @@ -129,7 +129,7 @@ class MatchingRepositoryImplTest {
coEvery { localMatchingDataSource.replaceValuePicks(any()) } returns Result.success(Unit)

// when
val result = matchingRepository.loadValuePick()
val result = matchingRepository.loadValuePicks()

// then
assertTrue(result.isSuccess)
Expand Down Expand Up @@ -171,7 +171,7 @@ class MatchingRepositoryImplTest {
coEvery { localMatchingDataSource.replaceValueTalks(any()) } returns Result.success(Unit)

// when
val result = matchingRepository.loadValueTalk()
val result = matchingRepository.loadValueTalks()

// then
assertTrue(result.isSuccess)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import com.puzzle.domain.model.matching.ValuePick
import com.puzzle.domain.model.matching.ValueTalk

interface MatchingRepository {
suspend fun loadValuePick(): Result<Unit>
suspend fun loadValueTalk(): Result<Unit>
suspend fun loadValuePicks(): Result<Unit>
suspend fun loadValueTalks(): Result<Unit>
suspend fun retrieveValuePick(): Result<List<ValuePick>>
suspend fun retrieveValueTalk(): Result<List<ValueTalk>>
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ import com.puzzle.common.ui.CollapsingHeaderNestedScrollConnection
import com.puzzle.designsystem.R
import com.puzzle.designsystem.component.PieceSubButton
import com.puzzle.designsystem.foundation.PieceTheme
import com.puzzle.domain.model.matching.Answer
import com.puzzle.domain.model.matching.ValuePick
import com.puzzle.matching.graph.detail.common.component.BasicInfoHeader

Expand Down Expand Up @@ -175,16 +176,13 @@ private fun ValuePickCards(
.padding(horizontal = 20.dp),
) {
itemsIndexed(pickCards) { idx, item ->
Spacer(Modifier.height(20.dp))

ValuePickCard(
valuePick = item,
modifier = Modifier.padding(top = 20.dp)
)
}

item {
Spacer(Modifier.height(60.dp))

Text(
text = stringResource(R.string.valuepick_refuse),
style = PieceTheme.typography.bodyMM.copy(
Expand All @@ -194,12 +192,11 @@ private fun ValuePickCards(
textAlign = TextAlign.Center,
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 60.dp)
.clickable {
onDeclineClick()
},
)

Spacer(Modifier.height(60.dp))
}
}
}
Expand Down Expand Up @@ -294,31 +291,26 @@ private fun ValuePickCard(
}
}

Spacer(modifier = Modifier.height(12.dp))

Text(
text = valuePick.question,
style = PieceTheme.typography.headingMSB,
color = PieceTheme.colors.dark1,
modifier = Modifier.padding(top = 12.dp, bottom = 24.dp),
)

Spacer(modifier = Modifier.height(24.dp))

PieceSubButton(
label = valuePick.option1,
onClick = {},
enabled = true,
modifier = Modifier.fillMaxWidth(),
)

Spacer(modifier = Modifier.height(8.dp))

PieceSubButton(
label = valuePick.option2,
onClick = {},
enabled = false,
modifier = Modifier.fillMaxWidth(),
)
valuePick.answers.forEachIndexed { idx, answer ->
PieceSubButton(
label = answer.content,
onClick = {},
enabled = true,
modifier = Modifier
.fillMaxWidth()
.then(
if (idx != 0) Modifier.padding(top = 8.dp)
else Modifier
),
)
}
}
}

Expand All @@ -333,31 +325,39 @@ private fun ProfileValuePickPagePreview() {
ValuePick(
category = "음주",
question = "사귀는 사람과 함께 술을 마시는 것을 좋아하나요?",
option1 = "함께 술을 즐기고 싶어요",
option2 = "같이 술을 즐길 수 없어도 괜찮아요",
answers = listOf(
Answer(1, "함께 술을 즐기고 싶어요"),
Answer(2, "같이 술을 즐길 수 없어도 괜찮아요")
),
isSimilarToMe = true,
),
ValuePick(
category = "만남 빈도",
question = "주말에 얼마나 자주 데이트를 하고싶나요?",
option1 = "주말에는 최대한 같이 있고 싶어요",
option2 = "하루 정도는 각자 보내고 싶어요",
answers = listOf(
Answer(1, "주말에는 최대한 같이 있고 싶어요"),
Answer(2, "하루 정도는 각자 보내고 싶어요")
),
isSimilarToMe = false,
),
ValuePick(
category = "연락 빈도",
question = "연인 사이에 얼마나 자주 연락하는게 좋은가요?",
option1 = "바빠도 최대한 자주 연락하고 싶어요",
option2 = "연락은 생각날 때만 종종 해도 괜찮아요",
answers = listOf(
Answer(1, "바빠도 최대한 자주 연락하고 싶어요"),
Answer(2, "연락은 생각날 때만 종종 해도 괜찮아요")
),
isSimilarToMe = true,
),
ValuePick(
category = "연락 방식",
question = "연락할 때 어떤 방법을 더 좋아하나요?",
option1 = "전화보다는 문자나 카톡이 좋아요",
option2 = "문자나 카톡보다는 전화가 좋아요",
answers = listOf(
Answer(1, "전화보다는 문자나 카톡이 좋아요"),
Answer(2, "문자나 카톡보다는 전화가 좋아요")
),
isSimilarToMe = false,
)
),
),
onDeclineClick = {},
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import com.puzzle.domain.model.error.HttpResponseException
import com.puzzle.domain.model.user.UserRole.PENDING
import com.puzzle.domain.model.user.UserRole.REGISTER
import com.puzzle.domain.model.user.UserRole.USER
import com.puzzle.domain.repository.MatchingRepository
import com.puzzle.domain.repository.TermsRepository
import com.puzzle.domain.repository.UserRepository
import com.puzzle.navigation.AuthGraphDest
Expand All @@ -27,6 +28,7 @@ import javax.inject.Inject
class MainViewModel @Inject constructor(
private val termsRepository: TermsRepository,
private val userRepository: UserRepository,
private val matchingRepository: MatchingRepository,
internal val navigationHelper: NavigationHelper,
internal val eventHelper: EventHelper,
private val errorHelper: ErrorHelper,
Expand All @@ -36,7 +38,7 @@ class MainViewModel @Inject constructor(

init {
handleError()
loadTerms()
initConfigure()
checkRedirection()
}

Expand All @@ -55,18 +57,29 @@ class MainViewModel @Inject constructor(
}
}

private fun loadTerms() = viewModelScope.launch {
termsRepository.loadTerms().onFailure {
errorHelper.sendError(it)
}
}
private fun initConfigure() = viewModelScope.launch {
val loadTermsJob = launch { loadTerms() }
val loadValuePicksJob = launch { loadValuePicks() }
val loadValueTalksJob = launch { loadValueTalks() }

private fun loadValuePick() = viewModelScope.launch {
loadTermsJob.join()
loadValuePicksJob.join()
loadValueTalksJob.join()
}

private suspend fun loadTerms() {
termsRepository.loadTerms()
.onFailure { errorHelper.sendError(it) }
}

private fun loadValueTalk() = viewModelScope.launch {
private suspend fun loadValuePicks() {
matchingRepository.loadValuePicks()
.onFailure { errorHelper.sendError(it) }
}

private suspend fun loadValueTalks() {
matchingRepository.loadValueTalks()
.onFailure { errorHelper.sendError(it) }
}

private fun checkRedirection() = viewModelScope.launch {
Expand Down

0 comments on commit a7633bf

Please sign in to comment.