Skip to content

Commit e3d3eb1

Browse files
committed
feat: route_path_item.xml UI 구현
1 parent dc6ddb9 commit e3d3eb1

File tree

13 files changed

+224
-19
lines changed

13 files changed

+224
-19
lines changed

presentation/src/main/java/com/stop/model/route/RouteItem.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
package com.stop.model.route
22

33
import com.stop.domain.model.route.tmap.custom.Coordinate
4-
import com.stop.domain.model.route.tmap.custom.MoveType
54

65
data class RouteItem(
76
val name: String,
87
val coordinate: Coordinate,
9-
val mode: MoveType,
8+
val mode: Int,
109
val distance: Double,
1110
val travelTime: Int,
1211
val lastTime: String?,
@@ -25,6 +24,7 @@ fun RouteItem.toLastRouteItem(name: String, coordinate: com.stop.model.route.Coo
2524
return this.copy(
2625
name = name,
2726
coordinate = Coordinate(coordinate.latitude, coordinate.longitude),
27+
beforeColor = currentColor,
2828
type = RouteItemType.LAST
2929
)
3030
}

presentation/src/main/java/com/stop/ui/route/RouteViewModel.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import androidx.lifecycle.LiveData
55
import androidx.lifecycle.MutableLiveData
66
import androidx.lifecycle.ViewModel
77
import androidx.lifecycle.viewModelScope
8+
import com.stop.R
89
import com.stop.domain.model.route.tmap.RouteRequest
910
import com.stop.domain.model.route.tmap.custom.*
1011
import com.stop.domain.usecase.route.GetLastTransportTimeUseCase
@@ -108,7 +109,7 @@ class RouteViewModel @Inject constructor(
108109
RouteItem(
109110
name = getRouteItemName(index, route),
110111
coordinate = route.start.coordinate,
111-
mode = route.mode,
112+
mode = getRouteItemMode(route),
112113
distance = route.distance,
113114
travelTime = route.sectionTime.toInt(),
114115
lastTime = tempLastTime[index],
@@ -134,6 +135,15 @@ class RouteViewModel @Inject constructor(
134135
}
135136
}
136137

138+
private fun getRouteItemMode(route: Route): Int {
139+
return when (route.mode) {
140+
MoveType.WALK -> R.drawable.ic_walk_white
141+
MoveType.BUS -> R.drawable.ic_bus_white
142+
MoveType.SUBWAY -> R.drawable.ic_subway_white
143+
else -> R.drawable.ic_star_white
144+
}
145+
}
146+
137147
private fun getRouteItemColor(route: Route, isCurrent: Boolean): Int {
138148
return if (isCurrent) {
139149
routeItemColor = when (route) {

presentation/src/main/java/com/stop/ui/util/DrawerStringUtils.kt

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.stop.ui.util
22

3+
import com.stop.domain.model.route.seoul.subway.StationLastTime
34
import com.stop.domain.model.route.tmap.custom.Itinerary
5+
import com.stop.model.route.RouteItem
46
import java.text.DecimalFormat
57

68
object DrawerStringUtils {
@@ -17,17 +19,36 @@ object DrawerStringUtils {
1719
}
1820

1921
@JvmStatic
20-
fun getInformationString(itinerary: Itinerary): String {
21-
val informationString = StringBuilder()
22+
fun getTopInformationString(itinerary: Itinerary): String {
23+
val topInformationString = StringBuilder()
2224

23-
informationString.append("${getDistanceString(itinerary.totalDistance)} ")
24-
informationString.append("도보 ${getTimeString(itinerary.walkTime)} ")
25-
informationString.append(
25+
topInformationString.append("${getDistanceString(itinerary.totalDistance)} ")
26+
topInformationString.append("도보 ${getTimeString(itinerary.walkTime)} ")
27+
topInformationString.append(
2628
"${DecimalFormat("#,###").format(itinerary.totalFare.dropLast(0).toInt())}"
2729
)
28-
informationString.append("환승 ${itinerary.transferCount}")
30+
topInformationString.append("환승 ${itinerary.transferCount}")
2931

30-
return informationString.toString()
32+
return topInformationString.toString()
33+
}
34+
35+
@JvmStatic
36+
fun getRouteItemInformationString(routeItem: RouteItem): String {
37+
val routeItemInformationString = StringBuilder()
38+
39+
routeItemInformationString.append("${getDistanceString(routeItem.distance)} ")
40+
routeItemInformationString.append(getTimeString(routeItem.travelTime))
41+
42+
return routeItemInformationString.toString()
43+
}
44+
45+
@JvmStatic
46+
fun getLastTimeString(lastTime: String?): String {
47+
return if (lastTime != null) {
48+
"막차 $lastTime"
49+
} else {
50+
""
51+
}
3152
}
3253

3354
private fun getDistanceString(distance: Double): String {
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24"
6+
android:tint="@color/white">
7+
8+
<path
9+
android:fillColor="@android:color/white"
10+
android:pathData="M4,16c0,0.88 0.39,1.67 1,2.22L5,20c0,0.55 0.45,1 1,1h1c0.55,0 1,-0.45 1,-1v-1h8v1c0,0.55 0.45,1 1,1h1c0.55,0 1,-0.45 1,-1v-1.78c0.61,-0.55 1,-1.34 1,-2.22L20,6c0,-3.5 -3.58,-4 -8,-4s-8,0.5 -8,4v10zM7.5,17c-0.83,0 -1.5,-0.67 -1.5,-1.5S6.67,14 7.5,14s1.5,0.67 1.5,1.5S8.33,17 7.5,17zM16.5,17c-0.83,0 -1.5,-0.67 -1.5,-1.5s0.67,-1.5 1.5,-1.5 1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5zM18,11L6,11L6,6h12v5z"/>
11+
</vector>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="30dp"
3+
android:height="30dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24"
6+
android:tint="@color/white">
7+
8+
<path
9+
android:fillColor="@android:color/white"
10+
android:pathData="M12,2C6.47,2 2,6.47 2,12s4.47,10 10,10 10,-4.47 10,-10S17.53,2 12,2z"/>
11+
</vector>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24"
6+
android:tint="@color/white">
7+
8+
<path
9+
android:fillColor="@android:color/white"
10+
android:pathData="M22,9.24l-7.19,-0.62L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21 12,17.27 18.18,21l-1.63,-7.03L22,9.24zM12,15.4l-3.76,2.27 1,-4.28 -3.32,-2.88 4.38,-0.38L12,6.1l1.71,4.04 4.38,0.38 -3.32,2.88 1,4.28L12,15.4z"/>
11+
</vector>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24"
6+
android:tint="@color/white">
7+
8+
<path
9+
android:fillColor="@android:color/white"
10+
android:pathData="M12,2c-4.42,0 -8,0.5 -8,4v9.5C4,17.43 5.57,19 7.5,19L6,20.5v0.5h12v-0.5L16.5,19c1.93,0 3.5,-1.57 3.5,-3.5L20,6c0,-3.5 -3.58,-4 -8,-4zM7.5,17c-0.83,0 -1.5,-0.67 -1.5,-1.5S6.67,14 7.5,14s1.5,0.67 1.5,1.5S8.33,17 7.5,17zM11,11L6,11L6,6h5v5zM16.5,17c-0.83,0 -1.5,-0.67 -1.5,-1.5s0.67,-1.5 1.5,-1.5 1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5zM18,11h-5L13,6h5v5z"/>
11+
</vector>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24"
6+
android:tint="@color/white">
7+
8+
<path
9+
android:fillColor="@android:color/white"
10+
android:pathData="M13.5,5.5c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM9.8,8.9L7,23h2.1l1.8,-8 2.1,2v6h2v-7.5l-2.1,-2 0.6,-3C14.8,12 16.8,13 19,13v-2c-1.9,0 -3.5,-1 -4.3,-2.4l-1,-1.6c-0.4,-0.6 -1,-1 -1.7,-1 -0.3,0 -0.5,0.1 -0.8,0.1L6,8.3V13h2V9.6l1.8,-0.7"/>
11+
</vector>

presentation/src/main/res/layout/fragment_route_detail.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,8 @@
115115
<androidx.drawerlayout.widget.DrawerLayout
116116
android:id="@+id/layout_drawer"
117117
android:layout_width="match_parent"
118-
android:layout_height="match_parent">
118+
android:layout_height="match_parent"
119+
tools:openDrawer="start">
119120

120121
<androidx.constraintlayout.widget.ConstraintLayout
121122
android:id="@+id/layout_container"

presentation/src/main/res/layout/route_detail_drawer.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
android:id="@+id/text_view_information"
4949
android:layout_width="0dp"
5050
android:layout_height="wrap_content"
51-
android:text="@{DrawerStringUtils.getInformationString(itinerary)}"
51+
android:text="@{DrawerStringUtils.getTopInformationString(itinerary)}"
5252
android:textSize="13sp"
5353
android:textColor="@color/main_light_grey"
5454
android:gravity="center_vertical"
@@ -101,7 +101,7 @@
101101
android:id="@+id/recycler_view_route_detail"
102102
android:layout_width="0dp"
103103
android:layout_height="0dp"
104-
android:layout_marginTop="17dp"
104+
android:layout_marginTop="20dp"
105105
app:layout_constraintStart_toStartOf="parent"
106106
app:layout_constraintEnd_toEndOf="parent"
107107
app:layout_constraintTop_toBottomOf="@id/view_alarm"

0 commit comments

Comments
 (0)