Skip to content

Commit 8778254

Browse files
committed
refactor: 경로 검색 화면 UI 수정(진행 중)
1 parent 17d4515 commit 8778254

File tree

5 files changed

+80
-37
lines changed

5 files changed

+80
-37
lines changed
Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,74 @@
11
package com.stop.ui.route
22

3+
import android.content.res.ColorStateList
4+
import android.graphics.Color
35
import android.view.View
46
import androidx.core.content.ContextCompat
57
import androidx.recyclerview.widget.RecyclerView
68
import com.stop.R
79
import com.stop.databinding.TimeLineItemBinding
810
import com.stop.domain.model.route.tmap.custom.MoveType
911
import com.stop.domain.model.route.tmap.custom.Route
12+
import com.stop.domain.model.route.tmap.custom.TransportRoute
1013

1114
class TimeLineViewHolder(
1215
private val binding: TimeLineItemBinding
1316
) : RecyclerView.ViewHolder(binding.root) {
1417

18+
private val greyColor =
19+
ContextCompat.getColor(binding.root.context, R.color.grey_for_route_walk)
20+
1521
fun bind(route: Route, position: Int) {
16-
val text = route.start.name + " " +
17-
binding.root.resources.getString(
18-
R.string.section_time,
19-
(route.sectionTime / 60).toInt().toString()
20-
)
22+
val text = binding.root.resources.getString(
23+
R.string.section_time,
24+
(route.sectionTime / 60).toInt().toString()
25+
)
2126
binding.textViewSectionTime.text = text
2227

23-
2428
val imageSrc = when (route.mode) {
2529
MoveType.BUS -> R.drawable.time_line_bus_16
2630
MoveType.SUBWAY -> R.drawable.time_line_subway_16
2731
MoveType.WALK, MoveType.TRANSFER -> {
2832
if (position != 0) {
33+
setDefaultColor()
34+
binding.viewIcon.visibility = View.GONE
2935
binding.imageViewIcon.visibility = View.GONE
3036
return
3137
}
3238
R.drawable.time_line_directions_walk_16
3339
}
3440
else -> R.drawable.time_line_help_16
3541
}
42+
binding.viewIcon.visibility = View.VISIBLE
3643
binding.imageViewIcon.visibility = View.VISIBLE
3744

3845
val drawable = ContextCompat.getDrawable(binding.root.context, imageSrc)
3946
?: throw IllegalArgumentException()
4047

4148
binding.imageViewIcon.setImageDrawable(drawable)
49+
50+
when (route) {
51+
is TransportRoute -> setIdentityColor(route)
52+
else -> setDefaultColor()
53+
}
54+
}
55+
56+
private fun setIdentityColor(route: TransportRoute) {
57+
val identityColor = Color.parseColor("#${route.routeColor}")
58+
binding.textViewSectionTime.setBackgroundColor(identityColor)
59+
binding.textViewSectionTime.setTextColor(Color.WHITE)
60+
binding.viewIcon.background.setTint(identityColor)
61+
binding.imageViewIcon.imageTintList = ColorStateList.valueOf(Color.WHITE)
62+
}
63+
64+
private fun setDefaultColor() {
65+
binding.textViewSectionTime.setTextColor(Color.WHITE)
66+
binding.textViewSectionTime.setBackgroundColor(greyColor)
67+
68+
val drawable =
69+
ContextCompat.getDrawable(binding.root.context, R.drawable.time_stick_round_background)
70+
?: throw IllegalArgumentException()
71+
binding.imageViewIcon.background = drawable
72+
binding.viewIcon.background.setTintList(null)
4273
}
4374
}

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

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -15,66 +15,61 @@
1515
android:layout_height="match_parent"
1616
tools:context=".ui.route.RouteFragment">
1717

