Skip to content

Commit cd09787

Browse files
committed
feat : 알람 설정 화면 구현
1 parent 3acd5f1 commit cd09787

File tree

7 files changed

+122
-74
lines changed

7 files changed

+122
-74
lines changed

presentation/src/main/java/com/stop/ui/alarmsetting/AlarmSettingViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class AlarmSettingViewModel @Inject constructor(
6868
}
6969

7070
fun callAlarm(time: String) {
71+
val time = "00:30:30"
7172
alarmFunctions.callAlarm(time, alarmTime.value ?: 0, ALARM_CODE)
7273
}
7374

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:shape="rectangle">
4+
5+
<corners android:radius="16dp" />
6+
<solid android:color="@color/main_dark_grey" />
7+
8+
</shape>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<vector android:autoMirrored="true" android:height="32dp"
2-
android:tint="#000000" android:viewportHeight="24"
2+
android:tint="@color/main_dark_grey" android:viewportHeight="24"
33
android:viewportWidth="24" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android">
44
<path android:fillColor="@android:color/white" 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"/>
55
</vector>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<vector android:autoMirrored="true" android:height="48dp"
2+
android:tint="#404550" android:viewportHeight="24"
3+
android:viewportWidth="24" android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
4+
<path android:fillColor="@android:color/white" android:pathData="M18.5,12c0,-1.77 -1.02,-3.29 -2.5,-4.03v8.05c1.48,-0.73 2.5,-2.25 2.5,-4.02zM5,9v6h4l5,5V4L9,9H5z"/>
5+
</vector>

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

Lines changed: 94 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -58,154 +58,178 @@
5858
android:orientation="horizontal"
5959
app:layout_constraintGuide_begin="35dp" />
6060

61+
<View
62+
android:id="@+id/view_top"
63+
android:layout_width="0dp"
64+
android:layout_height="120dp"
65+
android:background="@color/main_dark_grey"
66+
app:layout_constraintEnd_toEndOf="parent"
67+
app:layout_constraintStart_toStartOf="parent"
68+
app:layout_constraintTop_toTopOf="parent" />
69+
70+
<View
71+
android:id="@+id/view_search"
72+
android:layout_width="0dp"
73+
android:layout_height="50dp"
74+
android:layout_marginBottom="15dp"
75+
android:background="@drawable/background_search"
76+
app:layout_constraintBottom_toBottomOf="@id/view_top"
77+
app:layout_constraintEnd_toEndOf="@id/guide_line_end"
78+
app:layout_constraintStart_toStartOf="@id/guide_line_start" />
79+
6180
<TextView
6281
android:id="@+id/text_view_start_position"
6382
android:layout_width="0dp"
64-
android:layout_height="wrap_content"
65-
android:background="@drawable/background_gray_d9_8"
83+
android:layout_height="0dp"
84+
android:layout_marginStart="10dp"
85+
android:layout_marginEnd="5dp"
6686
android:ellipsize="end"
87+
android:gravity="center"
6788
android:maxLines="1"
68-
android:padding="8dp"
69-
android:text="@{@string/start_position_text(startPosition)}"
70-
android:textColor="@color/black"
71-
android:textSize="24sp"
72-
android:textStyle="bold"
73-
app:layout_constraintEnd_toEndOf="@id/guide_line_end"
74-
app:layout_constraintStart_toStartOf="@id/guide_line_start"
75-
app:layout_constraintTop_toTopOf="@id/guideline_top" />
89+
android:text="@{startPosition}"
90+
android:textColor="@color/main_light_grey"
91+
android:textSize="17sp"
92+
app:layout_constraintBottom_toBottomOf="@id/view_search"
93+
app:layout_constraintEnd_toStartOf="@id/image_view_arrow_right"
94+
app:layout_constraintStart_toStartOf="@id/view_search"
95+
app:layout_constraintTop_toTopOf="@id/view_search"
96+
tools:text="출발지" />
97+
98+
<ImageView
99+
android:id="@+id/image_view_arrow_right"
100+
android:layout_width="wrap_content"
101+
android:layout_height="wrap_content"
102+
app:layout_constraintBottom_toBottomOf="@id/view_search"
103+
app:layout_constraintEnd_toEndOf="@id/view_search"
104+
app:layout_constraintStart_toStartOf="@id/view_search"
105+
app:layout_constraintTop_toTopOf="@id/view_search"
106+
app:srcCompat="@drawable/ic_arrow_right" />
76107

