From fceffc7ae635ef3f0f50319db5046e6e7898562e Mon Sep 17 00:00:00 2001 From: ikseong00 <127182222+ikseong00@users.noreply.github.com> Date: Mon, 1 Dec 2025 19:13:54 +0900 Subject: [PATCH 01/17] =?UTF-8?q?[feat]=20#109=20=EA=B2=80=EC=83=89=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=EC=97=90=EC=84=9C=20=EC=8B=A0=EA=B3=A0?= =?UTF-8?q?=ED=95=98=EA=B8=B0=20=EB=B2=84=ED=8A=BC=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/layout/fragment_search.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml index 7e744bf4..ca671dcb 100644 --- a/app/src/main/res/layout/fragment_search.xml +++ b/app/src/main/res/layout/fragment_search.xml @@ -61,6 +61,7 @@ android:paddingHorizontal="5dp" android:drawablePadding="5dp" android:text="신고하기" + android:visibility="invisible" android:textAppearance="@style/TextAppearance.FindU.Head2_SB_20" android:textColor="@color/white" app:layout_constraintBottom_toBottomOf="parent" From 5f3ca8928864c2e010703c37feeb593a4b1f2370 Mon Sep 17 00:00:00 2001 From: ikseong00 <127182222+ikseong00@users.noreply.github.com> Date: Mon, 1 Dec 2025 19:14:39 +0900 Subject: [PATCH 02/17] =?UTF-8?q?[fix]=20#109=20=EA=B2=80=EC=83=89=20?= =?UTF-8?q?=EC=83=81=EC=84=B8=20=ED=99=94=EB=A9=B4=20=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EC=95=84=EC=9B=83=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 검색 상세(실종, 목격) 화면에서 북마크 아이콘이 보이지 않던 문제를 수정합니다. - 댓글 버튼을 숨김 처리합니다. - 일부 코드 순서를 정리합니다. --- .../main/res/layout/fragment_search_detail_disappear.xml | 5 +++-- .../main/res/layout/fragment_search_detail_witness.xml | 9 +++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/layout/fragment_search_detail_disappear.xml b/app/src/main/res/layout/fragment_search_detail_disappear.xml index e0738ef9..b3ecd115 100644 --- a/app/src/main/res/layout/fragment_search_detail_disappear.xml +++ b/app/src/main/res/layout/fragment_search_detail_disappear.xml @@ -55,8 +55,8 @@ android:layout_width="match_parent" android:layout_height="303dp" android:layout_marginTop="11dp" - android:clipToOutline="true" android:background="@drawable/bg_radius_20" + android:clipToOutline="true" android:nestedScrollingEnabled="false" android:paddingStart="20dp" android:paddingEnd="20dp" @@ -454,7 +454,8 @@ android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" - android:orientation="horizontal"> + android:orientation="horizontal" + android:visibility="gone"> @@ -53,10 +53,10 @@ android:id="@+id/vp_search_detail_img" android:layout_width="match_parent" android:layout_height="303dp" - android:paddingStart="20dp" android:layout_marginTop="11dp" - android:paddingEnd="20dp" android:nestedScrollingEnabled="false" + android:paddingStart="20dp" + android:paddingEnd="20dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -382,7 +382,8 @@ android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" - android:orientation="horizontal"> + android:orientation="horizontal" + android:visibility="gone"> Date: Mon, 1 Dec 2025 19:20:08 +0900 Subject: [PATCH 03/17] =?UTF-8?q?[feat]=20#109=20=EB=84=A4=EC=9D=B4?= =?UTF-8?q?=EB=B2=84=20=EC=A7=80=EB=8F=84=20=EB=A1=9C=EA=B3=A0=20=ED=81=B4?= =?UTF-8?q?=EB=A6=AD=20=EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 상세 화면에서 네이버 지도 로고 클릭을 비활성화하여 외부 앱으로 이동하는 것을 방지 --- .../ui/search/detail/SearchDisappearDetailFragment.kt | 1 + .../ui/search/detail/SearchProtectingDetailFragment.kt | 1 + .../presentation/ui/search/detail/SearchWitnessDetailFragment.kt | 1 + 3 files changed, 3 insertions(+) diff --git a/app/src/main/java/com/kuit/findu/presentation/ui/search/detail/SearchDisappearDetailFragment.kt b/app/src/main/java/com/kuit/findu/presentation/ui/search/detail/SearchDisappearDetailFragment.kt index 4e99c236..e8e81a2f 100644 --- a/app/src/main/java/com/kuit/findu/presentation/ui/search/detail/SearchDisappearDetailFragment.kt +++ b/app/src/main/java/com/kuit/findu/presentation/ui/search/detail/SearchDisappearDetailFragment.kt @@ -56,6 +56,7 @@ class SearchDisappearDetailFragment : Fragment() { binding.mapView.getMapAsync { nMap -> naverMap = nMap + naverMap?.uiSettings?.isLogoClickEnabled = false pendingLocation?.let { location -> setupMap(location.latitude, location.longitude) } diff --git a/app/src/main/java/com/kuit/findu/presentation/ui/search/detail/SearchProtectingDetailFragment.kt b/app/src/main/java/com/kuit/findu/presentation/ui/search/detail/SearchProtectingDetailFragment.kt index dcf9ed54..4390ef68 100644 --- a/app/src/main/java/com/kuit/findu/presentation/ui/search/detail/SearchProtectingDetailFragment.kt +++ b/app/src/main/java/com/kuit/findu/presentation/ui/search/detail/SearchProtectingDetailFragment.kt @@ -57,6 +57,7 @@ class SearchProtectingDetailFragment : Fragment() { binding.mapView.getMapAsync { nMap -> naverMap = nMap + naverMap?.uiSettings?.isLogoClickEnabled = false pendingLocation?.let { location -> setupMap(location.latitude, location.longitude) } diff --git a/app/src/main/java/com/kuit/findu/presentation/ui/search/detail/SearchWitnessDetailFragment.kt b/app/src/main/java/com/kuit/findu/presentation/ui/search/detail/SearchWitnessDetailFragment.kt index 4123c400..08f77d81 100644 --- a/app/src/main/java/com/kuit/findu/presentation/ui/search/detail/SearchWitnessDetailFragment.kt +++ b/app/src/main/java/com/kuit/findu/presentation/ui/search/detail/SearchWitnessDetailFragment.kt @@ -54,6 +54,7 @@ class SearchWitnessDetailFragment : Fragment() { binding.mapView.onCreate(savedInstanceState) binding.mapView.getMapAsync { nMap -> naverMap = nMap + naverMap?.uiSettings?.isLogoClickEnabled = false pendingLocation?.let { location -> setupMap(location.latitude, location.longitude) } From fdc30fcc67fba2270e74f84ae575f41b2941e70c Mon Sep 17 00:00:00 2001 From: ikseong00 <127182222+ikseong00@users.noreply.github.com> Date: Mon, 1 Dec 2025 19:26:52 +0900 Subject: [PATCH 04/17] =?UTF-8?q?[feat]=20#109=20=EC=95=8C=EB=9E=8C=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=8A=A4=ED=8E=98=EC=9D=B4=EC=8A=A4=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../findu/presentation/ui/my/MyFragment.kt | 8 +-- app/src/main/res/layout/fragment_my.xml | 52 +++++++++---------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/com/kuit/findu/presentation/ui/my/MyFragment.kt b/app/src/main/java/com/kuit/findu/presentation/ui/my/MyFragment.kt index decd0d2a..da8e3bca 100644 --- a/app/src/main/java/com/kuit/findu/presentation/ui/my/MyFragment.kt +++ b/app/src/main/java/com/kuit/findu/presentation/ui/my/MyFragment.kt @@ -186,7 +186,7 @@ class MyFragment : Fragment() { // clMyAlarmSetting.setOnClickListener { // myViewModel.toggleAlarmSetting() // } - binding.clMyAlarmSetting.isEnabled = false +// binding.clMyAlarmSetting.isEnabled = false setupVersion() } @@ -284,9 +284,9 @@ class MyFragment : Fragment() { } launch { myViewModel.alarmEnabled.collect { enabled -> - binding.ivMyAlarmIcon.setImageResource( - if (enabled) R.drawable.img_my_alarm_on else R.drawable.img_my_alarm_off - ) +// binding.ivMyAlarmIcon.setImageResource( +// if (enabled) R.drawable.img_my_alarm_on else R.drawable.img_my_alarm_off +// ) } } } diff --git a/app/src/main/res/layout/fragment_my.xml b/app/src/main/res/layout/fragment_my.xml index 77b504f5..65769b03 100644 --- a/app/src/main/res/layout/fragment_my.xml +++ b/app/src/main/res/layout/fragment_my.xml @@ -265,32 +265,32 @@ android:textAppearance="@style/TextAppearance.FindU.Body2_SB_14" android:textColor="@color/gray4" /> - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + Date: Mon, 1 Dec 2025 19:49:24 +0900 Subject: [PATCH 05/17] =?UTF-8?q?[feat]=20#109=20=EA=B2=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=9C=A0=EC=A0=80=EC=9D=BC=20=EA=B2=BD=EC=9A=B0=20?= =?UTF-8?q?=EB=A7=88=EC=9D=B4=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 게스트 유저일 경우 닉네임 수정, 로그아웃, 회원탈퇴 버튼을 숨김 - 게스트 유저일 경우 '로그인 화면으로 이동' 버튼을 표시하고, 클릭 시 로그인 화면으로 이동 기능 구현 --- .../findu/presentation/ui/my/MyFragment.kt | 15 +++++++++++++++ app/src/main/res/layout/fragment_my.xml | 18 ++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/app/src/main/java/com/kuit/findu/presentation/ui/my/MyFragment.kt b/app/src/main/java/com/kuit/findu/presentation/ui/my/MyFragment.kt index da8e3bca..5db589ab 100644 --- a/app/src/main/java/com/kuit/findu/presentation/ui/my/MyFragment.kt +++ b/app/src/main/java/com/kuit/findu/presentation/ui/my/MyFragment.kt @@ -188,6 +188,13 @@ class MyFragment : Fragment() { // } // binding.clMyAlarmSetting.isEnabled = false + clMyGotoLogin.setOnClickListener { + with(requireActivity()) { + startActivity(Intent(requireContext(), LoginActivity::class.java)) + finish() + } + } + setupVersion() } } @@ -250,6 +257,14 @@ class MyFragment : Fragment() { .load(type.drawableRes) .into(binding.ivMyIllust) } + + if(it.nickname == "게스트") { + binding.ivMyEditPen.visibility = View.GONE + binding.clMyWithdrawal.visibility = View.GONE + binding.clMyLogout.visibility = View.GONE + } else { + binding.clMyGotoLogin.visibility = View.GONE + } } } } diff --git a/app/src/main/res/layout/fragment_my.xml b/app/src/main/res/layout/fragment_my.xml index 65769b03..90a02d84 100644 --- a/app/src/main/res/layout/fragment_my.xml +++ b/app/src/main/res/layout/fragment_my.xml @@ -418,6 +418,24 @@ + + + + + + Date: Mon, 1 Dec 2025 19:55:22 +0900 Subject: [PATCH 06/17] =?UTF-8?q?[feat]=20#109=20AD=5FID=20=EA=B6=8C?= =?UTF-8?q?=ED=95=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index edba50f6..66ad436c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,6 +11,7 @@ + From 4148104607768cef1af48018110c53584416212f Mon Sep 17 00:00:00 2001 From: ikseong00 <127182222+ikseong00@users.noreply.github.com> Date: Mon, 1 Dec 2025 19:57:04 +0900 Subject: [PATCH 07/17] =?UTF-8?q?[chore]=20#109=20=EC=95=B1=20=EB=B2=84?= =?UTF-8?q?=EC=A0=84=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 76f37af5..f9a2da77 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -24,8 +24,8 @@ android { applicationId = "com.kuit.findu" minSdk = 28 targetSdk = 35 - versionCode = 5 - versionName = "1.0.4" + versionCode = 8 + versionName = "1.0.7" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" buildConfigField("String", "GPT_KEY", properties["GPT_KEY"].toString()) From 5d698e23b640d13ca9d5ec9df220b73350972aab Mon Sep 17 00:00:00 2001 From: ikseong00 <127182222+ikseong00@users.noreply.github.com> Date: Mon, 1 Dec 2025 23:33:10 +0900 Subject: [PATCH 08/17] =?UTF-8?q?[feat]=20#109=20401=20=EC=97=90=EB=9F=AC?= =?UTF-8?q?=20=EC=A0=84=EC=9A=A9=20=EC=98=88=EC=99=B8=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kuit/findu/data/dataremote/util/ApiResponseHandler.kt | 4 ++++ .../java/com/kuit/findu/data/dataremote/util/Exceptions.kt | 3 +++ 2 files changed, 7 insertions(+) create mode 100644 app/src/main/java/com/kuit/findu/data/dataremote/util/Exceptions.kt diff --git a/app/src/main/java/com/kuit/findu/data/dataremote/util/ApiResponseHandler.kt b/app/src/main/java/com/kuit/findu/data/dataremote/util/ApiResponseHandler.kt index 80c14513..91d6e836 100644 --- a/app/src/main/java/com/kuit/findu/data/dataremote/util/ApiResponseHandler.kt +++ b/app/src/main/java/com/kuit/findu/data/dataremote/util/ApiResponseHandler.kt @@ -9,6 +9,10 @@ fun BaseResponse.handleBaseResponse(): Result = Result.success(this.data) } + 401 -> { + Result.failure(AuthenticationException()) + } + in 400..499 -> { // 클라이언트 에러 Result.failure(Exception("Client error : ${this.message}")) } diff --git a/app/src/main/java/com/kuit/findu/data/dataremote/util/Exceptions.kt b/app/src/main/java/com/kuit/findu/data/dataremote/util/Exceptions.kt new file mode 100644 index 00000000..1483eda3 --- /dev/null +++ b/app/src/main/java/com/kuit/findu/data/dataremote/util/Exceptions.kt @@ -0,0 +1,3 @@ +package com.kuit.findu.data.dataremote.util + +class AuthenticationException: Exception() \ No newline at end of file From 53a01df017f2228744f71eafa2e5e2469e8158ef Mon Sep 17 00:00:00 2001 From: ikseong00 <127182222+ikseong00@users.noreply.github.com> Date: Mon, 1 Dec 2025 23:33:37 +0900 Subject: [PATCH 09/17] =?UTF-8?q?[feat]=20#109=20=ED=99=88=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=EB=A1=9C=EB=94=A9=20401=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=20=EB=B0=9C=EC=83=9D=20=EC=8B=9C=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=ED=99=94=EB=A9=B4=EC=9C=BC=EB=A1=9C=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99=20(=EC=9E=84=EC=8B=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kuit/findu/presentation/ui/home/HomeFragment.kt | 8 ++++++++ .../findu/presentation/ui/home/viewmodel/HomeViewModel.kt | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/app/src/main/java/com/kuit/findu/presentation/ui/home/HomeFragment.kt b/app/src/main/java/com/kuit/findu/presentation/ui/home/HomeFragment.kt index a5f2d68a..09fc114f 100644 --- a/app/src/main/java/com/kuit/findu/presentation/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/kuit/findu/presentation/ui/home/HomeFragment.kt @@ -24,6 +24,7 @@ import com.kuit.findu.presentation.ui.home.composeview.HomeScreen import com.kuit.findu.presentation.ui.home.viewmodel.HomeUiEffect import com.kuit.findu.presentation.ui.home.viewmodel.HomeUiEvent import com.kuit.findu.presentation.ui.home.viewmodel.HomeViewModel +import com.kuit.findu.presentation.ui.login.LoginActivity import com.kuit.findu.presentation.util.permission.LocationPermissionManager.hasLocationPermission import dagger.hilt.android.AndroidEntryPoint @@ -89,11 +90,13 @@ class HomeFragment : Fragment() { is HomeUiEffect.NavigateToFindReport -> { navigateToFindReport() } + is HomeUiEffect.NavigateToLostReport -> { navigateToLostReport() } is HomeUiEffect.Dial -> call120() + is HomeUiEffect.NavigateToLogin -> startLoginActivity() } } } @@ -173,6 +176,11 @@ class HomeFragment : Fragment() { ) } + private fun startLoginActivity() { + val intent = Intent(requireContext(), LoginActivity::class.java) + startActivity(intent) + requireActivity().finish() + } private fun navigateToProtectDetail(id: String, tag: String, name: String) { when (tag) { diff --git a/app/src/main/java/com/kuit/findu/presentation/ui/home/viewmodel/HomeViewModel.kt b/app/src/main/java/com/kuit/findu/presentation/ui/home/viewmodel/HomeViewModel.kt index 47c5f3c9..c1923cb5 100644 --- a/app/src/main/java/com/kuit/findu/presentation/ui/home/viewmodel/HomeViewModel.kt +++ b/app/src/main/java/com/kuit/findu/presentation/ui/home/viewmodel/HomeViewModel.kt @@ -2,6 +2,7 @@ package com.kuit.findu.presentation.ui.home.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.kuit.findu.data.dataremote.util.AuthenticationException import com.kuit.findu.domain.model.HomeData import com.kuit.findu.domain.model.ProtectAnimal import com.kuit.findu.domain.model.ReportAnimal @@ -78,6 +79,7 @@ sealed class HomeUiEffect { data class ShowToast(val message: String) : HomeUiEffect() data object Dial : HomeUiEffect() + data object NavigateToLogin : HomeUiEffect() } @HiltViewModel @@ -140,6 +142,10 @@ class HomeViewModel @Inject constructor( } }, onFailure = { error -> + if(error is AuthenticationException) { + _uiEffect.send(HomeUiEffect.NavigateToLogin) + return@fold + } _uiState.update { it.copy( loadState = LoadState.Error, From 72dc1f7ef20bbf1fcb9eade001d496df8b6bd7b6 Mon Sep 17 00:00:00 2001 From: ikseong00 <127182222+ikseong00@users.noreply.github.com> Date: Tue, 2 Dec 2025 13:58:29 +0900 Subject: [PATCH 10/17] =?UTF-8?q?[fix]=20#109=20401=20=EC=97=90=EB=9F=AC?= =?UTF-8?q?=20=ED=95=B8=EB=93=A4=EB=A7=81=20=EB=A1=9C=EC=A7=81=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - API 401 에러 발생 시 로그인 화면으로 이동하도록 수정 - `AuthInterceptor`에서 401 에러 테스트를 위해 임시로 토큰 앞에 "1"을 추가 --- .../com/kuit/findu/data/dataremote/util/ApiResponseHandler.kt | 4 ---- .../com/kuit/findu/data/dataremote/util/AuthInterceptor.kt | 2 +- .../findu/presentation/ui/home/viewmodel/HomeViewModel.kt | 4 +++- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/kuit/findu/data/dataremote/util/ApiResponseHandler.kt b/app/src/main/java/com/kuit/findu/data/dataremote/util/ApiResponseHandler.kt index 91d6e836..80c14513 100644 --- a/app/src/main/java/com/kuit/findu/data/dataremote/util/ApiResponseHandler.kt +++ b/app/src/main/java/com/kuit/findu/data/dataremote/util/ApiResponseHandler.kt @@ -9,10 +9,6 @@ fun BaseResponse.handleBaseResponse(): Result = Result.success(this.data) } - 401 -> { - Result.failure(AuthenticationException()) - } - in 400..499 -> { // 클라이언트 에러 Result.failure(Exception("Client error : ${this.message}")) } diff --git a/app/src/main/java/com/kuit/findu/data/dataremote/util/AuthInterceptor.kt b/app/src/main/java/com/kuit/findu/data/dataremote/util/AuthInterceptor.kt index 1add4279..3a9552c3 100644 --- a/app/src/main/java/com/kuit/findu/data/dataremote/util/AuthInterceptor.kt +++ b/app/src/main/java/com/kuit/findu/data/dataremote/util/AuthInterceptor.kt @@ -24,7 +24,7 @@ class AuthInterceptor @Inject constructor( private fun addAuthorizationHeader(request: Request): Request = request.newBuilder() - .addHeader(AUTHORIZATION, "$BEARER ${tokenLocalDataSource.accessToken}") + .addHeader(AUTHORIZATION, "$BEARER 1${tokenLocalDataSource.accessToken}") .build() companion object { diff --git a/app/src/main/java/com/kuit/findu/presentation/ui/home/viewmodel/HomeViewModel.kt b/app/src/main/java/com/kuit/findu/presentation/ui/home/viewmodel/HomeViewModel.kt index c1923cb5..ce7d67dc 100644 --- a/app/src/main/java/com/kuit/findu/presentation/ui/home/viewmodel/HomeViewModel.kt +++ b/app/src/main/java/com/kuit/findu/presentation/ui/home/viewmodel/HomeViewModel.kt @@ -1,5 +1,6 @@ package com.kuit.findu.presentation.ui.home.viewmodel +import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.kuit.findu.data.dataremote.util.AuthenticationException @@ -142,7 +143,8 @@ class HomeViewModel @Inject constructor( } }, onFailure = { error -> - if(error is AuthenticationException) { + Log.e("HomeViewModel", "loadHomeData: $error") + if(error.message?.contains("401") == true) { _uiEffect.send(HomeUiEffect.NavigateToLogin) return@fold } From 6fc3cad73d4b721ed7ca09b45cf5cc7f1ebc7097 Mon Sep 17 00:00:00 2001 From: ikseong00 <127182222+ikseong00@users.noreply.github.com> Date: Tue, 2 Dec 2025 13:58:36 +0900 Subject: [PATCH 11/17] =?UTF-8?q?[style]=20#107=20=EB=A7=88=EC=9D=B4?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EB=8B=A4=EC=9D=B4=EC=96=BC?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=20UI=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 다이얼로그 좌우 패딩 값 수정 - 프로필 이미지 변경 버튼의 너비를 `match_parent`로 변경 --- app/src/main/res/layout/dialog_my_profile_image.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/layout/dialog_my_profile_image.xml b/app/src/main/res/layout/dialog_my_profile_image.xml index 0bffe275..6229e7c1 100644 --- a/app/src/main/res/layout/dialog_my_profile_image.xml +++ b/app/src/main/res/layout/dialog_my_profile_image.xml @@ -4,7 +4,8 @@ android:layout_width="320dp" android:layout_height="wrap_content" android:background="@drawable/bg_my_dialog" - android:padding="20dp"> + android:paddingHorizontal="24dp" + android:paddingVertical="20dp"> Date: Tue, 2 Dec 2025 14:50:12 +0900 Subject: [PATCH 12/17] =?UTF-8?q?[fix]=20#107=20401=20=EC=97=90=EB=9F=AC?= =?UTF-8?q?=20=EC=8B=9C=20AuthAuthenticator=20=EB=A5=BC=20=ED=86=B5?= =?UTF-8?q?=ED=95=B4=20=EA=B4=80=EB=A6=AC=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20(=EC=9E=84=EC=8B=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/dataremote/util/AuthAuthenticator.kt | 34 +++++++++++++++++++ .../data/dataremote/util/AuthInterceptor.kt | 2 +- .../java/com/kuit/findu/di/NetworkModule.kt | 14 +++++++- 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/kuit/findu/data/dataremote/util/AuthAuthenticator.kt diff --git a/app/src/main/java/com/kuit/findu/data/dataremote/util/AuthAuthenticator.kt b/app/src/main/java/com/kuit/findu/data/dataremote/util/AuthAuthenticator.kt new file mode 100644 index 00000000..63d2f5b9 --- /dev/null +++ b/app/src/main/java/com/kuit/findu/data/dataremote/util/AuthAuthenticator.kt @@ -0,0 +1,34 @@ +package com.kuit.findu.data.dataremote.util + +import android.content.Context +import android.content.Intent +import com.kuit.findu.data.datalocal.datasource.TokenLocalDataSource +import com.kuit.findu.presentation.ui.login.LoginActivity +import dagger.hilt.android.qualifiers.ApplicationContext +import okhttp3.Interceptor +import okhttp3.Response +import javax.inject.Inject + +class AuthAuthenticator @Inject constructor( + private val tokenLocalDataSource: TokenLocalDataSource, + @ApplicationContext private val context: Context +) : Interceptor { + override fun intercept(chain: Interceptor.Chain): Response { + val request = chain.request() + val response = chain.proceed(request) + + // 401 Unauthorized 에러 감지 + if (response.code == 401) { + // 토큰 삭제 + tokenLocalDataSource.clearToken() + + // 로그인 화면으로 이동 + val intent = Intent(context, LoginActivity::class.java).apply { + flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK + } + context.startActivity(intent) + } + + return response + } +} diff --git a/app/src/main/java/com/kuit/findu/data/dataremote/util/AuthInterceptor.kt b/app/src/main/java/com/kuit/findu/data/dataremote/util/AuthInterceptor.kt index 3a9552c3..1add4279 100644 --- a/app/src/main/java/com/kuit/findu/data/dataremote/util/AuthInterceptor.kt +++ b/app/src/main/java/com/kuit/findu/data/dataremote/util/AuthInterceptor.kt @@ -24,7 +24,7 @@ class AuthInterceptor @Inject constructor( private fun addAuthorizationHeader(request: Request): Request = request.newBuilder() - .addHeader(AUTHORIZATION, "$BEARER 1${tokenLocalDataSource.accessToken}") + .addHeader(AUTHORIZATION, "$BEARER ${tokenLocalDataSource.accessToken}") .build() companion object { diff --git a/app/src/main/java/com/kuit/findu/di/NetworkModule.kt b/app/src/main/java/com/kuit/findu/di/NetworkModule.kt index 034b54f6..daf0b3d9 100644 --- a/app/src/main/java/com/kuit/findu/di/NetworkModule.kt +++ b/app/src/main/java/com/kuit/findu/di/NetworkModule.kt @@ -6,6 +6,7 @@ import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFact import com.kuit.findu.BuildConfig import com.kuit.findu.BuildConfig.DEBUG import com.kuit.findu.data.datalocal.datasource.TokenLocalDataSource +import com.kuit.findu.data.dataremote.util.AuthAuthenticator import com.kuit.findu.data.dataremote.util.AuthInterceptor import com.kuit.findu.data.dataremote.util.ErrorTrackingInterceptor import dagger.Module @@ -42,15 +43,17 @@ object NetworkModule { fun providesOkHttpClient( loggingInterceptor: HttpLoggingInterceptor, authInterceptor: AuthInterceptor, + authAuthenticator: AuthAuthenticator, errorTrackingInterceptor: ErrorTrackingInterceptor, ): OkHttpClient = OkHttpClient.Builder().apply { connectTimeout(10, TimeUnit.SECONDS) writeTimeout(10, TimeUnit.SECONDS) readTimeout(10, TimeUnit.SECONDS) + addInterceptor(authInterceptor) if (DEBUG) addInterceptor(loggingInterceptor) else addInterceptor(errorTrackingInterceptor) - addInterceptor(authInterceptor) + addInterceptor(authAuthenticator) }.build() @Provides @@ -69,6 +72,15 @@ object NetworkModule { return AuthInterceptor(tokenLocalDataSource, context) } + @Provides + @Singleton + fun provideAuthAuthenticator( + tokenLocalDataSource: TokenLocalDataSource, + @ApplicationContext context: Context, + ): AuthAuthenticator { + return AuthAuthenticator(tokenLocalDataSource, context) + } + @Provides @Singleton fun provideErrorTrackingInterceptor( From 9de5fd6bf0dd51f880ac8e8c590c0a02e6b9482b Mon Sep 17 00:00:00 2001 From: ikseong00 <127182222+ikseong00@users.noreply.github.com> Date: Wed, 3 Dec 2025 21:10:32 +0900 Subject: [PATCH 13/17] =?UTF-8?q?[chore]=20#107=20=EC=95=B1=20=EB=B2=84?= =?UTF-8?q?=EC=A0=84=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - versionCode: 8 → 9 - versionName: 1.0.7 → 1.0.8 --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f9a2da77..50b4409b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -24,8 +24,8 @@ android { applicationId = "com.kuit.findu" minSdk = 28 targetSdk = 35 - versionCode = 8 - versionName = "1.0.7" + versionCode = 9 + versionName = "1.0.8" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" buildConfigField("String", "GPT_KEY", properties["GPT_KEY"].toString()) From c132472b599904781dd0d2433511038fb32ae9d0 Mon Sep 17 00:00:00 2001 From: ikseong00 <127182222+ikseong00@users.noreply.github.com> Date: Thu, 11 Dec 2025 01:27:07 +0900 Subject: [PATCH 14/17] =?UTF-8?q?[feat]=20=EC=95=B1=20=EC=9D=B4=EB=A6=84?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD=20=EB=B0=8F=20=EB=A7=88=EC=9D=B4=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EC=84=A4=EC=A0=95=20=EB=B2=84=ED=8A=BC=20?= =?UTF-8?q?=EC=88=A8=EA=B9=80=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 앱 이름을 "FindU"에서 "찾아유"로 변경 - 마이페이지의 설정 버튼을 보이지 않도록 수정 --- app/src/main/AndroidManifest.xml | 3 ++- app/src/main/res/layout/fragment_my.xml | 1 + app/src/main/res/values/strings.xml | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 66ad436c..4f09ee84 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,7 +11,8 @@ - + diff --git a/app/src/main/res/layout/fragment_my.xml b/app/src/main/res/layout/fragment_my.xml index 90a02d84..a4810c31 100644 --- a/app/src/main/res/layout/fragment_my.xml +++ b/app/src/main/res/layout/fragment_my.xml @@ -116,6 +116,7 @@ android:layout_height="wrap_content" android:layout_marginTop="22dp" android:layout_marginEnd="20dp" + android:visibility="invisible" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent"> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1008fb72..f55120c8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,5 @@ - FindU + 찾아유 유기동물 관심의 시작, From 58655d6ccaa00d9024edd96fdf08f377f0f1b06e Mon Sep 17 00:00:00 2001 From: ikseong00 <127182222+ikseong00@users.noreply.github.com> Date: Thu, 11 Dec 2025 01:27:16 +0900 Subject: [PATCH 15/17] =?UTF-8?q?[build]=20#107=20=EC=95=B1=20=EB=B2=84?= =?UTF-8?q?=EC=A0=84=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - versionCode: 9 -> 11 - versionName: "1.0.8" -> "1.0.10" --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 50b4409b..765063c6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -24,8 +24,8 @@ android { applicationId = "com.kuit.findu" minSdk = 28 targetSdk = 35 - versionCode = 9 - versionName = "1.0.8" + versionCode = 11 + versionName = "1.0.10" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" buildConfigField("String", "GPT_KEY", properties["GPT_KEY"].toString()) From 09f786b7b9c77bb2886f1ca5b4f93adb88d6dfe7 Mon Sep 17 00:00:00 2001 From: ikseong00 <127182222+ikseong00@users.noreply.github.com> Date: Thu, 11 Dec 2025 17:50:14 +0900 Subject: [PATCH 16/17] =?UTF-8?q?[fix]=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=EC=97=90=EC=84=9C=20=EC=B9=B4=EC=B9=B4?= =?UTF-8?q?=EC=98=A4=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EB=B2=84=ED=8A=BC=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/login/composeview/LoginScreen.kt | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/kuit/findu/presentation/ui/login/composeview/LoginScreen.kt b/app/src/main/java/com/kuit/findu/presentation/ui/login/composeview/LoginScreen.kt index 32caac6c..b3ea8688 100644 --- a/app/src/main/java/com/kuit/findu/presentation/ui/login/composeview/LoginScreen.kt +++ b/app/src/main/java/com/kuit/findu/presentation/ui/login/composeview/LoginScreen.kt @@ -28,7 +28,7 @@ import com.kuit.findu.ui.theme.FindUTheme fun LoginScreen( kakaoLoginButtonClicked: () -> Unit, withoutSignUpButtonClicked: () -> Unit, - modifier: Modifier = Modifier + modifier: Modifier = Modifier, ) { Column( modifier = modifier @@ -66,12 +66,13 @@ fun LoginScreen( tint = Color.Unspecified, ) Spacer(modifier = Modifier.height(53.dp)) - Icon( - painter = painterResource(R.drawable.img_kakao_login), - contentDescription = null, - modifier = Modifier.noRippleClickable(kakaoLoginButtonClicked), - tint = Color.Unspecified - ) +// Icon( +// painter = painterResource(R.drawable.img_kakao_login), +// contentDescription = null, +// modifier = Modifier.noRippleClickable(), +// tint = Color.Unspecified +// ) + Spacer(modifier = Modifier.height(50.dp)) Spacer(modifier = Modifier.height(15.dp)) Text( text = stringResource(R.string.login_without_signup), From f2bff2439de71f4cd7cb834c1b0c4c1a2baceba3 Mon Sep 17 00:00:00 2001 From: ikseong00 <127182222+ikseong00@users.noreply.github.com> Date: Thu, 11 Dec 2025 17:50:19 +0900 Subject: [PATCH 17/17] =?UTF-8?q?[chore]=20#107=20=EC=95=B1=20=EB=B2=84?= =?UTF-8?q?=EC=A0=84=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 앱 버전을 1.0.10에서 1.0.11로 업데이트 - versionCode를 11에서 12로 업데이트 --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 765063c6..15965b16 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -24,8 +24,8 @@ android { applicationId = "com.kuit.findu" minSdk = 28 targetSdk = 35 - versionCode = 11 - versionName = "1.0.10" + versionCode = 12 + versionName = "1.0.11" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" buildConfigField("String", "GPT_KEY", properties["GPT_KEY"].toString())