18-
<androidx.appcompat.widget.AppCompatButton
19-
android:id="@+id/button_back_to_home"
20-
style="@style/Widget.AppCompat.Button.Small"
18+
<ImageView
19+
android:id="@+id/image_view_exit"
2120
android:layout_width="wrap_content"
2221
android:layout_height="wrap_content"
23-
android:background="@drawable/ic_baseline_close_24"
24-
app:layout_constraintDimensionRatio="1:1"
22+
android:contentDescription="@string/image_view_exit_content_description"
2523
app:layout_constraintEnd_toEndOf="@id/guideline_end_vertical"
26-
app:layout_constraintTop_toTopOf="@id/guideline_start_horizontal" />
24+
app:layout_constraintTop_toTopOf="@id/guideline_start_horizontal"
25+
app:srcCompat="@drawable/ic_baseline_close_24" />
2726

2827

2928
<TextView
3029
android:id="@+id/text_view_origin"
31-
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
3230
android:layout_width="0dp"
3331
android:layout_height="wrap_content"
3432
android:background="@drawable/round_border"
35-
android:paddingVertical="10dp"
36-
app:layout_constraintEnd_toStartOf="@id/button_swap_origin_with_destination"
33+
android:padding="10dp"
34+
app:layout_constraintEnd_toStartOf="@id/image_view_swap_origin_with_destination"
35+
app:layout_constraintHorizontal_bias="0.0"
3736
app:layout_constraintStart_toStartOf="@id/guideline_start_vertical"
38-
app:layout_constraintTop_toBottomOf="@id/button_back_to_home"
37+
app:layout_constraintTop_toBottomOf="@id/image_view_exit"
3938
app:set_place_name="@{viewModel.origin}"
4039
tools:text="이앤씨벤쳐드림타워3차" />
4140

42-
<androidx.appcompat.widget.AppCompatButton
43-
android:id="@+id/button_swap_origin_with_destination"
44-
style="@style/Widget.AppCompat.Button.Small"
41+
<ImageView
42+
android:id="@+id/image_view_swap_origin_with_destination"
4543
android:layout_width="wrap_content"
4644
android:layout_height="wrap_content"
47-
android:background="@drawable/ic_baseline_swap_vert_24"
45+
android:contentDescription="@string/image_view_swap_origin_with_destination_content_description"
4846
app:layout_constraintBottom_toBottomOf="@id/text_view_origin"
49-
app:layout_constraintDimensionRatio="1:1"
5047
app:layout_constraintEnd_toStartOf="@id/guideline_end_vertical"
51-
app:layout_constraintTop_toTopOf="@id/text_view_origin" />
48+
app:layout_constraintTop_toTopOf="@id/text_view_origin"
49+
app:srcCompat="@drawable/ic_baseline_swap_vert_24" />
5250

5351
<TextView
5452
android:id="@+id/text_view_destination"
55-
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
5653
android:layout_width="0dp"
5754
android:layout_height="wrap_content"
5855
android:layout_marginTop="10dp"
5956
android:background="@drawable/round_border"
60-
android:paddingVertical="10dp"
61-
app:layout_constraintEnd_toStartOf="@id/button_swap_origin_with_destination"
57+
android:padding="10dp"
58+
app:layout_constraintEnd_toStartOf="@id/image_view_reset"
6259
app:layout_constraintStart_toStartOf="@id/guideline_start_vertical"
6360
app:layout_constraintTop_toBottomOf="@id/text_view_origin"
6461
app:set_place_name="@{viewModel.destination}"
6562
tools:text="Naver1784" />
6663

67-
68-
<androidx.appcompat.widget.AppCompatButton
69-
android:id="@+id/button_erase_origin_and_destination"
70-
style="@style/Widget.AppCompat.Button.Small"
64+
<ImageView
65+
android:id="@+id/image_view_reset"
7166
android:layout_width="wrap_content"
7267
android:layout_height="wrap_content"
73-
android:background="@drawable/ic_baseline_replay_24"
68+
android:contentDescription="@string/image_view_reset_content_description"
7469
app:layout_constraintBottom_toBottomOf="@id/text_view_destination"
75-
app:layout_constraintDimensionRatio="1:1"
7670
app:layout_constraintEnd_toStartOf="@id/guideline_end_vertical"
77-
app:layout_constraintTop_toTopOf="@id/text_view_destination" />
71+
app:layout_constraintTop_toTopOf="@id/text_view_destination"
72+
app:srcCompat="@drawable/ic_baseline_replay_24" />
7873