77108
<TextView
78109
android:id="@+id/text_view_end_position"
79110
android:layout_width="0dp"
80-
android:layout_height="wrap_content"
81-
android:layout_marginTop="8dp"
82-
android:background="@drawable/background_gray_d9_8"
111+
android:layout_height="0dp"
112+
android:layout_marginStart="5dp"
113+
android:layout_marginEnd="10dp"
83114
android:ellipsize="end"
115+
android:gravity="center"
84116
android:maxLines="1"
85-
android:padding="8dp"
86-
android:text="@{@string/end_position_text(endPosition)}"
87-
android:textColor="@color/black"
88-
android:textSize="24sp"
89-
android:textStyle="bold"
90-
app:layout_constraintEnd_toEndOf="@id/guide_line_end"
117+
android:text="@{endPosition}"
118+
android:textColor="@color/main_light_grey"
119+
android:textSize="17sp"
120+
app:layout_constraintBottom_toBottomOf="@id/view_search"
121+
app:layout_constraintEnd_toEndOf="@id/view_search"
122+
app:layout_constraintStart_toEndOf="@id/image_view_arrow_right"
123+
app:layout_constraintTop_toTopOf="@id/view_search"
124+
tools:text="도착지" />
125+
126+
<ImageView
127+
android:id="@+id/image_view_transport"
128+
android:layout_width="96dp"
129+
android:layout_height="96dp"
130+
android:layout_marginTop="12dp"
131+
android:src="@drawable/ic_bus"
91132
app:layout_constraintStart_toStartOf="@id/guide_line_start"
92-
app:layout_constraintTop_toBottomOf="@id/text_view_start_position" />
133+
app:layout_constraintTop_toBottomOf="@id/view_top" />
93134

94135
<TextView
95136
android:id="@+id/text_view_last_time"
96137
android:layout_width="0dp"
97138
android:layout_height="wrap_content"
98-
android:layout_marginTop="16dp"
99-
android:gravity="center"
100-
android:textColor="@color/black"
101-
android:textSize="21sp"
102139
android:text="@{@string/last_transport_arrival_time(lastTime)}"
140+
android:textColor="@color/main_dark_grey"
141+
android:textSize="21sp"
142+
app:layout_constraintBottom_toBottomOf="@id/image_view_transport"
103143
app:layout_constraintEnd_toEndOf="@id/guide_line_end"
104-
app:layout_constraintStart_toStartOf="@id/guide_line_start"
105-
app:layout_constraintTop_toBottomOf="@id/text_view_end_position" />
106-
144+
app:layout_constraintStart_toEndOf="@id/image_view_transport"
145+
app:layout_constraintTop_toTopOf="@id/image_view_transport"
146+
tools:text="막차 도착 예정 시간 23:30:10" />
107147

108148
<ImageView
109149
android:id="@+id/image_view_walk"
110150
android:layout_width="96dp"
111151
android:layout_height="96dp"
112152
android:layout_marginTop="36dp"
113153
app:layout_constraintStart_toStartOf="@id/guide_line_start"
114-
app:layout_constraintTop_toBottomOf="@id/text_view_last_time"
154+
app:layout_constraintTop_toBottomOf="@id/image_view_transport"
115155
app:srcCompat="@drawable/ic_baseline_directions_walk_32" />
116156

