From bd85081b2297ced6d61e88284ea41f66f201a9d3 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 21 Feb 2024 15:31:48 +0900 Subject: [PATCH 1/6] fix: baseActivity --- .../main/java/com/example/beering/feature/home/HomeFragment.kt | 1 + app/src/main/java/com/example/beering/util/ApiClient.kt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/example/beering/feature/home/HomeFragment.kt b/app/src/main/java/com/example/beering/feature/home/HomeFragment.kt index beb3cfe..a0dfdde 100644 --- a/app/src/main/java/com/example/beering/feature/home/HomeFragment.kt +++ b/app/src/main/java/com/example/beering/feature/home/HomeFragment.kt @@ -31,6 +31,7 @@ class HomeFragment: Fragment() { savedInstanceState: Bundle? ): View? { binding = FragmentHomeBinding.inflate(inflater, container, false) + val recyclerView: RecyclerView = binding.itemHomeRv var homeService:ReviewsApiService? = null diff --git a/app/src/main/java/com/example/beering/util/ApiClient.kt b/app/src/main/java/com/example/beering/util/ApiClient.kt index 7017412..02e29bf 100644 --- a/app/src/main/java/com/example/beering/util/ApiClient.kt +++ b/app/src/main/java/com/example/beering/util/ApiClient.kt @@ -33,7 +33,7 @@ class HeaderInterceptor constructor(private val token: String) : Interceptor { @Throws(IOException::class) override fun intercept(chain: Interceptor.Chain): Response { - val token = "Bearer $token" + val token = "$token" val newRequest = chain.request().newBuilder() .addHeader("Authorization", token) .build() From 331afa641629060ea1426c4b4f35b38233678ee7 Mon Sep 17 00:00:00 2001 From: sh1220 Date: Wed, 28 Feb 2024 16:49:22 +0900 Subject: [PATCH 2/6] temp --- app/src/main/AndroidManifest.xml | 2 + .../feature/auth/join/ui/JoinKakaoActivity.kt | 218 ++++++++++++++++++ .../feature/auth/login/LoginActivity.kt | 107 ++++++--- .../feature/auth/login/LoginApiService.kt | 2 +- .../feature/search/DrinkSearchFragment.kt | 8 +- .../com/example/beering/util/ApiClient.kt | 2 +- app/src/main/res/layout/activity_join.xml | 2 +- 7 files changed, 300 insertions(+), 41 deletions(-) create mode 100644 app/src/main/java/com/example/beering/feature/auth/join/ui/JoinKakaoActivity.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 024018b..c9b1984 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -36,6 +36,8 @@ + diff --git a/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinKakaoActivity.kt b/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinKakaoActivity.kt new file mode 100644 index 0000000..7abcbce --- /dev/null +++ b/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinKakaoActivity.kt @@ -0,0 +1,218 @@ +package com.example.beering.feature.auth.join.ui + +import android.content.Intent +import android.text.Editable +import android.text.TextWatcher +import android.view.View +import android.view.ViewGroup +import androidx.activity.viewModels +import androidx.core.content.ContextCompat +import androidx.core.view.marginTop +import androidx.lifecycle.Observer +import com.example.beering.R +import com.example.beering.databinding.ActivityJoinBinding +import com.example.beering.util.base.BaseActivity +import com.example.beering.util.dpToPx + +class JoinKakaoActivity: BaseActivity(ActivityJoinBinding::inflate) { + private val joinViewModel : JoinViewModel by viewModels { JoinViewModel.Factory } + + + override fun initAfterBinding() { + binding.joinHeaderCl.toolbarBackIv.setOnClickListener { + finish() + } + + // ui재사용을 위한 초기 설정 + + binding.joinIdCl.visibility = View.GONE + binding.joinPasswordCl.visibility = View.GONE + binding.joinPasswordAgainCl.visibility = View.GONE + + val layoutParamsNicknme = binding.joinNicknameCl.layoutParams as ViewGroup.MarginLayoutParams + layoutParamsNicknme.topMargin = 0 + binding.joinNicknameCl.layoutParams = layoutParamsNicknme + + + + val layoutParamsNextOn = binding.joinNextOnIv.layoutParams as ViewGroup.MarginLayoutParams + layoutParamsNextOn.topMargin = dpToPx(500, this) + binding.joinNextOnIv.layoutParams = layoutParamsNextOn + + val layoutParamsNextOff = binding.joinNextOffIv.layoutParams as ViewGroup.MarginLayoutParams + layoutParamsNextOff.topMargin = dpToPx(500, this) + binding.joinNextOffIv.layoutParams = layoutParamsNextOff + + + + val nicknameEdit = binding.joinNicknameEd + joinViewModel.name.observe(this, Observer{ + if (it.isNotEmpty()) { + nicknameEdit.setTextColor( + ContextCompat.getColor( + this@JoinKakaoActivity, + R.color.beering_black + ) + ) + binding.joinNicknameBar.setBackgroundColor( + ContextCompat.getColor( + this@JoinKakaoActivity, + R.color.beering_black + ) + ) + binding.joinNicknameIv1.setImageResource(R.drawable.ic_delete_dark) + + } else { + nicknameEdit.setTextColor( + ContextCompat.getColor( + this@JoinKakaoActivity, + R.color.gray01 + ) + ) + binding.joinNicknameBar.setBackgroundColor( + ContextCompat.getColor( + this@JoinKakaoActivity, + R.color.gray01 + ) + ) + binding.joinNicknameIv1.setImageResource(R.drawable.ic_delete_light) + binding.conditionText.setTextColor( + ContextCompat.getColor( + this@JoinKakaoActivity, + R.color.gray01 + )) + binding.check5.setImageResource(R.drawable.ic_check_light) + binding.conditionLength2.setTextColor( + ContextCompat.getColor( + this@JoinKakaoActivity, + R.color.gray01 + )) + binding.check6.setImageResource(R.drawable.ic_check_light) + binding.joinNicknameIv21.visibility = View.VISIBLE + } + }) + joinViewModel.nicknameValidation.observe(this, Observer{ + // 닉네임이 영어, 한글 문자, 그리고 숫자로만 이루어져 있는지 확인 + if (it.characters) { + binding.conditionText.setTextColor( + ContextCompat.getColor( + this@JoinKakaoActivity, + R.color.beering_black + ) + ) + binding.check5.setImageResource(R.drawable.ic_check_dark) + } else { + binding.conditionText.setTextColor( + ContextCompat.getColor( + this@JoinKakaoActivity, + R.color.gray01 + ) + ) + binding.check5.setImageResource(R.drawable.ic_check_light) + } + + // 닉네임의 길이가 1에서 10자 사이인지 확인 + if (it.length) { + binding.conditionLength2.setTextColor( + ContextCompat.getColor( + this@JoinKakaoActivity, + R.color.beering_black + ) + ) + binding.check6.setImageResource(R.drawable.ic_check_dark) + } else { + binding.conditionLength2.setTextColor( + ContextCompat.getColor( + this@JoinKakaoActivity, + R.color.gray01 + ) + ) + binding.check6.setImageResource(R.drawable.ic_check_light) + } + // 닉네임이 유효한지 확인 + if (it.valid) { + binding.joinNicknameIv21.visibility = View.INVISIBLE + binding.joinNicknameIv22.visibility = View.VISIBLE + }else { + binding.joinNicknameIv21.visibility = View.VISIBLE + binding.joinNicknameIv22.visibility = View.GONE + } + }) // 닉네임 유효성 검사 + joinViewModel.nicknameCheck.observe(this, Observer{ + when(it!!){ + JoinViewModel.Companion.DuplicationCheck.PROCEEDING -> { + binding.conditionText.visibility = View.VISIBLE + binding.conditionLength2.visibility = View.VISIBLE + binding.check5.visibility = View.VISIBLE + binding.check6.visibility = View.VISIBLE + binding.joinNicknameCheck.visibility = View.GONE + binding.joinNicknameUncheck.visibility = View.GONE + } + JoinViewModel.Companion.DuplicationCheck.UNCHECKED -> { + binding.conditionText.visibility = View.GONE + binding.conditionLength2.visibility = View.GONE + binding.check5.visibility = View.GONE + binding.check6.visibility = View.GONE + binding.joinNicknameCheck.visibility = View.GONE + binding.joinNicknameUncheck.visibility = View.VISIBLE + } + JoinViewModel.Companion.DuplicationCheck.CHECKED -> { + binding.conditionText.visibility = View.GONE + binding.conditionLength2.visibility = View.GONE + binding.check5.visibility = View.GONE + binding.check6.visibility = View.GONE + binding.joinNicknameCheck.visibility = View.VISIBLE + binding.joinNicknameUncheck.visibility = View.GONE + } + } + + }) // 닉네임 중복여부 + joinViewModel.validNext.observe(this, Observer { + when(it){ + true -> binding.joinNextOnIv.visibility = View.VISIBLE + else -> binding.joinNextOnIv.visibility = View.GONE + } + }) + + + + // 닉네임 + nicknameEdit.addTextChangedListener(object : TextWatcher { + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} + + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { + joinViewModel.setName(nicknameEdit.text.toString()) + + } + override fun afterTextChanged(s: Editable?) {} + }) + + // 닉네임 x 버튼 + binding.joinNicknameIv1.setOnClickListener { + binding.joinNicknameEd.text.clear() + joinViewModel.setName("") + } + // 닉네임 중복체크 + binding.joinNicknameIv22.setOnClickListener { + joinViewModel.checkNickname() + } + + + + binding.joinNextOnIv.setOnClickListener { + val mIntent = Intent(this, TermActivity::class.java) + mIntent.putExtra("name", joinViewModel.name.value) + startActivity(mIntent) + } + + + + + + + + + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/beering/feature/auth/login/LoginActivity.kt b/app/src/main/java/com/example/beering/feature/auth/login/LoginActivity.kt index 56950af..89c007e 100644 --- a/app/src/main/java/com/example/beering/feature/auth/login/LoginActivity.kt +++ b/app/src/main/java/com/example/beering/feature/auth/login/LoginActivity.kt @@ -14,6 +14,7 @@ import com.example.beering.feature.MainActivity import com.example.beering.util.getRetrofit import com.example.beering.databinding.ActivityLoginBinding import com.example.beering.feature.auth.join.ui.JoinActivity +import com.example.beering.feature.auth.join.ui.JoinKakaoActivity import com.example.beering.feature.auth.login.LoginActivity.Constants.TAG import com.example.beering.util.changeLogin import com.example.beering.util.setMemberId @@ -113,42 +114,63 @@ class LoginActivity : AppCompatActivity() { // 로그인 성공 부분 else if (token != null) { Log.d(Constants.TAG, "로그인 성공 ${token.accessToken}") - Toast.makeText(this@LoginActivity, "로그인 성공!", Toast.LENGTH_SHORT).show() // 로그인 성공시에 대한 로직 //api 연결 val signInService = getRetrofit().create(LoginApiService::class.java) val user = - KakaoLoginRequest(token.idToken!!, token.accessToken, token.refreshToken) - signInService.kakaoSignIn(user).enqueue(object : retrofit2.Callback { - override fun onResponse( - call: Call, - response: Response - ) { - val resp = response.body() - if (resp!!.isSuccess) { - if(resp!!.result.jwtInfo != null){ - //기존에 카카오 계정으로 회원가입 했었다면 바로 로그인 처리 - val userToken = resp!!.result.jwtInfo + KakaoLoginRequest( + token.idToken!!, + token.accessToken, + token.refreshToken + ) +// Log.d("test1", token.idToken!!) +// Log.d("test2", token.accessToken) +// Log.d("test3", token.refreshToken) + signInService.kakaoSignIn(user) + .enqueue(object : retrofit2.Callback { + override fun onResponse( + call: Call, + response: Response + ) { + val resp = response.body() + if (response.isSuccessful) { + if (resp!!.isSuccess) { + if (resp!!.responseCode == 1000) { + //기존에 카카오 계정으로 회원가입 했었다면 바로 로그인 처리 + val userToken = resp!!.result.jwtInfo // setToken(this@LoginActivity, userToken) - setToken(userToken) - - - val intent = Intent(this@LoginActivity, MainActivity::class.java) - intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK - startActivity(intent) - finish() - changeLogin(true) - setMemberId(this@LoginActivity, resp.result.memberId) - } - else { - //카카오 계정 인증은 됐지만 회원가입은 아직 미완료 - - - } - - - } else { + setToken(userToken) + + + val intent = Intent( + this@LoginActivity, + MainActivity::class.java + ) + intent.flags = + Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK + startActivity(intent) + finish() + changeLogin(true) + setMemberId( + this@LoginActivity, + resp.result.memberId + ) + } else { + //카카오 계정 인증은 됐지만 회원가입은 아직 미완료 + if (resp!!.responseCode == 1000) { + val intent = Intent( + this@LoginActivity, + JoinKakaoActivity::class.java + ) + startActivity(intent) + + + } + } + + + } else { // binding.loginErrorTv.text = resp!!.responseMessage // binding.loginErrorTv.visibility = View.VISIBLE // binding.loginIdV.setBackgroundColor( @@ -164,10 +186,27 @@ class LoginActivity : AppCompatActivity() { // ) // ) + } + } else { + Toast.makeText( + this@LoginActivity, + "서버 통신 오류 발생", + Toast.LENGTH_SHORT + ).show() + + // 임시 테스트 + val intent = Intent( + this@LoginActivity, + JoinKakaoActivity::class.java + ) + startActivity(intent) + } } - } - override fun onFailure(call: Call, t: Throwable) { + override fun onFailure( + call: Call, + t: Throwable + ) { // binding.loginErrorTv.text = "서버에 요청을 실패하였습니다." // binding.loginErrorTv.visibility = View.VISIBLE // binding.loginIdV.setBackgroundColor( @@ -182,9 +221,9 @@ class LoginActivity : AppCompatActivity() { // R.color.beering_red // ) // ) - } + } - }) + }) } } diff --git a/app/src/main/java/com/example/beering/feature/auth/login/LoginApiService.kt b/app/src/main/java/com/example/beering/feature/auth/login/LoginApiService.kt index e946118..53233e5 100644 --- a/app/src/main/java/com/example/beering/feature/auth/login/LoginApiService.kt +++ b/app/src/main/java/com/example/beering/feature/auth/login/LoginApiService.kt @@ -8,6 +8,6 @@ interface LoginApiService { @POST("/auth/login") fun signIn(@Body loginRequest: LoginRequest): Call - @POST("/oauth/sdk") + @POST("/oauth/sdk/login") fun kakaoSignIn(@Body kakoLoginRequest: KakaoLoginRequest): Call } \ No newline at end of file diff --git a/app/src/main/java/com/example/beering/feature/search/DrinkSearchFragment.kt b/app/src/main/java/com/example/beering/feature/search/DrinkSearchFragment.kt index 21e5d7f..cf66a0a 100644 --- a/app/src/main/java/com/example/beering/feature/search/DrinkSearchFragment.kt +++ b/app/src/main/java/com/example/beering/feature/search/DrinkSearchFragment.kt @@ -55,7 +55,7 @@ class DrinkSearchFragment : Fragment() { // 0: 이름순, 1: 리뷰많은순, 2: 최저가순, 3: 평점순 var searchCountry : String? = null - var searchTagList = mutableListOf() // 필터 태그 + var searchTagList : MutableList? = null // 필터 태그 // 필터 하위 옵션 var searchSweetness: Int? = null // 와인 하위옵션 @@ -217,7 +217,7 @@ class DrinkSearchFragment : Fragment() { } - drinkSearchService.drinkSearch(null,binding.drinkSearchTopSearchEd.text.toString(), searchType, searchSort, searchPrice_min, searchPrice_max, searchCountry, searchTagList.joinToString(","), searchSweetness).enqueue(object : retrofit2.Callback { + drinkSearchService.drinkSearch(null,binding.drinkSearchTopSearchEd.text?.toString()?.takeIf { it.isNotEmpty() }, searchType, searchSort, searchPrice_min, searchPrice_max, searchCountry, null, searchSweetness).enqueue(object : retrofit2.Callback { override fun onResponse( call: Call, response: Response @@ -334,8 +334,8 @@ class DrinkSearchFragment : Fragment() { getRetrofit().create(DrinkSearchApiService::class.java) } - - drinkSearchService.drinkSearch(null,binding.drinkSearchTopSearchEd.text.toString(), searchType, searchSort, searchPrice_min, searchPrice_max, searchCountry, searchTagList.joinToString(","), searchSweetness).enqueue(object : retrofit2.Callback { + val searchTag = searchTagList?.joinToString(",") + drinkSearchService.drinkSearch(null,binding.drinkSearchTopSearchEd.text?.toString()?.takeIf { it.isNotEmpty() } , searchType, searchSort, searchPrice_min, searchPrice_max, searchCountry, searchTag , searchSweetness).enqueue(object : retrofit2.Callback { override fun onResponse( call: Call, response: Response diff --git a/app/src/main/java/com/example/beering/util/ApiClient.kt b/app/src/main/java/com/example/beering/util/ApiClient.kt index 7017412..02e29bf 100644 --- a/app/src/main/java/com/example/beering/util/ApiClient.kt +++ b/app/src/main/java/com/example/beering/util/ApiClient.kt @@ -33,7 +33,7 @@ class HeaderInterceptor constructor(private val token: String) : Interceptor { @Throws(IOException::class) override fun intercept(chain: Interceptor.Chain): Response { - val token = "Bearer $token" + val token = "$token" val newRequest = chain.request().newBuilder() .addHeader("Authorization", token) .build() diff --git a/app/src/main/res/layout/activity_join.xml b/app/src/main/res/layout/activity_join.xml index 659366b..bd86dc7 100644 --- a/app/src/main/res/layout/activity_join.xml +++ b/app/src/main/res/layout/activity_join.xml @@ -518,7 +518,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/join_input_cl"/> - + Date: Fri, 8 Mar 2024 13:44:54 +0900 Subject: [PATCH 3/6] temp --- .../beering/data/ApiResultInterceptor.kt | 2 +- .../feature/auth/join/ui/JoinKakaoActivity.kt | 3 ++ .../feature/auth/join/ui/JoinViewModel.kt | 31 +++++++++++++++---- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/example/beering/data/ApiResultInterceptor.kt b/app/src/main/java/com/example/beering/data/ApiResultInterceptor.kt index 36710b4..4985baf 100644 --- a/app/src/main/java/com/example/beering/data/ApiResultInterceptor.kt +++ b/app/src/main/java/com/example/beering/data/ApiResultInterceptor.kt @@ -15,7 +15,7 @@ import org.json.JSONObject class ApiResultInterceptor(val context : Context) : Interceptor { - // TODO : 나중에 다시 적용 + // TODO : 나중에 다시 적용` override fun intercept(chain: Interceptor.Chain): Response { val request = chain.request() val response = chain.proceed(request) diff --git a/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinKakaoActivity.kt b/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinKakaoActivity.kt index 7abcbce..fa0d2e9 100644 --- a/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinKakaoActivity.kt +++ b/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinKakaoActivity.kt @@ -11,6 +11,7 @@ import androidx.core.view.marginTop import androidx.lifecycle.Observer import com.example.beering.R import com.example.beering.databinding.ActivityJoinBinding +import com.example.beering.util.addStatusBarMarginTop import com.example.beering.util.base.BaseActivity import com.example.beering.util.dpToPx @@ -19,6 +20,8 @@ class JoinKakaoActivity: BaseActivity(ActivityJoinBinding:: override fun initAfterBinding() { + binding.joinHeaderCl.root.addStatusBarMarginTop(this) + joinViewModel.setIsKakako(true) binding.joinHeaderCl.toolbarBackIv.setOnClickListener { finish() } diff --git a/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinViewModel.kt b/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinViewModel.kt index 4b6c1cf..f03a5f0 100644 --- a/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinViewModel.kt +++ b/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinViewModel.kt @@ -41,6 +41,8 @@ class JoinViewModel( private val _validNext = MutableLiveData() // 최종 활성화 여부 val validNext: LiveData = _validNext + var isKakao : Boolean + init{ _userId.value = "" _password.value = "" @@ -48,6 +50,7 @@ class JoinViewModel( _name.value = "" _idCheck.value = DuplicationCheck.PROCEEDING _nicknameCheck.value = DuplicationCheck.PROCEEDING + isKakao = false } fun setUserId(id : String){ _userId.value = id @@ -72,14 +75,30 @@ class JoinViewModel( _nicknameCheck.value = DuplicationCheck.PROCEEDING } + fun setIsKakako(isKakao : Boolean){ + this.isKakao = isKakao + } + fun validNext(){ - if (pwValidation.value == null){ - return + if(isKakao){ + validNextKakao() + } else { + if (pwValidation.value == null) { + return + } + _validNext.value = (pwValidation.value!!.valid + && pwValidation.value!!.isConfirmed + && nicknameCheck.value == DuplicationCheck.CHECKED + && idCheck.value == DuplicationCheck.CHECKED) + } - _validNext.value = (pwValidation.value!!.valid - && pwValidation.value!!.isConfirmed - && nicknameCheck.value == DuplicationCheck.CHECKED - && idCheck.value == DuplicationCheck.CHECKED) + } + + + + + fun validNextKakao(){ + _validNext.value = (nicknameCheck.value == DuplicationCheck.CHECKED) } fun checkId(){ From eadaa802cdc0e8c0df7623027003f3cff60d6203 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 11 Mar 2024 16:02:23 +0900 Subject: [PATCH 4/6] temp --- .../com/example/beering/feature/auth/join/ui/JoinActivity.kt | 4 +++- app/src/main/res/menu/bottom_nav_menu.xml | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinActivity.kt b/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinActivity.kt index 2646ec8..06c05be 100644 --- a/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinActivity.kt +++ b/app/src/main/java/com/example/beering/feature/auth/join/ui/JoinActivity.kt @@ -60,7 +60,9 @@ class JoinActivity: BaseActivity(ActivityJoinBinding::infla binding.joinIdIv22.visibility = View.VISIBLE binding.joinIdIv1.setOnClickListener { - binding.joinIdEd.text.clear() + binding.joinIdEd.text.clear( + + ) joinViewModel.setUserId("") } } else { diff --git a/app/src/main/res/menu/bottom_nav_menu.xml b/app/src/main/res/menu/bottom_nav_menu.xml index bb4888b..59982db 100644 --- a/app/src/main/res/menu/bottom_nav_menu.xml +++ b/app/src/main/res/menu/bottom_nav_menu.xml @@ -8,7 +8,8 @@ android:icon="@drawable/selector_home" android:title="홈" android:state_checked="true" - app:showAsAction="always" /> + app:showAsAction="always" + /> Date: Mon, 11 Mar 2024 16:03:27 +0900 Subject: [PATCH 5/6] temp --- .../com/example/beering/feature/auth/login/LoginActivity.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/com/example/beering/feature/auth/login/LoginActivity.kt b/app/src/main/java/com/example/beering/feature/auth/login/LoginActivity.kt index 89c007e..29a43c8 100644 --- a/app/src/main/java/com/example/beering/feature/auth/login/LoginActivity.kt +++ b/app/src/main/java/com/example/beering/feature/auth/login/LoginActivity.kt @@ -10,6 +10,8 @@ import android.view.View import android.widget.EditText import android.widget.Toast import androidx.appcompat.app.AppCompatActivity +import com.example.beering.data.auth.dto.LoginRequest +import com.example.beering.data.auth.dto.LoginResponse import com.example.beering.feature.MainActivity import com.example.beering.util.getRetrofit import com.example.beering.databinding.ActivityLoginBinding From 84bbab8cedea86989f13b93fbcdf0206dc14d652 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 11 Mar 2024 23:32:31 +0900 Subject: [PATCH 6/6] fix: Join&Login --- .../beering/feature/auth/join/ui/CompleteActivity.kt | 3 +++ .../example/beering/feature/auth/join/ui/TermActivity.kt | 7 ++++--- .../example/beering/feature/auth/login/ui/LoginActivity.kt | 3 +++ .../beering/feature/auth/login/ui/LoginViewModel.kt | 2 ++ .../java/com/example/beering/util/base/BaseResponse.kt | 2 +- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/example/beering/feature/auth/join/ui/CompleteActivity.kt b/app/src/main/java/com/example/beering/feature/auth/join/ui/CompleteActivity.kt index d79e5e3..25af4b2 100644 --- a/app/src/main/java/com/example/beering/feature/auth/join/ui/CompleteActivity.kt +++ b/app/src/main/java/com/example/beering/feature/auth/join/ui/CompleteActivity.kt @@ -15,6 +15,7 @@ import com.example.beering.feature.MainActivity import com.example.beering.feature.auth.login.domain.LoginUseCase import com.example.beering.feature.auth.login.ui.LoginActivity import com.example.beering.util.base.BaseActivity +import com.example.beering.util.changeLogin import com.google.android.material.snackbar.Snackbar import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -38,6 +39,8 @@ class CompleteActivity : BaseActivity(ActivityJoinC // UI를 업데이트합니다. result .onSuccess { + login.saveTokens(it.jwtInfo.accessToken, it.jwtInfo.refreshToken) + changeLogin(true) val mIntent = Intent(this@CompleteActivity, MainActivity::class.java) mIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK) startActivity(mIntent) diff --git a/app/src/main/java/com/example/beering/feature/auth/join/ui/TermActivity.kt b/app/src/main/java/com/example/beering/feature/auth/join/ui/TermActivity.kt index f0721b2..419d636 100644 --- a/app/src/main/java/com/example/beering/feature/auth/join/ui/TermActivity.kt +++ b/app/src/main/java/com/example/beering/feature/auth/join/ui/TermActivity.kt @@ -37,13 +37,14 @@ class TermActivity : BaseActivity(ActivityJoinTermBindi binding.termCheckFirstCb.isChecked = it[0] binding.termCheckSecondCb.isChecked = it[1] binding.termCheckThirdCb.isChecked = it[2] - if (it[0] && it[1] && it[2]){ + binding.termCheckAllCb.isChecked = it[0] && it[1] && it[2] + + if (it[0] && it[1]){ binding.termJoinOnIv.visibility = View.VISIBLE - binding.termCheckAllCb.isChecked = true } else { binding.termJoinOnIv.visibility = View.GONE - binding.termCheckAllCb.isChecked = false } + }) termViewModel.intentFlag.observe(this, Observer { it.getContentIfNotHandled()?.let{msg -> diff --git a/app/src/main/java/com/example/beering/feature/auth/login/ui/LoginActivity.kt b/app/src/main/java/com/example/beering/feature/auth/login/ui/LoginActivity.kt index c6ddeb9..c3929c0 100644 --- a/app/src/main/java/com/example/beering/feature/auth/login/ui/LoginActivity.kt +++ b/app/src/main/java/com/example/beering/feature/auth/login/ui/LoginActivity.kt @@ -13,6 +13,7 @@ import android.view.KeyEvent import android.view.View import android.view.animation.Animation import android.view.animation.AnimationUtils +import android.widget.EditText import android.widget.Toast import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity @@ -29,6 +30,7 @@ import com.example.beering.util.changeLogin import com.example.beering.util.getRetrofit import com.example.beering.util.setMemberId import com.example.beering.util.setToken +import com.google.android.material.card.MaterialCardView import com.google.android.material.snackbar.Snackbar import com.kakao.sdk.auth.AuthApiClient import com.kakao.sdk.auth.model.OAuthToken @@ -42,6 +44,7 @@ import retrofit2.Response class LoginActivity : AppCompatActivity() { + private val loginViewModel : LoginViewModel by viewModels{ LoginViewModel.Factory } lateinit var binding: ActivityLoginBinding object Constants { diff --git a/app/src/main/java/com/example/beering/feature/auth/login/ui/LoginViewModel.kt b/app/src/main/java/com/example/beering/feature/auth/login/ui/LoginViewModel.kt index ca1eab4..face04e 100644 --- a/app/src/main/java/com/example/beering/feature/auth/login/ui/LoginViewModel.kt +++ b/app/src/main/java/com/example/beering/feature/auth/login/ui/LoginViewModel.kt @@ -15,6 +15,7 @@ import com.example.beering.data.onSuccess import com.example.beering.feature.auth.join.domain.UserValidationUseCase import com.example.beering.feature.auth.join.ui.JoinViewModel import com.example.beering.feature.auth.login.domain.LoginUseCase +import com.example.beering.util.changeLogin import kotlinx.coroutines.launch class LoginViewModel( @@ -50,6 +51,7 @@ class LoginViewModel( login(id.value!!, pw.value!!) .onSuccess { login.saveTokens(it.jwtInfo.accessToken, it.jwtInfo.refreshToken) + changeLogin(true) _loginSuccess.value = SingleLiveEvent(true) } .onFail{code, msg -> diff --git a/app/src/main/java/com/example/beering/util/base/BaseResponse.kt b/app/src/main/java/com/example/beering/util/base/BaseResponse.kt index 8fc3302..a4bdb6d 100644 --- a/app/src/main/java/com/example/beering/util/base/BaseResponse.kt +++ b/app/src/main/java/com/example/beering/util/base/BaseResponse.kt @@ -6,5 +6,5 @@ data class BaseResponse ( @SerializedName("isSuccess") val isSuccess: Boolean, @SerializedName("responseCode") val responseCode: Int, @SerializedName("responseMessage") val responseMessage: String, - @SerializedName("result") val result: T? + @SerializedName("result") val result: T? ) \ No newline at end of file