7974
<androidx.recyclerview.widget.RecyclerView
8075
android:id="@+id/recyclerview_route"

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

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111
android:id="@+id/text_view_section_time"
1212
android:layout_width="wrap_content"
1313
android:layout_height="wrap_content"
14+
android:layout_marginTop="6dp"
1415
android:background="@drawable/time_stick_border"
1516
android:gravity="center"
1617
android:minWidth="60dp"
18+
android:minHeight="20dp"
1719
android:paddingVertical="3dp"
18-
android:layout_marginTop="3dp"
20+
android:textSize="12sp"
1921
app:layout_constraintEnd_toEndOf="parent"
2022
app:layout_constraintStart_toStartOf="@id/dummy_view"
2123
app:layout_constraintTop_toTopOf="parent"
@@ -32,16 +34,26 @@
3234
app:layout_constraintTop_toTopOf="@id/image_view_icon"
3335
tools:layout_editor_absoluteY="234dp" />
3436

37+
<View
38+
android:id="@+id/view_icon"
39+
android:layout_width="36dp"
40+
android:layout_height="36dp"
41+
android:background="@drawable/time_stick_round_background"
42+
app:layout_constraintBottom_toBottomOf="parent"
43+
app:layout_constraintStart_toStartOf="parent"
44+
app:layout_constraintTop_toTopOf="parent" />
45+
3546
<ImageView
3647
android:id="@+id/image_view_icon"
3748
android:layout_width="wrap_content"
3849
android:layout_height="wrap_content"
39-
android:background="@drawable/time_stick_round_background"
4050
android:padding="8dp"
51+
android:contentDescription="@string/image_view_icon_content_description"
4152
android:scaleType="centerCrop"
42-
app:layout_constraintBottom_toBottomOf="parent"
43-
app:layout_constraintStart_toStartOf="parent"
44-
app:layout_constraintTop_toTopOf="parent"
53+
app:layout_constraintBottom_toBottomOf="@id/view_icon"
54+
app:layout_constraintStart_toStartOf="@id/view_icon"
55+
app:layout_constraintTop_toTopOf="@id/view_icon"
56+
app:layout_constraintEnd_toEndOf="@id/view_icon"
4557
tools:src="@drawable/time_line_directions_walk_16" />
4658

4759
</androidx.constraintlayout.widget.ConstraintLayout>

presentation/src/main/res/values/colors.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<color name="teal_700">#FF018786</color>
88
<color name="black">#FF000000</color>
99
<color name="white">#FFFFFFFF</color>
10+
<color name="grey_for_route_walk">#E2E7EE</color>
1011

1112
<color name="light_grey">#D3CCCC</color>
1213
<color name="gray_d9">#D9D9D9</color>

presentation/src/main/res/values/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,8 @@
4646
<string name="available_bus_no_exist_yet">탑승할 수 있는 버스가 아직 없습니다.</string>
4747
<string name="bus_disappear_suddenly">버스가 갑자기 사라졌습니다.</string>
4848
<string name="mission_something_wrong">미션 진행 중 무언가 잘못되었습니다.</string>
49+
<string name="image_view_reset_content_description">출발지, 도착지를 모두 비웁니다.</string>
50+
<string name="image_view_swap_origin_with_destination_content_description">출발지와 도착지를 바꿉니다.</string>
51+
<string name="image_view_exit_content_description">경로 검색 화면을 종료합니다.</string>
52+
<string name="image_view_icon_content_description">승차지의 종류를 나타내는 아이콘입니다.</string>
4953
</resources>

0 commit comments

Comments
 (0)