117157
<TextView
118158
android:id="@+id/text_view_walk"
119159
android:layout_width="0dp"
120160
android:layout_height="wrap_content"
121-
android:textColor="@color/black"
122-
android:textSize="18sp"
123-
app:layout_constraintBottom_toBottomOf="@id/image_view_walk"
124161
android:text="@{@string/last_transport_walking_time(walkTime)}"
162+
android:textColor="@color/main_dark_grey"
163+
android:textSize="21sp"
164+
app:layout_constraintBottom_toBottomOf="@id/image_view_walk"
125165
app:layout_constraintEnd_toEndOf="@id/guide_line_end"
126166
app:layout_constraintStart_toEndOf="@id/image_view_walk"
127-
app:layout_constraintTop_toTopOf="@id/image_view_walk" />
128-
129-
<NumberPicker
130-
android:id="@+id/number_picker_alarm_time"
131-
android:layout_width="wrap_content"
132-
android:layout_height="wrap_content"
133-
android:layout_marginStart="12dp"
134-
android:layout_marginTop="24dp"
135-
android:value="@={alarmViewModel.alarmTime}"
136-
app:layout_constraintEnd_toEndOf="@id/guide_line_end"
137-
app:layout_constraintStart_toEndOf="@id/text_view_alarm_time"
138-
app:layout_constraintTop_toBottomOf="@id/image_view_walk" />
167+
app:layout_constraintTop_toTopOf="@id/image_view_walk"
168+
tools:text="정류장까지의 예상 도보 시간 : 10분" />
139169

140170
<TextView
141171
android:id="@+id/text_view_alarm_time"
142172
android:layout_width="wrap_content"
143173
android:layout_height="wrap_content"
144-
android:layout_marginEnd="12dp"
145174
android:text="@{@string/alarm_time_text(alarmViewModel.alarmTime)}"
146-
android:textColor="@color/black"
147-
android:textSize="16sp"
175+
android:textColor="@color/main_dark_grey"
176+
android:textSize="21sp"
148177
app:layout_constraintBottom_toBottomOf="@id/number_picker_alarm_time"
149-
app:layout_constraintEnd_toStartOf="@id/number_picker_alarm_time"
150-
app:layout_constraintHorizontal_chainStyle="packed"
151178
app:layout_constraintStart_toStartOf="@id/guide_line_start"
152179
app:layout_constraintTop_toTopOf="@id/number_picker_alarm_time"
153-
tools:text="알람이 막차시간\n10분전에\n울리도록 설정하시겠습니까?" />
180+
tools:text="막차시간 10분전에\n알람이 울리도록\n설정하시겠습니까?" />
154181

155-
<TextView
156-
android:id="@+id/text_view_alarm_method"
182+
<NumberPicker
183+
android:id="@+id/number_picker_alarm_time"
157184
android:layout_width="wrap_content"
158185
android:layout_height="wrap_content"
159-
android:layout_marginTop="8dp"
160-
android:layout_marginEnd="12dp"
161-
android:text="@string/alarm_method_text"
162-
android:textColor="@color/black"
163-
android:textSize="16sp"
164-
app:layout_constraintBottom_toBottomOf="@id/toggle_group_alarm"
165-
app:layout_constraintEnd_toStartOf="@id/toggle_group_alarm"
166-
app:layout_constraintHorizontal_chainStyle="packed"
167-
app:layout_constraintStart_toStartOf="@id/guide_line_start"
168-
app:layout_constraintTop_toTopOf="@id/toggle_group_alarm" />
186+
android:layout_marginStart="12dp"
187+
android:layout_marginTop="24dp"
188+
android:value="@={alarmViewModel.alarmTime}"
189+
app:layout_constraintEnd_toEndOf="@id/guide_line_end"
190+
app:layout_constraintStart_toEndOf="@id/text_view_alarm_time"
191+
app:layout_constraintTop_toBottomOf="@id/image_view_walk" />
169192

