From 2848c835b26e753c538864185ce0c006c0f05db9 Mon Sep 17 00:00:00 2001 From: PeraSite Date: Thu, 26 Feb 2026 18:10:05 +0900 Subject: [PATCH 1/6] =?UTF-8?q?fix:=20Health=20Check=20=EA=B4=80=EB=A0=A8?= =?UTF-8?q?=20BaseResponse=20=ED=83=80=EC=9E=85=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/HealthCheckRepositoryImpl.kt | 16 ++++++++++++++-- .../data/remote/service/HealthCheckService.kt | 5 ++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/eatssu/android/data/remote/repository/HealthCheckRepositoryImpl.kt b/app/src/main/java/com/eatssu/android/data/remote/repository/HealthCheckRepositoryImpl.kt index 7c7957c47..a5dcb506a 100644 --- a/app/src/main/java/com/eatssu/android/data/remote/repository/HealthCheckRepositoryImpl.kt +++ b/app/src/main/java/com/eatssu/android/data/remote/repository/HealthCheckRepositoryImpl.kt @@ -1,14 +1,26 @@ package com.eatssu.android.data.remote.repository -import com.eatssu.android.data.model.isSuccess import com.eatssu.android.data.remote.service.HealthCheckService import com.eatssu.android.domain.repository.HealthCheckRepository +import com.eatssu.android.presentation.base.NetworkErrorEventBus +import timber.log.Timber +import java.io.IOException import javax.inject.Inject class HealthCheckRepositoryImpl @Inject constructor( private val healthCheckService: HealthCheckService ) : HealthCheckRepository { override suspend fun checkHealth(): Boolean { - return healthCheckService.checkHealth().isSuccess() + return try { + val response = healthCheckService.checkHealth() + return response.isSuccessful + } catch (e: IOException) { + NetworkErrorEventBus.notifyNetworkError() + Timber.e(e, "Health check network error") + false + } catch (e: Exception) { + Timber.e(e, "Health check failed") + false + } } } diff --git a/app/src/main/java/com/eatssu/android/data/remote/service/HealthCheckService.kt b/app/src/main/java/com/eatssu/android/data/remote/service/HealthCheckService.kt index 6f484c661..e7d1debdb 100644 --- a/app/src/main/java/com/eatssu/android/data/remote/service/HealthCheckService.kt +++ b/app/src/main/java/com/eatssu/android/data/remote/service/HealthCheckService.kt @@ -1,14 +1,13 @@ package com.eatssu.android.data.remote.service -import com.eatssu.android.data.model.ApiResult +import retrofit2.Response import retrofit2.http.GET interface HealthCheckService { /** * 서버와 정상적으로 통신할 수 있는지 확인합니다. * 실제 서버의 상태(healthy)를 체크하는 목적이 아니라, 네트워크 연결이 가능한지 확인하는 용도입니다. - * 반환 타입이 Unit인 이유는 응답 본문의 내용이 중요하지 않고, 통신 성공 여부만 판단하기 때문입니다. */ @GET("actuator/health") - suspend fun checkHealth(): ApiResult + suspend fun checkHealth(): Response } From 0b7d0fb79f726ad68c4878335968e188c4a9b0eb Mon Sep 17 00:00:00 2001 From: PeraSite Date: Thu, 26 Feb 2026 18:10:17 +0900 Subject: [PATCH 2/6] =?UTF-8?q?feat:=20=EB=82=98=EB=A7=8C=EC=95=84?= =?UTF-8?q?=EB=8B=88=EB=A9=B4=EB=8F=BC=20=EA=B2=8C=EC=9E=84=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eatssu/android/presentation/MainActivity.kt | 12 +++++++++++- app/src/main/res/drawable/ic_anyone_but_me.xml | 14 ++++++++++++++ app/src/main/res/menu/menu_bottom_navigation.xml | 8 +++++++- app/src/main/res/values/strings.xml | 2 ++ .../main/java/com/eatssu/common/enums/ScreenId.kt | 1 + 5 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable/ic_anyone_but_me.xml diff --git a/app/src/main/java/com/eatssu/android/presentation/MainActivity.kt b/app/src/main/java/com/eatssu/android/presentation/MainActivity.kt index a007b5a29..fbba71b07 100644 --- a/app/src/main/java/com/eatssu/android/presentation/MainActivity.kt +++ b/app/src/main/java/com/eatssu/android/presentation/MainActivity.kt @@ -19,6 +19,7 @@ import com.eatssu.android.databinding.ActivityMainBinding import com.eatssu.android.presentation.base.BaseActivity import com.eatssu.android.presentation.login.LoginActivity import com.eatssu.android.presentation.mypage.MyPageViewModel +import com.eatssu.android.presentation.mypage.terms.WebViewActivity import com.eatssu.android.presentation.mypage.userinfo.UserInfoActivity import com.eatssu.android.presentation.util.showInfoToast import com.eatssu.android.presentation.util.showToast @@ -77,6 +78,15 @@ class MainActivity : BaseActivity( true } + R.id.anyone_but_me_menu -> { + startActivity { + putExtra("URL", getString(R.string.anyone_but_me_url)) + putExtra("TITLE", getString(R.string.nav_anyone_but_me)) + putExtra("SCREEN_ID", ScreenId.ANYONE_BUT_ME_MAIN.name) + } + false + } + R.id.mypage_menu -> { navController.navigate(R.id.myPageFragment) true @@ -199,4 +209,4 @@ class MainActivity : BaseActivity( override fun shouldLogScreenId() = false -} \ No newline at end of file +} diff --git a/app/src/main/res/drawable/ic_anyone_but_me.xml b/app/src/main/res/drawable/ic_anyone_but_me.xml new file mode 100644 index 000000000..cf9cc6a65 --- /dev/null +++ b/app/src/main/res/drawable/ic_anyone_but_me.xml @@ -0,0 +1,14 @@ + + + + diff --git a/app/src/main/res/menu/menu_bottom_navigation.xml b/app/src/main/res/menu/menu_bottom_navigation.xml index 7c838b74d..db27a0a65 100644 --- a/app/src/main/res/menu/menu_bottom_navigation.xml +++ b/app/src/main/res/menu/menu_bottom_navigation.xml @@ -12,10 +12,16 @@ android:icon="@drawable/selector_ic_map" android:title="@string/nav_map"/> + + - \ No newline at end of file + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 49293065c..5391246c3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -33,6 +33,7 @@ 학식 지도 + 나만아니면돼~ 마이 back @@ -298,6 +299,7 @@ https://github.com/EAT-SSU/Docs/wiki/EAT%E2%80%90SSU-%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EB%B0%A9%EC%B9%A8 https://github.com/EAT-SSU/Docs/wiki/EAT%E2%80%90SSU-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%9D%B4%EC%9A%A9%EC%95%BD%EA%B4%80 + https://eatssu-coffee.figma.site/ eatssu.official https://eat-ssu.notion.site/1d2eeef75a1681ae800cf6ffa6faa37d?pvs=74 diff --git a/core/common/src/main/java/com/eatssu/common/enums/ScreenId.kt b/core/common/src/main/java/com/eatssu/common/enums/ScreenId.kt index 25bed0722..1eaa2d76d 100644 --- a/core/common/src/main/java/com/eatssu/common/enums/ScreenId.kt +++ b/core/common/src/main/java/com/eatssu/common/enums/ScreenId.kt @@ -29,6 +29,7 @@ enum class ScreenId(val value: String) { MAP_DETAIL("MAP_001001"), MAP_NO_DEPARTMENT("MAP_001002"), MAP_FAVORITE("MAP_002000"), + ANYONE_BUT_ME_MAIN("ABM_001000"), MYPAGE_MAIN("MYP_001000"), MYPAGE_USERINFO("MYP_001001"), From 04235ce17c40e430658fdf1d24724955faec5a5a Mon Sep 17 00:00:00 2001 From: PeraSite Date: Thu, 26 Feb 2026 18:10:30 +0900 Subject: [PATCH 3/6] =?UTF-8?q?fix:=20=EC=9E=90=EB=8F=99=EC=9C=BC=EB=A1=9C?= =?UTF-8?q?=20=EB=B0=94=ED=85=80=20=EB=84=A4=EB=B9=84=EA=B2=8C=EC=9D=B4?= =?UTF-8?q?=EC=85=98=20=EC=9A=94=EC=86=8C=EA=B0=80=204=EA=B0=9C=20?= =?UTF-8?q?=EC=9D=B4=EC=83=81=EC=9D=B4=EB=A9=B4=20=EC=9E=90=EB=8F=99?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=ED=99=9C=EC=84=B1=ED=99=94=EB=90=9C=20?= =?UTF-8?q?=EC=9A=94=EC=86=8C=EB=A7=8C=20=EB=B3=B4=EC=97=AC=EC=A3=BC?= =?UTF-8?q?=EB=8D=98=20=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/layout/activity_main.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 0d5e1c51c..6072d1ba6 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -33,6 +33,8 @@ android:textAlignment="center" app:itemTextColor="@color/selector_bottom_navi_item" app:itemIconTint="@null" + app:labelVisibilityMode="labeled" + app:itemHorizontalTranslationEnabled="false" app:itemPaddingTop="10dp" app:menu="@menu/menu_bottom_navigation" /> - \ No newline at end of file + From 2295858ce4458e029076cc3f32b4562f09da463a Mon Sep 17 00:00:00 2001 From: PeraSite Date: Fri, 27 Feb 2026 16:45:29 +0900 Subject: [PATCH 4/6] =?UTF-8?q?fix:=20=EB=82=98=EB=A7=8C=EC=95=84=EB=8B=88?= =?UTF-8?q?=EB=A9=B4=EB=8F=BC=20=EB=92=A4=EB=A1=9C=EA=B0=80=EA=B8=B0=20?= =?UTF-8?q?=EC=95=84=EC=9D=B4=EC=BD=98=20x=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/mypage/terms/WebViewActivity.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/src/main/java/com/eatssu/android/presentation/mypage/terms/WebViewActivity.kt b/app/src/main/java/com/eatssu/android/presentation/mypage/terms/WebViewActivity.kt index 0afe0b3a0..1b34dad92 100644 --- a/app/src/main/java/com/eatssu/android/presentation/mypage/terms/WebViewActivity.kt +++ b/app/src/main/java/com/eatssu/android/presentation/mypage/terms/WebViewActivity.kt @@ -4,6 +4,8 @@ import android.os.Bundle import android.webkit.RenderProcessGoneDetail import android.webkit.WebView import android.webkit.WebViewClient +import android.widget.ImageView +import com.eatssu.android.R import com.eatssu.android.databinding.ActivityWebviewBinding import com.eatssu.android.presentation.base.BaseActivity import com.eatssu.common.EventLogger @@ -21,6 +23,7 @@ class WebViewActivity : override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + setBackIconByScreenId() binding.webview.apply { webViewClient = object : WebViewClient() { @@ -64,6 +67,13 @@ class WebViewActivity : } } + private fun setBackIconByScreenId() { + val screenIdString = intent.getStringExtra("SCREEN_ID") + if (screenIdString == ScreenId.ANYONE_BUT_ME_MAIN.name) { + findViewById(R.id.btn_back).setImageResource(com.eatssu.design_system.R.drawable.ic_close) + } + } + override fun onBackPressed() { if (binding.webview.canGoBack()) binding.webview.goBack() else super.onBackPressed() From afa073c7dce3f4221afdbf45295c3655dd6eab68 Mon Sep 17 00:00:00 2001 From: PeraSite Date: Fri, 27 Feb 2026 16:47:39 +0900 Subject: [PATCH 5/6] =?UTF-8?q?fix:=20=EC=9B=B9=EB=B7=B0=20=EB=92=A4?= =?UTF-8?q?=EB=A1=9C=EA=B0=80=EA=B8=B0=20=EC=95=84=EC=9D=B4=EC=BD=98=20int?= =?UTF-8?q?ent=20=EA=B8=B0=EB=B0=98=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eatssu/android/presentation/MainActivity.kt | 4 ++++ .../presentation/mypage/terms/WebViewActivity.kt | 16 +++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/eatssu/android/presentation/MainActivity.kt b/app/src/main/java/com/eatssu/android/presentation/MainActivity.kt index fbba71b07..6f0cbe8b0 100644 --- a/app/src/main/java/com/eatssu/android/presentation/MainActivity.kt +++ b/app/src/main/java/com/eatssu/android/presentation/MainActivity.kt @@ -83,6 +83,10 @@ class MainActivity : BaseActivity( putExtra("URL", getString(R.string.anyone_but_me_url)) putExtra("TITLE", getString(R.string.nav_anyone_but_me)) putExtra("SCREEN_ID", ScreenId.ANYONE_BUT_ME_MAIN.name) + putExtra( + WebViewActivity.EXTRA_BACK_ICON_RES_ID, + com.eatssu.design_system.R.drawable.ic_close + ) } false } diff --git a/app/src/main/java/com/eatssu/android/presentation/mypage/terms/WebViewActivity.kt b/app/src/main/java/com/eatssu/android/presentation/mypage/terms/WebViewActivity.kt index 1b34dad92..41ea79404 100644 --- a/app/src/main/java/com/eatssu/android/presentation/mypage/terms/WebViewActivity.kt +++ b/app/src/main/java/com/eatssu/android/presentation/mypage/terms/WebViewActivity.kt @@ -23,7 +23,7 @@ class WebViewActivity : override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setBackIconByScreenId() + applyBackIconFromIntent() binding.webview.apply { webViewClient = object : WebViewClient() { @@ -67,10 +67,12 @@ class WebViewActivity : } } - private fun setBackIconByScreenId() { - val screenIdString = intent.getStringExtra("SCREEN_ID") - if (screenIdString == ScreenId.ANYONE_BUT_ME_MAIN.name) { - findViewById(R.id.btn_back).setImageResource(com.eatssu.design_system.R.drawable.ic_close) + private fun applyBackIconFromIntent() { + if (intent.hasExtra(EXTRA_BACK_ICON_RES_ID)) { + val backIconResId = intent.getIntExtra(EXTRA_BACK_ICON_RES_ID, 0) + if (backIconResId != 0) { + findViewById(R.id.btn_back).setImageResource(backIconResId) + } } } @@ -104,4 +106,8 @@ class WebViewActivity : } override fun shouldLogScreenId() = false + + companion object { + const val EXTRA_BACK_ICON_RES_ID = "BACK_ICON_RES_ID" + } } From 23112d5e57cb027c3f22a2ccc74adb3688d1723b Mon Sep 17 00:00:00 2001 From: PeraSite Date: Fri, 27 Feb 2026 16:51:52 +0900 Subject: [PATCH 6/6] =?UTF-8?q?refactor:=20WebView=20intent=20key=20?= =?UTF-8?q?=EC=83=81=EC=88=98=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/eatssu/android/presentation/MainActivity.kt | 4 ++-- .../eatssu/android/presentation/mypage/DeveloperActivity.kt | 6 +++--- .../eatssu/android/presentation/mypage/MyPageFragment.kt | 4 ++-- .../android/presentation/mypage/terms/WebViewActivity.kt | 6 ++++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/eatssu/android/presentation/MainActivity.kt b/app/src/main/java/com/eatssu/android/presentation/MainActivity.kt index 6f0cbe8b0..8a7c9dc9b 100644 --- a/app/src/main/java/com/eatssu/android/presentation/MainActivity.kt +++ b/app/src/main/java/com/eatssu/android/presentation/MainActivity.kt @@ -80,8 +80,8 @@ class MainActivity : BaseActivity( R.id.anyone_but_me_menu -> { startActivity { - putExtra("URL", getString(R.string.anyone_but_me_url)) - putExtra("TITLE", getString(R.string.nav_anyone_but_me)) + putExtra(WebViewActivity.EXTRA_URL, getString(R.string.anyone_but_me_url)) + putExtra(WebViewActivity.EXTRA_TITLE, getString(R.string.nav_anyone_but_me)) putExtra("SCREEN_ID", ScreenId.ANYONE_BUT_ME_MAIN.name) putExtra( WebViewActivity.EXTRA_BACK_ICON_RES_ID, diff --git a/app/src/main/java/com/eatssu/android/presentation/mypage/DeveloperActivity.kt b/app/src/main/java/com/eatssu/android/presentation/mypage/DeveloperActivity.kt index 89c44c0e8..1a18146ed 100644 --- a/app/src/main/java/com/eatssu/android/presentation/mypage/DeveloperActivity.kt +++ b/app/src/main/java/com/eatssu/android/presentation/mypage/DeveloperActivity.kt @@ -32,11 +32,11 @@ class DeveloperActivity : private fun clickRecruiting() { binding.imgRecruitingBanner.setOnClickListener { val intent = Intent(this, WebViewActivity::class.java).apply { - putExtra("TITLE", "Who’s next?") - putExtra("URL", getString(R.string.recruiting_url)) + putExtra(WebViewActivity.EXTRA_TITLE, "Who’s next?") + putExtra(WebViewActivity.EXTRA_URL, getString(R.string.recruiting_url)) putExtra("SCREEN_ID", ScreenId.EXTERNAL_RECRUIT.name) } startActivity(intent) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/eatssu/android/presentation/mypage/MyPageFragment.kt b/app/src/main/java/com/eatssu/android/presentation/mypage/MyPageFragment.kt index 3a3c8b7a9..dd3c43616 100644 --- a/app/src/main/java/com/eatssu/android/presentation/mypage/MyPageFragment.kt +++ b/app/src/main/java/com/eatssu/android/presentation/mypage/MyPageFragment.kt @@ -262,8 +262,8 @@ class MyPageFragment : BaseFragment(ScreenId.MYPAGE_MAIN) private fun startWebView(url: String, title: String, screenId: ScreenId) { val intent = Intent(requireContext(), WebViewActivity::class.java).apply { - putExtra("URL", url) - putExtra("TITLE", title) + putExtra(WebViewActivity.EXTRA_URL, url) + putExtra(WebViewActivity.EXTRA_TITLE, title) putExtra("SCREEN_ID", screenId.name) } startActivity(intent) diff --git a/app/src/main/java/com/eatssu/android/presentation/mypage/terms/WebViewActivity.kt b/app/src/main/java/com/eatssu/android/presentation/mypage/terms/WebViewActivity.kt index 41ea79404..96dc82131 100644 --- a/app/src/main/java/com/eatssu/android/presentation/mypage/terms/WebViewActivity.kt +++ b/app/src/main/java/com/eatssu/android/presentation/mypage/terms/WebViewActivity.kt @@ -56,8 +56,8 @@ class WebViewActivity : useWideViewPort = true // 화면 크기에 맞게 웹 페이지를 조정 } - URL = intent.getStringExtra("URL") ?: "" //Todo 뷰모델 사용하도록 수정? - TITLE = intent.getStringExtra("TITLE") ?: "" + URL = intent.getStringExtra(EXTRA_URL) ?: "" //Todo 뷰모델 사용하도록 수정? + TITLE = intent.getStringExtra(EXTRA_TITLE) ?: "" toolbarTitle.text = TITLE Timber.d(URL + TITLE) @@ -108,6 +108,8 @@ class WebViewActivity : override fun shouldLogScreenId() = false companion object { + const val EXTRA_URL = "URL" + const val EXTRA_TITLE = "TITLE" const val EXTRA_BACK_ICON_RES_ID = "BACK_ICON_RES_ID" } }