Skip to content

Commit 2a26464

Browse files
committed
refactor: 경로 화면 UI 수정
1 parent 9902a97 commit 2a26464

File tree

2 files changed

+51
-39
lines changed

2 files changed

+51
-39
lines changed

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

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,28 @@ class RouteViewHolder(
3939
binding.textViewExpectedRequiredTime.text = secondToHourAndMinute(itinerary.totalTime)
4040
val routeItems = mutableListOf<RouteItem>()
4141

42-
itinerary.routes.forEach { route ->
42+
itinerary.routes.drop(1).forEachIndexed { index, route ->
43+
if (route.mode == MoveType.TRANSFER) {
44+
return@forEachIndexed
45+
}
46+
val (typeName, mode) = if (index == itinerary.routes.size - 2){
47+
Pair("하차", R.drawable.ic_star_white)
48+
} else {
49+
Pair(getTypeName(route), getRouteItemMode(route))
50+
}
51+
4352
routeItems.add(
4453
RouteItem(
4554
name = route.start.name,
4655
coordinate = route.start.coordinate,
47-
mode = getRouteItemMode(route),
48-
distance = route.distance,
56+
mode = mode,
57+
distance = getRouteItemDistance(route),
4958
travelTime = route.sectionTime.toInt(),
5059
lastTime = "",
5160
beforeColor = getRouteItemColor(route, false),
5261
currentColor = getRouteItemColor(route, true),
5362
type = RouteItemType.PATH,
54-
typeName = getTypeName(route),
63+
typeName = typeName,
5564
)
5665
)
5766
}
@@ -61,6 +70,21 @@ class RouteViewHolder(
6170
}
6271
}
6372

73+
private fun getRouteItemDistance(route: Route): Double {
74+
return if (route.mode == MoveType.TRANSFER) {
75+
val startPoint = android.location.Location("Start")
76+
val endPoint = android.location.Location("End")
77+
78+
startPoint.latitude = route.start.coordinate.latitude.toDouble()
79+
startPoint.longitude = route.start.coordinate.longitude.toDouble()
80+
endPoint.latitude = route.end.coordinate.latitude.toDouble()
81+
endPoint.longitude = route.end.coordinate.longitude.toDouble()
82+
startPoint.distanceTo(endPoint).toDouble()
83+
} else {
84+
route.distance
85+
}
86+
}
87+
6488
private fun getTypeName(route: Route): String {
6589
return when (route) {
6690
is WalkRoute -> "도보"
Lines changed: 23 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<layout
3-
xmlns:android="http://schemas.android.com/apk/res/android"
2+
<layout xmlns:android="http://schemas.android.com/apk/res/android"
43
xmlns:app="http://schemas.android.com/apk/res-auto"
54
xmlns:tools="http://schemas.android.com/tools">
65

76
<data>
7+
88
<import type="com.stop.ui.util.DrawerStringUtils" />
99

10+
<import type="android.view.View" />
11+
1012
<variable
1113
name="routeItem"
1214
type="com.stop.model.route.RouteItem" />
@@ -37,14 +39,14 @@
3739
android:layout_height="wrap_content"
3840
android:layout_marginStart="15dp"
3941
android:layout_marginBottom="2dp"
42+
android:gravity="center_vertical"
4043
android:minEms="4"
4144
android:text="@{routeItem.typeName}"
4245
android:textColor="@color/main_dark_grey"
4346
android:textSize="15sp"
44-
android:gravity="center_vertical"
47+
app:layout_constraintBottom_toBottomOf="parent"
4548
app:layout_constraintStart_toEndOf="@id/image_view_current_line"
46-
app:layout_constraintTop_toTopOf="@id/image_view_current_line"
47-
app:layout_constraintBottom_toBottomOf="@id/image_view_current_line"
49+
app:layout_constraintTop_toTopOf="parent"
4850
tools:text="에버라인" />
4951

5052
<TextView
@@ -53,55 +55,39 @@
5355
android:layout_height="wrap_content"
5456
android:layout_marginStart="15dp"
5557
android:layout_marginBottom="2dp"
56-
android:text="@{routeItem.name}"
5758
android:ellipsize="end"
59+
android:gravity="center_vertical"
5860
android:lines="1"
5961
android:maxEms="12"
62+
android:text="@{routeItem.name}"
6063
android:textColor="@color/main_dark_grey"
6164
android:textSize="15sp"
62-
android:gravity="center_vertical"
65+
app:layout_constraintBottom_toBottomOf="parent"
6366
app:layout_constraintStart_toEndOf="@id/text_view_type_name"
64-
app:layout_constraintTop_toTopOf="@id/image_view_current_line"
65-
app:layout_constraintBottom_toBottomOf="@id/image_view_current_line"
67+
app:layout_constraintTop_toTopOf="parent"
6668
tools:text="미금역.청솔마을.2001.아울렛123123" />
6769

68-
<TextView
69-
android:id="@+id/text_view_information"
70-
android:layout_width="wrap_content"
71-
android:layout_height="wrap_content"
72-
android:layout_marginTop="5dp"
73-
android:layout_marginBottom="5dp"
74-
android:text="@{DrawerStringUtils.getRouteItemInformationString(routeItem)}"
75-
android:textSize="13sp"
76-
android:textColor="@color/main_light_grey"
77-
android:gravity="center_vertical"
78-
app:layout_constraintStart_toStartOf="@id/text_view_type_name"
79-
app:layout_constraintTop_toBottomOf="@id/text_view_type_name"
80-
app:layout_constraintBottom_toBottomOf="parent"
81-
tools:text="512m 16분"/>
82-
8370
<View
8471
android:id="@+id/view_before_line"
8572
android:layout_width="6dp"
8673
android:layout_height="0dp"
87-
android:layout_marginBottom="-5dp"
8874
android:layout_marginStart="-3dp"
8975
android:background="@{routeItem.beforeColor}"
76+
app:layout_constraintBottom_toTopOf="@id/view_image_icon_center"
9077
app:layout_constraintStart_toStartOf="@id/view_image_icon_center"
9178
app:layout_constraintTop_toTopOf="parent"
92-
app:layout_constraintBottom_toTopOf="@id/image_view_current_line"
9379
tools:background="@color/main_yellow" />
9480

9581
<View
9682
android:id="@+id/view_current_line"
9783
android:layout_width="6dp"
9884
android:layout_height="0dp"
99-
android:layout_marginTop="-5dp"
10085
android:layout_marginStart="-3dp"
10186
android:background="@{routeItem.currentColor}"
102-
app:layout_constraintStart_toStartOf="@id/view_image_icon_center"
103-
app:layout_constraintTop_toBottomOf="@id/image_view_current_line"
87+
android:visibility="@{routeItem.typeName == `하차` ? View.GONE : View.VISIBLE}"
10488
app:layout_constraintBottom_toBottomOf="parent"
89+
app:layout_constraintStart_toStartOf="@id/view_image_icon_center"
90+
app:layout_constraintTop_toBottomOf="@id/view_image_icon_center"
10591
tools:background="@color/main_light_grey" />
10692

10793
<View
@@ -112,14 +98,16 @@
11298
app:layout_constraintBottom_toBottomOf="@id/image_view_current_line"
11399
app:layout_constraintEnd_toEndOf="@id/image_view_current_line"
114100
app:layout_constraintStart_toStartOf="@id/image_view_current_line"
115-
app:layout_constraintTop_toTopOf="@id/image_view_current_line"/>
101+
app:layout_constraintTop_toTopOf="@id/image_view_current_line" />
116102

117103
<androidx.appcompat.widget.AppCompatImageView
118104
android:id="@+id/image_view_current_line"
119105
android:layout_width="wrap_content"
120106
android:layout_height="wrap_content"
121-
android:layout_marginTop="15dp"
107+
android:layout_marginTop="8dp"
108+
android:layout_marginBottom="8dp"
122109
android:tint="@{routeItem.currentColor}"
110+
app:layout_constraintBottom_toBottomOf="parent"
123111
app:layout_constraintStart_toStartOf="@id/guideline_start"
124112
app:layout_constraintTop_toTopOf="parent"
125113
app:srcCompat="@drawable/ic_circle"
@@ -129,11 +117,11 @@
129117
android:layout_width="15dp"
130118
android:layout_height="15dp"
131119
android:contentDescription="@string/route_type_image_content_description"
132-
app:layout_constraintStart_toStartOf="@+id/image_view_current_line"
120+
app:imageResource="@{routeItem.mode}"
121+
app:layout_constraintBottom_toBottomOf="@+id/image_view_current_line"
133122
app:layout_constraintEnd_toEndOf="@+id/image_view_current_line"
123+
app:layout_constraintStart_toStartOf="@+id/image_view_current_line"
134124
app:layout_constraintTop_toTopOf="@+id/image_view_current_line"
135-
app:layout_constraintBottom_toBottomOf="@+id/image_view_current_line"
136-
app:imageResource="@{routeItem.mode}"
137125
tools:src="@drawable/ic_walk_white" />
138126

139127
<View
@@ -143,8 +131,8 @@
143131
android:layout_marginStart="15dp"
144132
android:layout_marginEnd="15dp"
145133
android:background="@color/main_lighter_grey"
146-
app:layout_constraintStart_toEndOf="@id/view_before_line"
147134
app:layout_constraintEnd_toEndOf="parent"
135+
app:layout_constraintStart_toEndOf="@id/view_before_line"
148136
app:layout_constraintTop_toTopOf="parent" />
149137
</androidx.constraintlayout.widget.ConstraintLayout>
150138
</layout>

0 commit comments

Comments
 (0)