From cc1af82b85713c43c66c92144bc89fdd416cf1cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A3=BC=EC=9E=AC=EC=B0=AC?= Date: Thu, 30 Jul 2026 22:24:39 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[Feat]=20=EC=A0=9C=ED=9C=B4=EC=A7=80?= =?UTF-8?q?=EB=8F=84=20=EC=99=B8=EB=B6=80=20=EC=A7=80=EB=8F=84=20=EB=94=A5?= =?UTF-8?q?=EB=A7=81=ED=81=AC=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/PartnershipResponse.kt | 8 +- .../android/domain/model/Partnership.kt | 6 +- .../domain/model/PartnershipRestaurant.kt | 2 + .../user/GetPartnershipDetailUseCase.kt | 4 +- .../presentation/map/MapFragmentView.kt | 36 +++++++ .../map/component/MapRestaurantBottomSheet.kt | 94 ++++++++++++++++++- app/src/main/res/drawable/ic_kakao_map.xml | 15 +++ app/src/main/res/drawable/ic_naver_map.xml | 15 +++ app/src/main/res/values-en/strings.xml | 3 + app/src/main/res/values-ja/strings.xml | 3 + app/src/main/res/values-vi/strings.xml | 3 + app/src/main/res/values/strings.xml | 3 + .../PartnershipResponseMapperBehaviorSpec.kt | 26 +++++ ...GetPartnershipDetailUseCaseBehaviorSpec.kt | 4 + .../com/eatssu/android/test/TestFixtures.kt | 8 ++ 15 files changed, 223 insertions(+), 7 deletions(-) create mode 100644 app/src/main/res/drawable/ic_kakao_map.xml create mode 100644 app/src/main/res/drawable/ic_naver_map.xml diff --git a/app/src/main/java/com/eatssu/android/data/remote/dto/response/PartnershipResponse.kt b/app/src/main/java/com/eatssu/android/data/remote/dto/response/PartnershipResponse.kt index 3d4cd0e80..5bc8166a9 100644 --- a/app/src/main/java/com/eatssu/android/data/remote/dto/response/PartnershipResponse.kt +++ b/app/src/main/java/com/eatssu/android/data/remote/dto/response/PartnershipResponse.kt @@ -16,9 +16,13 @@ data class PartnershipResponse( val latitude: Double? = null, @SerialName("restaurantType") val restaurantType: StoreType? = null, + @SerialName("naverMapUrl") + val naverMapUrl: String? = null, + @SerialName("kakaoMapUrl") + val kakaoMapUrl: String? = null, @SerialName("partnershipInfos") val partnershipInfos: List = emptyList() -){ +) { @Serializable data class PartnershipInfo( @SerialName("id") @@ -50,6 +54,8 @@ fun PartnershipResponse.toDomain(): Partnership = longitude = longitude ?: 126.95661313346206, latitude = latitude ?: 37.49517278813046, restaurantType = restaurantType ?: StoreType.RESTAURANT, + naverMapUrl = naverMapUrl?.trim()?.takeIf(String::isNotEmpty), + kakaoMapUrl = kakaoMapUrl?.trim()?.takeIf(String::isNotEmpty), partnershipInfos = partnershipInfos.map { Partnership.PartnershipInfo( id = it.id ?: -1, diff --git a/app/src/main/java/com/eatssu/android/domain/model/Partnership.kt b/app/src/main/java/com/eatssu/android/domain/model/Partnership.kt index 50c8833b1..2435d2ae3 100644 --- a/app/src/main/java/com/eatssu/android/domain/model/Partnership.kt +++ b/app/src/main/java/com/eatssu/android/domain/model/Partnership.kt @@ -8,7 +8,9 @@ data class Partnership( val longitude: Double, val latitude: Double, val restaurantType: StoreType, - val partnershipInfos: List + val partnershipInfos: List, + val naverMapUrl: String? = null, + val kakaoMapUrl: String? = null, ) { data class PartnershipInfo( val id: Int, @@ -22,4 +24,4 @@ data class Partnership( val endDate: String, val periodType: PeriodType, ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/eatssu/android/domain/model/PartnershipRestaurant.kt b/app/src/main/java/com/eatssu/android/domain/model/PartnershipRestaurant.kt index e642cb921..78036bc57 100644 --- a/app/src/main/java/com/eatssu/android/domain/model/PartnershipRestaurant.kt +++ b/app/src/main/java/com/eatssu/android/domain/model/PartnershipRestaurant.kt @@ -16,4 +16,6 @@ data class PartnershipRestaurant( val departmentName: String, val partnershipLikeCount: Int, val likedByUser: Boolean, + val naverMapUrl: String? = null, + val kakaoMapUrl: String? = null, ) diff --git a/app/src/main/java/com/eatssu/android/domain/usecase/user/GetPartnershipDetailUseCase.kt b/app/src/main/java/com/eatssu/android/domain/usecase/user/GetPartnershipDetailUseCase.kt index bfda70a3d..d23273c79 100644 --- a/app/src/main/java/com/eatssu/android/domain/usecase/user/GetPartnershipDetailUseCase.kt +++ b/app/src/main/java/com/eatssu/android/domain/usecase/user/GetPartnershipDetailUseCase.kt @@ -29,7 +29,9 @@ class GetPartnershipDetailUseCase @Inject constructor() { collegeName = info.collegeName, departmentName = info.departmentName, partnershipLikeCount = info.likeCount, - likedByUser = info.isLiked + likedByUser = info.isLiked, + naverMapUrl = matched.naverMapUrl, + kakaoMapUrl = matched.kakaoMapUrl, ) } } diff --git a/app/src/main/java/com/eatssu/android/presentation/map/MapFragmentView.kt b/app/src/main/java/com/eatssu/android/presentation/map/MapFragmentView.kt index b7f5d4840..e4ae4afcc 100644 --- a/app/src/main/java/com/eatssu/android/presentation/map/MapFragmentView.kt +++ b/app/src/main/java/com/eatssu/android/presentation/map/MapFragmentView.kt @@ -46,6 +46,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.core.content.ContextCompat +import androidx.core.net.toUri import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.compose.LocalLifecycleOwner @@ -237,6 +238,14 @@ fun MapRoute( context.showToast(uiText, info) } }, + openMapUrl = { url -> + if (!context.openMapUrl(url)) { + context.showToast( + UiText.StringResource(R.string.toast_map_open_failed), + ToastType.ERROR, + ) + } + }, navigateToUserInfo = { val intent = Intent(context, UserInfoActivity::class.java) context.startActivity(intent) @@ -278,6 +287,7 @@ internal fun MapScreen( departmentSheetState: SheetState, partnershipSheetState: SheetState, showToast: (UiText, ToastType) -> Unit, + openMapUrl: (String) -> Unit, navigateToUserInfo: () -> Unit, onHideDepartmentSheet: () -> Unit = {}, onHidePartnershipSheet: () -> Unit = {}, @@ -341,6 +351,14 @@ internal fun MapScreen( storeName = info.storeName, storeType = storeType, mapRestaurantList = mapState.restaurantInfoList, + naverMapUrl = info.naverMapUrl, + kakaoMapUrl = info.kakaoMapUrl, + onNaverMapClick = { + info.naverMapUrl?.let(openMapUrl) + }, + onKakaoMapClick = { + info.kakaoMapUrl?.let(openMapUrl) + }, onDismiss = { onHidePartnershipSheet() } @@ -480,6 +498,24 @@ fun Context.findActivityOrNull(): Activity? = when (this) { else -> null } +private fun Context.openMapUrl(url: String): Boolean { + val uri = url.toUri() + if (uri.scheme !in setOf("http", "https")) return false + + val intent = Intent(Intent.ACTION_VIEW, uri).apply { + addCategory(Intent.CATEGORY_BROWSABLE) + if (this@openMapUrl !is Activity) { + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + } + } + + return runCatching { + startActivity(intent) + }.onFailure { throwable -> + Timber.e(throwable, "Failed to open map URL") + }.isSuccess +} + @Preview(showBackground = true) @Composable fun MapFragmentComposeViewPreview() { diff --git a/app/src/main/java/com/eatssu/android/presentation/map/component/MapRestaurantBottomSheet.kt b/app/src/main/java/com/eatssu/android/presentation/map/component/MapRestaurantBottomSheet.kt index b0fff816a..5698b5f6b 100644 --- a/app/src/main/java/com/eatssu/android/presentation/map/component/MapRestaurantBottomSheet.kt +++ b/app/src/main/java/com/eatssu/android/presentation/map/component/MapRestaurantBottomSheet.kt @@ -2,9 +2,11 @@ package com.eatssu.android.presentation.map.component import androidx.compose.foundation.Image import androidx.compose.foundation.background +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth @@ -53,9 +55,15 @@ fun MapRestaurantBottomSheet( storeName: String, storeType: StoreType, mapRestaurantList: List, - onDismiss: () -> Unit = {} + naverMapUrl: String? = null, + kakaoMapUrl: String? = null, + onNaverMapClick: () -> Unit = {}, + onKakaoMapClick: () -> Unit = {}, + onDismiss: () -> Unit = {}, ) { val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) + val hasNaverMapUrl = !naverMapUrl.isNullOrBlank() + val hasKakaoMapUrl = !kakaoMapUrl.isNullOrBlank() LaunchedEffect(Unit) { sheetState.show() @@ -154,7 +162,11 @@ fun MapRestaurantBottomSheet( Spacer(modifier = Modifier.height(20.dp)) // 제휴 리스트 - LazyColumn(modifier = Modifier.fillMaxWidth()) { + LazyColumn( + modifier = Modifier + .fillMaxWidth() + .weight(1f, fill = false), + ) { itemsIndexed(mapRestaurantList) { index, item -> Column(modifier = Modifier.padding(horizontal = 24.dp)) { Text( @@ -207,10 +219,84 @@ fun MapRestaurantBottomSheet( } } } + + if (hasKakaoMapUrl || hasNaverMapUrl) { + Box( + modifier = Modifier + .fillMaxWidth() + .height(1.dp) + .background(Gray200), + ) + + Row( + modifier = Modifier + .fillMaxWidth() + .height(64.dp) + .padding(horizontal = 24.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + if (hasKakaoMapUrl) { + MapLinkButton( + iconRes = R.drawable.ic_kakao_map, + labelRes = R.string.map_open_kakao, + onClick = onKakaoMapClick, + modifier = Modifier.weight(1f), + ) + } + + if (hasKakaoMapUrl && hasNaverMapUrl) { + Box( + modifier = Modifier + .width(1.dp) + .height(24.dp) + .background(Gray400), + ) + } + + if (hasNaverMapUrl) { + MapLinkButton( + iconRes = R.drawable.ic_naver_map, + labelRes = R.string.map_open_naver, + onClick = onNaverMapClick, + modifier = Modifier.weight(1f), + ) + } + } + } } } } +@Composable +private fun MapLinkButton( + iconRes: Int, + labelRes: Int, + onClick: () -> Unit, + modifier: Modifier = Modifier, +) { + Row( + modifier = modifier + .fillMaxHeight() + .clickable(onClick = onClick), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Center, + ) { + Image( + painter = painterResource(iconRes), + contentDescription = null, + modifier = Modifier.size(24.dp), + ) + + Spacer(modifier = Modifier.width(8.dp)) + + Text( + text = stringResource(labelRes), + style = EatssuTheme.typography.body2, + color = Gray600, + ) + } +} + @Preview(showBackground = true) @Composable fun MapRestaurantBottomSheetPreview() { @@ -226,7 +312,9 @@ fun MapRestaurantBottomSheetPreview() { MapRestaurantBottomSheet( storeName = "현선이네", mapRestaurantList = dummyList, - storeType = StoreType.RESTAURANT + storeType = StoreType.RESTAURANT, + naverMapUrl = "https://naver.me/test", + kakaoMapUrl = "https://place.map.kakao.com/test", ) } } diff --git a/app/src/main/res/drawable/ic_kakao_map.xml b/app/src/main/res/drawable/ic_kakao_map.xml new file mode 100644 index 000000000..fa599d0b6 --- /dev/null +++ b/app/src/main/res/drawable/ic_kakao_map.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_naver_map.xml b/app/src/main/res/drawable/ic_naver_map.xml new file mode 100644 index 000000000..6771f02a8 --- /dev/null +++ b/app/src/main/res/drawable/ic_naver_map.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index f55f953ad..e7e5e2f2d 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -302,6 +302,9 @@ Enter your department Enter your department\nand check your personalized partnerships! College/Department information unavailable + KakaoMap + Naver Map + Unable to open the map. Please try again later. diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index ce66cdabe..c39ec1835 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -302,6 +302,9 @@ 学科を入力 学科を入力して\n自分だけの提携特典を確認しましょう! 学部・学科情報を確認できません + カカオマップ + NAVERマップ + 地図を開けません。しばらくしてからもう一度お試しください。 diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 7f37623da..8ad3f17b0 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -302,6 +302,9 @@ Nhập ngành học của bạn Nhập ngành học của bạn\nvà xem các ưu đãi dành riêng cho bạn! Không có thông tin khoa/ngành + KakaoMap + Bản đồ Naver + Không thể mở bản đồ. Vui lòng thử lại sau. diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cde3a1e5e..cb2769533 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -301,6 +301,9 @@ 학과 입력하기 학과를 입력하고\n나만의 제휴를 확인해보세요! 단과대/학과 정보를 알 수 없음 + 카카오맵 + 네이버지도 + 지도를 열 수 없어요. 잠시 후 다시 시도해 주세요. diff --git a/app/src/test/java/com/eatssu/android/data/remote/dto/response/PartnershipResponseMapperBehaviorSpec.kt b/app/src/test/java/com/eatssu/android/data/remote/dto/response/PartnershipResponseMapperBehaviorSpec.kt index d9252c2df..6c349ba86 100644 --- a/app/src/test/java/com/eatssu/android/data/remote/dto/response/PartnershipResponseMapperBehaviorSpec.kt +++ b/app/src/test/java/com/eatssu/android/data/remote/dto/response/PartnershipResponseMapperBehaviorSpec.kt @@ -47,6 +47,30 @@ class PartnershipResponseMapperBehaviorSpec : AppBehaviorSpec({ } } + `when`("지도 URL이 존재하면") { + val result = PartnershipResponse( + naverMapUrl = " https://naver.me/test ", + kakaoMapUrl = "https://place.map.kakao.com/test", + ).toDomain() + + then("공백을 제거해 도메인 모델로 전달한다") { + result.naverMapUrl shouldBe "https://naver.me/test" + result.kakaoMapUrl shouldBe "https://place.map.kakao.com/test" + } + } + + `when`("지도 URL이 빈 문자열이면") { + val result = PartnershipResponse( + naverMapUrl = " ", + kakaoMapUrl = null, + ).toDomain() + + then("노출할 수 없는 URL을 null로 매핑한다") { + result.naverMapUrl shouldBe null + result.kakaoMapUrl shouldBe null + } + } + `when`("필드가 null인 응답을 매핑하면") { val result = PartnershipResponse( storeName = null, @@ -72,6 +96,8 @@ class PartnershipResponseMapperBehaviorSpec : AppBehaviorSpec({ result.storeName shouldBe "" result.longitude shouldBe 126.95661313346206 result.latitude shouldBe 37.49517278813046 + result.naverMapUrl shouldBe null + result.kakaoMapUrl shouldBe null result.partnershipInfos.first().id shouldBe -1 result.partnershipInfos.first().partnershipType shouldBe "" result.partnershipInfos.first().likeCount shouldBe 0 diff --git a/app/src/test/java/com/eatssu/android/domain/usecase/user/GetPartnershipDetailUseCaseBehaviorSpec.kt b/app/src/test/java/com/eatssu/android/domain/usecase/user/GetPartnershipDetailUseCaseBehaviorSpec.kt index 2691ca839..aac975571 100644 --- a/app/src/test/java/com/eatssu/android/domain/usecase/user/GetPartnershipDetailUseCaseBehaviorSpec.kt +++ b/app/src/test/java/com/eatssu/android/domain/usecase/user/GetPartnershipDetailUseCaseBehaviorSpec.kt @@ -43,6 +43,8 @@ class GetPartnershipDetailUseCaseBehaviorSpec : AppBehaviorSpec({ latitude = 37.0, restaurantType = StoreType.CAFE, partnershipInfos = infos, + naverMapUrl = "https://naver.me/test", + kakaoMapUrl = "https://place.map.kakao.com/test", ) ) @@ -59,6 +61,8 @@ class GetPartnershipDetailUseCaseBehaviorSpec : AppBehaviorSpec({ result?.storeName shouldBe "Cafe A" result?.description shouldBe "음료 증정" result?.storeType shouldBe StoreType.CAFE + result?.naverMapUrl shouldBe "https://naver.me/test" + result?.kakaoMapUrl shouldBe "https://place.map.kakao.com/test" } } diff --git a/app/src/test/java/com/eatssu/android/test/TestFixtures.kt b/app/src/test/java/com/eatssu/android/test/TestFixtures.kt index 62aa2cef2..be292e4f2 100644 --- a/app/src/test/java/com/eatssu/android/test/TestFixtures.kt +++ b/app/src/test/java/com/eatssu/android/test/TestFixtures.kt @@ -73,6 +73,8 @@ fun sampleReviewInfo( fun samplePartnership( storeName: String = "Cafe A", + naverMapUrl: String? = null, + kakaoMapUrl: String? = null, infos: List = listOf( Partnership.PartnershipInfo( id = 1, @@ -94,11 +96,15 @@ fun samplePartnership( latitude = 37.0, restaurantType = type, partnershipInfos = infos, + naverMapUrl = naverMapUrl, + kakaoMapUrl = kakaoMapUrl, ) fun samplePartnershipRestaurant( id: Int = 1, type: StoreType = StoreType.CAFE, + naverMapUrl: String? = null, + kakaoMapUrl: String? = null, ) = PartnershipRestaurant( id = id, partnershipType = "DISCOUNT", @@ -113,4 +119,6 @@ fun samplePartnershipRestaurant( departmentName = "CS", partnershipLikeCount = 3, likedByUser = true, + naverMapUrl = naverMapUrl, + kakaoMapUrl = kakaoMapUrl, ) From f89c8a8ff2018be743f3b1b867557dfb6f936b56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A3=BC=EC=9E=AC=EC=B0=AC?= Date: Mon, 3 Aug 2026 10:07:52 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[Feat]=20=EC=A0=9C=ED=9C=B4=EC=A7=80?= =?UTF-8?q?=EB=8F=84=20=EB=94=A5=EB=A7=81=ED=81=AC=20=EC=95=88=EC=A0=95?= =?UTF-8?q?=EC=84=B1=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/debug.yml | 2 + .github/workflows/release.yml | 2 + app/build.gradle.kts | 6 + app/src/main/AndroidManifest.xml | 2 + .../dto/response/KakaoLocalSearchResponse.kt | 22 ++ .../data/remote/service/KakaoLocalService.kt | 20 ++ .../com/eatssu/android/di/KakaoLocalModule.kt | 27 +++ .../map/KakaoLocalPlaceResolver.kt | 61 ++++++ .../android/presentation/map/MapDeepLink.kt | 197 ++++++++++++++++++ .../presentation/map/MapExternalNavigator.kt | 93 +++++++++ .../android/presentation/map/MapFragment.kt | 5 +- .../presentation/map/MapFragmentView.kt | 56 +++-- .../android/presentation/map/MapViewModel.kt | 13 ++ .../map/component/MapRestaurantBottomSheet.kt | 74 +++---- .../main/res/drawable-nodpi/ic_kakao_map.png | Bin 0 -> 26809 bytes .../main/res/drawable-nodpi/ic_naver_map.png | Bin 0 -> 177418 bytes app/src/main/res/drawable/ic_kakao_map.xml | 15 -- app/src/main/res/drawable/ic_naver_map.xml | 15 -- .../KakaoLocalPlaceSelectorBehaviorSpec.kt | 54 +++++ .../map/MapDeepLinkBehaviorSpec.kt | 79 +++++++ .../map/MapViewModelBehaviorSpec.kt | 46 ++++ .../map/MapWebFallbackBehaviorSpec.kt | 53 +++++ fastlane/Fastfile | 6 + 23 files changed, 741 insertions(+), 107 deletions(-) create mode 100644 app/src/main/java/com/eatssu/android/data/remote/dto/response/KakaoLocalSearchResponse.kt create mode 100644 app/src/main/java/com/eatssu/android/data/remote/service/KakaoLocalService.kt create mode 100644 app/src/main/java/com/eatssu/android/di/KakaoLocalModule.kt create mode 100644 app/src/main/java/com/eatssu/android/presentation/map/KakaoLocalPlaceResolver.kt create mode 100644 app/src/main/java/com/eatssu/android/presentation/map/MapDeepLink.kt create mode 100644 app/src/main/java/com/eatssu/android/presentation/map/MapExternalNavigator.kt create mode 100644 app/src/main/res/drawable-nodpi/ic_kakao_map.png create mode 100644 app/src/main/res/drawable-nodpi/ic_naver_map.png delete mode 100644 app/src/main/res/drawable/ic_kakao_map.xml delete mode 100644 app/src/main/res/drawable/ic_naver_map.xml create mode 100644 app/src/test/java/com/eatssu/android/presentation/map/KakaoLocalPlaceSelectorBehaviorSpec.kt create mode 100644 app/src/test/java/com/eatssu/android/presentation/map/MapDeepLinkBehaviorSpec.kt create mode 100644 app/src/test/java/com/eatssu/android/presentation/map/MapWebFallbackBehaviorSpec.kt diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml index 06a25cfa8..e203b41d1 100644 --- a/.github/workflows/debug.yml +++ b/.github/workflows/debug.yml @@ -52,6 +52,7 @@ jobs: DEV_BASE_URL: ${{ secrets.DEV_BASE_URL }} PROD_BASE_URL: ${{ secrets.PROD_BASE_URL }} KAKAO_NATIVE_APP_KEY: ${{ secrets.KAKAO_NATIVE_APP_KEY }} + KAKAO_REST_API_KEY: ${{ secrets.KAKAO_REST_API_KEY }} NAVER_MAPS_CLIENT_ID: ${{ secrets.NAVER_MAPS_CLIENT_ID }} POSTHOG_API_KEY: ${{ secrets.POSTHOG_API_KEY }} POSTHOG_HOST: ${{ secrets.POSTHOG_HOST }} @@ -59,6 +60,7 @@ jobs: echo DEV_BASE_URL=\"$DEV_BASE_URL\" >> local.properties echo PROD_BASE_URL=\"$PROD_BASE_URL\" >> local.properties echo KAKAO_NATIVE_APP_KEY=$KAKAO_NATIVE_APP_KEY >> local.properties + echo KAKAO_REST_API_KEY=$KAKAO_REST_API_KEY >> local.properties echo NAVER_MAPS_CLIENT_ID=$NAVER_MAPS_CLIENT_ID >> local.properties echo POSTHOG_API_KEY=$POSTHOG_API_KEY >> local.properties echo POSTHOG_HOST=$POSTHOG_HOST >> local.properties diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d5b0c048b..4286feb66 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -111,6 +111,7 @@ jobs: DEV_BASE_URL: ${{ secrets.DEV_BASE_URL }} PROD_BASE_URL: ${{ secrets.PROD_BASE_URL }} KAKAO_NATIVE_APP_KEY: ${{ secrets.KAKAO_NATIVE_APP_KEY }} + KAKAO_REST_API_KEY: ${{ secrets.KAKAO_REST_API_KEY }} NAVER_MAPS_CLIENT_ID: ${{ secrets.NAVER_MAPS_CLIENT_ID }} POSTHOG_API_KEY: ${{ secrets.POSTHOG_API_KEY }} POSTHOG_HOST: ${{ secrets.POSTHOG_HOST }} @@ -123,6 +124,7 @@ jobs: DEV_BASE_URL: ${{ secrets.DEV_BASE_URL }} PROD_BASE_URL: ${{ secrets.PROD_BASE_URL }} KAKAO_NATIVE_APP_KEY: ${{ secrets.KAKAO_NATIVE_APP_KEY }} + KAKAO_REST_API_KEY: ${{ secrets.KAKAO_REST_API_KEY }} NAVER_MAPS_CLIENT_ID: ${{ secrets.NAVER_MAPS_CLIENT_ID }} POSTHOG_API_KEY: ${{ secrets.POSTHOG_API_KEY }} POSTHOG_HOST: ${{ secrets.POSTHOG_HOST }} diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b19c2357a..5b994e86c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -82,6 +82,9 @@ android { buildConfigField("String", "KAKAO_NATIVE_APP_KEY", "\"$kakaoKey\"") manifestPlaceholders["KAKAO_NATIVE_APP_KEY"] = kakaoKey + val kakaoRestApiKey: String = p.getProperty("KAKAO_REST_API_KEY") ?: "" + buildConfigField("String", "KAKAO_REST_API_KEY", "\"$kakaoRestApiKey\"") + val naverMapsClientID: String = p.getProperty("NAVER_MAPS_CLIENT_ID") buildConfigField("String", "NAVER_MAPS_CLIENT_ID", "\"$naverMapsClientID\"") manifestPlaceholders["NAVER_MAPS_CLIENT_ID"] = naverMapsClientID @@ -122,6 +125,9 @@ android { buildConfigField("String", "KAKAO_NATIVE_APP_KEY", "\"$kakaoKey\"") manifestPlaceholders["KAKAO_NATIVE_APP_KEY"] = kakaoKey + val kakaoRestApiKey: String = p.getProperty("KAKAO_REST_API_KEY") ?: "" + buildConfigField("String", "KAKAO_REST_API_KEY", "\"$kakaoRestApiKey\"") + val naverMapsClientID: String = p.getProperty("NAVER_MAPS_CLIENT_ID") buildConfigField("String", "NAVER_MAPS_CLIENT_ID", "\"$naverMapsClientID\"") manifestPlaceholders["NAVER_MAPS_CLIENT_ID"] = naverMapsClientID diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a8c4dd00a..361bd5a80 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,6 +10,8 @@ + + diff --git a/app/src/main/java/com/eatssu/android/data/remote/dto/response/KakaoLocalSearchResponse.kt b/app/src/main/java/com/eatssu/android/data/remote/dto/response/KakaoLocalSearchResponse.kt new file mode 100644 index 000000000..b5bfab258 --- /dev/null +++ b/app/src/main/java/com/eatssu/android/data/remote/dto/response/KakaoLocalSearchResponse.kt @@ -0,0 +1,22 @@ +package com.eatssu.android.data.remote.dto.response + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class KakaoLocalSearchResponse( + @SerialName("documents") + val documents: List = emptyList(), +) { + @Serializable + data class Document( + @SerialName("id") + val id: String = "", + @SerialName("place_name") + val placeName: String = "", + @SerialName("distance") + val distance: String = "", + ) { + fun distanceInMeters(): Int = distance.toIntOrNull() ?: Int.MAX_VALUE + } +} diff --git a/app/src/main/java/com/eatssu/android/data/remote/service/KakaoLocalService.kt b/app/src/main/java/com/eatssu/android/data/remote/service/KakaoLocalService.kt new file mode 100644 index 000000000..04bae571e --- /dev/null +++ b/app/src/main/java/com/eatssu/android/data/remote/service/KakaoLocalService.kt @@ -0,0 +1,20 @@ +package com.eatssu.android.data.remote.service + +import com.eatssu.android.data.remote.dto.response.KakaoLocalSearchResponse +import retrofit2.Response +import retrofit2.http.GET +import retrofit2.http.Header +import retrofit2.http.Query + +interface KakaoLocalService { + @GET("v2/local/search/keyword.json") + suspend fun searchPlaces( + @Header("Authorization") authorization: String, + @Query("query") query: String, + @Query("x") longitude: Double, + @Query("y") latitude: Double, + @Query("radius") radius: Int = 300, + @Query("size") size: Int = 5, + @Query("sort") sort: String = "distance", + ): Response +} diff --git a/app/src/main/java/com/eatssu/android/di/KakaoLocalModule.kt b/app/src/main/java/com/eatssu/android/di/KakaoLocalModule.kt new file mode 100644 index 000000000..c05d3e0e9 --- /dev/null +++ b/app/src/main/java/com/eatssu/android/di/KakaoLocalModule.kt @@ -0,0 +1,27 @@ +package com.eatssu.android.di + +import javax.inject.Singleton +import com.eatssu.android.data.remote.service.KakaoLocalService +import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import kotlinx.serialization.json.Json +import okhttp3.MediaType.Companion.toMediaType +import okhttp3.OkHttpClient +import retrofit2.Retrofit + +@Module +@InstallIn(SingletonComponent::class) +object KakaoLocalModule { + @Provides + @Singleton + fun provideKakaoLocalService(json: Json): KakaoLocalService = + Retrofit.Builder() + .baseUrl("https://dapi.kakao.com/") + .client(OkHttpClient.Builder().build()) + .addConverterFactory(json.asConverterFactory("application/json".toMediaType())) + .build() + .create(KakaoLocalService::class.java) +} diff --git a/app/src/main/java/com/eatssu/android/presentation/map/KakaoLocalPlaceResolver.kt b/app/src/main/java/com/eatssu/android/presentation/map/KakaoLocalPlaceResolver.kt new file mode 100644 index 000000000..ca7c0e36e --- /dev/null +++ b/app/src/main/java/com/eatssu/android/presentation/map/KakaoLocalPlaceResolver.kt @@ -0,0 +1,61 @@ +package com.eatssu.android.presentation.map + +import com.eatssu.android.BuildConfig +import com.eatssu.android.data.remote.dto.response.KakaoLocalSearchResponse +import com.eatssu.android.data.remote.service.KakaoLocalService +import com.eatssu.android.domain.model.PartnershipRestaurant +import timber.log.Timber +import javax.inject.Inject + +class KakaoLocalPlaceResolver @Inject constructor( + private val kakaoLocalService: KakaoLocalService, +) { + internal suspend fun resolve( + restaurant: PartnershipRestaurant, + preferredPlaceId: String?, + ): ResolvedMapPlace? { + val restApiKey = BuildConfig.KAKAO_REST_API_KEY.trim() + if (restApiKey.isEmpty()) return null + + val response = runCatching { + kakaoLocalService.searchPlaces( + authorization = "KakaoAK $restApiKey", + query = restaurant.storeName, + longitude = restaurant.longitude, + latitude = restaurant.latitude, + ) + }.onFailure { throwable -> + Timber.w(throwable, "Failed to resolve Kakao local place") + }.getOrNull() ?: return null + + if (!response.isSuccessful) { + Timber.w("Kakao local place search failed: %s", response.code()) + return null + } + + val matched = selectBestKakaoPlace( + documents = response.body()?.documents.orEmpty(), + preferredPlaceId = preferredPlaceId, + ) ?: return null + + return ResolvedMapPlace( + id = matched.id, + name = matched.placeName, + ) + } +} + +internal fun selectBestKakaoPlace( + documents: List, + preferredPlaceId: String?, +): KakaoLocalSearchResponse.Document? { + val matched = documents.firstOrNull { document -> document.id == preferredPlaceId } + ?: documents.minByOrNull(KakaoLocalSearchResponse.Document::distanceInMeters) + ?: return null + + return matched.takeIf { document -> + document.distanceInMeters() <= MAX_MATCH_DISTANCE_METERS + } +} + +private const val MAX_MATCH_DISTANCE_METERS = 300 diff --git a/app/src/main/java/com/eatssu/android/presentation/map/MapDeepLink.kt b/app/src/main/java/com/eatssu/android/presentation/map/MapDeepLink.kt new file mode 100644 index 000000000..cbd975256 --- /dev/null +++ b/app/src/main/java/com/eatssu/android/presentation/map/MapDeepLink.kt @@ -0,0 +1,197 @@ +package com.eatssu.android.presentation.map + +import java.net.URI +import java.net.URLEncoder +import java.nio.charset.StandardCharsets +import android.app.Activity +import android.content.Context +import android.content.Intent +import android.content.pm.PackageInfo +import android.content.pm.PackageManager +import android.os.Build +import androidx.core.net.toUri +import com.eatssu.android.domain.model.PartnershipRestaurant +import timber.log.Timber + +enum class MapProvider( + val packageName: String, +) { + NAVER("com.nhn.android.nmap"), + KAKAO("net.daum.android.map"), +} + +internal data class ResolvedMapPlace( + val id: String, + val name: String, +) + +internal object MapDeepLink { + private const val KAKAO_PLACE_HOST = "place.map.kakao.com" + + fun naverSearchUrl(storeName: String, appName: String): String = + "nmap://search?query=${storeName.urlEncoded()}&appname=${appName.urlEncoded()}" + + fun naverCoordinateUrl( + storeName: String, + latitude: Double, + longitude: Double, + appName: String, + ): String = "nmap://place" + + "?lat=$latitude" + + "&lng=$longitude" + + "&name=${storeName.urlEncoded()}" + + "&appname=${appName.urlEncoded()}" + + fun kakaoPlaceUrl(placeId: String): String = "kakaomap://place?id=$placeId" + + fun kakaoSearchUrl( + storeName: String, + latitude: Double, + longitude: Double, + ): String = "kakaomap://search" + + "?q=${storeName.urlEncoded()}" + + "&p=$latitude,$longitude" + + fun kakaoCoordinateUrl(latitude: Double, longitude: Double): String = + "kakaomap://look?p=$latitude,$longitude" + + fun serverWebUrl(provider: MapProvider, restaurant: PartnershipRestaurant): String? = + when (provider) { + MapProvider.NAVER -> restaurant.naverMapUrl + MapProvider.KAKAO -> restaurant.kakaoMapUrl + }?.takeIf { url -> url.isHttpWebUrl() } + + fun fallbackWebUrl( + provider: MapProvider, + restaurant: PartnershipRestaurant, + resolvedPlace: ResolvedMapPlace?, + ): String = when (provider) { + MapProvider.NAVER -> + "https://map.naver.com/p/search/${(resolvedPlace?.name ?: restaurant.storeName).pathEncoded()}" + + MapProvider.KAKAO -> resolvedPlace?.let { place -> + "https://map.kakao.com/link/map/${place.id}" + } ?: "https://map.kakao.com/link/map/" + + "${restaurant.storeName.pathEncoded()},${restaurant.latitude},${restaurant.longitude}" + } + + fun supportsKakaoPlaceAction(versionName: String?): Boolean = + versionName + ?.substringBefore('.') + ?.toIntOrNull() + ?.let { majorVersion -> majorVersion >= 6 } + ?: false + + internal fun kakaoPlaceId(webUrl: String): String? { + val uri = runCatching { URI(webUrl) }.getOrNull() ?: return null + if (uri.scheme !in setOf("http", "https")) return null + if (!uri.host.equals(KAKAO_PLACE_HOST, ignoreCase = true)) return null + + return uri.path + ?.split('/') + ?.firstOrNull { it.isNotBlank() } + ?.takeIf { segment -> segment.all(Char::isDigit) } + } + + private fun String.urlEncoded(): String = + URLEncoder.encode(this, StandardCharsets.UTF_8.name()) + + private fun String.pathEncoded(): String = urlEncoded().replace("+", "%20") + + private fun String.isHttpWebUrl(): Boolean = runCatching { + val uri = URI(this) + uri.scheme in setOf("http", "https") && !uri.host.isNullOrBlank() + }.getOrDefault(false) +} + +internal fun Context.openMapWithoutResolution( + provider: MapProvider, + restaurant: PartnershipRestaurant, +): Boolean { + if (!isPackageInstalled(provider.packageName)) { + return openWebUrl( + MapDeepLink.serverWebUrl(provider, restaurant) + ?: MapDeepLink.fallbackWebUrl(provider, restaurant, resolvedPlace = null), + ) + } + + val appUrl = when (provider) { + MapProvider.NAVER -> MapDeepLink.naverCoordinateUrl( + storeName = restaurant.storeName, + latitude = restaurant.latitude, + longitude = restaurant.longitude, + appName = packageName, + ) + + MapProvider.KAKAO -> MapDeepLink.kakaoCoordinateUrl( + latitude = restaurant.latitude, + longitude = restaurant.longitude, + ) + } + + return startMapUrl(appUrl, provider) || + openWebUrl( + MapDeepLink.serverWebUrl(provider, restaurant) + ?: MapDeepLink.fallbackWebUrl(provider, restaurant, resolvedPlace = null), + ) +} + +internal fun Context.startMapUrl(url: String, provider: MapProvider): Boolean = + startMapIntent(mapIntent(url, provider.packageName), provider) + +internal fun Context.startServerUrlInMapApp( + url: String?, + provider: MapProvider, +): Boolean { + val webUrl = url ?: return false + val uri = webUrl.toUri() + if (uri.scheme !in setOf("http", "https")) return false + + val intent = mapIntent(webUrl, provider.packageName) + if (intent.resolveActivity(packageManager) == null) return false + + return startMapIntent(intent, provider) +} + +internal fun Context.openWebUrl(url: String?): Boolean { + val webUrl = url ?: return false + val uri = webUrl.toUri() + if (uri.scheme !in setOf("http", "https")) return false + + return startMapIntent(mapIntent(webUrl), provider = null) +} + +internal fun Context.isPackageInstalled(packageName: String): Boolean = + packageInfo(packageName) != null + +internal fun Context.packageVersionName(packageName: String): String? = + packageInfo(packageName)?.versionName + +@Suppress("DEPRECATION") +private fun Context.packageInfo(packageName: String): PackageInfo? = + runCatching { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + packageManager.getPackageInfo( + packageName, + PackageManager.PackageInfoFlags.of(0), + ) + } else { + packageManager.getPackageInfo(packageName, 0) + } + }.getOrNull() + +private fun Context.mapIntent(url: String, packageName: String? = null): Intent = + Intent(Intent.ACTION_VIEW, url.toUri()).apply { + addCategory(Intent.CATEGORY_BROWSABLE) + packageName?.let(::setPackage) + if (this@mapIntent !is Activity) { + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + } + } + +private fun Context.startMapIntent(intent: Intent, provider: MapProvider?): Boolean = + runCatching { + startActivity(intent) + }.onFailure { throwable -> + Timber.w(throwable, "Failed to open %s map intent", provider?.name ?: "web") + }.isSuccess diff --git a/app/src/main/java/com/eatssu/android/presentation/map/MapExternalNavigator.kt b/app/src/main/java/com/eatssu/android/presentation/map/MapExternalNavigator.kt new file mode 100644 index 000000000..0e2f1dbee --- /dev/null +++ b/app/src/main/java/com/eatssu/android/presentation/map/MapExternalNavigator.kt @@ -0,0 +1,93 @@ +package com.eatssu.android.presentation.map + +import android.content.Context +import com.eatssu.android.domain.model.PartnershipRestaurant +import javax.inject.Inject + +class MapExternalNavigator @Inject constructor( + private val kakaoLocalPlaceResolver: KakaoLocalPlaceResolver, +) { + suspend fun open( + context: Context, + provider: MapProvider, + restaurant: PartnershipRestaurant, + ): Boolean { + val serverWebUrl = MapDeepLink.serverWebUrl(provider, restaurant) + val serverKakaoPlaceId = restaurant.kakaoMapUrl + ?.let(MapDeepLink::kakaoPlaceId) + val isMapAppInstalled = context.isPackageInstalled(provider.packageName) + + if ( + provider == MapProvider.NAVER && + !isMapAppInstalled && + serverWebUrl != null + ) { + return context.openWebUrl(serverWebUrl) + } + + if ( + provider == MapProvider.NAVER && + isMapAppInstalled && + context.startServerUrlInMapApp(serverWebUrl, provider) + ) { + return true + } + + val supportsKakaoPlaceAction = MapDeepLink.supportsKakaoPlaceAction( + context.packageVersionName(MapProvider.KAKAO.packageName), + ) + val requiresExactPlaceName = provider == MapProvider.NAVER || + serverKakaoPlaceId == null || + !supportsKakaoPlaceAction + val resolvedPlace = if (requiresExactPlaceName) { + kakaoLocalPlaceResolver.resolve( + restaurant = restaurant, + preferredPlaceId = serverKakaoPlaceId, + ) + } else { + null + } + val webFallbackUrl = serverWebUrl ?: MapDeepLink.fallbackWebUrl( + provider = provider, + restaurant = restaurant, + resolvedPlace = resolvedPlace, + ) + + if (!isMapAppInstalled) return context.openWebUrl(webFallbackUrl) + + val appUrl = when (provider) { + MapProvider.NAVER -> resolvedPlace?.let { place -> + MapDeepLink.naverSearchUrl( + storeName = place.name, + appName = context.packageName, + ) + } ?: MapDeepLink.naverCoordinateUrl( + storeName = restaurant.storeName, + latitude = restaurant.latitude, + longitude = restaurant.longitude, + appName = context.packageName, + ) + + MapProvider.KAKAO -> { + val placeId = serverKakaoPlaceId ?: resolvedPlace?.id + when { + supportsKakaoPlaceAction && placeId != null -> + MapDeepLink.kakaoPlaceUrl(placeId) + + resolvedPlace != null -> MapDeepLink.kakaoSearchUrl( + storeName = resolvedPlace.name, + latitude = restaurant.latitude, + longitude = restaurant.longitude, + ) + + else -> MapDeepLink.kakaoCoordinateUrl( + latitude = restaurant.latitude, + longitude = restaurant.longitude, + ) + } + } + } + + return context.startMapUrl(appUrl, provider) || context.openWebUrl(webFallbackUrl) + } +} diff --git a/app/src/main/java/com/eatssu/android/presentation/map/MapFragment.kt b/app/src/main/java/com/eatssu/android/presentation/map/MapFragment.kt index 1ca359c27..e76e68dd4 100644 --- a/app/src/main/java/com/eatssu/android/presentation/map/MapFragment.kt +++ b/app/src/main/java/com/eatssu/android/presentation/map/MapFragment.kt @@ -18,6 +18,9 @@ class MapFragment : Fragment() { @Inject lateinit var analyticsTracker: AnalyticsTracker + @Inject + lateinit var mapExternalNavigator: MapExternalNavigator + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -32,7 +35,7 @@ class MapFragment : Fragment() { setContent { ProvideAnalyticsTracker(analyticsTracker) { EatssuTheme { - MapRoute() + MapRoute(mapExternalNavigator = mapExternalNavigator) } } } diff --git a/app/src/main/java/com/eatssu/android/presentation/map/MapFragmentView.kt b/app/src/main/java/com/eatssu/android/presentation/map/MapFragmentView.kt index e4ae4afcc..b44376a1a 100644 --- a/app/src/main/java/com/eatssu/android/presentation/map/MapFragmentView.kt +++ b/app/src/main/java/com/eatssu/android/presentation/map/MapFragmentView.kt @@ -46,7 +46,6 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.core.content.ContextCompat -import androidx.core.net.toUri import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.compose.LocalLifecycleOwner @@ -55,6 +54,7 @@ import androidx.lifecycle.viewmodel.compose.viewModel import com.eatssu.android.R import com.eatssu.android.analytics.LocalAnalyticsTracker import com.eatssu.android.domain.model.Partnership +import com.eatssu.android.domain.model.PartnershipRestaurant import com.eatssu.android.presentation.MainState import com.eatssu.android.presentation.MainViewModel import com.eatssu.android.presentation.map.component.DepartmentBottomSheet @@ -99,7 +99,8 @@ private const val PERMISSION_REQUEST_CODE = 1001 @Composable fun MapRoute( viewModel: MapViewModel = viewModel(), - mainViewModel: MainViewModel = viewModel() + mainViewModel: MainViewModel = viewModel(), + mapExternalNavigator: MapExternalNavigator? = null, ) { val uiState by viewModel.uiState.collectAsStateWithLifecycle() @@ -238,12 +239,20 @@ fun MapRoute( context.showToast(uiText, info) } }, - openMapUrl = { url -> - if (!context.openMapUrl(url)) { - context.showToast( - UiText.StringResource(R.string.toast_map_open_failed), - ToastType.ERROR, - ) + openMap = { provider, restaurant -> + scope.launch { + val opened = mapExternalNavigator?.open( + context = context, + provider = provider, + restaurant = restaurant, + ) ?: context.openMapWithoutResolution(provider, restaurant) + + if (!opened) { + context.showToast( + UiText.StringResource(R.string.toast_map_open_failed), + ToastType.ERROR, + ) + } } }, navigateToUserInfo = { @@ -254,7 +263,10 @@ fun MapRoute( scope.launch { departmentSheetState.hide() } }, onHidePartnershipSheet = { - scope.launch { partnershipSheetState.hide() } + scope.launch { + partnershipSheetState.hide() + viewModel.clearSelectedPartnership() + } }, animateCameraPositionTo = { position, currentZoom -> scope.launch { @@ -287,7 +299,7 @@ internal fun MapScreen( departmentSheetState: SheetState, partnershipSheetState: SheetState, showToast: (UiText, ToastType) -> Unit, - openMapUrl: (String) -> Unit, + openMap: (MapProvider, PartnershipRestaurant) -> Unit, navigateToUserInfo: () -> Unit, onHideDepartmentSheet: () -> Unit = {}, onHidePartnershipSheet: () -> Unit = {}, @@ -351,13 +363,11 @@ internal fun MapScreen( storeName = info.storeName, storeType = storeType, mapRestaurantList = mapState.restaurantInfoList, - naverMapUrl = info.naverMapUrl, - kakaoMapUrl = info.kakaoMapUrl, onNaverMapClick = { - info.naverMapUrl?.let(openMapUrl) + openMap(MapProvider.NAVER, info) }, onKakaoMapClick = { - info.kakaoMapUrl?.let(openMapUrl) + openMap(MapProvider.KAKAO, info) }, onDismiss = { onHidePartnershipSheet() @@ -498,24 +508,6 @@ fun Context.findActivityOrNull(): Activity? = when (this) { else -> null } -private fun Context.openMapUrl(url: String): Boolean { - val uri = url.toUri() - if (uri.scheme !in setOf("http", "https")) return false - - val intent = Intent(Intent.ACTION_VIEW, uri).apply { - addCategory(Intent.CATEGORY_BROWSABLE) - if (this@openMapUrl !is Activity) { - addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - } - } - - return runCatching { - startActivity(intent) - }.onFailure { throwable -> - Timber.e(throwable, "Failed to open map URL") - }.isSuccess -} - @Preview(showBackground = true) @Composable fun MapFragmentComposeViewPreview() { diff --git a/app/src/main/java/com/eatssu/android/presentation/map/MapViewModel.kt b/app/src/main/java/com/eatssu/android/presentation/map/MapViewModel.kt index 7061b3aaf..be68e25d1 100644 --- a/app/src/main/java/com/eatssu/android/presentation/map/MapViewModel.kt +++ b/app/src/main/java/com/eatssu/android/presentation/map/MapViewModel.kt @@ -273,6 +273,19 @@ class MapViewModel @Inject constructor( ), ) } + + fun clearSelectedPartnership() { + val current = uiState.value + if (current !is UiState.Success) return + + _uiState.value = UiState.Success( + current.data.copy( + restaurantPartnershipInfo = null, + restaurantInfoList = emptyList(), + storeType = null, + ), + ) + } } private fun List.hasFestivalPartnership(): Boolean = diff --git a/app/src/main/java/com/eatssu/android/presentation/map/component/MapRestaurantBottomSheet.kt b/app/src/main/java/com/eatssu/android/presentation/map/component/MapRestaurantBottomSheet.kt index 5698b5f6b..1db64fc86 100644 --- a/app/src/main/java/com/eatssu/android/presentation/map/component/MapRestaurantBottomSheet.kt +++ b/app/src/main/java/com/eatssu/android/presentation/map/component/MapRestaurantBottomSheet.kt @@ -55,15 +55,11 @@ fun MapRestaurantBottomSheet( storeName: String, storeType: StoreType, mapRestaurantList: List, - naverMapUrl: String? = null, - kakaoMapUrl: String? = null, onNaverMapClick: () -> Unit = {}, onKakaoMapClick: () -> Unit = {}, onDismiss: () -> Unit = {}, ) { val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) - val hasNaverMapUrl = !naverMapUrl.isNullOrBlank() - val hasKakaoMapUrl = !kakaoMapUrl.isNullOrBlank() LaunchedEffect(Unit) { sheetState.show() @@ -220,48 +216,40 @@ fun MapRestaurantBottomSheet( } } - if (hasKakaoMapUrl || hasNaverMapUrl) { - Box( - modifier = Modifier - .fillMaxWidth() - .height(1.dp) - .background(Gray200), + Box( + modifier = Modifier + .fillMaxWidth() + .height(1.dp) + .background(Gray200), + ) + + Row( + modifier = Modifier + .fillMaxWidth() + .height(64.dp) + .padding(horizontal = 24.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + MapLinkButton( + iconRes = R.drawable.ic_kakao_map, + labelRes = R.string.map_open_kakao, + onClick = onKakaoMapClick, + modifier = Modifier.weight(1f), ) - Row( + Box( modifier = Modifier - .fillMaxWidth() - .height(64.dp) - .padding(horizontal = 24.dp), - verticalAlignment = Alignment.CenterVertically, - ) { - if (hasKakaoMapUrl) { - MapLinkButton( - iconRes = R.drawable.ic_kakao_map, - labelRes = R.string.map_open_kakao, - onClick = onKakaoMapClick, - modifier = Modifier.weight(1f), - ) - } - - if (hasKakaoMapUrl && hasNaverMapUrl) { - Box( - modifier = Modifier - .width(1.dp) - .height(24.dp) - .background(Gray400), - ) - } + .width(1.dp) + .height(24.dp) + .background(Gray400), + ) - if (hasNaverMapUrl) { - MapLinkButton( - iconRes = R.drawable.ic_naver_map, - labelRes = R.string.map_open_naver, - onClick = onNaverMapClick, - modifier = Modifier.weight(1f), - ) - } - } + MapLinkButton( + iconRes = R.drawable.ic_naver_map, + labelRes = R.string.map_open_naver, + onClick = onNaverMapClick, + modifier = Modifier.weight(1f), + ) } } } @@ -313,8 +301,6 @@ fun MapRestaurantBottomSheetPreview() { storeName = "현선이네", mapRestaurantList = dummyList, storeType = StoreType.RESTAURANT, - naverMapUrl = "https://naver.me/test", - kakaoMapUrl = "https://place.map.kakao.com/test", ) } } diff --git a/app/src/main/res/drawable-nodpi/ic_kakao_map.png b/app/src/main/res/drawable-nodpi/ic_kakao_map.png new file mode 100644 index 0000000000000000000000000000000000000000..aebf593260bf1eee36487fa2c9c4e4cc964f0425 GIT binary patch literal 26809 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 JQK?}c{a*}jN3;L{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-nodpi/ic_naver_map.png b/app/src/main/res/drawable-nodpi/ic_naver_map.png new file mode 100644 index 0000000000000000000000000000000000000000..814d0ece2a2c3ffaf6d44d3ad00ac435cd9dd26f GIT binary patch literal 177418 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 UE4sxoFhZboTTQ;;mdW$~0g=`$xBvhE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/ic_kakao_map.xml b/app/src/main/res/drawable/ic_kakao_map.xml deleted file mode 100644 index fa599d0b6..000000000 --- a/app/src/main/res/drawable/ic_kakao_map.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/app/src/main/res/drawable/ic_naver_map.xml b/app/src/main/res/drawable/ic_naver_map.xml deleted file mode 100644 index 6771f02a8..000000000 --- a/app/src/main/res/drawable/ic_naver_map.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/app/src/test/java/com/eatssu/android/presentation/map/KakaoLocalPlaceSelectorBehaviorSpec.kt b/app/src/test/java/com/eatssu/android/presentation/map/KakaoLocalPlaceSelectorBehaviorSpec.kt new file mode 100644 index 000000000..3ac990915 --- /dev/null +++ b/app/src/test/java/com/eatssu/android/presentation/map/KakaoLocalPlaceSelectorBehaviorSpec.kt @@ -0,0 +1,54 @@ +package com.eatssu.android.presentation.map + +import com.eatssu.android.data.remote.dto.response.KakaoLocalSearchResponse +import com.eatssu.android.test.AppBehaviorSpec +import io.kotest.matchers.nulls.shouldBeNull +import io.kotest.matchers.shouldBe + +class KakaoLocalPlaceSelectorBehaviorSpec : AppBehaviorSpec({ + + given("Kakao place candidates near a partnership") { + `when`("the server place ID exists in the search results") { + val serverPlace = document(id = "server", name = "에이블 PC방", distance = 65) + val nearestPlace = document(id = "nearest", name = "에이블 PC CAFE 숭실대점", distance = 8) + + then("the server-provided place is selected first") { + selectBestKakaoPlace( + documents = listOf(serverPlace, nearestPlace), + preferredPlaceId = "server", + ) shouldBe serverPlace + } + } + + `when`("the server place ID is absent from the search results") { + val fartherPlace = document(id = "farther", name = "놀숲 서울대점", distance = 120) + val nearestPlace = document(id = "nearest", name = "놀숲 숭실대점", distance = 15) + + then("the nearest result is selected") { + selectBestKakaoPlace( + documents = listOf(fartherPlace, nearestPlace), + preferredPlaceId = "missing", + ) shouldBe nearestPlace + } + } + + `when`("the selected result is outside the allowed radius") { + then("the resolver falls back to coordinates") { + selectBestKakaoPlace( + documents = listOf(document(id = "1", name = "놀숲 숭실대점", distance = 301)), + preferredPlaceId = "1", + ).shouldBeNull() + } + } + } +}) + +private fun document( + id: String, + name: String, + distance: Int, +) = KakaoLocalSearchResponse.Document( + id = id, + placeName = name, + distance = distance.toString(), +) diff --git a/app/src/test/java/com/eatssu/android/presentation/map/MapDeepLinkBehaviorSpec.kt b/app/src/test/java/com/eatssu/android/presentation/map/MapDeepLinkBehaviorSpec.kt new file mode 100644 index 000000000..ea57f44ff --- /dev/null +++ b/app/src/test/java/com/eatssu/android/presentation/map/MapDeepLinkBehaviorSpec.kt @@ -0,0 +1,79 @@ +package com.eatssu.android.presentation.map + +import com.eatssu.android.test.AppBehaviorSpec +import io.kotest.matchers.shouldBe +import java.net.URLDecoder +import java.nio.charset.StandardCharsets + +class MapDeepLinkBehaviorSpec : AppBehaviorSpec({ + + given("네이버 지도 앱 딥링크") { + `when`("상호명과 앱 ID를 전달하면") { + val url = MapDeepLink.naverSearchUrl( + storeName = "현선이네 숭실대점", + appName = "com.eatssu.android.debug", + ) + + then("상호명이 인코딩된 검색 URL을 만든다") { + url.substringBefore('?') shouldBe "nmap://search" + url.queryParameter("query") shouldBe "현선이네 숭실대점" + url.queryParameter("appname") shouldBe "com.eatssu.android.debug" + } + } + } + + given("카카오맵 앱 딥링크") { + `when`("서버 URL에 장소 ID가 있으면") { + then("해당 장소 상세 URL을 만든다") { + MapDeepLink.kakaoPlaceUrl("273098143") shouldBe + "kakaomap://place?id=273098143" + } + } + + `when`("정확한 상호명을 조회했으면") { + then("상호명과 좌표를 포함한 검색 URL을 만든다") { + MapDeepLink.kakaoSearchUrl( + storeName = "크라이치즈버거 숭실대점", + latitude = 37.4987842, + longitude = 126.9520631, + ).queryParameter("q") shouldBe "크라이치즈버거 숭실대점" + } + } + + `when`("장소 ID가 숫자가 아니면") { + then("장소 ID로 사용하지 않는다") { + MapDeepLink.kakaoPlaceId( + "https://place.map.kakao.com/not-a-place-id" + ) shouldBe null + } + } + + `when`("카카오맵 버전이 6 이상이면") { + then("장소 ID 액션을 지원한다") { + MapDeepLink.supportsKakaoPlaceAction("6.0.0") shouldBe true + MapDeepLink.supportsKakaoPlaceAction("7.1.2") shouldBe true + } + } + + `when`("카카오맵 버전이 6 미만이면") { + then("장소 ID 액션 대신 검색 폴백을 사용한다") { + MapDeepLink.supportsKakaoPlaceAction("1.12.1") shouldBe false + MapDeepLink.supportsKakaoPlaceAction(null) shouldBe false + } + } + } +}) + +private fun String.queryParameter(name: String): String? = + substringAfter('?', missingDelimiterValue = "") + .split('&') + .mapNotNull { pair -> + val separatorIndex = pair.indexOf('=') + if (separatorIndex < 0) return@mapNotNull null + + val key = pair.substring(0, separatorIndex) + val value = pair.substring(separatorIndex + 1) + key to URLDecoder.decode(value, StandardCharsets.UTF_8.name()) + } + .firstOrNull { (key, _) -> key == name } + ?.second diff --git a/app/src/test/java/com/eatssu/android/presentation/map/MapViewModelBehaviorSpec.kt b/app/src/test/java/com/eatssu/android/presentation/map/MapViewModelBehaviorSpec.kt index ce3e92d2d..7110b153d 100644 --- a/app/src/test/java/com/eatssu/android/presentation/map/MapViewModelBehaviorSpec.kt +++ b/app/src/test/java/com/eatssu/android/presentation/map/MapViewModelBehaviorSpec.kt @@ -490,5 +490,51 @@ class MapViewModelBehaviorSpec : AppBehaviorSpec({ } } } + + `when`("a partnership sheet is dismissed and the same store is selected again") { + val partnerships = listOf(samplePartnership(storeName = "Nolsoop")) + val representative = samplePartnershipRestaurant(type = StoreType.CAFE) + + coEvery { + getUserCollegeDepartmentUseCase() + } returns sampleUserInfo( + nickname = "eatssu", + college = College(collegeId = 1, collegeName = "IT"), + department = Department(departmentId = 11, departmentName = "CS"), + ) + coEvery { partnershipRepository.getUserCollegePartnerships() } returns partnerships + coEvery { partnershipRepository.getAllPartnerships() } returns emptyList() + every { getPartnershipDetailUseCase(partnerships, "Nolsoop", 1) } returns representative + + val viewModel = MapViewModel( + partnershipRepository = partnershipRepository, + getPartnershipDetailUseCase = getPartnershipDetailUseCase, + getUserCollegeDepartmentUseCase = getUserCollegeDepartmentUseCase, + analyticsTracker = analyticsTracker, + ) + + then("the selection state is cleared before reopening the same store") { + runTest { + eventually(2.seconds) { + (viewModel.uiState.value as UiState.Success).data.partnerships shouldBe partnerships + } + + viewModel.selectPartnershipByStoreName("Nolsoop") + (viewModel.uiState.value as UiState.Success) + .data.restaurantPartnershipInfo shouldBe representative + + viewModel.clearSelectedPartnership() + with((viewModel.uiState.value as UiState.Success).data) { + restaurantPartnershipInfo shouldBe null + restaurantInfoList shouldBe emptyList() + storeType shouldBe null + } + + viewModel.selectPartnershipByStoreName("Nolsoop") + (viewModel.uiState.value as UiState.Success) + .data.restaurantPartnershipInfo shouldBe representative + } + } + } } }) diff --git a/app/src/test/java/com/eatssu/android/presentation/map/MapWebFallbackBehaviorSpec.kt b/app/src/test/java/com/eatssu/android/presentation/map/MapWebFallbackBehaviorSpec.kt new file mode 100644 index 000000000..d1f45e18d --- /dev/null +++ b/app/src/test/java/com/eatssu/android/presentation/map/MapWebFallbackBehaviorSpec.kt @@ -0,0 +1,53 @@ +package com.eatssu.android.presentation.map + +import com.eatssu.android.test.AppBehaviorSpec +import com.eatssu.android.test.samplePartnershipRestaurant +import io.kotest.matchers.shouldBe +import io.kotest.matchers.string.shouldContain + +class MapWebFallbackBehaviorSpec : AppBehaviorSpec({ + + given("a partnership without server map URLs") { + val restaurant = samplePartnershipRestaurant().copy( + storeName = "놀숲 숭실대점", + latitude = 37.495, + longitude = 126.957, + naverMapUrl = null, + kakaoMapUrl = null, + ) + + `when`("the Naver Map app is unavailable") { + then("a browser search URL is available") { + MapDeepLink.fallbackWebUrl( + provider = MapProvider.NAVER, + restaurant = restaurant, + resolvedPlace = null, + ) shouldContain "https://map.naver.com/p/search/" + } + } + + `when`("the KakaoMap app is unavailable") { + then("a browser coordinate URL is available") { + MapDeepLink.fallbackWebUrl( + provider = MapProvider.KAKAO, + restaurant = restaurant, + resolvedPlace = null, + ) shouldBe "https://map.kakao.com/link/map/" + + "%EB%86%80%EC%88%B2%20%EC%88%AD%EC%8B%A4%EB%8C%80%EC%A0%90,37.495,126.957" + } + } + } + + given("a malformed server URL") { + `when`("the URL is selected for navigation") { + then("it is rejected so a generated fallback can be used") { + MapDeepLink.serverWebUrl( + provider = MapProvider.NAVER, + restaurant = samplePartnershipRestaurant( + naverMapUrl = "not-a-web-url", + ), + ) shouldBe null + } + } + } +}) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 3f76f6cf0..9170bba61 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -27,9 +27,14 @@ platform :android do dev_base_url = ENV["DEV_BASE_URL"] || "" prod_base_url = ENV["PROD_BASE_URL"] || "" kakao_key = ENV["KAKAO_NATIVE_APP_KEY"] || "" + kakao_rest_api_key = ENV["KAKAO_REST_API_KEY"] || "" naver_maps_id = ENV["NAVER_MAPS_CLIENT_ID"] || "" posthog_api_key = ENV["POSTHOG_API_KEY"] || "" posthog_host = ENV["POSTHOG_HOST"] || "" + + if environment == "production" && kakao_rest_api_key.empty? + UI.user_error!("KAKAO_REST_API_KEY is required for a production build") + end base_url = environment == "production" ? prod_base_url : dev_base_url @@ -39,6 +44,7 @@ platform :android do "DEV_BASE_URL=\"#{dev_base_url}\"", "PROD_BASE_URL=\"#{prod_base_url}\"", "KAKAO_NATIVE_APP_KEY=#{kakao_key}", + "KAKAO_REST_API_KEY=#{kakao_rest_api_key}", "NAVER_MAPS_CLIENT_ID=#{naver_maps_id}", "POSTHOG_API_KEY=#{posthog_api_key}", "POSTHOG_HOST=#{posthog_host}"