From 327f1beb4650ae3e9cf46c3bfeb9b2cf96ed82d0 Mon Sep 17 00:00:00 2001 From: l2zh Date: Wed, 17 Jan 2024 20:46:03 +0900 Subject: [PATCH 1/6] #42-onboarding-api-connection: --- .../data/datasource/remote/AuthDataSource.kt | 4 ++ .../model/response/auth/ResponseLogoutDto.kt | 15 ++++++ .../data/repository/AuthRepositoryImpl.kt | 4 ++ .../sopt/motivoo/data/service/AuthService.kt | 4 ++ .../domain/repository/AuthRepository.kt | 3 ++ .../motivoo/presentation/MyLogoutFragment.kt | 54 ++++++++++++++++--- .../presentation/auth/AuthViewModel.kt | 20 +++++++ .../main/res/navigation/navigation_main.xml | 3 -- 8 files changed, 96 insertions(+), 11 deletions(-) create mode 100644 app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseLogoutDto.kt diff --git a/app/src/main/java/sopt/motivoo/data/datasource/remote/AuthDataSource.kt b/app/src/main/java/sopt/motivoo/data/datasource/remote/AuthDataSource.kt index db32fcf7..b7c65c4d 100644 --- a/app/src/main/java/sopt/motivoo/data/datasource/remote/AuthDataSource.kt +++ b/app/src/main/java/sopt/motivoo/data/datasource/remote/AuthDataSource.kt @@ -2,6 +2,7 @@ package sopt.motivoo.data.datasource.remote import sopt.motivoo.data.model.request.auth.RequestLoginDto import sopt.motivoo.data.model.response.auth.ResponseLoginDto +import sopt.motivoo.data.model.response.auth.ResponseLogoutDto import sopt.motivoo.data.service.AuthService import javax.inject.Inject @@ -12,4 +13,7 @@ class AuthDataSource @Inject constructor( requestLogin: RequestLoginDto ): ResponseLoginDto = authService.postLogin(requestLogin) + + suspend fun postLogout(): ResponseLogoutDto = + authService.postLogout() } diff --git a/app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseLogoutDto.kt b/app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseLogoutDto.kt new file mode 100644 index 00000000..5e03b21a --- /dev/null +++ b/app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseLogoutDto.kt @@ -0,0 +1,15 @@ +package sopt.motivoo.data.model.response.auth + + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class ResponseLogoutDto( + @SerialName("code") + val code: Int, + @SerialName("message") + val message: String, + @SerialName("success") + val success: Boolean +) diff --git a/app/src/main/java/sopt/motivoo/data/repository/AuthRepositoryImpl.kt b/app/src/main/java/sopt/motivoo/data/repository/AuthRepositoryImpl.kt index d86118f8..37194346 100644 --- a/app/src/main/java/sopt/motivoo/data/repository/AuthRepositoryImpl.kt +++ b/app/src/main/java/sopt/motivoo/data/repository/AuthRepositoryImpl.kt @@ -2,6 +2,7 @@ package sopt.motivoo.data.repository import sopt.motivoo.data.datasource.remote.AuthDataSource import sopt.motivoo.data.model.request.auth.RequestLoginDto +import sopt.motivoo.data.model.response.auth.ResponseLogoutDto import sopt.motivoo.domain.entity.auth.LoginInfo import sopt.motivoo.domain.repository.AuthRepository import javax.inject.Inject @@ -12,4 +13,7 @@ class AuthRepositoryImpl @Inject constructor( override suspend fun postLogin(requestLoginDto: RequestLoginDto): Result = runCatching { authDataSource.postLogin(requestLoginDto).toLoginInfo() } + + override suspend fun postLogout(): Result = + runCatching { authDataSource.postLogout() } } diff --git a/app/src/main/java/sopt/motivoo/data/service/AuthService.kt b/app/src/main/java/sopt/motivoo/data/service/AuthService.kt index f2ff89a2..a65a1f5e 100644 --- a/app/src/main/java/sopt/motivoo/data/service/AuthService.kt +++ b/app/src/main/java/sopt/motivoo/data/service/AuthService.kt @@ -4,10 +4,14 @@ import retrofit2.http.Body import retrofit2.http.POST import sopt.motivoo.data.model.request.auth.RequestLoginDto import sopt.motivoo.data.model.response.auth.ResponseLoginDto +import sopt.motivoo.data.model.response.auth.ResponseLogoutDto interface AuthService { @POST("oauth/login") suspend fun postLogin( @Body requestLoginDto: RequestLoginDto, ): ResponseLoginDto + + @POST("oauth/logout") + suspend fun postLogout(): ResponseLogoutDto } diff --git a/app/src/main/java/sopt/motivoo/domain/repository/AuthRepository.kt b/app/src/main/java/sopt/motivoo/domain/repository/AuthRepository.kt index 5c6949ff..2f79c5a2 100644 --- a/app/src/main/java/sopt/motivoo/domain/repository/AuthRepository.kt +++ b/app/src/main/java/sopt/motivoo/domain/repository/AuthRepository.kt @@ -2,9 +2,12 @@ package sopt.motivoo.domain.repository import retrofit2.http.Body import sopt.motivoo.data.model.request.auth.RequestLoginDto +import sopt.motivoo.data.model.response.auth.ResponseLogoutDto import sopt.motivoo.domain.entity.auth.LoginInfo interface AuthRepository { suspend fun postLogin(@Body requestLoginDto: RequestLoginDto): Result + + suspend fun postLogout(): Result } diff --git a/app/src/main/java/sopt/motivoo/presentation/MyLogoutFragment.kt b/app/src/main/java/sopt/motivoo/presentation/MyLogoutFragment.kt index c032e408..c7f4483c 100644 --- a/app/src/main/java/sopt/motivoo/presentation/MyLogoutFragment.kt +++ b/app/src/main/java/sopt/motivoo/presentation/MyLogoutFragment.kt @@ -2,33 +2,71 @@ package sopt.motivoo.presentation import android.os.Bundle import android.view.View +import androidx.fragment.app.viewModels +import androidx.lifecycle.flowWithLifecycle +import androidx.lifecycle.lifecycleScope +import androidx.navigation.NavOptions import androidx.navigation.fragment.findNavController +import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.flow.launchIn +import kotlinx.coroutines.flow.onEach import sopt.motivoo.R +import sopt.motivoo.data.service.KakaoAuthService import sopt.motivoo.databinding.FragmentMypageLogoutBinding +import sopt.motivoo.presentation.auth.AuthViewModel +import sopt.motivoo.util.UiState import sopt.motivoo.util.binding.BindingDialogFragment +import sopt.motivoo.util.extension.setOnSingleClickListener +import sopt.motivoo.util.findStartDestination +import javax.inject.Inject +@AndroidEntryPoint class MyLogoutFragment : BindingDialogFragment(R.layout.fragment_mypage_logout) { + + private val authViewModel by viewModels() + + @Inject + lateinit var kakaoAuthService: KakaoAuthService + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + setLayoutSizeRatio(widthPercent = 1f, heightPercent = 1f) clickButtons() } private fun clickButtons() { - binding.tvMyLogoutBtn.setOnClickListener { - navigateToLogin() + binding.tvMyLogoutBtn.setOnSingleClickListener { + kakaoAuthService.logoutKakao(authViewModel::postLogout) + collectData() } - binding.tvMyLogoutCancelBtn.setOnClickListener { - navigateMyInfo() + binding.tvMyLogoutCancelBtn.setOnSingleClickListener { + findNavController().popBackStack() } } - private fun navigateToLogin() { - findNavController().navigate(R.id.action_myLogout_to_loginFragment) + private fun collectData() { + authViewModel.logoutState.flowWithLifecycle(lifecycle).onEach { uiState -> + when (uiState) { + is UiState.Success -> { + authViewModel.resetLogoutState() + navigateToLogin() + } + + else -> Unit + } + }.launchIn(lifecycleScope) } - private fun navigateMyInfo() { - findNavController().navigate(R.id.action_myLogout_to_myInfoFragment) + private fun navigateToLogin() { + val navController = findNavController() + val startDestinationId = navController.findStartDestination().id + val navOptions = NavOptions.Builder() + .setPopUpTo(startDestinationId, true) + .build() + + navController.navigate(R.id.action_myLogout_to_loginFragment, null, navOptions) } + } diff --git a/app/src/main/java/sopt/motivoo/presentation/auth/AuthViewModel.kt b/app/src/main/java/sopt/motivoo/presentation/auth/AuthViewModel.kt index a17b1006..6b79277a 100644 --- a/app/src/main/java/sopt/motivoo/presentation/auth/AuthViewModel.kt +++ b/app/src/main/java/sopt/motivoo/presentation/auth/AuthViewModel.kt @@ -24,6 +24,10 @@ class AuthViewModel @Inject constructor( private val _loginState = MutableStateFlow>(UiState.Loading) val loginState get() = _loginState.asStateFlow() + private val _logoutState = MutableStateFlow>(UiState.Loading) + val logoutState get() = _logoutState.asStateFlow() + + private fun setAutoLogin() { motivooStorage.isUserLoggedIn = true } @@ -32,6 +36,10 @@ class AuthViewModel @Inject constructor( _loginState.value = UiState.Loading } + fun resetLogoutState() { + _logoutState.value = UiState.Loading + } + fun postLogin( platformToken: String, ) { @@ -58,6 +66,18 @@ class AuthViewModel @Inject constructor( setAutoLogin() } + fun postLogout() { + viewModelScope.launch { + authRepository.postLogout() + .onSuccess { + _logoutState.value = UiState.Success(true) + }.onFailure { throwable -> + _logoutState.value = UiState.Failure(throwable.message.toString()) + } + } + } + + companion object { const val BEARER_PREFIX = "Bearer " } diff --git a/app/src/main/res/navigation/navigation_main.xml b/app/src/main/res/navigation/navigation_main.xml index fb80bf05..ed88e94c 100644 --- a/app/src/main/res/navigation/navigation_main.xml +++ b/app/src/main/res/navigation/navigation_main.xml @@ -240,9 +240,6 @@ - Date: Wed, 17 Jan 2024 23:19:40 +0900 Subject: [PATCH 2/6] =?UTF-8?q?[feat]=20#48=20=ED=9A=8C=EC=9B=90=ED=83=88?= =?UTF-8?q?=ED=87=B4,=20=EB=A1=9C=EA=B7=B8=EC=95=84=EC=9B=83=20api=20?= =?UTF-8?q?=EC=97=B0=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/deploymentTargetDropDown.xml | 2 +- .../datasource/local/MotivooStorageImpl.kt | 4 -- .../data/datasource/remote/AuthDataSource.kt | 4 ++ .../response/auth/ResponseWithDrawDto.kt | 15 +++++++ .../data/repository/AuthRepositoryImpl.kt | 4 ++ .../sopt/motivoo/data/service/AuthService.kt | 6 +++ .../motivoo/domain/entity/MotivooStorage.kt | 1 - .../domain/repository/AuthRepository.kt | 3 ++ .../presentation/MyServiceOutFragment.kt | 41 ++++++++++++++++--- .../presentation/auth/AuthViewModel.kt | 23 ++++++++--- .../presentation/intro/TermsOfUseFragment.kt | 1 + .../main/res/navigation/navigation_main.xml | 5 +-- 12 files changed, 87 insertions(+), 22 deletions(-) create mode 100644 app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseWithDrawDto.kt diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 2acb4307..4f677a66 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -12,6 +12,6 @@ - + \ No newline at end of file diff --git a/app/src/main/java/sopt/motivoo/data/datasource/local/MotivooStorageImpl.kt b/app/src/main/java/sopt/motivoo/data/datasource/local/MotivooStorageImpl.kt index 2a7b0251..325f9214 100644 --- a/app/src/main/java/sopt/motivoo/data/datasource/local/MotivooStorageImpl.kt +++ b/app/src/main/java/sopt/motivoo/data/datasource/local/MotivooStorageImpl.kt @@ -35,10 +35,6 @@ class MotivooStorageImpl @Inject constructor(@ApplicationContext context: Contex get() = pref.getInt(STEP_COUNT, 0) set(value) = pref.edit { putInt(STEP_COUNT, value) } - override var nickName: String - get() = pref.getString(NAME, "") ?: "" - set(value) = pref.edit { putString(NAME, value) } - override var userId: Long set(value) = pref.edit { putLong(USER_ID, value) } get() = pref.getLong(USER_ID, 0L) diff --git a/app/src/main/java/sopt/motivoo/data/datasource/remote/AuthDataSource.kt b/app/src/main/java/sopt/motivoo/data/datasource/remote/AuthDataSource.kt index b7c65c4d..25e6c3a6 100644 --- a/app/src/main/java/sopt/motivoo/data/datasource/remote/AuthDataSource.kt +++ b/app/src/main/java/sopt/motivoo/data/datasource/remote/AuthDataSource.kt @@ -3,6 +3,7 @@ package sopt.motivoo.data.datasource.remote import sopt.motivoo.data.model.request.auth.RequestLoginDto import sopt.motivoo.data.model.response.auth.ResponseLoginDto import sopt.motivoo.data.model.response.auth.ResponseLogoutDto +import sopt.motivoo.data.model.response.auth.ResponseWithDrawDto import sopt.motivoo.data.service.AuthService import javax.inject.Inject @@ -16,4 +17,7 @@ class AuthDataSource @Inject constructor( suspend fun postLogout(): ResponseLogoutDto = authService.postLogout() + + suspend fun deleteWithDraw(): ResponseWithDrawDto = + authService.deleteWithDraw() } diff --git a/app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseWithDrawDto.kt b/app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseWithDrawDto.kt new file mode 100644 index 00000000..89424bd3 --- /dev/null +++ b/app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseWithDrawDto.kt @@ -0,0 +1,15 @@ +package sopt.motivoo.data.model.response.auth + + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class ResponseWithDrawDto( + @SerialName("code") + val code: Int, + @SerialName("message") + val message: String, + @SerialName("success") + val success: Boolean +) diff --git a/app/src/main/java/sopt/motivoo/data/repository/AuthRepositoryImpl.kt b/app/src/main/java/sopt/motivoo/data/repository/AuthRepositoryImpl.kt index 37194346..db29c24b 100644 --- a/app/src/main/java/sopt/motivoo/data/repository/AuthRepositoryImpl.kt +++ b/app/src/main/java/sopt/motivoo/data/repository/AuthRepositoryImpl.kt @@ -3,6 +3,7 @@ package sopt.motivoo.data.repository import sopt.motivoo.data.datasource.remote.AuthDataSource import sopt.motivoo.data.model.request.auth.RequestLoginDto import sopt.motivoo.data.model.response.auth.ResponseLogoutDto +import sopt.motivoo.data.model.response.auth.ResponseWithDrawDto import sopt.motivoo.domain.entity.auth.LoginInfo import sopt.motivoo.domain.repository.AuthRepository import javax.inject.Inject @@ -16,4 +17,7 @@ class AuthRepositoryImpl @Inject constructor( override suspend fun postLogout(): Result = runCatching { authDataSource.postLogout() } + + override suspend fun deleteWithDraw(): Result = + runCatching { authDataSource.deleteWithDraw() } } diff --git a/app/src/main/java/sopt/motivoo/data/service/AuthService.kt b/app/src/main/java/sopt/motivoo/data/service/AuthService.kt index a65a1f5e..c4ef7d6f 100644 --- a/app/src/main/java/sopt/motivoo/data/service/AuthService.kt +++ b/app/src/main/java/sopt/motivoo/data/service/AuthService.kt @@ -1,10 +1,12 @@ package sopt.motivoo.data.service import retrofit2.http.Body +import retrofit2.http.DELETE import retrofit2.http.POST import sopt.motivoo.data.model.request.auth.RequestLoginDto import sopt.motivoo.data.model.response.auth.ResponseLoginDto import sopt.motivoo.data.model.response.auth.ResponseLogoutDto +import sopt.motivoo.data.model.response.auth.ResponseWithDrawDto interface AuthService { @POST("oauth/login") @@ -14,4 +16,8 @@ interface AuthService { @POST("oauth/logout") suspend fun postLogout(): ResponseLogoutDto + + @DELETE("withdraw") + suspend fun deleteWithDraw(): ResponseWithDrawDto + } diff --git a/app/src/main/java/sopt/motivoo/domain/entity/MotivooStorage.kt b/app/src/main/java/sopt/motivoo/domain/entity/MotivooStorage.kt index f22922ee..88cb6a6d 100644 --- a/app/src/main/java/sopt/motivoo/domain/entity/MotivooStorage.kt +++ b/app/src/main/java/sopt/motivoo/domain/entity/MotivooStorage.kt @@ -1,7 +1,6 @@ package sopt.motivoo.domain.entity interface MotivooStorage { - var nickName: String var stepCount: Int var accessToken: String var refreshToken: String diff --git a/app/src/main/java/sopt/motivoo/domain/repository/AuthRepository.kt b/app/src/main/java/sopt/motivoo/domain/repository/AuthRepository.kt index 2f79c5a2..0955ae60 100644 --- a/app/src/main/java/sopt/motivoo/domain/repository/AuthRepository.kt +++ b/app/src/main/java/sopt/motivoo/domain/repository/AuthRepository.kt @@ -3,6 +3,7 @@ package sopt.motivoo.domain.repository import retrofit2.http.Body import sopt.motivoo.data.model.request.auth.RequestLoginDto import sopt.motivoo.data.model.response.auth.ResponseLogoutDto +import sopt.motivoo.data.model.response.auth.ResponseWithDrawDto import sopt.motivoo.domain.entity.auth.LoginInfo interface AuthRepository { @@ -10,4 +11,6 @@ interface AuthRepository { suspend fun postLogin(@Body requestLoginDto: RequestLoginDto): Result suspend fun postLogout(): Result + + suspend fun deleteWithDraw(): Result } diff --git a/app/src/main/java/sopt/motivoo/presentation/MyServiceOutFragment.kt b/app/src/main/java/sopt/motivoo/presentation/MyServiceOutFragment.kt index 38c0583e..b98566d4 100644 --- a/app/src/main/java/sopt/motivoo/presentation/MyServiceOutFragment.kt +++ b/app/src/main/java/sopt/motivoo/presentation/MyServiceOutFragment.kt @@ -2,33 +2,62 @@ package sopt.motivoo.presentation import android.os.Bundle import android.view.View +import androidx.fragment.app.viewModels +import androidx.lifecycle.flowWithLifecycle +import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController +import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.flow.launchIn +import kotlinx.coroutines.flow.onEach import sopt.motivoo.R +import sopt.motivoo.data.service.KakaoAuthService import sopt.motivoo.databinding.FragmentMypageServiceOutBinding +import sopt.motivoo.presentation.auth.AuthViewModel +import sopt.motivoo.util.UiState import sopt.motivoo.util.binding.BindingDialogFragment +import javax.inject.Inject +@AndroidEntryPoint class MyServiceOutFragment : BindingDialogFragment(R.layout.fragment_mypage_service_out) { + + private val authViewModel by viewModels() + + @Inject + lateinit var kakaoAuthService: KakaoAuthService + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + setLayoutSizeRatio(widthPercent = 1f, heightPercent = 1f) clickButtons() } private fun clickButtons() { binding.tvMyServiceOutBtn.setOnClickListener { - navigateToLogin() + kakaoAuthService.logoutKakao(authViewModel::withDraw) + collectData() } binding.tvMyServiceOutCancelBtn.setOnClickListener { - navigateMyInfo() + findNavController().popBackStack() } } - private fun navigateToLogin() { - findNavController().navigate(R.id.action_myServiceOut_to_loginFragment) + private fun collectData() { + authViewModel.withDrawState.flowWithLifecycle(lifecycle).onEach { uiState -> + when (uiState) { + is UiState.Success -> { + authViewModel.resetWithDrawState() + navigateToLogin() + } + + else -> Unit + } + }.launchIn(lifecycleScope) } - private fun navigateMyInfo() { - findNavController().navigate(R.id.action_myServiceOut_to_myInfoFragment) + private fun navigateToLogin() { + findNavController().navigate(R.id.action_myServiceOut_to_loginFragment) } } diff --git a/app/src/main/java/sopt/motivoo/presentation/auth/AuthViewModel.kt b/app/src/main/java/sopt/motivoo/presentation/auth/AuthViewModel.kt index 6b79277a..25679b1d 100644 --- a/app/src/main/java/sopt/motivoo/presentation/auth/AuthViewModel.kt +++ b/app/src/main/java/sopt/motivoo/presentation/auth/AuthViewModel.kt @@ -27,10 +27,8 @@ class AuthViewModel @Inject constructor( private val _logoutState = MutableStateFlow>(UiState.Loading) val logoutState get() = _logoutState.asStateFlow() - - private fun setAutoLogin() { - motivooStorage.isUserLoggedIn = true - } + private val _withDrawState = MutableStateFlow>(UiState.Loading) + val withDrawState get() = _withDrawState.asStateFlow() fun resetLoginState() { _loginState.value = UiState.Loading @@ -40,6 +38,10 @@ class AuthViewModel @Inject constructor( _logoutState.value = UiState.Loading } + fun resetWithDrawState() { + _withDrawState.value = UiState.Loading + } + fun postLogin( platformToken: String, ) { @@ -59,11 +61,9 @@ class AuthViewModel @Inject constructor( private fun handleLoginSuccess(signUpResponse: LoginInfo) { motivooStorage.userId = signUpResponse.id - motivooStorage.nickName = signUpResponse.nickName motivooStorage.accessToken = BEARER_PREFIX + signUpResponse.accessToken motivooStorage.refreshToken = BEARER_PREFIX + signUpResponse.refreshToken _loginState.value = UiState.Success(true) - setAutoLogin() } fun postLogout() { @@ -77,6 +77,17 @@ class AuthViewModel @Inject constructor( } } + fun withDraw() { + viewModelScope.launch { + authRepository.deleteWithDraw() + .onSuccess { + _withDrawState.value = UiState.Success(true) + }.onFailure { throwable -> + _withDrawState.value = UiState.Failure(throwable.message.toString()) + } + } + } + companion object { const val BEARER_PREFIX = "Bearer " diff --git a/app/src/main/java/sopt/motivoo/presentation/intro/TermsOfUseFragment.kt b/app/src/main/java/sopt/motivoo/presentation/intro/TermsOfUseFragment.kt index c62ab796..3235167a 100644 --- a/app/src/main/java/sopt/motivoo/presentation/intro/TermsOfUseFragment.kt +++ b/app/src/main/java/sopt/motivoo/presentation/intro/TermsOfUseFragment.kt @@ -32,6 +32,7 @@ class TermsOfUseFragment : private fun clickDoneButton() { binding.btnTermsOfUseDone.setOnSingleClickListener { findNavController().navigate(R.id.action_termsOfUseFragment_to_startMotivooFragment) + motivooStorage.isUserLoggedIn = true } } diff --git a/app/src/main/res/navigation/navigation_main.xml b/app/src/main/res/navigation/navigation_main.xml index ed88e94c..623a1689 100644 --- a/app/src/main/res/navigation/navigation_main.xml +++ b/app/src/main/res/navigation/navigation_main.xml @@ -2,7 +2,7 @@ + app:startDestination="@id/splashFragment"> - Date: Thu, 18 Jan 2024 00:26:47 +0900 Subject: [PATCH 3/6] =?UTF-8?q?[chore]=20#48=20=EB=9D=BC=EC=9D=B4=ED=8C=85?= =?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 --- .../motivoo/data/model/response/auth/ResponseLogoutDto.kt | 1 - .../data/model/response/auth/ResponseWithDrawDto.kt | 1 - .../main/java/sopt/motivoo/data/service/AuthService.kt | 1 - .../java/sopt/motivoo/presentation/MyLogoutFragment.kt | 1 - .../sopt/motivoo/presentation/MyServiceOutFragment.kt | 1 - .../java/sopt/motivoo/presentation/auth/AuthViewModel.kt | 1 - app/src/main/res/values/strings.xml | 8 ++++---- 7 files changed, 4 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseLogoutDto.kt b/app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseLogoutDto.kt index 5e03b21a..719f70b4 100644 --- a/app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseLogoutDto.kt +++ b/app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseLogoutDto.kt @@ -1,6 +1,5 @@ package sopt.motivoo.data.model.response.auth - import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseWithDrawDto.kt b/app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseWithDrawDto.kt index 89424bd3..393dfc28 100644 --- a/app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseWithDrawDto.kt +++ b/app/src/main/java/sopt/motivoo/data/model/response/auth/ResponseWithDrawDto.kt @@ -1,6 +1,5 @@ package sopt.motivoo.data.model.response.auth - import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/app/src/main/java/sopt/motivoo/data/service/AuthService.kt b/app/src/main/java/sopt/motivoo/data/service/AuthService.kt index c4ef7d6f..31df8485 100644 --- a/app/src/main/java/sopt/motivoo/data/service/AuthService.kt +++ b/app/src/main/java/sopt/motivoo/data/service/AuthService.kt @@ -19,5 +19,4 @@ interface AuthService { @DELETE("withdraw") suspend fun deleteWithDraw(): ResponseWithDrawDto - } diff --git a/app/src/main/java/sopt/motivoo/presentation/MyLogoutFragment.kt b/app/src/main/java/sopt/motivoo/presentation/MyLogoutFragment.kt index c7f4483c..00cb4937 100644 --- a/app/src/main/java/sopt/motivoo/presentation/MyLogoutFragment.kt +++ b/app/src/main/java/sopt/motivoo/presentation/MyLogoutFragment.kt @@ -68,5 +68,4 @@ class MyLogoutFragment : navController.navigate(R.id.action_myLogout_to_loginFragment, null, navOptions) } - } diff --git a/app/src/main/java/sopt/motivoo/presentation/MyServiceOutFragment.kt b/app/src/main/java/sopt/motivoo/presentation/MyServiceOutFragment.kt index b98566d4..cd75d8ee 100644 --- a/app/src/main/java/sopt/motivoo/presentation/MyServiceOutFragment.kt +++ b/app/src/main/java/sopt/motivoo/presentation/MyServiceOutFragment.kt @@ -26,7 +26,6 @@ class MyServiceOutFragment : @Inject lateinit var kakaoAuthService: KakaoAuthService - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) setLayoutSizeRatio(widthPercent = 1f, heightPercent = 1f) diff --git a/app/src/main/java/sopt/motivoo/presentation/auth/AuthViewModel.kt b/app/src/main/java/sopt/motivoo/presentation/auth/AuthViewModel.kt index 25679b1d..664f93f8 100644 --- a/app/src/main/java/sopt/motivoo/presentation/auth/AuthViewModel.kt +++ b/app/src/main/java/sopt/motivoo/presentation/auth/AuthViewModel.kt @@ -88,7 +88,6 @@ class AuthViewModel @Inject constructor( } } - companion object { const val BEARER_PREFIX = "Bearer " } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 77f4acd9..a5af6b97 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -36,10 +36,10 @@ 가장 많이 하는 활동을 기준으로 선택해주세요 일주일에 운동을\n몇 번 하시나요? 해당 활동을 일주일에\n몇 번 하시나요? - 1일 이하 - 1일 - 3일 이내 - 3일 - 5일 이내 - 5일 - 매일 + 1회 미만 + 1-2회 + 3-4회 + 5회 이상 30분 미만 30분 - 1시간 1시간 - 2시간 From cf5664c8d9b530ca34a83fd200d6aa6310706d60 Mon Sep 17 00:00:00 2001 From: l2zh Date: Thu, 18 Jan 2024 00:54:48 +0900 Subject: [PATCH 4/6] =?UTF-8?q?[mod]=20#48=20=EB=A7=A4=EC=B9=AD=20?= =?UTF-8?q?=ED=99=95=EC=9D=B8=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/deploymentTargetDropDown.xml | 17 ----------------- app/src/main/AndroidManifest.xml | 2 +- .../invitecode/GetInviteCodeViewModel.kt | 3 +++ 3 files changed, 4 insertions(+), 18 deletions(-) delete mode 100644 .idea/deploymentTargetDropDown.xml diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml deleted file mode 100644 index 4f677a66..00000000 --- a/.idea/deploymentTargetDropDown.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 67ee03fd..3604178d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,7 +21,7 @@ Date: Thu, 18 Jan 2024 00:55:08 +0900 Subject: [PATCH 5/6] [chor] #48 ktlint --- .../motivoo/presentation/invitecode/GetInviteCodeViewModel.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/sopt/motivoo/presentation/invitecode/GetInviteCodeViewModel.kt b/app/src/main/java/sopt/motivoo/presentation/invitecode/GetInviteCodeViewModel.kt index 2f2e3c04..2a97759b 100644 --- a/app/src/main/java/sopt/motivoo/presentation/invitecode/GetInviteCodeViewModel.kt +++ b/app/src/main/java/sopt/motivoo/presentation/invitecode/GetInviteCodeViewModel.kt @@ -14,7 +14,7 @@ import javax.inject.Inject @HiltViewModel class GetInviteCodeViewModel @Inject constructor( - private val motivooStorage: MotivooStorage + private val motivooStorage: MotivooStorage, private val onboardingRepository: OnboardingRepository, ) : ViewModel() { From ad0da39a83a5c6072d452f1a460d4ca94f9d6dae Mon Sep 17 00:00:00 2001 From: l2zh Date: Thu, 18 Jan 2024 01:09:25 +0900 Subject: [PATCH 6/6] =?UTF-8?q?[feat]=20#48=20=EC=9B=B9=EB=B7=B0=20?= =?UTF-8?q?=EB=9D=84=EC=9A=B0=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/intro/TermsOfUseFragment.kt | 21 +++++++++++++++++++ .../main/res/navigation/navigation_main.xml | 7 +++++++ 2 files changed, 28 insertions(+) diff --git a/app/src/main/java/sopt/motivoo/presentation/intro/TermsOfUseFragment.kt b/app/src/main/java/sopt/motivoo/presentation/intro/TermsOfUseFragment.kt index 3235167a..c10a32b3 100644 --- a/app/src/main/java/sopt/motivoo/presentation/intro/TermsOfUseFragment.kt +++ b/app/src/main/java/sopt/motivoo/presentation/intro/TermsOfUseFragment.kt @@ -27,6 +27,27 @@ class TermsOfUseFragment : goToBack() clickDoneButton() setupCheckAllListener() + goToTermsWebFragment() + } + + private fun goToTermsWebFragment() { + binding.tvTermsOfUseLink.setOnSingleClickListener { + val action = TermsOfUseFragmentDirections + .actionTermsOfUseFragmentToWebViewFragment("https://gayeong04.notion.site/82b7d6d8cc3f4091aa0a3b41bbfc6c62?pvs=4") + findNavController().navigate(action) + } + + binding.tvTermsGetInfoLink.setOnSingleClickListener { + val action = TermsOfUseFragmentDirections + .actionTermsOfUseFragmentToWebViewFragment("https://gayeong04.notion.site/e85e6a92bcce43bbac61c0de4e79cd14?pvs=4") + findNavController().navigate(action) + } + + binding.tvTermsUseInfoLink.setOnSingleClickListener { + val action = TermsOfUseFragmentDirections + .actionTermsOfUseFragmentToWebViewFragment("https://gayeong04.notion.site/df1e215e4b2248d28a913ea27788a777?pvs=4") + findNavController().navigate(action) + } } private fun clickDoneButton() { diff --git a/app/src/main/res/navigation/navigation_main.xml b/app/src/main/res/navigation/navigation_main.xml index 623a1689..c1b3c2e3 100644 --- a/app/src/main/res/navigation/navigation_main.xml +++ b/app/src/main/res/navigation/navigation_main.xml @@ -275,6 +275,13 @@ app:exitAnim="@anim/slide_out_left" app:popEnterAnim="@anim/slide_in_left" app:popExitAnim="@anim/slide_out_right" /> +