Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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
}
}
}
Original file line number Diff line number Diff line change
@@ -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<Unit>
suspend fun checkHealth(): Response<Unit>
}
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -77,6 +78,19 @@ class MainActivity : BaseActivity<ActivityMainBinding>(
true
}

R.id.anyone_but_me_menu -> {
startActivity<WebViewActivity> {
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,
com.eatssu.design_system.R.drawable.ic_close
)
}
false
}

R.id.mypage_menu -> {
navController.navigate(R.id.myPageFragment)
true
Expand Down Expand Up @@ -199,4 +213,4 @@ class MainActivity : BaseActivity<ActivityMainBinding>(


override fun shouldLogScreenId() = false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -262,8 +262,8 @@ class MyPageFragment : BaseFragment<FragmentMyPageBinding>(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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -21,6 +23,7 @@ class WebViewActivity :

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
applyBackIconFromIntent()

binding.webview.apply {
webViewClient = object : WebViewClient() {
Expand Down Expand Up @@ -53,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)
Expand All @@ -64,6 +67,15 @@ class WebViewActivity :
}
}

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<ImageView>(R.id.btn_back).setImageResource(backIconResId)
}
}
}

override fun onBackPressed() {
if (binding.webview.canGoBack()) binding.webview.goBack()
else super.onBackPressed()
Expand Down Expand Up @@ -94,4 +106,10 @@ 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"
}
}
14 changes: 14 additions & 0 deletions app/src/main/res/drawable/ic_anyone_but_me.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/gray300"
android:fillType="evenOdd"
android:pathData="M6.16,23.3837C7.1215,23.4534 8.304,23.4999 9.75,23.4999C11.196,23.4999 12.3785,23.4534 13.34,23.3837C15.7005,23.2128 17.36,21.623 17.829,19.456H18.566C20.4685,19.456 22.314,18.1154 22.457,15.9569C22.5139,15.0891 22.5139,14.2184 22.457,13.3506C22.314,11.1921 20.4685,9.8516 18.566,9.8516H17.747C17.5545,8.9771 16.8775,8.3048 15.9585,8.1673C14.896,8.008 12.985,7.8296 9.75,7.8296C6.515,7.8296 4.604,8.008 3.5415,8.1673C2.53,8.3189 1.8115,9.1176 1.7095,10.1215C1.609,11.1092 1.5,12.832 1.5,15.6648C1.5,16.7217 1.515,17.6175 1.5395,18.3737C1.626,21.0776 3.4215,23.186 6.1595,23.3842L6.16,23.3837ZM17.94,12.379C17.976,13.2571 18,14.3393 18,15.6648C18,16.1143 17.9973,16.5356 17.992,16.9285H18.566C19.396,16.9285 19.923,16.3866 19.9625,15.7881C20.0119,15.0327 20.0119,14.2748 19.9625,13.5194C19.923,12.9214 19.3965,12.379 18.566,12.379H17.94Z" />
<path
android:fillColor="@color/gray300"
android:fillType="evenOdd"
android:pathData="M12.25,0.5C11.9848,0.5 11.7304,0.6065 11.5429,0.7961C11.3554,0.9857 11.25,1.2429 11.25,1.511V5.0494C11.25,5.3176 11.3554,5.5747 11.5429,5.7643C11.7304,5.9539 11.9848,6.0604 12.25,6.0604C12.5152,6.0604 12.7696,5.9539 12.9571,5.7643C13.1446,5.5747 13.25,5.3176 13.25,5.0494V1.511C13.25,1.2429 13.1446,0.9857 12.9571,0.7961C12.7696,0.6065 12.5152,0.5 12.25,0.5ZM8.25,1.511C7.9848,1.511 7.7304,1.6175 7.5429,1.8071C7.3554,1.9967 7.25,2.2539 7.25,2.522V6.0604C7.25,6.3286 7.3554,6.5857 7.5429,6.7753C7.7304,6.9649 7.9848,7.0714 8.25,7.0714C8.5152,7.0714 8.7696,6.9649 8.9571,6.7753C9.1446,6.5857 9.25,6.3286 9.25,6.0604V2.522C9.25,2.2539 9.1446,1.9967 8.9571,1.8071C8.7696,1.6175 8.5152,1.511 8.25,1.511Z" />
</vector>
4 changes: 3 additions & 1 deletion app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
8 changes: 7 additions & 1 deletion app/src/main/res/menu/menu_bottom_navigation.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,16 @@
android:icon="@drawable/selector_ic_map"
android:title="@string/nav_map"/>

<item
android:id="@+id/anyone_but_me_menu"
android:enabled="true"
android:icon="@drawable/ic_anyone_but_me"
android:title="@string/nav_anyone_but_me"/>

<item
android:id="@+id/mypage_menu"
android:enabled="true"
android:icon="@drawable/selector_ic_mypage"
android:title="@string/nav_mypage"/>

</menu>
</menu>
2 changes: 2 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
<!-- ========================== -->
<string name="nav_cafeteria_menu">학식</string>
<string name="nav_map">지도</string>
<string name="nav_anyone_but_me">나만아니면돼~</string>
<string name="nav_mypage">마이</string>
<string name="nav_back">back</string>

Expand Down Expand Up @@ -298,6 +299,7 @@
<!-- ========================== -->
<string name="policy_url" translatable="false">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</string>
<string name="terms_url" translatable="false">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</string>
<string name="anyone_but_me_url" translatable="false">https://eatssu-coffee.figma.site/</string>
<string name="eatssu_instagram" translatable="false">eatssu.official</string>
<string name="recruiting_url" translatable="false">https://eat-ssu.notion.site/1d2eeef75a1681ae800cf6ffa6faa37d?pvs=74</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -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"),
Expand Down