Skip to content

Commit e4f080e

Browse files
authored
Merge pull request #29 from YAPP-Github/feature/NDGL-100
[NDGL-100] 장소 상세보기 관련 UI/UX 수정
2 parents 2ea9d87 + 21230c3 commit e4f080e

47 files changed

Lines changed: 1194 additions & 2164 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

feature/travel/src/main/java/com/yapp/ndgl/feature/travel/additinerary/AddItineraryContract.kt

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,9 @@ import com.yapp.ndgl.core.base.UiIntent
66
import com.yapp.ndgl.core.base.UiSideEffect
77
import com.yapp.ndgl.core.base.UiState
88
import com.yapp.ndgl.core.ui.R
9-
import com.yapp.ndgl.core.util.formatDecimal
9+
import com.yapp.ndgl.feature.travel.model.PlaceInfo
1010
import com.yapp.ndgl.feature.travel.model.PlacePhoto
1111
import com.yapp.ndgl.feature.travel.model.PlaceType
12-
import com.yapp.ndgl.feature.travel.model.PriceRange
13-
import kotlin.time.Duration
14-
import kotlin.time.Duration.Companion.hours
1512

1613
data class AddItineraryState(
1714
val travelId: Long = 0,
@@ -69,28 +66,6 @@ data class SelectedPlaceDetail(
6966
val photos: List<PlacePhoto> = emptyList(),
7067
)
7168

72-
data class PlaceInfo(
73-
val id: String = "",
74-
val name: String = "",
75-
val placeType: PlaceType = PlaceType.ATTRACTION,
76-
val rating: Double? = null,
77-
val userRatingCount: Int? = null,
78-
val priceRange: PriceRange? = null,
79-
val address: String? = null,
80-
val phoneNumber: String? = null,
81-
val openingHours: String? = null,
82-
val googleMapsUri: String? = null,
83-
val websiteUrl: String? = null,
84-
val estimatedDuration: Duration = 1.hours,
85-
val thumbnail: String? = null,
86-
val latitude: Double = 0.0,
87-
val longitude: Double = 0.0,
88-
val isBookMarked: Boolean = false,
89-
) {
90-
val formattedRatingCount: String
91-
get() = userRatingCount?.formatDecimal() ?: ""
92-
}
93-
9469
data class SearchResult(
9570
val googlePlaceId: String,
9671
val name: String,

feature/travel/src/main/java/com/yapp/ndgl/feature/travel/additinerary/AddItineraryScreen.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import com.yapp.ndgl.feature.travel.additinerary.component.SearchEmptyContent
2828
import com.yapp.ndgl.feature.travel.additinerary.component.SearchPlaceMap
2929
import com.yapp.ndgl.feature.travel.additinerary.component.SearchResultItem
3030
import com.yapp.ndgl.feature.travel.additinerary.component.SearchedPlaceBottomSheet
31+
import com.yapp.ndgl.feature.travel.model.PlaceInfo
3132
import com.yapp.ndgl.feature.travel.model.PlaceType
3233
import kotlin.time.Duration.Companion.hours
3334

@@ -200,7 +201,7 @@ private val previewRecommendedPlaces = listOf(
200201

201202
private val previewSelectedPlaceDetail = SelectedPlaceDetail(
202203
placeInfo = PlaceInfo(
203-
id = "1",
204+
googlePlaceId = "1",
204205
name = "콜로세움",
205206
placeType = PlaceType.ATTRACTION,
206207
rating = 4.8,

feature/travel/src/main/java/com/yapp/ndgl/feature/travel/additinerary/AddItineraryViewModel.kt

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ import com.yapp.ndgl.core.util.suspendRunCatching
77
import com.yapp.ndgl.data.travel.repository.PlaceRepository
88
import com.yapp.ndgl.feature.travel.model.PlacePhoto
99
import com.yapp.ndgl.feature.travel.model.PlaceType
10-
import com.yapp.ndgl.feature.travel.model.Price
11-
import com.yapp.ndgl.feature.travel.model.PriceRange
12-
import com.yapp.ndgl.feature.travel.model.toPlaceType
10+
import com.yapp.ndgl.feature.travel.model.toPlaceInfo
1311
import dagger.assisted.Assisted
1412
import dagger.assisted.AssistedFactory
1513
import dagger.assisted.AssistedInject
@@ -219,38 +217,11 @@ class AddItineraryViewModel @AssistedInject constructor(
219217
placeRepository.getPlace(placeId)
220218
}.onSuccess { response ->
221219
loadPlacePhotos(placeId)
222-
val place = response.place
223220
reduce {
224221
val currentDetail = selectedPlaceDetail ?: SelectedPlaceDetail()
225-
226222
copy(
227223
selectedPlaceDetail = currentDetail.copy(
228-
placeInfo = PlaceInfo(
229-
id = place.id,
230-
name = place.name,
231-
placeType = place.category.toPlaceType(),
232-
rating = place.rating,
233-
userRatingCount = place.userRatingCount,
234-
priceRange = place.priceRange?.let {
235-
PriceRange(
236-
startPrice = Price(
237-
currencyCode = it.startPrice.currencyCode,
238-
units = it.startPrice.units,
239-
symbol = it.startPrice.symbol,
240-
),
241-
endPrice = Price(currencyCode = it.endPrice.currencyCode, units = it.endPrice.units, symbol = it.endPrice.symbol),
242-
)
243-
},
244-
address = place.formattedAddress,
245-
phoneNumber = place.nationalPhoneNumber ?: place.internationalPhoneNumber,
246-
openingHours = place.regularOpeningHours?.joinToString("\n"),
247-
googleMapsUri = place.googleMapsUri,
248-
websiteUrl = place.websiteUri,
249-
thumbnail = place.thumbnail,
250-
latitude = place.location.latitude,
251-
longitude = place.location.longitude,
252-
isBookMarked = false,
253-
),
224+
placeInfo = response.toPlaceInfo(),
254225
),
255226
)
256227
}
@@ -264,7 +235,6 @@ class AddItineraryViewModel @AssistedInject constructor(
264235
delay(1000)
265236
val result = suspendRunCatching { placeRepository.getPlacePhotos(placeId) }
266237
val photos = result.getOrNull()?.photos
267-
268238
if (!photos.isNullOrEmpty()) {
269239
reduce {
270240
val currentDetail = selectedPlaceDetail ?: SelectedPlaceDetail()

feature/travel/src/main/java/com/yapp/ndgl/feature/travel/additinerary/component/SearchPlaceMap.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,9 @@ internal fun SearchPlaceMap(
6464
) {
6565
if (hasValidLocation) {
6666
val pinState =
67-
rememberMarkerState(key = "pin_${placeInfo.id}", position = LatLng(placeInfo.latitude, placeInfo.longitude))
67+
rememberMarkerState(key = "pin_${placeInfo.googlePlaceId}", position = LatLng(placeInfo.latitude, placeInfo.longitude))
6868
val labelState =
69-
rememberMarkerState(key = "label_${placeInfo.id}", position = LatLng(placeInfo.latitude, placeInfo.longitude))
69+
rememberMarkerState(key = "label_${placeInfo.googlePlaceId}", position = LatLng(placeInfo.latitude, placeInfo.longitude))
7070

7171
Marker(state = pinState)
7272
MarkerComposable(

0 commit comments

Comments
 (0)