Skip to content

Commit a25abe3

Browse files
committed
feat : text_view_destination background 구현
1 parent 94d1735 commit a25abe3

File tree

4 files changed

+106
-60
lines changed

4 files changed

+106
-60
lines changed

presentation/src/main/java/com/stop/ui/mission/MissionFragment.kt

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ class MissionFragment : Fragment(), MissionHandler {
4747
setDataBinding()
4848
initViewModel()
4949
initTMap()
50-
initView()
5150
setObserve()
5251
drawPersonLine()
5352

@@ -62,6 +61,7 @@ class MissionFragment : Fragment(), MissionHandler {
6261
private fun setDataBinding() {
6362
binding.lifecycleOwner = viewLifecycleOwner
6463
binding.viewModel = viewModel
64+
binding.fragment = this@MissionFragment
6565
}
6666

6767
private fun initTMap() {
@@ -76,21 +76,32 @@ class MissionFragment : Fragment(), MissionHandler {
7676
viewModel.countDownWith(LEFT_TIME)
7777
}
7878

79-
private fun initView() {
80-
binding.layoutCompass.setOnClickListener {
81-
tMap.tMapView.isCompassMode = tMap.tMapView.isCompassMode.not()
82-
}
79+
fun setCompassMode() {
80+
tMap.tMapView.isCompassMode = tMap.tMapView.isCompassMode.not()
81+
}
8382

84-
binding.layoutPersonCurrent.setOnClickListener {
85-
tMap.tMapView.setCenterPoint(
86-
viewModel.personCurrentLocation.latitude,
87-
viewModel.personCurrentLocation.longitude,
88-
true
89-
)
83+
fun setPersonCurrent() {
84+
tMap.tMapView.setCenterPoint(
85+
viewModel.personCurrentLocation.latitude,
86+
viewModel.personCurrentLocation.longitude,
87+
true
88+
)
9089

91-
tMap.isTracking = true
92-
}
90+
tMap.isTracking = true
91+
tMap.tMapView.zoomLevel = 16
92+
}
9393

94+
fun setZoomOut() {
95+
with(tMap) {
96+
latitudes.clear()
97+
longitudes.clear()
98+
latitudes.add(TEST_DESTINATION.latitude)
99+
longitudes.add(TEST_DESTINATION.longitude)
100+
latitudes.add(viewModel.personCurrentLocation.latitude)
101+
longitudes.add(viewModel.personCurrentLocation.longitude)
102+
setRouteDetailFocus()
103+
isTracking = false
104+
}
94105
}
95106

96107
private fun setObserve() {

presentation/src/main/res/drawable/ic__zoom_out_map.xml

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="32dp"
3+
android:height="32dp"
4+
android:tint="@color/main_dark_grey"
5+
android:viewportWidth="24"
6+
android:viewportHeight="24">
7+
<path
8+
android:fillColor="@android:color/white"
9+
android:pathData="M15,3l2.3,2.3l-2.89,2.87l1.42,1.42L18.7,6.7L21,9V3H15zM3,9l2.3,-2.3l2.87,2.89l1.42,-1.42L6.7,5.3L9,3H3V9zM9,21l-2.3,-2.3l2.89,-2.87l-1.42,-1.42L5.3,17.3L3,15v6H9zM21,15l-2.3,2.3l-2.87,-2.89l-1.42,1.42l2.89,2.87L15,21h6V15z" />
10+
</vector>

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

Lines changed: 72 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,14 @@
44
xmlns:tools="http://schemas.android.com/tools">
55

66
<data>
7+
78
<variable
89
name="viewModel"
910
type="com.stop.ui.mission.MissionViewModel" />
11+
12+
<variable
13+
name="fragment"
14+
type="com.stop.ui.mission.MissionFragment" />
1015
</data>
1116

1217
<androidx.constraintlayout.widget.ConstraintLayout
@@ -51,33 +56,39 @@
5156
app:layout_constraintStart_toStartOf="parent"
5257
app:layout_constraintTop_toTopOf="parent" />
5358

54-
<TextView
55-
android:id="@+id/text_view_destination"
56-
android:layout_width="wrap_content"
57-
android:layout_height="0dp"
58-
android:layout_marginHorizontal="10dp"
59-
android:gravity="center_vertical"
60-
android:textSize="17sp"
61-
android:text="@{viewModel.destination}"
62-
android:textColor="@color/main_dark_grey"
63-
app:layout_constraintStart_toStartOf="@id/guideline_start"
64-
app:layout_constraintEnd_toEndOf="@id/guideline_end"
65-
app:layout_constraintTop_toBottomOf="@id/guideline_top"
66-
tools:text="1호선 용산역"/>
59+
<TextView
60+
android:id="@+id/text_view_destination"
61+
android:layout_width="wrap_content"
62+
android:layout_height="0dp"
63+
android:layout_marginHorizontal="10dp"
64+
android:gravity="center_vertical"
65+
android:text="@{viewModel.destination}"
66+
android:textColor="@color/main_dark_grey"
67+
android:textSize="17sp"
68+
android:textStyle="bold"
69+
android:background="@drawable/background_button"
70+
android:paddingHorizontal="10dp"
71+
android:paddingVertical="3dp"
72+
android:elevation="15dp"
73+
app:layout_constraintEnd_toEndOf="@id/guideline_end"
74+
app:layout_constraintStart_toStartOf="@id/guideline_start"
75+
app:layout_constraintTop_toBottomOf="@id/guideline_top"
76+
tools:text="1호선 용산역" />
6777

6878
<TextView
6979
android:id="@+id/text_view_time_left"
7080
android:layout_width="wrap_content"
7181
android:layout_height="wrap_content"
7282
android:layout_marginTop="32dp"
73-
android:text="@{@string/minute_and_second(viewModel.leftMinute, viewModel.leftSecond)}"
74-
android:textSize="48sp"
75-
android:textColor="@color/main_dark_grey"
7683
android:letterSpacing="0.05"
77-
android:shadowRadius="15.0"
84+
android:paddingHorizontal="5dp"
85+
android:shadowColor="@color/main_light_grey"
7886
android:shadowDx="7.0"
7987
android:shadowDy="7.0"
80-
android:shadowColor="@color/main_light_grey"
88+
android:shadowRadius="15.0"
89+
android:text="@{@string/minute_and_second(viewModel.leftMinute, viewModel.leftSecond)}"
90+
android:textColor="@color/main_dark_grey"
91+
android:textSize="48sp"
8192
app:layout_constraintEnd_toEndOf="parent"
8293
app:layout_constraintStart_toStartOf="parent"
8394
app:layout_constraintTop_toBottomOf="@id/text_view_destination"
@@ -88,13 +99,13 @@
8899
android:layout_width="wrap_content"
89100
android:layout_height="wrap_content"
90101
android:layout_marginStart="16dp"
91-
android:textSize="32sp"
92-
android:textColor="@color/main_dark_grey"
93102
android:letterSpacing="0.05"
94-
android:shadowRadius="15.0"
103+
android:shadowColor="@color/main_light_grey"
95104
android:shadowDx="7.0"
96105
android:shadowDy="7.0"
97-
android:shadowColor="@color/main_light_grey"
106+
android:shadowRadius="15.0"
107+
android:textColor="@color/main_dark_grey"
108+
android:textSize="32sp"
98109
android:visibility="invisible"
99110
app:layout_constraintStart_toEndOf="@id/text_view_time_left"
100111
app:layout_constraintTop_toTopOf="@id/text_view_time_left"
@@ -105,68 +116,87 @@
105116
android:layout_width="60dp"
106117
android:layout_height="60dp"
107118
android:layout_marginBottom="10dp"
108-
android:elevation="15dp"
109119
android:background="@drawable/background_close_button"
120+
android:elevation="15dp"
121+
android:onClick="@{() -> viewModel.cancelMission()}"
110122
app:layout_constraintBottom_toBottomOf="@id/guideline_bottom"
111123
app:layout_constraintEnd_toEndOf="parent"
112-
app:layout_constraintStart_toStartOf="parent"
113-
android:onClick="@{() -> viewModel.cancelMission()}">
124+
app:layout_constraintStart_toStartOf="parent">
114125

115126
<ImageView
116127
android:id="@+id/image_view_mission_close"
117128
android:layout_width="30dp"
118129
android:layout_height="30dp"
119-
android:elevation="15dp"
120130
android:contentDescription="@string/mission_close_image_view_description"
121-
app:layout_constraintStart_toStartOf="parent"
131+
app:layout_constraintBottom_toBottomOf="parent"
122132
app:layout_constraintEnd_toEndOf="parent"
133+
app:layout_constraintStart_toStartOf="parent"
123134
app:layout_constraintTop_toTopOf="parent"
124-
app:layout_constraintBottom_toBottomOf="parent"
125135
app:srcCompat="@drawable/ic_close" />
126136
</androidx.constraintlayout.widget.ConstraintLayout>
127137

128-
129-
130138
<androidx.constraintlayout.widget.ConstraintLayout
131139
android:id="@+id/layout_compass"
132140
android:layout_width="60dp"
133141
android:layout_height="60dp"
134142
android:layout_marginBottom="10dp"
135-
android:elevation="15dp"
136143
android:background="@drawable/background_button"
137-
app:layout_constraintEnd_toEndOf="@id/guideline_end"
138-
app:layout_constraintBottom_toTopOf="@id/layout_person_current">
144+
android:elevation="15dp"
145+
android:onClick="@{() -> fragment.setCompassMode()}"
146+
app:layout_constraintBottom_toTopOf="@id/layout_zoom_out"
147+
app:layout_constraintEnd_toEndOf="@id/guideline_end">
139148

140149
<ImageView
141150
android:id="@+id/image_view_compass"
142151
android:layout_width="30dp"
143152
android:layout_height="30dp"
144-
android:elevation="15dp"
145-
app:layout_constraintStart_toStartOf="parent"
153+
app:layout_constraintBottom_toBottomOf="parent"
146154
app:layout_constraintEnd_toEndOf="parent"
155+
app:layout_constraintStart_toStartOf="parent"
147156
app:layout_constraintTop_toTopOf="parent"
148-
app:layout_constraintBottom_toBottomOf="parent"
149157
app:srcCompat="@drawable/ic_compass" />
150158
</androidx.constraintlayout.widget.ConstraintLayout>
151159

152160
<androidx.constraintlayout.widget.ConstraintLayout
153-
android:id="@+id/layout_person_current"
161+
android:id="@+id/layout_zoom_out"
154162
android:layout_width="60dp"
155163
android:layout_height="60dp"
164+
android:layout_marginBottom="10dp"
165+
android:background="@drawable/background_button"
156166
android:elevation="15dp"
167+
android:onClick="@{() -> fragment.setZoomOut()}"
168+
app:layout_constraintBottom_toTopOf="@id/layout_person_current"
169+
app:layout_constraintEnd_toEndOf="@id/guideline_end">
170+
171+
<ImageView
172+
android:id="@+id/image_view_zoom_out"
173+
android:layout_width="30dp"
174+
android:layout_height="30dp"
175+
app:layout_constraintBottom_toBottomOf="parent"
176+
app:layout_constraintEnd_toEndOf="parent"
177+
app:layout_constraintStart_toStartOf="parent"
178+
app:layout_constraintTop_toTopOf="parent"
179+
app:srcCompat="@drawable/ic_zoom_out_map" />
180+
</androidx.constraintlayout.widget.ConstraintLayout>
181+
182+
<androidx.constraintlayout.widget.ConstraintLayout
183+
android:id="@+id/layout_person_current"
184+
android:layout_width="60dp"
185+
android:layout_height="60dp"
157186
android:background="@drawable/background_button"
158-
app:layout_constraintEnd_toEndOf="@id/guideline_end"
159-
app:layout_constraintBottom_toBottomOf="@id/guideline_bottom">
187+
android:elevation="15dp"
188+
app:layout_constraintBottom_toBottomOf="@id/guideline_bottom"
189+
app:layout_constraintEnd_toEndOf="@id/guideline_end">
160190

161191
<ImageView
162192
android:id="@+id/image_view_person_current_location"
163193
android:layout_width="30dp"
164194
android:layout_height="30dp"
165-
android:elevation="15dp"
166-
app:layout_constraintStart_toStartOf="parent"
195+
android:onClick="@{() -> fragment.setPersonCurrent()}"
196+
app:layout_constraintBottom_toBottomOf="parent"
167197
app:layout_constraintEnd_toEndOf="parent"
198+
app:layout_constraintStart_toStartOf="parent"
168199
app:layout_constraintTop_toTopOf="parent"
169-
app:layout_constraintBottom_toBottomOf="parent"
170200
app:srcCompat="@drawable/ic_location" />
171201
</androidx.constraintlayout.widget.ConstraintLayout>
172202

0 commit comments

Comments
 (0)