Skip to content

Commit 5fbeb94

Browse files
committed
fix: 막차 시간이 없을 때 버튼을 비활성화 하도록 변경
1 parent 4880677 commit 5fbeb94

File tree

8 files changed

+70
-4
lines changed

8 files changed

+70
-4
lines changed

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ class RouteResultViewModel : ViewModel() {
2121
val lastTimes: LiveData<List<TransportLastTime?>>
2222
get() = _lastTimes
2323

24+
private val _isLastTimeAvailable = MutableLiveData<Boolean>()
25+
val isLastTimeAvailable: LiveData<Boolean>
26+
get() = _isLastTimeAvailable
27+
2428
private val _origin = MutableLiveData<Place>()
2529
val origin: LiveData<Place>
2630
get() = _origin
@@ -29,6 +33,7 @@ class RouteResultViewModel : ViewModel() {
2933
val destination: LiveData<Place>
3034
get() = _destination
3135

36+
private var isLastTimeChecked = false
3237
private var routeItemColor = 0
3338

3439
fun setItineraries(itinerary: Itinerary) {
@@ -51,6 +56,7 @@ class RouteResultViewModel : ViewModel() {
5156
val routeItems = mutableListOf<RouteItem>()
5257

5358
itinerary.value?.routes?.forEachIndexed { index, route ->
59+
checkLastTime(index, route)
5460
routeItems.add(
5561
RouteItem(
5662
name = getRouteItemName(index, route),
@@ -65,6 +71,7 @@ class RouteResultViewModel : ViewModel() {
6571
)
6672
)
6773
}
74+
isLastTimeChecked = false
6875
routeItems.add(0, routeItems.first().toFirstRouteItem())
6976
destination.value?.let {
7077
routeItems.add(routeItems.last().toLastRouteItem(it.name, it.coordinate))
@@ -73,6 +80,16 @@ class RouteResultViewModel : ViewModel() {
7380
return routeItems.toList()
7481
}
7582

83+
private fun checkLastTime(index: Int, route: Route) {
84+
if (route is TransportRoute) {
85+
if (isLastTimeChecked.not()) {
86+
_isLastTimeAvailable.value = lastTimes.value?.get(index) != null
87+
}
88+
89+
isLastTimeChecked = true
90+
}
91+
}
92+
7693
private fun getRouteItemName(index: Int, route: Route): String {
7794
return if (index == 0) {
7895
origin.value?.name ?: ""

presentation/src/main/java/com/stop/ui/routedetail/RouteDetailFragment.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,9 @@ class RouteDetailFragment : Fragment(), RouteDetailHandler {
6969
}
7070

7171
binding.routeDetailDrawer.viewAlarm.setOnClickListener {
72-
findNavController().navigate(R.id.action_routeDetailFragment_to_alarmSetting)
72+
if (routeResultViewModel.isLastTimeAvailable.value == true) {
73+
findNavController().navigate(R.id.action_routeDetailFragment_to_alarmSetting)
74+
}
7375
}
7476

7577
binding.imageViewClose.setOnClickListener {
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
3+
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
4+
<solid android:color="#FFFFFF" />
5+
6+
<stroke
7+
android:width="2dp"
8+
android:color="@color/main_walk_grey" />
9+
10+
<corners
11+
android:topLeftRadius="100dp"
12+
android:topRightRadius="100dp"
13+
android:bottomLeftRadius="100dp"
14+
android:bottomRightRadius="100dp" />
15+
</shape>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
android:height="24dp"
44
android:viewportWidth="24"
55
android:viewportHeight="24"
6-
android:tint="@color/main_dark_grey">
6+
android:tint="@color/red">
77

88
<path
99
android:fillColor="@android:color/white"

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@
292292
android:layout_marginStart="10dp"
293293
android:text="@string/alarm_delete_text"
294294
android:textSize="17sp"
295-
android:textColor="@color/main_dark_grey"
295+
android:textColor="@color/red"
296296
android:gravity="center"
297297
app:layout_constraintStart_toEndOf="@id/image_view_alarm"
298298
app:layout_constraintTop_toTopOf="parent"

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@
142142
android:layout_height="match_parent"
143143
android:layout_marginEnd="30dp"
144144
android:layout_gravity="start"
145+
bind:routeResultViewModel="@{routeResultViewModel}"
145146
bind:itinerary="@{itinerary}"
146147
layout="@layout/route_detail_drawer" />
147148
</androidx.drawerlayout.widget.DrawerLayout>

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

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,13 @@
55
xmlns:tools="http://schemas.android.com/tools">
66

77
<data>
8+
<import type="android.view.View"/>
89
<import type="com.stop.ui.util.DrawerStringUtils" />
910

11+
<variable
12+
name="routeResultViewModel"
13+
type="com.stop.ui.route.RouteResultViewModel" />
14+
1015
<variable
1116
name="itinerary"
1217
type="com.stop.domain.model.route.tmap.custom.Itinerary" />
@@ -63,13 +68,15 @@
6368
android:layout_height="40dp"
6469
android:layout_marginTop="17dp"
6570
android:background="@drawable/background_route_detail_button"
71+
android:visibility="@{routeResultViewModel.isLastTimeAvailable() ? View.VISIBLE : View.INVISIBLE}"
6672
app:layout_constraintStart_toStartOf="@id/guideline_start"
6773
app:layout_constraintEnd_toEndOf="@id/guideline_end"
6874
app:layout_constraintTop_toBottomOf="@id/text_view_information" />
6975

7076
<androidx.constraintlayout.widget.ConstraintLayout
7177
android:layout_width="wrap_content"
7278
android:layout_height="wrap_content"
79+
android:visibility="@{routeResultViewModel.isLastTimeAvailable() ? View.VISIBLE : View.INVISIBLE}"
7380
app:layout_constraintStart_toStartOf="@id/view_alarm"
7481
app:layout_constraintEnd_toEndOf="@id/view_alarm"
7582
app:layout_constraintTop_toTopOf="@id/view_alarm"
@@ -97,6 +104,29 @@
97104
app:layout_constraintBottom_toBottomOf="parent" />
98105
</androidx.constraintlayout.widget.ConstraintLayout>
99106

107+
<View
108+
android:id="@+id/view_alarm_2"
109+
android:layout_width="0dp"
110+
android:layout_height="40dp"
111+
android:layout_marginTop="17dp"
112+
android:background="@drawable/background_route_detail_button_light"
113+
android:visibility="@{routeResultViewModel.isLastTimeAvailable() ? View.INVISIBLE : View.VISIBLE}"
114+
app:layout_constraintStart_toStartOf="@id/guideline_start"
115+
app:layout_constraintEnd_toEndOf="@id/guideline_end"
116+
app:layout_constraintTop_toBottomOf="@id/text_view_information" />
117+
118+
<TextView
119+
android:layout_width="wrap_content"
120+
android:layout_height="wrap_content"
121+
android:text="@string/last_time_not_found"
122+
android:textSize="13sp"
123+
android:textColor="@color/main_walk_grey"
124+
android:visibility="@{routeResultViewModel.isLastTimeAvailable() ? View.INVISIBLE : View.VISIBLE}"
125+
app:layout_constraintStart_toStartOf="@id/view_alarm_2"
126+
app:layout_constraintEnd_toEndOf="@id/view_alarm_2"
127+
app:layout_constraintTop_toTopOf="@id/view_alarm_2"
128+
app:layout_constraintBottom_toBottomOf="@id/view_alarm_2" />
129+
100130
<androidx.recyclerview.widget.RecyclerView
101131
android:id="@+id/recycler_view_route_detail"
102132
android:layout_width="0dp"

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
<string name="alarm_content_text">막차를 타러 이제 나가야해요~!!</string>
4949
<string name="mission_notification_channel_id">mission_notification_channel_id</string>
5050
<string name="mission_notification_channel_name">mission_notification_channel_name</string>
51-
<string name="mission_notification_title">실시간 위치 추적중</string>
51+
<string name="mission_notification_title">실시간 위치 트래킹 중</string>
5252
<string name="mission_cancel_text">취소하기</string>
5353
<string name="mission_content_text">정류장까지 달려~!</string>
5454
<string name="no_alarm">현재 등록된 막차 알림이 없습니다.</string>
@@ -79,4 +79,5 @@
7979
<string name="end_position_text">도착지 : %1$s</string>
8080
<string name="last_time_text">막차시간 : %1$s</string>
8181
<string name="walk_time_text">%1$d분</string>
82+
<string name="last_time_not_found">알람을 설정할 수 없습니다</string>
8283
</resources>

0 commit comments

Comments
 (0)