170193
<com.google.android.material.button.MaterialButtonToggleGroup
171194
android:id="@+id/toggle_group_alarm"
172-
android:layout_width="wrap_content"
195+
android:layout_width="0dp"
173196
android:layout_height="wrap_content"
174-
android:layout_marginStart="12dp"
175197
android:layout_marginBottom="9dp"
176198
app:checkedButton="@id/button_sound"
177199
app:layout_constraintBottom_toTopOf="@id/text_view_register_alarm"
178-
app:layout_constraintEnd_toEndOf="parent"
179-
app:layout_constraintHorizontal_chainStyle="packed"
180-
app:layout_constraintStart_toEndOf="@id/text_view_alarm_method"
181-
app:layout_constraintTop_toBottomOf="@id/number_picker_alarm_time"
200+
app:layout_constraintEnd_toEndOf="@id/guide_line_end"
201+
app:layout_constraintStart_toStartOf="@id/guide_line_start"
182202
app:singleSelection="true">
183203

184204
<com.google.android.material.button.MaterialButton
185205
android:id="@+id/button_sound"
186206
style="@style/Widget.Material3.Button.OutlinedButton"
187207
android:layout_width="wrap_content"
188208
android:layout_height="wrap_content"
209+
android:layout_weight="1"
189210
android:text="@string/sound_text" />
190211

191212
<com.google.android.material.button.MaterialButton
192213
android:id="@+id/button_wave"
193214
style="@style/Widget.Material3.Button.OutlinedButton"
194215
android:layout_width="wrap_content"
195216
android:layout_height="wrap_content"
217+
android:layout_weight="1"
196218
android:text="@string/wave_text" />
197219

198220
</com.google.android.material.button.MaterialButtonToggleGroup>
199221

200-
<com.google.android.material.button.MaterialButton
222+
<TextView
201223
android:id="@+id/text_view_register_alarm"
202-
style="@style/Widget.Material3.Button.OutlinedButton"
203224
android:layout_width="0dp"
204225
android:layout_height="wrap_content"
205226
android:layout_marginBottom="24dp"
227+
android:background="@drawable/button_background"
228+
android:gravity="center"
206229
android:onClick="@{() -> fragment.setAlarmRegisterListener()}"
230+
android:padding="10dp"
207231
android:text="@string/register_alarm_text"
208-
android:textColor="@color/black"
232+
android:textColor="@color/white"
209233
android:textSize="16sp"
210234
android:textStyle="bold"
211235
app:layout_constraintBottom_toBottomOf="parent"

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
<string name="alarm_method_text">알람 방식</string>
2121
<string name="wave_text">진동</string>
2222
<string name="sound_text">소리</string>
23-
<string name="last_transport_arrival_time">막차가 %1$s에 도착할 예정이에요!!</string>
24-
<string name="last_transport_walking_time">막차까지 도보 시간이 %1$d분 소요될것으로 예상되요!!</string>
25-
<string name="alarm_time_text">알람이 막차시간\n%1$d분 전에\n울리도록 설정하시겠습니까?</string>
23+
<string name="last_transport_arrival_time">막차 도착 예정 시간 :\n%1$s</string>
24+
<string name="last_transport_walking_time">정류장까지의 예상 도보 시간 :\n%1$d분</string>
25+
<string name="alarm_time_text">막차시간%1$d분 전에\n알람이 울리도록\n설정하시겠습니까?</string>
2626
<string name="register_alarm_text">알람 등록</string>
2727
<string name="search_hint">장소, 주소 검색</string>
2828
<string name="expected_last_arrival_time">막차 도착 예정 시간</string>

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,14 @@
1010
<item name="android:textColorHint">@color/hint_text_color</item>
1111
</style>
1212

13+
<style name="Widget.App.Button.OutlinedButton.IconOnly" parent="Widget.MaterialComponents.Button.OutlinedButton">
14+
<item name="iconPadding">0dp</item>
15+
<item name="android:insetTop">0dp</item>
16+
<item name="android:insetBottom">0dp</item>
17+
<item name="android:paddingLeft">12dp</item>
18+
<item name="android:paddingRight">12dp</item>
19+
<item name="android:minWidth">48dp</item>
20+
<item name="android:minHeight">48dp</item>
21+
</style>
22+
1323
</resources>

0 commit comments

Comments
 (0)