From 6ffaf086dda8d41df8ab6d1dd0ae760853533bc5 Mon Sep 17 00:00:00 2001 From: Dongmin Date: Fri, 12 Jan 2024 01:20:06 +0900 Subject: [PATCH 01/12] =?UTF-8?q?[CHORE/#71]=20Data=20=EC=82=BD=EC=9E=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tendencytest/TendencyTestViewModel.kt | 90 +++++++++---------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestViewModel.kt b/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestViewModel.kt index a69f66ab..51dc89a4 100644 --- a/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestViewModel.kt +++ b/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestViewModel.kt @@ -17,67 +17,67 @@ class TendencyTestViewModel : ViewModel() { val mockList: List = listOf( TendencyTestMock( - "1번 문항", - "1-1", - "1-2", - "1-3", - "1-4", + "어떤 여행지에 가시겠어요?", + "사람들이 많이 방문한 대중적인 곳", + "교통이 발달하고 치안이 좋아 안전한 곳", + "여기서만 경험할 수 있는 활동이 있는 곳", + "아무도 가보지 않은, 숨겨진 명소가 있는 곳", ), TendencyTestMock( - "2번 문항", - "2-1", - "2-2", - "2-3", - "2-4", + "여행을 가게 되면 먼저 할 일은?", + "예약 가능한 비행기 표와 숙소 알아보기", + "다른 사람이 다녀온 여행 후기 찾아보기", + "가고 싶은 맛집, 명소 찾아보기", + "여기에서만 할 수 있는 액티비티 찾아보기", ), TendencyTestMock( - "3번 문항", - "3-1", - "3-2", - "3-3", - "3-4", + "갑자기 특이한 메뉴를 추천받으면?", + "도전하기보다는 원래 정했던 메뉴를 주문한다", + "구글맵에 후기를 검색한다", + "한국에는 없잖아! 바로 주문한다", + "오히려 좋아. 더 추천해달라고 한다", ), TendencyTestMock( - "4번 문항", - "4-1", - "4-2", - "4-3", - "4-4", + "친구의 지인이 동행하자고 한다면?", + "새 친구랑 친해질 수 있는 기회! 너무 좋다", + "잘 맞으면 너무 좋을 것 같은데? 어떤 사람일까?", + "불편하지만 우선 고민해보겠다고 말한다", + "\"우리끼리 여행하는 게 좋아\" 라고 거절한다", ), TendencyTestMock( - "5번 문항", - "5-1", - "5-2", - "5-3", - "5-4", + "친구가 하루만 혼자 놀겠다 하면?", + "하고 싶은 걸 물어보고 일정을 바꾼다", + "보내주지만 속으로는 불만이 있을까 걱정한다", + "하고 싶은 게 있나 보다' 생각하며 보내준다", + "그럼 오늘은 각자 시간을 보내자고 제안한다", ), TendencyTestMock( - "6번 문항", - "6-1", - "6-2", - "6-3", - "6-4", + "여행 마지막 날 숙소에서 나는?", + "친구들과 함께 야식을 먹으며 이야기 나누기", + "아쉬우니까 같이 파티 타임 가질까?", + "다음 날의 일정을 위해 빠르게 잠에 들기", + "각자 핸드폰을 보며 개인 시간 보내기", ), TendencyTestMock( - "7번 문항", - "7-1", - "7-2", - "7-3", - "7-4", + "우연히 예쁜 소품샵을 발견했다면?", + "들어가면 일정에 차질이 생기는지 확인하기", + "가볼 만한 곳인지 검색해 보기", + "운명이라고 생각하며 사진부터 찍는다", + "일단 들어가서 이것저것 구경한다", ), TendencyTestMock( - "8번 문항", - "8-1", - "8-2", - "8-3", - "8-4", + "여행 계획을 세우는 방법은?", + "시간별 일정을 세우고 정해진 대로 움직이기", + "큰 계획만 세우고 상황 따라 일정 조정하기", + "가고 싶은 곳만 정하고 그때그때 선택하기", + "상황에 맞춰 무엇을 할지 즉흥으로 고민하기", ), TendencyTestMock( - "9번 문항", - "9-1", - "9-2", - "9-3", - "9-4", + "가려고 한 식당이 문을 닫았다면?", + "이미 영업시간을 체크해서 그런 일은 없다", + "다른 날에라도 갈 수 있게 일정을 조정한다", + "옆에 있는 다른 식당에 들어가 본다", + "이것도 추억이지 근처 가까운 식당으로 간다", ), ) From 48c187f67e53ae8557eb6e277e0584b2a68e72cd Mon Sep 17 00:00:00 2001 From: Dongmin Date: Fri, 12 Jan 2024 01:23:05 +0900 Subject: [PATCH 02/12] =?UTF-8?q?[CHORE/#79]=20=EB=84=A4=EC=9D=B4=EB=B0=8D?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/going/data/dto/request/SignInRequestDto.kt | 4 ++-- .../com/going/data/dto/request/SignUpRequestDto.kt | 4 ++-- .../going/data/repositoryImpl/AuthRepositoryImpl.kt | 10 +++++----- .../{RequestSignInModel.kt => SignInRequestModel.kt} | 2 +- .../{RequestSignUpModel.kt => SignUpRequestModel.kt} | 2 +- .../com/going/domain/repository/AuthRepository.kt | 8 ++++---- .../presentation/onboarding/signin/SignInViewModel.kt | 4 ++-- .../signup/OnboardingProfileSettingViewModel.kt | 4 ++-- 8 files changed, 19 insertions(+), 19 deletions(-) rename domain/src/main/kotlin/com/going/domain/entity/request/{RequestSignInModel.kt => SignInRequestModel.kt} (68%) rename domain/src/main/kotlin/com/going/domain/entity/request/{RequestSignUpModel.kt => SignUpRequestModel.kt} (78%) diff --git a/data/src/main/java/com/going/data/dto/request/SignInRequestDto.kt b/data/src/main/java/com/going/data/dto/request/SignInRequestDto.kt index 7a5f50c2..108d13e3 100644 --- a/data/src/main/java/com/going/data/dto/request/SignInRequestDto.kt +++ b/data/src/main/java/com/going/data/dto/request/SignInRequestDto.kt @@ -1,6 +1,6 @@ package com.going.data.dto.request -import com.going.domain.entity.request.RequestSignInModel +import com.going.domain.entity.request.SignInRequestModel import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -10,5 +10,5 @@ data class SignInRequestDto( val platform: String, ) -fun RequestSignInModel.toSignInRequestDto(): SignInRequestDto = +fun SignInRequestModel.toSignInRequestDto(): SignInRequestDto = SignInRequestDto(platform) diff --git a/data/src/main/java/com/going/data/dto/request/SignUpRequestDto.kt b/data/src/main/java/com/going/data/dto/request/SignUpRequestDto.kt index c5f8b525..67c3afb2 100644 --- a/data/src/main/java/com/going/data/dto/request/SignUpRequestDto.kt +++ b/data/src/main/java/com/going/data/dto/request/SignUpRequestDto.kt @@ -1,6 +1,6 @@ package com.going.data.dto.request -import com.going.domain.entity.request.RequestSignUpModel +import com.going.domain.entity.request.SignUpRequestModel import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -14,5 +14,5 @@ data class SignUpRequestDto( val platform: String, ) -fun RequestSignUpModel.toSignUpRequestDto(): SignUpRequestDto = +fun SignUpRequestModel.toSignUpRequestDto(): SignUpRequestDto = SignUpRequestDto(name, intro, platform) diff --git a/data/src/main/java/com/going/data/repositoryImpl/AuthRepositoryImpl.kt b/data/src/main/java/com/going/data/repositoryImpl/AuthRepositoryImpl.kt index c0cf36f6..d2f6e9eb 100644 --- a/data/src/main/java/com/going/data/repositoryImpl/AuthRepositoryImpl.kt +++ b/data/src/main/java/com/going/data/repositoryImpl/AuthRepositoryImpl.kt @@ -3,8 +3,8 @@ package com.going.data.repositoryImpl import com.going.data.datasource.AuthDataSource import com.going.data.dto.request.toSignInRequestDto import com.going.data.dto.request.toSignUpRequestDto -import com.going.domain.entity.request.RequestSignInModel -import com.going.domain.entity.request.RequestSignUpModel +import com.going.domain.entity.request.SignInRequestModel +import com.going.domain.entity.request.SignUpRequestModel import com.going.domain.entity.response.AuthTokenModel import com.going.domain.entity.response.SignInModel import com.going.domain.repository.AuthRepository @@ -15,7 +15,7 @@ class AuthRepositoryImpl @Inject constructor( ) : AuthRepository { override suspend fun postSignIn( Authorization: String, - requestSignIpModel: RequestSignInModel, + requestSignIpModel: SignInRequestModel, ): Result = runCatching { authDataSource.postSignIn( @@ -26,12 +26,12 @@ class AuthRepositoryImpl @Inject constructor( override suspend fun postSignUp( Authorization: String, - requestSignUpModel: RequestSignUpModel, + signUpRequestModel: SignUpRequestModel, ): Result = runCatching { authDataSource.postSignUp( Authorization, - requestSignUpModel.toSignUpRequestDto(), + signUpRequestModel.toSignUpRequestDto(), ).data.toAuthTokenModel() } } diff --git a/domain/src/main/kotlin/com/going/domain/entity/request/RequestSignInModel.kt b/domain/src/main/kotlin/com/going/domain/entity/request/SignInRequestModel.kt similarity index 68% rename from domain/src/main/kotlin/com/going/domain/entity/request/RequestSignInModel.kt rename to domain/src/main/kotlin/com/going/domain/entity/request/SignInRequestModel.kt index fc88c6ea..d2e69653 100644 --- a/domain/src/main/kotlin/com/going/domain/entity/request/RequestSignInModel.kt +++ b/domain/src/main/kotlin/com/going/domain/entity/request/SignInRequestModel.kt @@ -1,5 +1,5 @@ package com.going.domain.entity.request -data class RequestSignInModel( +data class SignInRequestModel( val platform: String ) diff --git a/domain/src/main/kotlin/com/going/domain/entity/request/RequestSignUpModel.kt b/domain/src/main/kotlin/com/going/domain/entity/request/SignUpRequestModel.kt similarity index 78% rename from domain/src/main/kotlin/com/going/domain/entity/request/RequestSignUpModel.kt rename to domain/src/main/kotlin/com/going/domain/entity/request/SignUpRequestModel.kt index 17be5dc3..7edf4ed6 100644 --- a/domain/src/main/kotlin/com/going/domain/entity/request/RequestSignUpModel.kt +++ b/domain/src/main/kotlin/com/going/domain/entity/request/SignUpRequestModel.kt @@ -1,6 +1,6 @@ package com.going.domain.entity.request -data class RequestSignUpModel( +data class SignUpRequestModel( val name: String, val intro: String, val platform: String, diff --git a/domain/src/main/kotlin/com/going/domain/repository/AuthRepository.kt b/domain/src/main/kotlin/com/going/domain/repository/AuthRepository.kt index 4caa0966..c51d1d4c 100644 --- a/domain/src/main/kotlin/com/going/domain/repository/AuthRepository.kt +++ b/domain/src/main/kotlin/com/going/domain/repository/AuthRepository.kt @@ -1,18 +1,18 @@ package com.going.domain.repository -import com.going.domain.entity.request.RequestSignInModel -import com.going.domain.entity.request.RequestSignUpModel +import com.going.domain.entity.request.SignInRequestModel +import com.going.domain.entity.request.SignUpRequestModel import com.going.domain.entity.response.AuthTokenModel import com.going.domain.entity.response.SignInModel interface AuthRepository { suspend fun postSignIn( Authorization: String, - data: RequestSignInModel, + data: SignInRequestModel, ): Result suspend fun postSignUp( Authorization: String, - data: RequestSignUpModel, + data: SignUpRequestModel, ): Result } diff --git a/presentation/src/main/java/com/going/presentation/onboarding/signin/SignInViewModel.kt b/presentation/src/main/java/com/going/presentation/onboarding/signin/SignInViewModel.kt index 88a20b99..f5d101e0 100644 --- a/presentation/src/main/java/com/going/presentation/onboarding/signin/SignInViewModel.kt +++ b/presentation/src/main/java/com/going/presentation/onboarding/signin/SignInViewModel.kt @@ -3,7 +3,7 @@ package com.going.presentation.onboarding.signin import android.content.Context import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.going.domain.entity.request.RequestSignInModel +import com.going.domain.entity.request.SignInRequestModel import com.going.domain.repository.AuthRepository import com.going.domain.repository.TokenRepository import com.going.presentation.util.toErrorCode @@ -71,7 +71,7 @@ class SignInViewModel @Inject constructor( _postChangeTokenState.value = SignInState.LOADING viewModelScope.launch { - authRepository.postSignIn(accessToken, RequestSignInModel(platform)).onSuccess { + authRepository.postSignIn(accessToken, SignInRequestModel(platform)).onSuccess { tokenRepository.setTokens(it.accessToken, it.refreshToken) if (it.isResult) { diff --git a/presentation/src/main/java/com/going/presentation/onboarding/signup/OnboardingProfileSettingViewModel.kt b/presentation/src/main/java/com/going/presentation/onboarding/signup/OnboardingProfileSettingViewModel.kt index 37fb9b51..66e8d154 100644 --- a/presentation/src/main/java/com/going/presentation/onboarding/signup/OnboardingProfileSettingViewModel.kt +++ b/presentation/src/main/java/com/going/presentation/onboarding/signup/OnboardingProfileSettingViewModel.kt @@ -4,7 +4,7 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.going.domain.entity.NameState -import com.going.domain.entity.request.RequestSignUpModel +import com.going.domain.entity.request.SignUpRequestModel import com.going.domain.repository.AuthRepository import com.kakao.sdk.auth.AuthApiClient import com.kakao.sdk.auth.TokenManagerProvider @@ -84,7 +84,7 @@ class OnboardingProfileSettingViewModel @Inject constructor( viewModelScope.launch { authRepository.postSignUp( kakaoAccessToken, - RequestSignUpModel(name.value, info.value, KAKAO), + SignUpRequestModel(name.value, info.value, KAKAO), ).onSuccess { _isSignUpState.value = SignUpState.SUCCESS }.onFailure { From 5cf6d3974b1be64b865b80bab15ab593f72c9719 Mon Sep 17 00:00:00 2001 From: Dongmin Date: Fri, 12 Jan 2024 01:33:54 +0900 Subject: [PATCH 03/12] =?UTF-8?q?[CHORE/#79]=20EnumUiState=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EB=B0=8F=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../going/data/datasource/SettingDataSource.kt | 5 ++--- .../data/datasourceImpl/SettingDataSourceImpl.kt | 5 ++--- .../com/going/data/dto/NonDataBaseResponse.kt | 2 +- .../data/dto/response/SignOutResponseDto.kt | 16 ---------------- .../data/repositoryImpl/SettingRepositoryImpl.kt | 5 ++--- .../com/going/data/service/SettingService.kt | 5 ++--- .../domain/entity/response/OngoingListModel.kt | 2 +- .../going/domain/entity/response/SignOutModel.kt | 6 ------ .../going/domain/repository/SettingRepository.kt | 4 +--- 9 files changed, 11 insertions(+), 39 deletions(-) delete mode 100644 data/src/main/java/com/going/data/dto/response/SignOutResponseDto.kt delete mode 100644 domain/src/main/kotlin/com/going/domain/entity/response/SignOutModel.kt diff --git a/data/src/main/java/com/going/data/datasource/SettingDataSource.kt b/data/src/main/java/com/going/data/datasource/SettingDataSource.kt index 3a14bbe4..da5ec881 100644 --- a/data/src/main/java/com/going/data/datasource/SettingDataSource.kt +++ b/data/src/main/java/com/going/data/datasource/SettingDataSource.kt @@ -1,10 +1,9 @@ package com.going.data.datasource import com.going.data.dto.NonDataBaseResponse -import com.going.data.dto.response.SignOutResponseDto interface SettingDataSource { - suspend fun patchSignOut(): SignOutResponseDto + suspend fun patchSignOut(): NonDataBaseResponse - suspend fun deleteWithDraw(): NonDataBaseResponse + suspend fun deleteWithDraw(): NonDataBaseResponse } diff --git a/data/src/main/java/com/going/data/datasourceImpl/SettingDataSourceImpl.kt b/data/src/main/java/com/going/data/datasourceImpl/SettingDataSourceImpl.kt index d5f0beb0..af959b78 100644 --- a/data/src/main/java/com/going/data/datasourceImpl/SettingDataSourceImpl.kt +++ b/data/src/main/java/com/going/data/datasourceImpl/SettingDataSourceImpl.kt @@ -2,13 +2,12 @@ package com.going.data.datasourceImpl import com.going.data.datasource.SettingDataSource import com.going.data.dto.NonDataBaseResponse -import com.going.data.dto.response.SignOutResponseDto import com.going.data.service.SettingService import javax.inject.Inject class SettingDataSourceImpl @Inject constructor( private val settingService: SettingService, ) : SettingDataSource { - override suspend fun patchSignOut(): SignOutResponseDto = settingService.patchSignOut() - override suspend fun deleteWithDraw(): NonDataBaseResponse = settingService.deleteWithDraw() + override suspend fun patchSignOut(): NonDataBaseResponse = settingService.patchSignOut() + override suspend fun deleteWithDraw(): NonDataBaseResponse = settingService.deleteWithDraw() } diff --git a/data/src/main/java/com/going/data/dto/NonDataBaseResponse.kt b/data/src/main/java/com/going/data/dto/NonDataBaseResponse.kt index 3138cd55..24f56e49 100644 --- a/data/src/main/java/com/going/data/dto/NonDataBaseResponse.kt +++ b/data/src/main/java/com/going/data/dto/NonDataBaseResponse.kt @@ -4,7 +4,7 @@ import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable -data class NonDataBaseResponse( +data class NonDataBaseResponse( @SerialName("status") val status: Int, @SerialName("code") diff --git a/data/src/main/java/com/going/data/dto/response/SignOutResponseDto.kt b/data/src/main/java/com/going/data/dto/response/SignOutResponseDto.kt deleted file mode 100644 index 6a03f5e2..00000000 --- a/data/src/main/java/com/going/data/dto/response/SignOutResponseDto.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.going.data.dto.response - -import com.going.domain.entity.response.SignOutModel -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class SignOutResponseDto( - @SerialName("status") - val status: Int, - @SerialName("message") - val message: String, -) { - fun toSignOutModel() = - SignOutModel(status, message) -} diff --git a/data/src/main/java/com/going/data/repositoryImpl/SettingRepositoryImpl.kt b/data/src/main/java/com/going/data/repositoryImpl/SettingRepositoryImpl.kt index ecc36a7b..501963d1 100644 --- a/data/src/main/java/com/going/data/repositoryImpl/SettingRepositoryImpl.kt +++ b/data/src/main/java/com/going/data/repositoryImpl/SettingRepositoryImpl.kt @@ -1,15 +1,14 @@ package com.going.data.repositoryImpl import com.going.data.datasource.SettingDataSource -import com.going.domain.entity.response.SignOutModel import com.going.domain.repository.SettingRepository import javax.inject.Inject class SettingRepositoryImpl @Inject constructor( private val settingDataSource: SettingDataSource, ) : SettingRepository { - override suspend fun patchSignOut(): Result = runCatching { - settingDataSource.patchSignOut().toSignOutModel() + override suspend fun patchSignOut(): Result = runCatching { + settingDataSource.patchSignOut() } override suspend fun deleteWithDraw(): Result = runCatching { diff --git a/data/src/main/java/com/going/data/service/SettingService.kt b/data/src/main/java/com/going/data/service/SettingService.kt index 27f7953d..43ef8bd2 100644 --- a/data/src/main/java/com/going/data/service/SettingService.kt +++ b/data/src/main/java/com/going/data/service/SettingService.kt @@ -1,14 +1,13 @@ package com.going.data.service import com.going.data.dto.NonDataBaseResponse -import com.going.data.dto.response.SignOutResponseDto import retrofit2.http.DELETE import retrofit2.http.PATCH interface SettingService { @PATCH("api/users/signout") - suspend fun patchSignOut(): SignOutResponseDto + suspend fun patchSignOut(): NonDataBaseResponse @DELETE("api/users/withdraw") - suspend fun deleteWithDraw(): NonDataBaseResponse + suspend fun deleteWithDraw(): NonDataBaseResponse } diff --git a/domain/src/main/kotlin/com/going/domain/entity/response/OngoingListModel.kt b/domain/src/main/kotlin/com/going/domain/entity/response/OngoingListModel.kt index 64fd1b83..e132f47d 100644 --- a/domain/src/main/kotlin/com/going/domain/entity/response/OngoingListModel.kt +++ b/domain/src/main/kotlin/com/going/domain/entity/response/OngoingListModel.kt @@ -5,4 +5,4 @@ data class OngoingListModel( val startDate: String, val endDate: String, val day: Int -) \ No newline at end of file +) diff --git a/domain/src/main/kotlin/com/going/domain/entity/response/SignOutModel.kt b/domain/src/main/kotlin/com/going/domain/entity/response/SignOutModel.kt deleted file mode 100644 index 991849e2..00000000 --- a/domain/src/main/kotlin/com/going/domain/entity/response/SignOutModel.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.going.domain.entity.response - -data class SignOutModel( - val status: Int, - val message: String, -) diff --git a/domain/src/main/kotlin/com/going/domain/repository/SettingRepository.kt b/domain/src/main/kotlin/com/going/domain/repository/SettingRepository.kt index 6220d7e9..8a8e6e2f 100644 --- a/domain/src/main/kotlin/com/going/domain/repository/SettingRepository.kt +++ b/domain/src/main/kotlin/com/going/domain/repository/SettingRepository.kt @@ -1,9 +1,7 @@ package com.going.domain.repository -import com.going.domain.entity.response.SignOutModel - interface SettingRepository { - suspend fun patchSignOut(): Result + suspend fun patchSignOut(): Result suspend fun deleteWithDraw(): Result } From 055ff4b8976032bf3a2521c92f54180111a1d400 Mon Sep 17 00:00:00 2001 From: Dongmin Date: Fri, 12 Jan 2024 02:17:18 +0900 Subject: [PATCH 04/12] =?UTF-8?q?[CHORE/#79]=20=EC=84=B1=ED=96=A5=EA=B2=80?= =?UTF-8?q?=EC=82=AC=20api=20=ED=95=A8=EC=88=98=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../going/data/datasource/TendencyDataSource.kt | 8 ++++++++ .../datasourceImpl/TendencyDataSourceImpl.kt | 14 ++++++++++++++ .../going/data/dto/request/TendencyRequestDto.kt | 13 +++++++++++++ .../repositoryImpl/TendencyRepositoryImpl.kt | 16 ++++++++++++++++ .../com/going/data/service/TendencyService.kt | 13 +++++++++++++ .../entity/request/TendencyRequestModel.kt | 5 +++++ .../domain/repository/TendencyRepository.kt | 7 +++++++ 7 files changed, 76 insertions(+) create mode 100644 data/src/main/java/com/going/data/datasource/TendencyDataSource.kt create mode 100644 data/src/main/java/com/going/data/datasourceImpl/TendencyDataSourceImpl.kt create mode 100644 data/src/main/java/com/going/data/dto/request/TendencyRequestDto.kt create mode 100644 data/src/main/java/com/going/data/repositoryImpl/TendencyRepositoryImpl.kt create mode 100644 data/src/main/java/com/going/data/service/TendencyService.kt create mode 100644 domain/src/main/kotlin/com/going/domain/entity/request/TendencyRequestModel.kt create mode 100644 domain/src/main/kotlin/com/going/domain/repository/TendencyRepository.kt diff --git a/data/src/main/java/com/going/data/datasource/TendencyDataSource.kt b/data/src/main/java/com/going/data/datasource/TendencyDataSource.kt new file mode 100644 index 00000000..320da64e --- /dev/null +++ b/data/src/main/java/com/going/data/datasource/TendencyDataSource.kt @@ -0,0 +1,8 @@ +package com.going.data.datasource + +import com.going.data.dto.NonDataBaseResponse +import com.going.data.dto.request.TendencyTestRequestDto + +interface TendencyDataSource { + suspend fun patchTendencyTest(result: TendencyTestRequestDto): NonDataBaseResponse +} diff --git a/data/src/main/java/com/going/data/datasourceImpl/TendencyDataSourceImpl.kt b/data/src/main/java/com/going/data/datasourceImpl/TendencyDataSourceImpl.kt new file mode 100644 index 00000000..125e883f --- /dev/null +++ b/data/src/main/java/com/going/data/datasourceImpl/TendencyDataSourceImpl.kt @@ -0,0 +1,14 @@ +package com.going.data.datasourceImpl + +import com.going.data.datasource.TendencyDataSource +import com.going.data.dto.NonDataBaseResponse +import com.going.data.dto.request.TendencyTestRequestDto +import com.going.data.service.TendencyService +import javax.inject.Inject + +class TendencyDataSourceImpl @Inject constructor( + private val tendencyService: TendencyService, +) : TendencyDataSource { + override suspend fun patchTendencyTest(result: TendencyTestRequestDto): NonDataBaseResponse = + tendencyService.patchTendencyTest(result) +} diff --git a/data/src/main/java/com/going/data/dto/request/TendencyRequestDto.kt b/data/src/main/java/com/going/data/dto/request/TendencyRequestDto.kt new file mode 100644 index 00000000..a0c54f19 --- /dev/null +++ b/data/src/main/java/com/going/data/dto/request/TendencyRequestDto.kt @@ -0,0 +1,13 @@ +package com.going.data.dto.request + +import com.going.domain.entity.request.TendencyRequestModel +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class TendencyTestRequestDto( + @SerialName("result") + val result: List, +) + +fun TendencyRequestModel.toTendencyTestRequestDto() = TendencyTestRequestDto(result) diff --git a/data/src/main/java/com/going/data/repositoryImpl/TendencyRepositoryImpl.kt b/data/src/main/java/com/going/data/repositoryImpl/TendencyRepositoryImpl.kt new file mode 100644 index 00000000..e48b3e32 --- /dev/null +++ b/data/src/main/java/com/going/data/repositoryImpl/TendencyRepositoryImpl.kt @@ -0,0 +1,16 @@ +package com.going.data.repositoryImpl + +import com.going.data.datasource.TendencyDataSource +import com.going.data.dto.request.toTendencyTestRequestDto +import com.going.domain.entity.request.TendencyRequestModel +import com.going.domain.repository.TendencyRepository +import javax.inject.Inject + +class TendencyRepositoryImpl @Inject constructor( + private val tendencyDataSource: TendencyDataSource, +) : TendencyRepository { + override suspend fun patchTendencyTest(result: TendencyRequestModel): Result = + runCatching { + tendencyDataSource.patchTendencyTest(result.toTendencyTestRequestDto()) + } +} diff --git a/data/src/main/java/com/going/data/service/TendencyService.kt b/data/src/main/java/com/going/data/service/TendencyService.kt new file mode 100644 index 00000000..5ed0eb84 --- /dev/null +++ b/data/src/main/java/com/going/data/service/TendencyService.kt @@ -0,0 +1,13 @@ +package com.going.data.service + +import com.going.data.dto.NonDataBaseResponse +import com.going.data.dto.request.TendencyTestRequestDto +import retrofit2.http.Body +import retrofit2.http.PATCH + +interface TendencyService { + @PATCH("api/users/test") + suspend fun patchTendencyTest( + @Body result: TendencyTestRequestDto, + ): NonDataBaseResponse +} diff --git a/domain/src/main/kotlin/com/going/domain/entity/request/TendencyRequestModel.kt b/domain/src/main/kotlin/com/going/domain/entity/request/TendencyRequestModel.kt new file mode 100644 index 00000000..23255d7f --- /dev/null +++ b/domain/src/main/kotlin/com/going/domain/entity/request/TendencyRequestModel.kt @@ -0,0 +1,5 @@ +package com.going.domain.entity.request + +data class TendencyRequestModel( + val result: List +) diff --git a/domain/src/main/kotlin/com/going/domain/repository/TendencyRepository.kt b/domain/src/main/kotlin/com/going/domain/repository/TendencyRepository.kt new file mode 100644 index 00000000..41b1ec5e --- /dev/null +++ b/domain/src/main/kotlin/com/going/domain/repository/TendencyRepository.kt @@ -0,0 +1,7 @@ +package com.going.domain.repository + +import com.going.domain.entity.request.TendencyRequestModel + +interface TendencyRepository { + suspend fun patchTendencyTest(result: TendencyRequestModel): Result +} From 514b4fd9d681b75bb07df09e3b79643816431811 Mon Sep 17 00:00:00 2001 From: Dongmin Date: Fri, 12 Jan 2024 02:17:43 +0900 Subject: [PATCH 05/12] =?UTF-8?q?[CHORE/#79]=20EnumUiState=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20=EB=B0=8F=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/going/doorip/di/DataSourceModule.kt | 6 ++++ .../com/going/doorip/di/RepositoryModule.kt | 6 ++++ .../java/com/going/doorip/di/ServiceModule.kt | 5 ++++ .../com/going/ui/extension/EnumUiState.kt | 2 +- .../setting/SettingLogoutDialogFragment.kt | 3 +- .../setting/SettingQuitDialogFragment.kt | 3 +- .../tendencytest/TendencyTestActivity.kt | 30 ++++++++++++++----- .../tendencytest/TendencyTestViewModel.kt | 30 +++++++++++++++++-- 8 files changed, 73 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/going/doorip/di/DataSourceModule.kt b/app/src/main/java/com/going/doorip/di/DataSourceModule.kt index b4905e72..d7a51379 100644 --- a/app/src/main/java/com/going/doorip/di/DataSourceModule.kt +++ b/app/src/main/java/com/going/doorip/di/DataSourceModule.kt @@ -3,10 +3,12 @@ package com.going.doorip.di import com.going.data.datasource.AuthDataSource import com.going.data.datasource.MockDataSource import com.going.data.datasource.SettingDataSource +import com.going.data.datasource.TendencyDataSource import com.going.data.datasource.TodoDataSource import com.going.data.datasourceImpl.AuthDataSourceImpl import com.going.data.datasourceImpl.MockDataSourceImpl import com.going.data.datasourceImpl.SettingDataSourceImpl +import com.going.data.datasourceImpl.TendencyDataSourceImpl import com.going.data.datasourceImpl.TodoDataSourceImpl import dagger.Module import dagger.Provides @@ -38,4 +40,8 @@ object DataSourceModule { fun provideTodoDataSource(todoDataSourceImpl: TodoDataSourceImpl): TodoDataSource = todoDataSourceImpl + @Provides + @Singleton + fun provideTendencyDataSource(tendencyDataSourceImpl: TendencyDataSourceImpl): TendencyDataSource = + tendencyDataSourceImpl } diff --git a/app/src/main/java/com/going/doorip/di/RepositoryModule.kt b/app/src/main/java/com/going/doorip/di/RepositoryModule.kt index 08aae754..2c8af37c 100644 --- a/app/src/main/java/com/going/doorip/di/RepositoryModule.kt +++ b/app/src/main/java/com/going/doorip/di/RepositoryModule.kt @@ -3,11 +3,13 @@ package com.going.doorip.di import com.going.data.repositoryImpl.AuthRepositoryImpl import com.going.data.repositoryImpl.MockRepositoryImpl import com.going.data.repositoryImpl.SettingRepositoryImpl +import com.going.data.repositoryImpl.TendencyRepositoryImpl import com.going.data.repositoryImpl.TodoRepositoryImpl import com.going.data.repositoryImpl.TokenRepositoryImpl import com.going.domain.repository.AuthRepository import com.going.domain.repository.MockRepository import com.going.domain.repository.SettingRepository +import com.going.domain.repository.TendencyRepository import com.going.domain.repository.TodoRepository import com.going.domain.repository.TokenRepository import dagger.Module @@ -45,4 +47,8 @@ object RepositoryModule { fun provideTodoRepository(todoRepositoryImpl: TodoRepositoryImpl): TodoRepository = todoRepositoryImpl + @Provides + @Singleton + fun provideTendencyRepository(tendencyRepositoryImpl: TendencyRepositoryImpl): TendencyRepository = + tendencyRepositoryImpl } diff --git a/app/src/main/java/com/going/doorip/di/ServiceModule.kt b/app/src/main/java/com/going/doorip/di/ServiceModule.kt index 4e74947d..1242cff4 100644 --- a/app/src/main/java/com/going/doorip/di/ServiceModule.kt +++ b/app/src/main/java/com/going/doorip/di/ServiceModule.kt @@ -3,6 +3,7 @@ package com.going.doorip.di import com.going.data.service.AuthService import com.going.data.service.MockService import com.going.data.service.SettingService +import com.going.data.service.TendencyService import com.going.data.service.TodoService import dagger.Module import dagger.Provides @@ -35,4 +36,8 @@ object ServiceModule { fun provideTodoService(retrofit: Retrofit): TodoService = retrofit.create(TodoService::class.java) + @Provides + @Singleton + fun provideTendencyService(retrofit: Retrofit): TendencyService = + retrofit.create(TendencyService::class.java) } diff --git a/core-ui/src/main/java/com/going/ui/extension/EnumUiState.kt b/core-ui/src/main/java/com/going/ui/extension/EnumUiState.kt index d9700d4c..c39fed1c 100644 --- a/core-ui/src/main/java/com/going/ui/extension/EnumUiState.kt +++ b/core-ui/src/main/java/com/going/ui/extension/EnumUiState.kt @@ -1,5 +1,5 @@ package com.going.ui.extension enum class EnumUiState { - LOADING, SUCCESS, FAILURE + SUCCESS, FAILURE, LOADING, EMPTY } diff --git a/presentation/src/main/java/com/going/presentation/setting/SettingLogoutDialogFragment.kt b/presentation/src/main/java/com/going/presentation/setting/SettingLogoutDialogFragment.kt index fc6fb3ec..0d67c32c 100644 --- a/presentation/src/main/java/com/going/presentation/setting/SettingLogoutDialogFragment.kt +++ b/presentation/src/main/java/com/going/presentation/setting/SettingLogoutDialogFragment.kt @@ -51,9 +51,10 @@ class SettingLogoutDialogFragment() : private fun observeUserSignOutState() { viewModel.userSignOutState.flowWithLifecycle(lifecycle).onEach { state -> when (state) { + EnumUiState.LOADING -> {} EnumUiState.SUCCESS -> restartApp(requireContext()) EnumUiState.FAILURE -> toast(getString(R.string.server_error)) - EnumUiState.LOADING -> {} + EnumUiState.EMPTY -> {} } }.launchIn(lifecycleScope) } diff --git a/presentation/src/main/java/com/going/presentation/setting/SettingQuitDialogFragment.kt b/presentation/src/main/java/com/going/presentation/setting/SettingQuitDialogFragment.kt index b37b4c40..fa5a2243 100644 --- a/presentation/src/main/java/com/going/presentation/setting/SettingQuitDialogFragment.kt +++ b/presentation/src/main/java/com/going/presentation/setting/SettingQuitDialogFragment.kt @@ -57,9 +57,10 @@ class SettingQuitDialogFragment : private fun observeUserWithDrawState() { viewModel.userWithDrawState.flowWithLifecycle(lifecycle).onEach { state -> when (state) { + EnumUiState.LOADING -> {} EnumUiState.SUCCESS -> restartApp(requireContext()) EnumUiState.FAILURE -> toast(getString(R.string.server_error)) - EnumUiState.LOADING -> {} + EnumUiState.EMPTY -> {} } }.launchIn(lifecycleScope) } diff --git a/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestActivity.kt b/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestActivity.kt index 46175d74..48756ace 100644 --- a/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestActivity.kt +++ b/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestActivity.kt @@ -11,18 +11,22 @@ import androidx.lifecycle.lifecycleScope import com.going.presentation.R import com.going.presentation.databinding.ActivityTendencyTestBinding import com.going.ui.base.BaseActivity +import com.going.ui.extension.EnumUiState import com.going.ui.extension.setOnSingleClickListener +import com.going.ui.extension.toast +import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach +@AndroidEntryPoint class TendencyTestActivity : BaseActivity(R.layout.activity_tendency_test) { + private val viewModel by viewModels() + private lateinit var fadeInList: List private lateinit var fadeOutList: List - private val viewModel by viewModels() - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -31,6 +35,7 @@ class TendencyTestActivity : initFadeListener() initNextBtnClickListener() observeButtonSelected() + observeIsSubmitTendencyState() } private fun initBindingViewModel() { @@ -110,16 +115,12 @@ class TendencyTestActivity : private fun initNextBtnClickListener() { binding.btnTendencyNext.setOnSingleClickListener { when (viewModel.step.value) { - 9 -> moveTendencyTestResultActivity() + 9 -> viewModel.submitTendencyTest() else -> fadeOutList[0].start() } } } - private fun moveTendencyTestResultActivity() { - // 페이지 이동 기능 추가 예정 - } - private fun observeButtonSelected() { viewModel.isFirstChecked.flowWithLifecycle(lifecycle).onEach { binding.tvFirstAnswer.setTextAppearance(setFont(it)) @@ -144,6 +145,21 @@ class TendencyTestActivity : R.style.TextAppearance_Doorip_Body3_Medi } + private fun observeIsSubmitTendencyState() { + viewModel.isSubmitTendencyState.flowWithLifecycle(lifecycle).onEach { state -> + when (state) { + EnumUiState.LOADING -> {} + EnumUiState.SUCCESS -> moveTendencyTestResultActivity() + EnumUiState.FAILURE -> toast(getString(R.string.server_error)) + EnumUiState.EMPTY -> {} + } + } + } + + private fun moveTendencyTestResultActivity() { + // 페이지 이동 기능 추가 예정 + } + companion object { const val DURATION = 500L diff --git a/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestViewModel.kt b/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestViewModel.kt index 51dc89a4..63fe3c7a 100644 --- a/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestViewModel.kt +++ b/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestViewModel.kt @@ -2,10 +2,21 @@ package com.going.presentation.tendencytest import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope import com.going.domain.entity.TendencyTestMock +import com.going.domain.entity.request.TendencyRequestModel +import com.going.domain.repository.TendencyRepository +import com.going.ui.extension.EnumUiState +import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.launch +import javax.inject.Inject -class TendencyTestViewModel : ViewModel() { +@HiltViewModel +class TendencyTestViewModel @Inject constructor( + private val tendencyRepository: TendencyRepository, +) : ViewModel() { val step = MutableStateFlow(1) val isChecked = MutableLiveData(false) val isFirstChecked = MutableStateFlow(false) @@ -13,7 +24,10 @@ class TendencyTestViewModel : ViewModel() { val isThirdChecked = MutableStateFlow(false) val isFourthChecked = MutableStateFlow(false) - val tendencyResultList: MutableList = MutableList(9) { 0 } + private val tendencyResultList: MutableList = MutableList(9) { 0 } + + private val _isSubmitTendencyState = MutableStateFlow(EnumUiState.EMPTY) + val isSubmitTendencyState: StateFlow = _isSubmitTendencyState val mockList: List = listOf( TendencyTestMock( @@ -106,6 +120,18 @@ class TendencyTestViewModel : ViewModel() { isFourthChecked.value = false } + fun submitTendencyTest() { + viewModelScope.launch { + _isSubmitTendencyState.value = EnumUiState.LOADING + tendencyRepository.patchTendencyTest(TendencyRequestModel(tendencyResultList)) + .onSuccess { + _isSubmitTendencyState.value = EnumUiState.SUCCESS + }.onFailure { + _isSubmitTendencyState.value = EnumUiState.FAILURE + } + } + } + companion object { const val MAX_STEP = 9 } From a67823960d88554a53a7784dcead0f0909ff3d44 Mon Sep 17 00:00:00 2001 From: Dongmin Date: Fri, 12 Jan 2024 03:20:53 +0900 Subject: [PATCH 06/12] =?UTF-8?q?[CHORE/#79]=20API=20=EB=AA=85=EC=84=B8?= =?UTF-8?q?=EC=84=9C=20=EA=B4=80=EB=A0=A8=20=EC=84=B8=EB=B6=80=20=EB=94=94?= =?UTF-8?q?=ED=85=8C=EC=9D=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onboarding/signin/SignInActivity.kt | 2 +- .../onboarding/splash/SplashActivity.kt | 2 ++ .../onboarding/splash/SplashViewModel.kt | 1 + .../tendencytest/TendencyTestActivity.kt | 16 +++++++++++----- .../tendencytest/TendencyTestViewModel.kt | 8 ++++---- .../main/res/layout/activity_tendency_test.xml | 8 ++++---- 6 files changed, 23 insertions(+), 14 deletions(-) diff --git a/presentation/src/main/java/com/going/presentation/onboarding/signin/SignInActivity.kt b/presentation/src/main/java/com/going/presentation/onboarding/signin/SignInActivity.kt index 48b75689..0219d53f 100644 --- a/presentation/src/main/java/com/going/presentation/onboarding/signin/SignInActivity.kt +++ b/presentation/src/main/java/com/going/presentation/onboarding/signin/SignInActivity.kt @@ -70,7 +70,7 @@ class SignInActivity : BaseActivity(R.layout.activity_sig private fun navigateToMainScreen() { // 추후 대시보드 연결시 연결 예정 - Intent(this, SettingActivity::class.java).apply { + Intent(this, TendencyTestSplashActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) startActivity(this) } diff --git a/presentation/src/main/java/com/going/presentation/onboarding/splash/SplashActivity.kt b/presentation/src/main/java/com/going/presentation/onboarding/splash/SplashActivity.kt index 0f77897d..54b5a48f 100644 --- a/presentation/src/main/java/com/going/presentation/onboarding/splash/SplashActivity.kt +++ b/presentation/src/main/java/com/going/presentation/onboarding/splash/SplashActivity.kt @@ -32,6 +32,8 @@ class SplashActivity : BaseActivity(R.layout.activity_spl private fun initSplash() { Handler(Looper.getMainLooper()).postDelayed({ + viewModel.clear() + if (viewModel.getHasAccessToken()) { navigateToMainScreen() } else { diff --git a/presentation/src/main/java/com/going/presentation/onboarding/splash/SplashViewModel.kt b/presentation/src/main/java/com/going/presentation/onboarding/splash/SplashViewModel.kt index 4858299c..911a4e10 100644 --- a/presentation/src/main/java/com/going/presentation/onboarding/splash/SplashViewModel.kt +++ b/presentation/src/main/java/com/going/presentation/onboarding/splash/SplashViewModel.kt @@ -10,4 +10,5 @@ class SplashViewModel @Inject constructor( private val tokenRepository: TokenRepository, ) : ViewModel() { fun getHasAccessToken(): Boolean = tokenRepository.getAccessToken().isNotBlank() + fun clear() = tokenRepository.clearTokens() } diff --git a/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestActivity.kt b/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestActivity.kt index 48756ace..1cbaf2f1 100644 --- a/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestActivity.kt +++ b/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestActivity.kt @@ -2,6 +2,7 @@ package com.going.presentation.tendencytest import android.animation.Animator import android.animation.ObjectAnimator +import android.content.Intent import android.os.Bundle import android.view.animation.DecelerateInterpolator import android.widget.ProgressBar @@ -10,6 +11,7 @@ import androidx.lifecycle.flowWithLifecycle import androidx.lifecycle.lifecycleScope import com.going.presentation.R import com.going.presentation.databinding.ActivityTendencyTestBinding +import com.going.presentation.tendencytest.result.TendencyTestResultActivity import com.going.ui.base.BaseActivity import com.going.ui.extension.EnumUiState import com.going.ui.extension.setOnSingleClickListener @@ -79,7 +81,7 @@ class TendencyTestActivity : object : Animator.AnimatorListener { override fun onAnimationStart(animation: Animator) { viewModel.clearAllChecked() - setProgressAnimate(binding.pbTendencyTest, viewModel.step.value + 1) + setProgressAnimate(binding.pbTendencyTest, viewModel.step.value) fadeOutList.map { it.start() } @@ -149,15 +151,19 @@ class TendencyTestActivity : viewModel.isSubmitTendencyState.flowWithLifecycle(lifecycle).onEach { state -> when (state) { EnumUiState.LOADING -> {} - EnumUiState.SUCCESS -> moveTendencyTestResultActivity() + EnumUiState.SUCCESS -> navigateToTendencyTestResultScreen() EnumUiState.FAILURE -> toast(getString(R.string.server_error)) EnumUiState.EMPTY -> {} } - } + }.launchIn(lifecycleScope) } - private fun moveTendencyTestResultActivity() { - // 페이지 이동 기능 추가 예정 + private fun navigateToTendencyTestResultScreen() { + Intent(this, TendencyTestResultActivity::class.java).apply { + addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) + startActivity(this) + } + finish() } companion object { diff --git a/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestViewModel.kt b/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestViewModel.kt index 63fe3c7a..1ae5eac1 100644 --- a/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestViewModel.kt +++ b/presentation/src/main/java/com/going/presentation/tendencytest/TendencyTestViewModel.kt @@ -105,10 +105,10 @@ class TendencyTestViewModel @Inject constructor( tendencyResultList[step.value - 1] = id when (id) { - 1 -> isFirstChecked.value = true - 2 -> isSecondChecked.value = true - 3 -> isThirdChecked.value = true - 4 -> isFourthChecked.value = true + 0 -> isFirstChecked.value = true + 1 -> isSecondChecked.value = true + 2 -> isThirdChecked.value = true + 3 -> isFourthChecked.value = true } } diff --git a/presentation/src/main/res/layout/activity_tendency_test.xml b/presentation/src/main/res/layout/activity_tendency_test.xml index 46973157..716c2505 100644 --- a/presentation/src/main/res/layout/activity_tendency_test.xml +++ b/presentation/src/main/res/layout/activity_tendency_test.xml @@ -87,7 +87,7 @@ android:layout_height="wrap_content" android:background="@color/transparent" android:clickable="true" - android:onClick="@{() -> viewModel.setCheckedValue(1)}" + android:onClick="@{() -> viewModel.setCheckedValue(0)}" android:text="@{viewModel.mockList.get(viewModel.step - 1).component2()}" android:textAppearance="@style/TextAppearance.Doorip.Body3.Medi" /> @@ -115,7 +115,7 @@ android:layout_height="wrap_content" android:background="@color/transparent" android:clickable="true" - android:onClick="@{() -> viewModel.setCheckedValue(2)}" + android:onClick="@{() -> viewModel.setCheckedValue(1)}" android:text="@{viewModel.mockList.get(viewModel.step - 1).component3()}" android:textAppearance="@style/TextAppearance.Doorip.Body3.Medi" /> @@ -143,7 +143,7 @@ android:layout_height="wrap_content" android:background="@color/transparent" android:clickable="true" - android:onClick="@{() -> viewModel.setCheckedValue(3)}" + android:onClick="@{() -> viewModel.setCheckedValue(2)}" android:text="@{viewModel.mockList.get(viewModel.step - 1).component4()}" android:textAppearance="@style/TextAppearance.Doorip.Body3.Medi" /> @@ -171,7 +171,7 @@ android:layout_height="wrap_content" android:background="@color/transparent" android:clickable="true" - android:onClick="@{() -> viewModel.setCheckedValue(4)}" + android:onClick="@{() -> viewModel.setCheckedValue(3)}" android:text="@{viewModel.mockList.get(viewModel.step - 1).component5()}" android:textAppearance="@style/TextAppearance.Doorip.Body3.Medi" /> From ea1157cd694d2041d80e34e8f00042527ab88a9f Mon Sep 17 00:00:00 2001 From: Dongmin Date: Fri, 12 Jan 2024 03:58:18 +0900 Subject: [PATCH 07/12] =?UTF-8?q?[CHORE/#79]=20tendency=5Ftest=5Fsplash=20?= =?UTF-8?q?UI=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/res/drawable/img_tendency_splash.png | Bin 0 -> 33302 bytes .../src/main/res/drawable/sel_full_button.xml | 17 ++++++ .../layout/activity_tendency_test_splash.xml | 53 ++++++++++++------ presentation/src/main/res/values/strings.xml | 5 +- 4 files changed, 55 insertions(+), 20 deletions(-) create mode 100644 presentation/src/main/res/drawable/img_tendency_splash.png create mode 100644 presentation/src/main/res/drawable/sel_full_button.xml diff --git a/presentation/src/main/res/drawable/img_tendency_splash.png b/presentation/src/main/res/drawable/img_tendency_splash.png new file mode 100644 index 0000000000000000000000000000000000000000..d6743b43cc5a2c84b06ee46955261be0eee2220d GIT binary patch literal 33302 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 + + + + + + + + + + + + + + + diff --git a/presentation/src/main/res/layout/activity_tendency_test_splash.xml b/presentation/src/main/res/layout/activity_tendency_test_splash.xml index cde5119f..efbb7fcd 100644 --- a/presentation/src/main/res/layout/activity_tendency_test_splash.xml +++ b/presentation/src/main/res/layout/activity_tendency_test_splash.xml @@ -11,40 +11,57 @@ android:layout_height="match_parent" android:background="@color/white_000"> + + - - - + + + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/tv_tendency_splash_title" /> 유형 검사하러 가기 - 9개의 질문으로\n여행 성향을 분석해보세요 - 시작하기 + 여행을 할 때 우리는 어떤 모습일까? + 9개의 질문으로\n나를 대신 할 여행 캐릭터를 찾아보세요 + 테스트 시작하기 나의 여행 성향은? From 936b9dbb4433da4c34fb5a56ef7ae56c9921b1ae Mon Sep 17 00:00:00 2001 From: Dongmin Date: Fri, 12 Jan 2024 04:34:34 +0900 Subject: [PATCH 08/12] =?UTF-8?q?[CHORE/#79]=20tendency=5Ftest=20UI=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/drawable/img_tendency_test.png | Bin 0 -> 15335 bytes .../main/res/layout/activity_tendency_test.xml | 15 +++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 presentation/src/main/res/drawable/img_tendency_test.png diff --git a/presentation/src/main/res/drawable/img_tendency_test.png b/presentation/src/main/res/drawable/img_tendency_test.png new file mode 100644 index 0000000000000000000000000000000000000000..ba2240fd9ff6ce49ec1cf2664a3eba8cab207672 GIT binary patch literal 15335 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¬JJCJ``t#u@ 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 afC(*d4496y0Q0|GfTFCbOa;;` + + Date: Fri, 12 Jan 2024 04:35:30 +0900 Subject: [PATCH 09/12] =?UTF-8?q?[CHORE/#79]=20=EC=9E=90=EA=B0=84=201=20->?= =?UTF-8?q?=201.2=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- presentation/src/main/res/values/appearances.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/presentation/src/main/res/values/appearances.xml b/presentation/src/main/res/values/appearances.xml index 940549e7..5c104b58 100644 --- a/presentation/src/main/res/values/appearances.xml +++ b/presentation/src/main/res/values/appearances.xml @@ -6,7 +6,7 @@ @color/gray_700 false false - 1.0 + 1.2 - \ No newline at end of file + From 9e958be075a492662e6e28843cad5a4928310fb5 Mon Sep 17 00:00:00 2001 From: Dongmin Date: Fri, 12 Jan 2024 04:38:56 +0900 Subject: [PATCH 10/12] =?UTF-8?q?[CHORE/#79]=20=EC=9E=90=EA=B0=84=201=20->?= =?UTF-8?q?=201.2=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- presentation/src/main/res/values/appearances.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/presentation/src/main/res/values/appearances.xml b/presentation/src/main/res/values/appearances.xml index 5c104b58..846c383c 100644 --- a/presentation/src/main/res/values/appearances.xml +++ b/presentation/src/main/res/values/appearances.xml @@ -18,7 +18,7 @@