From 849e11cc424f177aab3c5caaf49bd7c75c7f7da4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=BC=ED=98=81?= Date: Sun, 6 Sep 2026 17:17:12 +0900 Subject: [PATCH 1/5] =?UTF-8?q?fix:=20=EC=95=B1=20=EC=9E=AC=EC=8B=A4?= =?UTF-8?q?=ED=96=89=EA=B3=BC=20=EC=8B=A4=ED=8C=A8=C2=B7=EC=B7=A8=EC=86=8C?= =?UTF-8?q?=20=EB=92=A4=20=EC=95=8C=EB=9E=8C=20=EC=88=98=EB=AA=85=EC=9D=84?= =?UTF-8?q?=20=EB=B3=B4=EC=A1=B4=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs #200 Source: https://developer.android.com/develop/background-work/services/fgs/launch Source: https://developer.android.com/develop/ui/compose/notifications/notification-permission Source: https://developer.android.com/about/versions/15/behavior-changes-all#package-stopped-state --- .../com/example/slowclock/MainActivity.kt | 11 + .../core/alarm/AlarmNotifications.kt | 75 ++++++ .../slowclock/core/alarm/AlarmScheduler.kt | 103 +++++++-- .../core/alarm/ScheduleAlarmHelper.kt | 19 +- .../receiver/AlarmRestoreReceiver.kt | 26 ++- .../ui/alarm/AlarmFullScreenActivity.kt | 8 +- .../slowclock/ui/alarm/AlarmTriggerService.kt | 218 ++++++++++++------ core/alarm/src/main/res/values/strings.xml | 1 + .../core/alarm/AlarmNotificationsTest.kt | 88 +++++++ .../core/alarm/AlarmSchedulerSnoozeTest.kt | 69 +++++- .../core/alarm/AlarmSchedulerTest.kt | 7 +- .../ui/alarm/AlarmTriggerServiceTest.kt | 139 +++++++++++ .../ui/addschedule/AddScheduleContract.kt | 8 +- .../ui/addschedule/AddScheduleScreen.kt | 43 +++- .../ui/addschedule/AddScheduleViewModel.kt | 41 +++- .../src/main/res/values/strings.xml | 5 + .../addschedule/AddScheduleViewModelTest.kt | 46 ++++ .../example/slowclock/ui/main/MainContract.kt | 14 ++ .../example/slowclock/ui/main/MainScreen.kt | 58 +++++ .../slowclock/ui/main/MainViewModel.kt | 22 ++ feature/main/src/main/res/values/strings.xml | 6 + .../slowclock/ui/MainScreenshotTest.kt | 18 ++ .../slowclock/ui/main/MainViewModelTest.kt | 20 ++ 23 files changed, 915 insertions(+), 130 deletions(-) create mode 100644 core/alarm/src/main/java/com/example/slowclock/core/alarm/AlarmNotifications.kt create mode 100644 core/alarm/src/test/java/com/example/slowclock/core/alarm/AlarmNotificationsTest.kt create mode 100644 core/alarm/src/test/java/com/example/slowclock/ui/alarm/AlarmTriggerServiceTest.kt create mode 100644 feature/addschedule/src/main/res/values/strings.xml create mode 100644 feature/main/src/main/res/values/strings.xml diff --git a/app/src/main/java/com/example/slowclock/MainActivity.kt b/app/src/main/java/com/example/slowclock/MainActivity.kt index d3944e7b..b3ec958c 100644 --- a/app/src/main/java/com/example/slowclock/MainActivity.kt +++ b/app/src/main/java/com/example/slowclock/MainActivity.kt @@ -19,6 +19,7 @@ import androidx.core.content.edit import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.lifecycleScope import com.example.slowclock.auth.AuthManager +import com.example.slowclock.core.alarm.AlarmScheduler import com.example.slowclock.data.model.ThemeMode import com.example.slowclock.data.remote.repository.AuthRepository import com.example.slowclock.data.remote.repository.ScheduleRepository @@ -29,6 +30,7 @@ import com.example.slowclock.navigation.AppNavigation import com.example.slowclock.ui.theme.SlowClockTheme import com.firebase.ui.auth.AuthUI import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import javax.inject.Inject @@ -51,6 +53,9 @@ class MainActivity : ComponentActivity() { @Inject lateinit var signOutUseCase: SignOutUseCase + @Inject + lateinit var alarmScheduler: AlarmScheduler + private fun handleNewInstallation() { val prefs = getSharedPreferences("app_state", MODE_PRIVATE) val isAppEverLaunched = prefs.getBoolean("app_launched", false) @@ -74,6 +79,12 @@ class MainActivity : ComponentActivity() { Log.d("MAIN", "onCreate 시작") handleNewInstallation() + // API 32–34에서는 강제 종료 해제 시 BOOT_COMPLETED가 오지 않는다. + // 설치 정리 이후, 네트워크와 독립적으로 프로세스당 한 번만 복원한다. + lifecycleScope.launch(Dispatchers.IO) { + runCatching { alarmScheduler.restoreOnAppStart() } + .onFailure { Log.e("ALARM", "앱 시작 알람 복원 실패", it) } + } try { // AuthManager 초기화 diff --git a/core/alarm/src/main/java/com/example/slowclock/core/alarm/AlarmNotifications.kt b/core/alarm/src/main/java/com/example/slowclock/core/alarm/AlarmNotifications.kt new file mode 100644 index 00000000..3a75a1eb --- /dev/null +++ b/core/alarm/src/main/java/com/example/slowclock/core/alarm/AlarmNotifications.kt @@ -0,0 +1,75 @@ +package com.example.slowclock.core.alarm + +import android.app.NotificationManager +import android.content.Context +import android.content.Intent +import com.example.slowclock.ui.alarm.AlarmTriggerService + +/** OS에 남아 있는 알림이 조작 권한의 수명이다. 취소된 알림의 늦은 버튼은 받지 않는다. */ +internal object AlarmNotifications { + const val EXTRA_TOKEN = "alarmCommandToken" + const val EXTRA_SCHEDULE = "alarmCommandSchedule" + const val RINGING_ID = 123 + const val CHANNEL_ID = "alarm_ringing_v2" + + private val revokedTokens = + java.util.concurrent.ConcurrentHashMap + .newKeySet() + + fun canShowControls(context: Context): Boolean { + val manager = manager(context) + if (!manager.areNotificationsEnabled()) return false + return manager.getNotificationChannel(CHANNEL_ID)?.importance != NotificationManager.IMPORTANCE_NONE + } + + fun isUsableToken(token: String): Boolean = token !in revokedTokens + + fun isCurrent( + context: Context, + notificationId: Int, + token: String?, + ): Boolean = + !token.isNullOrBlank() && isUsableToken(token) && + manager(context).activeNotifications.any { + it.id == notificationId && it.notification.extras.getString(EXTRA_TOKEN) == token + } + + fun revoke(token: String) { + revokedTokens.add(token) + } + + fun invalidate( + context: Context, + scheduleId: String, + ) = removeMatching(context) { it == scheduleId } + + fun retainSchedules( + context: Context, + scheduleIds: Set, + ) = removeMatching(context) { it !in scheduleIds } + + fun clear(context: Context) = removeMatching(context) { true } + + private fun removeMatching( + context: Context, + predicate: (String) -> Boolean, + ) { + val manager = manager(context) + manager.activeNotifications.forEach { active -> + val scheduleId = active.notification.extras.getString(EXTRA_SCHEDULE) ?: return@forEach + if (!predicate(scheduleId)) return@forEach + active.notification.extras + .getString(EXTRA_TOKEN) + ?.let(revokedTokens::add) + manager.cancel(active.tag, active.id) + active.notification.actions?.forEach { it.actionIntent?.cancel() } + active.notification.contentIntent?.cancel() + active.notification.fullScreenIntent?.cancel() + if (active.id == RINGING_ID) { + context.stopService(Intent(context, AlarmTriggerService::class.java)) + } + } + } + + private fun manager(context: Context) = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager +} diff --git a/core/alarm/src/main/java/com/example/slowclock/core/alarm/AlarmScheduler.kt b/core/alarm/src/main/java/com/example/slowclock/core/alarm/AlarmScheduler.kt index d1c13be9..3e542b90 100644 --- a/core/alarm/src/main/java/com/example/slowclock/core/alarm/AlarmScheduler.kt +++ b/core/alarm/src/main/java/com/example/slowclock/core/alarm/AlarmScheduler.kt @@ -30,6 +30,16 @@ class AlarmScheduler private val scheduledAlarms: ScheduledAlarmRepository, private val snoozedAlarms: SnoozedAlarmRepository, ) { + private var restoredForAppStart = false + + /** 프로세스 첫 앱 진입에서만 복원한다. 회전·재진입은 현재 미룸을 건드리지 않는다. */ + @Synchronized + fun restoreOnAppStart() { + if (restoredForAppStart) return + restoreAll() + restoredForAppStart = true + } + /** * 일정의 다음 회차 알람을 건다. * @@ -37,11 +47,15 @@ class AlarmScheduler * 것이 사라져도(재부팅·강제 종료) 지금 시각에서 다시 세면 그만이기 때문이다. 다음 회차는 * 알람이 울릴 때 [AlarmReceiver] 가 이어서 건다(#130). */ + @Synchronized fun schedule(schedule: Schedule) { + AlarmNotifications.invalidate(context, schedule.id) book(schedule.toRecord(), System.currentTimeMillis()) } + @Synchronized fun cancel(schedule: Schedule) { + AlarmNotifications.invalidate(context, schedule.id) ScheduleAlarmHelper.cancelAlarm(context, schedule) scheduledAlarms.remove(schedule.id) forgetSnoozesOf(schedule.id) @@ -57,12 +71,14 @@ class AlarmScheduler * 내용이 그대로인 일정은 걸린 회차를 지킨다. 앱을 열 때마다 다시 걸면 방금 미뤄 둔 * 알람이 그때마다 사라진다. */ + @Synchronized fun syncWith(schedules: List) { val nowMillis = System.currentTimeMillis() val incoming = schedules.associateBy { it.id } val booked = scheduledAlarms.all() // 서버에서 사라진 일정의 알람은 지운다. 다른 기기에서 지운 일정이 이 기기에서만 // 계속 울리는 것도 이 자리에서 함께 막힌다. + AlarmNotifications.retainSchedules(context, incoming.keys) booked.filterNot { incoming.containsKey(it.id) }.forEach { stale -> ScheduleAlarmHelper.cancelAlarm(context, stale.toSchedule()) scheduledAlarms.remove(stale.id) @@ -75,14 +91,22 @@ class AlarmScheduler snoozedAlarms.remove(stale.baseRequestCode) } val bookedById = booked.associateBy { it.id } + var failure: Exception? = null incoming.values.forEach { schedule -> val fresh = schedule.toRecord() val existing = bookedById[schedule.id] // 장부에도 없고 걸 것도 남지 않은 일정은 손댈 것이 없다. 지난 일정을 앱을 열 // 때마다 훑어 취소하지 않는다. if (existing == null && !fresh.isLive(nowMillis)) return@forEach - book(if (existing != null && existing.sameContentAs(fresh)) existing else fresh, nowMillis) + val same = existing != null && existing.sameContentAs(fresh) + if (!same) AlarmNotifications.invalidate(context, schedule.id) + try { + book(if (same) existing else fresh, nowMillis) + } catch (error: Exception) { + failure = error + } } + failure?.let { throw it } } /** @@ -91,6 +115,7 @@ class AlarmScheduler * 다시 알림은 AlarmManager 에만 걸려 있어 재부팅과 앱 교체로 사라진다. 미룬 사람은 5분 * 뒤 울릴 것이라고 믿고 있고, 그 믿음이 이 기능의 전부다(#177). */ + @Synchronized fun snooze( baseRequestCode: Int, scheduleId: String, @@ -123,7 +148,30 @@ class AlarmScheduler ) } + /** 알림 확인과 예약·취소는 같은 잠금 안에서 이뤄져 늦은 조작이 취소를 되돌리지 않는다. */ + @Synchronized + fun snoozeFromNotification( + baseRequestCode: Int, + scheduleId: String, + title: String, + desc: String, + isFullScreen: Boolean, + snoozeCount: Int, + notificationId: Int, + token: String, + ): Boolean { + if (snoozeCount !in 1..SnoozePolicy.MAX_COUNT || + !AlarmNotifications.isCurrent(context, notificationId, token) + ) { + return false + } + snooze(baseRequestCode, scheduleId, title, desc, isFullScreen, snoozeCount) + AlarmNotifications.revoke(token) + return true + } + /** 미뤄 둔 알람이 울렸다. 기록을 지운다. 남기면 다음 부팅에 한 번 더 울린다. */ + @Synchronized fun snoozeFired(baseRequestCode: Int) { snoozedAlarms.remove(baseRequestCode) } @@ -139,6 +187,7 @@ class AlarmScheduler * 하지 않는다. 알람을 다시 거는 일은 그 일정의 자리를 먼저 비우므로, 앞당겨 걸면 아직 * 안 울린 종료 알람이 지워진다(#163). */ + @Synchronized fun scheduleNextOccurrence(scheduleId: String) { val record = scheduledAlarms.all().firstOrNull { it.id == scheduleId } ?: return book(record, System.currentTimeMillis()) @@ -167,8 +216,11 @@ class AlarmScheduler } if (occurrence == record.bookedStartMillis) return - ScheduleAlarmHelper.scheduleAlarm(context, record.toSchedule(occurrence)) + // 원하는 회차는 먼저 남기되 성공 표시는 OS 예약이 모두 끝난 뒤에만 쓴다. + // 부분 실패도 null로 남아 다음 복원·동기화에서 다시 시도된다. + scheduledAlarms.save(record.copy(bookedStartMillis = null)) if (!preserveSnoozes) forgetSnoozesOf(record.id) + ScheduleAlarmHelper.scheduleAlarm(context, record.toSchedule(occurrence)) scheduledAlarms.save(record.copy(bookedStartMillis = occurrence)) } @@ -177,7 +229,9 @@ class AlarmScheduler * 알람은 근거를 잃는다. 지우지 않으면 계정을 지운 뒤에도 알람이 울리고 재부팅 뒤에도 * 되살아난다(#127). */ + @Synchronized fun cancelAll() { + AlarmNotifications.clear(context) scheduledAlarms.all().forEach { ScheduleAlarmHelper.cancelAlarm(context, it.toSchedule()) } scheduledAlarms.clear() // 마지막 회차가 울리면 일정 장부는 먼저 비워진다. 그 뒤 미룬 알람은 미룸 장부에만 @@ -203,13 +257,23 @@ class AlarmScheduler * 이미 지난 알람은 다시 걸지 않고 장부에서 지운다. 세 시간 전 일정이 부팅하자마자 울리는 * 것은 도움이 아니라 오작동이다. */ + @Synchronized fun restoreAll() { val nowMillis = System.currentTimeMillis() + var failure: Exception? = null scheduledAlarms.all().forEach { record -> - // 재부팅으로 걸린 것이 전부 사라졌으므로, 지키던 회차라도 다시 걸어야 한다. - book(record.copy(bookedStartMillis = null), nowMillis, preserveSnoozes = true) + try { + book(record.copy(bookedStartMillis = null), nowMillis, preserveSnoozes = true) + } catch (error: Exception) { + failure = error + } + } + try { + restoreSnoozes(nowMillis) + } catch (error: Exception) { + failure = error } - restoreSnoozes(nowMillis) + failure?.let { throw it } } /** @@ -219,23 +283,29 @@ class AlarmScheduler * 일정 알람 쪽 취소가 지운다(#177). */ private fun restoreSnoozes(nowMillis: Long) { + var failure: Exception? = null snoozedAlarms.all().forEach { snoozed -> if (snoozed.triggerAtMillis <= nowMillis) { // 부팅하자마자 지난 알람이 울리는 것은 도움이 아니라 오작동이다. snoozedAlarms.remove(snoozed.baseRequestCode) return@forEach } - ScheduleAlarmHelper.scheduleSnooze( - context = context, - baseRequestCode = snoozed.baseRequestCode, - scheduleId = snoozed.scheduleId, - title = snoozed.title, - desc = snoozed.description, - isFullScreen = snoozed.isFullScreen, - snoozeCount = snoozed.snoozeCount, - triggerTime = snoozed.triggerAtMillis, - ) + try { + ScheduleAlarmHelper.scheduleSnooze( + context = context, + baseRequestCode = snoozed.baseRequestCode, + scheduleId = snoozed.scheduleId, + title = snoozed.title, + desc = snoozed.description, + isFullScreen = snoozed.isFullScreen, + snoozeCount = snoozed.snoozeCount, + triggerTime = snoozed.triggerAtMillis, + ) + } catch (error: Exception) { + failure = error + } } + failure?.let { throw it } } /** @@ -256,6 +326,9 @@ class AlarmScheduler */ fun canUseFullScreenAlarm(): Boolean = context.canUseFullScreenAlarm() + /** 알림을 거부하거나 알람 채널을 끄면 제어할 수 없는 울림을 시작하지 않는다. */ + fun canShowAlarmControls(): Boolean = AlarmNotifications.canShowControls(context) + private fun Schedule.toRecord() = ScheduledAlarm( id = id, diff --git a/core/alarm/src/main/java/com/example/slowclock/core/alarm/ScheduleAlarmHelper.kt b/core/alarm/src/main/java/com/example/slowclock/core/alarm/ScheduleAlarmHelper.kt index bead1bd9..4681f9db 100644 --- a/core/alarm/src/main/java/com/example/slowclock/core/alarm/ScheduleAlarmHelper.kt +++ b/core/alarm/src/main/java/com/example/slowclock/core/alarm/ScheduleAlarmHelper.kt @@ -84,10 +84,19 @@ internal object ScheduleAlarmHelper { Log.w(TAG, "정시 알람 권한이 없어 부정확 알람으로 겁니다.") } - scheduleOne(context, alarmManager, schedule, AlarmKind.START, schedule.startTime.toDate().time, now, isFullScreen) - schedule.endTime?.let { end -> - scheduleOne(context, alarmManager, schedule, AlarmKind.END, end.toDate().time, now, isFullScreen) - } + val start = + runCatching { + scheduleOne(context, alarmManager, schedule, AlarmKind.START, schedule.startTime.toDate().time, now, isFullScreen) + } + val end = + runCatching { + schedule.endTime?.let { end -> + scheduleOne(context, alarmManager, schedule, AlarmKind.END, end.toDate().time, now, isFullScreen) + } + } + // 한쪽이 실패해도 다른 알람은 시도한다. 실패를 삼키면 호출자가 성공 장부를 남긴다. + start.exceptionOrNull()?.let { throw it } + end.exceptionOrNull()?.let { throw it } } /** @@ -157,6 +166,7 @@ internal object ScheduleAlarmHelper { Log.d(TAG, "${kind.label} 알람 예약: ${schedule.title} at ${Date(triggerTime)} (requestCode=${slot.requestCode})") } catch (e: Exception) { Log.e(TAG, "${kind.label} 알람 예약 실패: ${e.message}") + throw e } } @@ -233,6 +243,7 @@ internal object ScheduleAlarmHelper { Log.d(TAG, "다시 알림 예약: $title at ${Date(triggerTime)} (자리=$baseRequestCode, 횟수=$snoozeCount)") } catch (e: Exception) { Log.e(TAG, "다시 알림 예약 실패: ${e.message}") + throw e } } diff --git a/core/alarm/src/main/java/com/example/slowclock/receiver/AlarmRestoreReceiver.kt b/core/alarm/src/main/java/com/example/slowclock/receiver/AlarmRestoreReceiver.kt index 806144eb..81572c5c 100644 --- a/core/alarm/src/main/java/com/example/slowclock/receiver/AlarmRestoreReceiver.kt +++ b/core/alarm/src/main/java/com/example/slowclock/receiver/AlarmRestoreReceiver.kt @@ -5,6 +5,7 @@ import android.content.Context import android.content.Intent import android.util.Log import com.example.slowclock.core.alarm.AlarmSchedulerEntryPoint +import java.util.concurrent.Executors /** * 걸어 둔 알람을 다시 거는 자리. @@ -20,18 +21,16 @@ import com.example.slowclock.core.alarm.AlarmSchedulerEntryPoint * - `TIME_SET`(상수 이름은 `ACTION_TIME_CHANGED`): 부팅 직후 시계가 아직 네트워크 시각과 맞지 * 않을 수 있다. 그 상태에서 「지났다」 로 걸러 버린 알람을, 시각이 교정된 뒤 되살린다. * - * `TIMEZONE_CHANGED` 는 받지 않는다. `Schedule.startTime` 은 Firebase `Timestamp`, 곧 절대 - * 시각이고 알람 경로는 그 epoch 밀리초를 그대로 AlarmManager 에 넘긴다. 시간대를 읽는 코드가 - * 한 줄도 없어 다시 계산할 것이 없다. 등록해 두면 뒤에 읽는 사람이 「시각이 현지시각이구나」 로 - * 오해한다. + * `TIMEZONE_CHANGED`는 받지 않는다. 반복 계산은 기기 시간대를 사용하지만 저장 모델은 + * epoch뿐이다. 방송을 추가하는 것만으로 원래 선택한 현지 시각을 보존할 수 없으므로 + * 시간대 정책과 모델을 함께 정하기 전에는 기존 동작을 유지한다. * * 의존성을 `@AndroidEntryPoint` + 필드 주입이 아니라 [AlarmSchedulerEntryPoint] 로 받는다. Kotlin 은 * `BroadcastReceiver.onReceive` 가 추상이라 Hilt 가 요구하는 `super.onReceive` 를 부를 수 없고, * 그 호출을 빼면 주입이 되는지 여부가 부팅 때만 드러난다. 여기서는 받는 자리를 눈으로 볼 수 있게 둔다. * - * `goAsync` 를 쓰지 않는다. 이 경로에는 네트워크도 Firestore 도 없어 동기로 끝난다. `goAsync` - * 를 써도 10초 제한은 그대로이고 `finish()` 를 빠뜨릴 자리만 는다. 그래서 이 수신기에 suspend - * 호출을 들이지 않는 것이 이 파일의 계약이다. + * 장부 읽기와 OS 예약은 goAsync 작업에서 수행해 메인 스레드를 막지 않는다. + * 방송 완료 제한은 여전히 적용되며 finally에서 반드시 finish한다. */ class AlarmRestoreReceiver : BroadcastReceiver() { override fun onReceive( @@ -48,13 +47,20 @@ class AlarmRestoreReceiver : BroadcastReceiver() { } Log.d(TAG, "알람 복원: ${intent.action}") - runCatching { AlarmSchedulerEntryPoint.from(context).restoreAll() }.onFailure { - // 복원에 실패해도 부팅 방송을 물고 죽지 않는다. 앱을 열면 그때 다시 걸린다. - Log.e(TAG, "알람 복원 실패", it) + val pending = goAsync() + executor.execute { + try { + AlarmSchedulerEntryPoint.from(context).restoreAll() + } catch (error: Exception) { + Log.e(TAG, "알람 복원 실패", error) + } finally { + pending.finish() + } } } private companion object { const val TAG = "AlarmRestoreReceiver" + val executor = Executors.newSingleThreadExecutor() } } diff --git a/core/alarm/src/main/java/com/example/slowclock/ui/alarm/AlarmFullScreenActivity.kt b/core/alarm/src/main/java/com/example/slowclock/ui/alarm/AlarmFullScreenActivity.kt index 241f5877..56216c74 100644 --- a/core/alarm/src/main/java/com/example/slowclock/ui/alarm/AlarmFullScreenActivity.kt +++ b/core/alarm/src/main/java/com/example/slowclock/ui/alarm/AlarmFullScreenActivity.kt @@ -16,6 +16,7 @@ import android.widget.TextView import android.window.OnBackInvokedCallback import android.window.OnBackInvokedDispatcher import androidx.core.content.ContextCompat +import com.example.slowclock.core.alarm.AlarmNotifications import com.example.slowclock.core.alarm.R import com.example.slowclock.core.alarm.SnoozePolicy import java.text.SimpleDateFormat @@ -126,8 +127,9 @@ class AlarmFullScreenActivity : Activity() { snoozeButton.text = getString(R.string.alarm_snooze_action, SnoozePolicy.MINUTES) snoozeButton.visibility = View.VISIBLE snoozeButton.setOnClickListener { - startService(AlarmTriggerService.snoozeIntent(this, ringingRequestCode())) - finish() + startService( + AlarmTriggerService.snoozeIntent(this, ringingRequestCode(), intent.getStringExtra(AlarmNotifications.EXTRA_TOKEN)), + ) } } else { // 다 쓴 뒤 눌리지 않는 버튼을 남기면 #129 가 그대로 되풀이된다. 아예 감춘다. @@ -145,7 +147,7 @@ class AlarmFullScreenActivity : Activity() { /** 소리와 진동은 서비스가 낸다. 여기서는 끄라고만 알린다(#122). */ private fun dismissAlarm() { - startService(AlarmTriggerService.dismissIntent(this, ringingRequestCode())) + startService(AlarmTriggerService.dismissIntent(this, ringingRequestCode(), intent.getStringExtra(AlarmNotifications.EXTRA_TOKEN))) } /** 화면이 안 보이면 시계를 멈춘다. 보이지 않는 화면을 1초마다 다시 그릴 이유가 없다(#131). */ diff --git a/core/alarm/src/main/java/com/example/slowclock/ui/alarm/AlarmTriggerService.kt b/core/alarm/src/main/java/com/example/slowclock/ui/alarm/AlarmTriggerService.kt index a974b8cd..0c9f6956 100644 --- a/core/alarm/src/main/java/com/example/slowclock/ui/alarm/AlarmTriggerService.kt +++ b/core/alarm/src/main/java/com/example/slowclock/ui/alarm/AlarmTriggerService.kt @@ -13,6 +13,7 @@ import android.media.AudioManager import android.media.MediaPlayer import android.media.RingtoneManager import android.os.Build +import android.os.Bundle import android.os.Handler import android.os.IBinder import android.os.Looper @@ -23,11 +24,13 @@ import android.os.VibratorManager import android.util.Log import androidx.core.app.NotificationCompat import androidx.core.app.ServiceCompat +import com.example.slowclock.core.alarm.AlarmNotifications import com.example.slowclock.core.alarm.AlarmSchedulerEntryPoint import com.example.slowclock.core.alarm.R import com.example.slowclock.core.alarm.ScheduleAlarmHelper import com.example.slowclock.core.alarm.SnoozePolicy import com.example.slowclock.core.alarm.canUseFullScreenAlarm +import java.util.UUID /** * 알람을 실제로 울리는 서비스. @@ -62,12 +65,12 @@ class AlarmTriggerService : Service() { const val EXTRA_SNOOZE_COUNT = "snoozeCount" private const val TAG = "AlarmTriggerService" - private const val NOTIFICATION_ID = 123 + private const val NOTIFICATION_ID = AlarmNotifications.RINGING_ID // 채널은 한 번 만들면 앱이 소리·중요도를 다시 못 바꾼다. 종전 채널은 오디오 속성이 없어 // 알람이 아니라 알림 소리로 취급됐고, 그 채널이 남은 기기에서는 코드를 고쳐도 그대로다. // 그래서 새 id 를 쓴다(#122). - private const val CHANNEL_ID = "alarm_ringing_v2" + private const val CHANNEL_ID = AlarmNotifications.CHANNEL_ID /** 겹친 알람을 옮겨 두는 채널. 울리지 않고 「이 일정이 지나갔다」 만 보여 준다(#131). */ private const val MISSED_CHANNEL_ID = "alarm_overlapped_v1" @@ -119,11 +122,13 @@ class AlarmTriggerService : Service() { fun dismissIntent( context: Context, requestCode: Int, + token: String? = null, ): Intent = Intent(context, AlarmTriggerService::class.java) .setClass(context, AlarmTriggerService::class.java) .setAction(ACTION_DISMISS) .putExtra(EXTRA_REQUEST_CODE, requestCode) + .putExtra(AlarmNotifications.EXTRA_TOKEN, token) /** * 서비스가 알람 울리기를 끝냈다. 전체 화면이 떠 있으면 이 방송을 받아 함께 닫는다. @@ -136,11 +141,13 @@ class AlarmTriggerService : Service() { fun snoozeIntent( context: Context, requestCode: Int, + token: String? = null, ): Intent = Intent(context, AlarmTriggerService::class.java) .setClass(context, AlarmTriggerService::class.java) .setAction(ACTION_SNOOZE) .putExtra(EXTRA_REQUEST_CODE, requestCode) + .putExtra(AlarmNotifications.EXTRA_TOKEN, token) } /** @@ -149,13 +156,14 @@ class AlarmTriggerService : Service() { * 알림의 다시 알림 버튼은 서비스로 action 만 보낸다. 무엇을 미룰지는 서비스가 이미 알고 * 있으므로 PendingIntent 에 일정 정보를 싣지 않는다. */ - private data class Ringing( + internal data class Ringing( val title: String, val desc: String, val isFullScreen: Boolean, val scheduleId: String, val requestCode: Int, val snoozeCount: Int, + val token: String = UUID.randomUUID().toString(), ) private var ringing: Ringing? = null @@ -177,16 +185,30 @@ class AlarmTriggerService : Service() { ): Int { if (intent?.action == ACTION_DISMISS) { if (isForCurrentRinging(intent)) stopRinging("사용자가 껐다") + if (ringing == null) stopSelf(startId) return START_NOT_STICKY } if (intent?.action == ACTION_SNOOZE) { if (isForCurrentRinging(intent)) snoozeRinging() + if (ringing == null) stopSelf(startId) return START_NOT_STICKY } if (intent?.action == ACTION_SNOOZE_MISSED) { snoozeMissed(intent) + if (ringing == null) stopSelf(startId) + return START_NOT_STICKY + } + + if (intent?.action != ACTION_RING) { + if (ringing == null) stopSelf(startId) + return START_NOT_STICKY + } + // 알림을 거부하면 FGS 승격은 가능하지만 끄기 버튼은 보이지 않는다. + // 사용자가 제어할 수 없는 소리·진동은 시작하지 않는다. + if (!AlarmNotifications.canShowControls(this)) { + stopRinging("알림 조작을 표시할 수 없다") return START_NOT_STICKY } @@ -196,23 +218,28 @@ class AlarmTriggerService : Service() { val current = Ringing( - title = intent?.getStringExtra(EXTRA_TITLE) ?: "알람", - desc = intent?.getStringExtra(EXTRA_DESC).orEmpty(), - isFullScreen = intent?.getBooleanExtra(EXTRA_FULL_SCREEN, true) ?: true, - scheduleId = intent?.getStringExtra(EXTRA_SCHEDULE_ID).orEmpty(), - requestCode = intent?.getIntExtra(EXTRA_REQUEST_CODE, 0) ?: 0, - snoozeCount = intent?.getIntExtra(EXTRA_SNOOZE_COUNT, 0) ?: 0, + title = intent.getStringExtra(EXTRA_TITLE) ?: "알람", + desc = intent.getStringExtra(EXTRA_DESC).orEmpty(), + isFullScreen = intent.getBooleanExtra(EXTRA_FULL_SCREEN, true), + scheduleId = intent.getStringExtra(EXTRA_SCHEDULE_ID).orEmpty(), + requestCode = intent.getIntExtra(EXTRA_REQUEST_CODE, 0), + snoozeCount = intent.getIntExtra(EXTRA_SNOOZE_COUNT, 0), ) ringing = current Log.d(TAG, "알람 울림 시작: ${current.title} (미룬 횟수 ${current.snoozeCount})") // 포그라운드로 먼저 올린다. 알림을 띄우기 전에 소리를 내면 시스템이 서비스를 죽일 수 있다. - startForegroundCompat(buildNotification(current)) - - acquireWakeLock() - startSound() - startVibration() + try { + startForegroundCompat(buildNotification(current)) + acquireWakeLock() + startSound() + startVibration() + } catch (error: Exception) { + Log.e(TAG, "알람을 시작하지 못했다", error) + stopRinging("알람 시작 실패") + return START_NOT_STICKY + } stopHandler.removeCallbacks(stopRunnable) stopHandler.postDelayed(stopRunnable, MAX_RINGING_MILLIS) @@ -239,6 +266,8 @@ class AlarmTriggerService : Service() { .setCategory(NotificationCompat.CATEGORY_ALARM) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) .setAutoCancel(true) + .addExtras(commandExtras(previous)) + .setContentIntent(openAppIntent()) // 밀려난 알람에도 다시 알림을 남긴다. 없으면 그 일정만 다시 울릴 기회가 아예 없어, // 겹친 순간에 뒤에 온 알람이 앞의 것을 통째로 삼킨 셈이 된다(#167). @@ -277,6 +306,7 @@ class AlarmTriggerService : Service() { .putExtra(EXTRA_SCHEDULE_ID, missed.scheduleId) .putExtra(EXTRA_REQUEST_CODE, missed.requestCode) .putExtra(EXTRA_SNOOZE_COUNT, missed.snoozeCount) + .putExtra(AlarmNotifications.EXTRA_TOKEN, missed.token) private fun startForegroundCompat(notification: Notification) { // 알람이 울리는 동안 소리를 재생하므로 미디어 재생 타입이다. 종전의 shortService 는 @@ -297,7 +327,7 @@ class AlarmTriggerService : Service() { PendingIntent.getService( this, 0, - dismissIntent(this, current.requestCode), + dismissIntent(this, current.requestCode, current.token), PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE, ) @@ -310,6 +340,7 @@ class AlarmTriggerService : Service() { .setPriority(NotificationCompat.PRIORITY_MAX) .setCategory(NotificationCompat.CATEGORY_ALARM) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) + .addExtras(commandExtras(current)) .setOngoing(true) .setAutoCancel(false) // 포그라운드 서비스 알림은 기본적으로 표시가 최대 10초 미뤄진다. 알람에서는 @@ -331,7 +362,7 @@ class AlarmTriggerService : Service() { PendingIntent.getService( this, 2, - snoozeIntent(this, current.requestCode), + snoozeIntent(this, current.requestCode, current.token), PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE, ), ) @@ -349,6 +380,7 @@ class AlarmTriggerService : Service() { .putExtra(EXTRA_SNOOZE_COUNT, current.snoozeCount) // 화면이 되돌려 줄 신원. 겹친 알람에서 조작 대상이 어긋나지 않게 한다(#167). .putExtra(EXTRA_REQUEST_CODE, current.requestCode) + .putExtra(AlarmNotifications.EXTRA_TOKEN, current.token) builder.setFullScreenIntent( PendingIntent.getActivity( this, @@ -379,23 +411,32 @@ class AlarmTriggerService : Service() { ?: RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION) ?: return try { - mediaPlayer = - MediaPlayer().apply { - // 알람 스트림으로 재생한다. 이것을 지정하지 않으면 미디어 볼륨을 타서 - // 미디어 소리를 줄여 둔 기기에서는 울려도 들리지 않는다(#122). - setAudioAttributes( - AudioAttributes - .Builder() - .setUsage(AudioAttributes.USAGE_ALARM) - .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) - .build(), - ) - setDataSource(this@AlarmTriggerService, uri) - isLooping = true - prepare() - start() + val player = MediaPlayer() + mediaPlayer = player + player.apply { + // 알람 스트림으로 재생한다. 이것을 지정하지 않으면 미디어 볼륨을 타서 + // 미디어 소리를 줄여 둔 기기에서는 울려도 들리지 않는다(#122). + setAudioAttributes( + AudioAttributes + .Builder() + .setUsage(AudioAttributes.USAGE_ALARM) + .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) + .build(), + ) + setDataSource(this@AlarmTriggerService, uri) + isLooping = true + setOnPreparedListener { ready -> + if (mediaPlayer === ready && ringing != null) ready.start() else ready.release() + } + setOnErrorListener { failed, _, _ -> + if (mediaPlayer === failed) mediaPlayer = null + failed.release() + true } + prepareAsync() + } } catch (e: Exception) { + stopSound() Log.e(TAG, "알람 소리 재생 실패: ${e.message}") } } @@ -447,13 +488,16 @@ class AlarmTriggerService : Service() { * 없는 요청을 그대로 받으면, 사용자가 화면에서 본 일정이 아니라 마지막에 도착한 알람이 * 미뤄지거나 꺼진다(#167). * - * 자리 번호가 없는 옛 알림에서 온 요청은 지금 울리는 것에 대한 것으로 본다. 그러지 않으면 - * 그 버튼이 아무 일도 하지 않는 버튼이 된다. + * 회차 토큰이 없는 옛 요청은 현재 알람을 조작하지 못한다. */ private fun isForCurrentRinging(intent: Intent): Boolean { val current = ringing ?: return false val requested = intent.getIntExtra(EXTRA_REQUEST_CODE, UNKNOWN_REQUEST_CODE) - if (requested == UNKNOWN_REQUEST_CODE || requested == current.requestCode) return true + val token = intent.getStringExtra(AlarmNotifications.EXTRA_TOKEN) + if (requested == current.requestCode && token == current.token && AlarmNotifications.isUsableToken(token)) { + // 스와이프의 deleteIntent는 OS가 알림을 지운 뒤 도착한다. 끄기는 토큰만 확인한다. + if (intent.action == ACTION_DISMISS || AlarmNotifications.isCurrent(this, NOTIFICATION_ID, token)) return true + } Log.w(TAG, "지금 울리는 알람이 아니라 무시한다: 요청=$requested 현재=${current.requestCode}") return false } @@ -468,16 +512,29 @@ class AlarmTriggerService : Service() { val snoozeCount = intent.getIntExtra(EXTRA_SNOOZE_COUNT, 0) if (!SnoozePolicy.canSnooze(snoozeCount)) return val requestCode = intent.getIntExtra(EXTRA_REQUEST_CODE, 0) - snoozeThrough( - baseRequestCode = requestCode, - scheduleId = intent.getStringExtra(EXTRA_SCHEDULE_ID).orEmpty(), - title = intent.getStringExtra(EXTRA_TITLE) ?: "알람", - desc = intent.getStringExtra(EXTRA_DESC).orEmpty(), - isFullScreen = intent.getBooleanExtra(EXTRA_FULL_SCREEN, true), - snoozeCount = snoozeCount + 1, - ) - val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager - runCatching { manager.cancel(MISSED_NOTIFICATION_ID_BASE + requestCode) } + if (!AlarmNotifications.isCurrent( + this, + MISSED_NOTIFICATION_ID_BASE + requestCode, + intent.getStringExtra(AlarmNotifications.EXTRA_TOKEN), + ) + ) { + return + } + val scheduled = + snoozeThrough( + baseRequestCode = requestCode, + scheduleId = intent.getStringExtra(EXTRA_SCHEDULE_ID).orEmpty(), + title = intent.getStringExtra(EXTRA_TITLE) ?: "알람", + desc = intent.getStringExtra(EXTRA_DESC).orEmpty(), + isFullScreen = intent.getBooleanExtra(EXTRA_FULL_SCREEN, true), + snoozeCount = snoozeCount + 1, + notificationId = MISSED_NOTIFICATION_ID_BASE + requestCode, + token = intent.getStringExtra(AlarmNotifications.EXTRA_TOKEN).orEmpty(), + ) + if (scheduled) { + val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager + manager.cancel(MISSED_NOTIFICATION_ID_BASE + requestCode) + } } /** @@ -494,15 +551,18 @@ class AlarmTriggerService : Service() { stopRinging("다시 알림을 걸 수 없다") return } - snoozeThrough( - baseRequestCode = current.requestCode, - scheduleId = current.scheduleId, - title = current.title, - desc = current.desc, - isFullScreen = current.isFullScreen, - snoozeCount = current.snoozeCount + 1, - ) - stopRinging("다시 알림") + val scheduled = + snoozeThrough( + baseRequestCode = current.requestCode, + scheduleId = current.scheduleId, + title = current.title, + desc = current.desc, + isFullScreen = current.isFullScreen, + snoozeCount = current.snoozeCount + 1, + notificationId = NOTIFICATION_ID, + token = current.token, + ) + if (scheduled) stopRinging("다시 알림") } /** @@ -511,8 +571,7 @@ class AlarmTriggerService : Service() { * 여기서 [ScheduleAlarmHelper] 를 바로 부르면 예약만 되고 기기 안 장부에는 아무것도 남지 * 않는다. 그러면 재부팅이나 앱 교체로 미뤄 둔 알람이 조용히 사라진다(#177). * - * 스케줄러를 못 꺼내는 상황이라도 미루기 자체는 되어야 한다. 장부 없이라도 거는 것이 - * 아무 일도 일어나지 않는 버튼보다 낫다. + * 예약 실패 때 현재 울림을 유지한다. 성공을 확인하기 전에는 조작 알림도 지우지 않는다. */ private fun snoozeThrough( baseRequestCode: Int, @@ -521,33 +580,42 @@ class AlarmTriggerService : Service() { desc: String, isFullScreen: Boolean, snoozeCount: Int, - ) { - runCatching { - AlarmSchedulerEntryPoint.from(this).snooze( - baseRequestCode = baseRequestCode, - scheduleId = scheduleId, - title = title, - desc = desc, - isFullScreen = isFullScreen, - snoozeCount = snoozeCount, - ) - }.onFailure { failure -> - Log.e(TAG, "다시 알림을 장부에 남기지 못했다. 예약만 건다", failure) - ScheduleAlarmHelper.scheduleSnooze( - context = this, + notificationId: Int, + token: String, + ): Boolean = + try { + AlarmSchedulerEntryPoint.from(this).snoozeFromNotification( baseRequestCode = baseRequestCode, scheduleId = scheduleId, title = title, desc = desc, isFullScreen = isFullScreen, snoozeCount = snoozeCount, - triggerTime = SnoozePolicy.nextTriggerAt(System.currentTimeMillis()), + notificationId = notificationId, + token = token, ) + } catch (failure: Exception) { + Log.e(TAG, "다시 알림 예약 실패, 현재 알람을 유지한다", failure) + android.widget.Toast + .makeText(this, R.string.alarm_snooze_failed, android.widget.Toast.LENGTH_LONG) + .show() + false + } + + private fun commandExtras(current: Ringing) = + Bundle().apply { + putString(AlarmNotifications.EXTRA_TOKEN, current.token) + putString(AlarmNotifications.EXTRA_SCHEDULE, current.scheduleId) + } + + private fun openAppIntent(): PendingIntent? = + packageManager.getLaunchIntentForPackage(packageName)?.let { + PendingIntent.getActivity(this, 3, it, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE) } - } private fun stopRinging(reason: String) { Log.d(TAG, "알람 울림 종료: $reason") + ringing?.token?.let(AlarmNotifications::revoke) ringing = null stopHandler.removeCallbacks(stopRunnable) stopSound() @@ -562,11 +630,9 @@ class AlarmTriggerService : Service() { } private fun stopSound() { - mediaPlayer?.runCatching { - if (isPlaying) stop() - release() - } + val player = mediaPlayer mediaPlayer = null + player?.runCatching { release() } } private fun createChannel() { @@ -606,6 +672,8 @@ class AlarmTriggerService : Service() { stopSound() vibrator?.cancel() releaseWakeLock() + ringing = null + sendBroadcast(Intent(ACTION_RINGING_FINISHED).setPackage(packageName)) Log.d(TAG, "알람 서비스 종료") } diff --git a/core/alarm/src/main/res/values/strings.xml b/core/alarm/src/main/res/values/strings.xml index bdfedfe8..6c88a463 100644 --- a/core/alarm/src/main/res/values/strings.xml +++ b/core/alarm/src/main/res/values/strings.xml @@ -7,4 +7,5 @@ 다시 알림 (%1$d분) 알람 끄기 알람 + 다시 알림을 예약하지 못했습니다. 알람은 계속 울립니다. 다시 시도하거나 알람을 꺼 주세요. diff --git a/core/alarm/src/test/java/com/example/slowclock/core/alarm/AlarmNotificationsTest.kt b/core/alarm/src/test/java/com/example/slowclock/core/alarm/AlarmNotificationsTest.kt new file mode 100644 index 00000000..a6fd008d --- /dev/null +++ b/core/alarm/src/test/java/com/example/slowclock/core/alarm/AlarmNotificationsTest.kt @@ -0,0 +1,88 @@ +package com.example.slowclock.core.alarm + +import android.app.Notification +import android.app.NotificationChannel +import android.app.NotificationManager +import android.content.Context +import android.os.Bundle +import android.service.notification.StatusBarNotification +import io.mockk.every +import io.mockk.mockk +import io.mockk.verify +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Test +import java.util.UUID + +class AlarmNotificationsTest { + private val context = mockk(relaxed = true) + private val manager = mockk(relaxed = true) + + init { + every { context.getSystemService(Context.NOTIFICATION_SERVICE) } returns manager + } + + @Test + fun `앱 알림 거부와 알람 채널 차단은 모두 울림 조작 불가다`() { + every { manager.areNotificationsEnabled() } returns false + assertFalse(AlarmNotifications.canShowControls(context)) + every { manager.areNotificationsEnabled() } returns true + val channel = mockk() + every { manager.getNotificationChannel(AlarmNotifications.CHANNEL_ID) } returns channel + every { channel.importance } returns NotificationManager.IMPORTANCE_NONE + assertFalse(AlarmNotifications.canShowControls(context)) + every { channel.importance } returns NotificationManager.IMPORTANCE_HIGH + assertTrue(AlarmNotifications.canShowControls(context)) + } + + @Test + fun `취소가 OS 알림목록에 늦게 반영돼도 토큰은 즉시 무효다`() { + val token = UUID.randomUUID().toString() + every { manager.activeNotifications } returns arrayOf(notification("deleted", 1042, token)) + assertTrue(AlarmNotifications.isCurrent(context, 1042, token)) + + AlarmNotifications.invalidate(context, "deleted") + + // 비동기 cancel 완료 전처럼 activeNotifications가 여전히 옛 알림을 반환한다. + assertFalse(AlarmNotifications.isCurrent(context, 1042, token)) + verify { manager.cancel(null, 1042) } + } + + @Test + fun `같은 알림번호의 새로운 회차는 예전 토큰으로 조작할 수 없다`() { + every { manager.activeNotifications } returns arrayOf(notification("s1", 1042, "new")) + assertFalse(AlarmNotifications.isCurrent(context, 1042, "old")) + assertFalse(AlarmNotifications.isCurrent(context, 1043, "new")) + assertTrue(AlarmNotifications.isCurrent(context, 1042, "new")) + } + + @Test + fun `서버에서 지운 마지막 단발 일정의 겹침 알림도 무효화한다`() { + val removedToken = UUID.randomUUID().toString() + val retainedToken = UUID.randomUUID().toString() + every { manager.activeNotifications } returns + arrayOf( + notification("gone", 1042, removedToken), + notification("remaining", 1043, retainedToken), + ) + AlarmNotifications.retainSchedules(context, setOf("remaining")) + assertFalse(AlarmNotifications.isCurrent(context, 1042, removedToken)) + assertTrue(AlarmNotifications.isCurrent(context, 1043, retainedToken)) + } + + private fun notification( + scheduleId: String, + id: Int, + token: String, + ): StatusBarNotification { + val extras = mockk() + every { extras.getString(AlarmNotifications.EXTRA_TOKEN) } returns token + every { extras.getString(AlarmNotifications.EXTRA_SCHEDULE) } returns scheduleId + val notification = Notification().apply { this.extras = extras } + return mockk().also { + every { it.id } returns id + every { it.tag } returns null + every { it.notification } returns notification + } + } +} diff --git a/core/alarm/src/test/java/com/example/slowclock/core/alarm/AlarmSchedulerSnoozeTest.kt b/core/alarm/src/test/java/com/example/slowclock/core/alarm/AlarmSchedulerSnoozeTest.kt index 3a920d86..2a82e2e4 100644 --- a/core/alarm/src/test/java/com/example/slowclock/core/alarm/AlarmSchedulerSnoozeTest.kt +++ b/core/alarm/src/test/java/com/example/slowclock/core/alarm/AlarmSchedulerSnoozeTest.kt @@ -66,7 +66,10 @@ class AlarmSchedulerSnoozeTest { snoozed.remove(firstArg()) Unit } - mockkObject(ScheduleAlarmHelper) + mockkObject(ScheduleAlarmHelper, AlarmNotifications) + every { AlarmNotifications.invalidate(any(), any()) } returns Unit + every { AlarmNotifications.clear(any()) } returns Unit + every { AlarmNotifications.retainSchedules(any(), any()) } returns Unit every { ScheduleAlarmHelper.scheduleAlarm(context, any(), any()) } returns Unit every { ScheduleAlarmHelper.cancelAlarm(context, any()) } returns Unit every { ScheduleAlarmHelper.cancelSnooze(context, any()) } returns Unit @@ -75,7 +78,7 @@ class AlarmSchedulerSnoozeTest { @After fun tearDown() { - unmockkObject(ScheduleAlarmHelper) + unmockkObject(ScheduleAlarmHelper, AlarmNotifications) } @Test @@ -149,6 +152,68 @@ class AlarmSchedulerSnoozeTest { verify(exactly = 1) { ScheduleAlarmHelper.cancelSnooze(context, snooze.baseRequestCode) } } + @Test + fun `OS 예약 실패는 성공 장부로 남지 않고 다음 앱 복원이 같은 회차를 재시도한다`() { + val future = record.copy(startMillis = now + 3_600_000, bookedStartMillis = null) + scheduled.clear() + every { ScheduleAlarmHelper.scheduleAlarm(context, any(), any()) } throws IllegalStateException("quota") + + org.junit.Assert.assertThrows(IllegalStateException::class.java) { scheduler.schedule(scheduleOf(future)) } + assertEquals(future, scheduled[future.id]) + + every { ScheduleAlarmHelper.scheduleAlarm(context, any(), any()) } returns Unit + scheduler.restoreOnAppStart() + assertEquals(future.startMillis, scheduled[future.id]?.bookedStartMillis) + } + + @Test + fun `최초 앱 복원은 booked 장부도 다시 걸고 두 번째 진입에서는 미룸을 보존한다`() { + val future = record.copy(startMillis = now + 3_600_000, bookedStartMillis = now + 3_600_000) + scheduled[future.id] = future + + scheduler.restoreOnAppStart() + scheduler.restoreOnAppStart() + + verify(exactly = 1) { ScheduleAlarmHelper.scheduleAlarm(context, any(), any()) } + assertEquals(snooze, snoozed[snooze.baseRequestCode]) + } + + @Test + fun `한 일정 복원이 실패해도 나머지 일정과 미룸 복원은 진행한다`() { + val second = record.copy(id = "s2") + scheduled[second.id] = second + every { ScheduleAlarmHelper.scheduleAlarm(context, match { it.id == record.id }, any()) } throws IllegalStateException("quota") + + org.junit.Assert.assertThrows(IllegalStateException::class.java) { scheduler.restoreAll() } + + assertEquals(null, scheduled[record.id]?.bookedStartMillis) + assertTrue(scheduled[second.id]?.bookedStartMillis != null) + verify(exactly = 1) { ScheduleAlarmHelper.scheduleSnooze(context, any(), any(), any(), any(), any(), any(), any()) } + } + + @Test + fun `미룸 예약 실패는 성공 기록을 남기지 않는다`() { + snoozed.clear() + every { ScheduleAlarmHelper.scheduleSnooze(context, any(), any(), any(), any(), any(), any(), any()) } throws + IllegalStateException("quota") + + org.junit.Assert.assertThrows(IllegalStateException::class.java) { + scheduler.snooze(snooze.baseRequestCode, record.id, "약", "", true, 1) + } + + assertTrue(snoozed.isEmpty()) + } + + @Test + fun `삭제된 알림의 늦은 미룸은 예약과 장부를 만들지 않는다`() { + every { AlarmNotifications.isCurrent(context, any(), any()) } returns false + + val accepted = scheduler.snoozeFromNotification(42, "deleted", "약", "", true, 1, 1042, "old") + + org.junit.Assert.assertFalse(accepted) + verify(exactly = 0) { ScheduleAlarmHelper.scheduleSnooze(context, any(), any(), any(), any(), any(), any(), any()) } + } + private fun scheduleOf(record: ScheduledAlarm) = Schedule( id = record.id, diff --git a/core/alarm/src/test/java/com/example/slowclock/core/alarm/AlarmSchedulerTest.kt b/core/alarm/src/test/java/com/example/slowclock/core/alarm/AlarmSchedulerTest.kt index 7347ed40..754cd871 100644 --- a/core/alarm/src/test/java/com/example/slowclock/core/alarm/AlarmSchedulerTest.kt +++ b/core/alarm/src/test/java/com/example/slowclock/core/alarm/AlarmSchedulerTest.kt @@ -26,7 +26,10 @@ class AlarmSchedulerTest { every { scheduled.all() } returns emptyList() every { snoozed.all() } returns snoozes val pending = snoozes.map { it.baseRequestCode }.toMutableSet() - mockkObject(ScheduleAlarmHelper) + mockkObject(ScheduleAlarmHelper, AlarmNotifications) + every { AlarmNotifications.invalidate(any(), any()) } returns Unit + every { AlarmNotifications.clear(any()) } returns Unit + every { AlarmNotifications.retainSchedules(any(), any()) } returns Unit try { every { ScheduleAlarmHelper.cancelSnooze(context, any()) } answers { pending.remove(secondArg()) @@ -38,7 +41,7 @@ class AlarmSchedulerTest { assertTrue("로그아웃 뒤에도 미룸 예약이 남아 있다", pending.isEmpty()) verify(exactly = 1) { snoozed.clear() } } finally { - unmockkObject(ScheduleAlarmHelper) + unmockkObject(ScheduleAlarmHelper, AlarmNotifications) } } } diff --git a/core/alarm/src/test/java/com/example/slowclock/ui/alarm/AlarmTriggerServiceTest.kt b/core/alarm/src/test/java/com/example/slowclock/ui/alarm/AlarmTriggerServiceTest.kt new file mode 100644 index 00000000..e2657068 --- /dev/null +++ b/core/alarm/src/test/java/com/example/slowclock/ui/alarm/AlarmTriggerServiceTest.kt @@ -0,0 +1,139 @@ +package com.example.slowclock.ui.alarm + +import android.app.Notification +import android.content.Intent +import com.example.slowclock.core.alarm.AlarmNotifications +import com.example.slowclock.core.alarm.AlarmScheduler +import com.example.slowclock.core.alarm.AlarmSchedulerEntryPoint +import io.mockk.every +import io.mockk.justRun +import io.mockk.mockk +import io.mockk.mockkObject +import io.mockk.spyk +import io.mockk.unmockkAll +import io.mockk.verify +import org.junit.After +import org.junit.Assert.assertEquals +import org.junit.Before +import org.junit.Test + +/** 플랫폼 자원 경계만 대체하고 실제 onStartCommand와 미룸 분기를 연결한다. */ +class AlarmTriggerServiceTest { + private lateinit var service: AlarmTriggerService + private val scheduler = mockk() + + @Before + fun setUp() { + mockkObject(AlarmNotifications, AlarmSchedulerEntryPoint.Companion) + every { AlarmNotifications.canShowControls(any()) } returns true + every { AlarmNotifications.isCurrent(any(), any(), any()) } returns true + every { AlarmNotifications.isUsableToken(any()) } returns true + justRun { AlarmNotifications.revoke(any()) } + every { AlarmSchedulerEntryPoint.from(any()) } returns scheduler + service = spyk(AlarmTriggerService(), recordPrivateCalls = true) + every { service["buildNotification"](any()) } returns mockk() + justRun { service["startForegroundCompat"](any()) } + justRun { service["acquireWakeLock"]() } + justRun { service["startSound"]() } + justRun { service["startVibration"]() } + } + + @After + fun tearDown() = unmockkAll() + + @Test + fun `알림 거부 때 foreground와 소리와 진동을 시작하지 않는다`() { + every { AlarmNotifications.canShowControls(any()) } returns false + service.onStartCommand(ring(0), 0, 1) + verify(exactly = 0) { service["startForegroundCompat"](any()) } + verify(exactly = 0) { service["startSound"]() } + verify { service.stopSelf() } + } + + @Test + fun `승격 예외가 나면 소리와 자원 없이 종료한다`() { + every { service["startForegroundCompat"](any()) } throws SecurityException("promotion") + service.onStartCommand(ring(0), 0, 1) + verify(exactly = 0) { service["startSound"]() } + verify(exactly = 0) { service["acquireWakeLock"]() } + verify { service.stopSelf() } + } + + @Test + fun `빈 서비스의 늦은 끄기와 미룸 요청은 서비스를 남기지 않는다`() { + service.onStartCommand(action(AlarmTriggerService.ACTION_DISMISS), 0, 1) + service.onStartCommand(action(AlarmTriggerService.ACTION_SNOOZE), 0, 2) + service.onStartCommand(null, 0, 3) + verify { service.stopSelf(1) } + verify { service.stopSelf(2) } + verify { service.stopSelf(3) } + verify(exactly = 0) { service["startSound"]() } + } + + @Test + fun `미룸 실패는 현재 울림을 남기고 성공한 다음 요청만 멈춘다`() { + every { scheduler.snoozeFromNotification(any(), any(), any(), any(), any(), any(), any(), any()) } returns false + service.onStartCommand(ring(0), 0, 1) + val token = currentToken() + service.onStartCommand(action(AlarmTriggerService.ACTION_SNOOZE, token), 0, 2) + verify(exactly = 0) { service.stopSelf() } + assertEquals(token, currentToken()) + every { scheduler.snoozeFromNotification(any(), any(), any(), any(), any(), any(), any(), any()) } returns true + service.onStartCommand(action(AlarmTriggerService.ACTION_SNOOZE, token), 0, 3) + verify(exactly = 1) { service.stopSelf() } + } + + @Test + fun `실제 서비스 재수신은 0에서1에서2로 미루고 세번째 예약은 하지 않는다`() { + every { scheduler.snoozeFromNotification(any(), any(), any(), any(), any(), any(), any(), any()) } returns true + for (count in 0..2) { + service.onStartCommand(ring(count), 0, count * 2 + 1) + service.onStartCommand(action(AlarmTriggerService.ACTION_SNOOZE, currentToken()), 0, count * 2 + 2) + } + verify(exactly = 1) { scheduler.snoozeFromNotification(42, "s1", "약", "", true, 1, 123, any()) } + verify(exactly = 1) { scheduler.snoozeFromNotification(42, "s1", "약", "", true, 2, 123, any()) } + verify(exactly = 0) { scheduler.snoozeFromNotification(any(), any(), any(), any(), any(), 3, any(), any()) } + } + + @Test + fun `알림 스와이프 뒤 deleteIntent는 OS목록에서 사라진 현재 알람도 끈다`() { + service.onStartCommand(ring(0), 0, 1) + val token = currentToken() + every { AlarmNotifications.isCurrent(any(), any(), any()) } returns false + service.onStartCommand(action(AlarmTriggerService.ACTION_DISMISS, token), 0, 2) + verify(exactly = 1) { service.stopSelf() } + } + + private fun ring(count: Int): Intent = + mockk(relaxed = true).also { + every { it.action } returns AlarmTriggerService.ACTION_RING + every { it.getStringExtra(AlarmTriggerService.EXTRA_TITLE) } returns "약" + every { it.getStringExtra(AlarmTriggerService.EXTRA_DESC) } returns "" + every { it.getStringExtra(AlarmTriggerService.EXTRA_SCHEDULE_ID) } returns "s1" + every { it.getBooleanExtra(AlarmTriggerService.EXTRA_FULL_SCREEN, true) } returns true + every { it.getIntExtra(AlarmTriggerService.EXTRA_REQUEST_CODE, 0) } returns 42 + every { it.getIntExtra(AlarmTriggerService.EXTRA_SNOOZE_COUNT, 0) } returns count + } + + private fun action( + action: String, + token: String? = null, + ): Intent = + mockk(relaxed = true).also { + every { it.action } returns action + every { it.getIntExtra(AlarmTriggerService.EXTRA_REQUEST_CODE, Int.MIN_VALUE) } returns 42 + every { it.getStringExtra(AlarmNotifications.EXTRA_TOKEN) } returns token + } + + private fun currentToken(): String { + val current = + AlarmTriggerService::class.java + .getDeclaredField("ringing") + .apply { isAccessible = true } + .get(service) + return current.javaClass + .getDeclaredField("token") + .apply { isAccessible = true } + .get(current) as String + } +} diff --git a/feature/addschedule/src/main/java/com/example/slowclock/ui/addschedule/AddScheduleContract.kt b/feature/addschedule/src/main/java/com/example/slowclock/ui/addschedule/AddScheduleContract.kt index eb5813f3..463f925c 100644 --- a/feature/addschedule/src/main/java/com/example/slowclock/ui/addschedule/AddScheduleContract.kt +++ b/feature/addschedule/src/main/java/com/example/slowclock/ui/addschedule/AddScheduleContract.kt @@ -70,10 +70,12 @@ data class AddScheduleUiState( val isEditMode: Boolean = false, val editingSchedule: Schedule? = null, val editScheduleId: String? = null, + /** 서버 저장은 완료됐다. 재시도는 이 ID의 로컬 알람만 예약한다. */ + val pendingAlarmSchedule: Schedule? = null, ) : UiState { val hasValidTimeInput: Boolean get() = startTimeInput.isValid && (endTimeInput.isEmpty || endTimeInput.isValid) val canSave: Boolean get() = - title.isNotBlank() && !isLoading && !isSaved && hasValidTimeInput && + title.isNotBlank() && !isLoading && !isSaved && pendingAlarmSchedule == null && hasValidTimeInput && (!isEditMode || editingSchedule != null) fun canApplyRecommendedTitle(scheduleId: String?): Boolean = @@ -124,6 +126,10 @@ sealed interface AddScheduleReducerEvent : ReducerEvent { data object Saved : AddScheduleReducerEvent + data class AlarmFailed( + val schedule: Schedule, + ) : AddScheduleReducerEvent + data class Failed( val error: AppError, val canRetry: Boolean, diff --git a/feature/addschedule/src/main/java/com/example/slowclock/ui/addschedule/AddScheduleScreen.kt b/feature/addschedule/src/main/java/com/example/slowclock/ui/addschedule/AddScheduleScreen.kt index 79142f7e..701af6ba 100644 --- a/feature/addschedule/src/main/java/com/example/slowclock/ui/addschedule/AddScheduleScreen.kt +++ b/feature/addschedule/src/main/java/com/example/slowclock/ui/addschedule/AddScheduleScreen.kt @@ -37,9 +37,11 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.runtime.rememberUpdatedState import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle +import com.example.slowclock.feature.addschedule.R import com.example.slowclock.ui.addschedule.components.RecommendationPlaceholder import com.example.slowclock.ui.addschedule.components.RecurringSection import com.example.slowclock.ui.addschedule.components.TimePickerSection @@ -206,22 +208,39 @@ internal fun AddScheduleContent( style = MaterialTheme.typography.bodyLarge, ) - Row( - horizontalArrangement = Arrangement.spacedBy(12.dp), - ) { - OutlinedButton( - onClick = { onIntent(AddScheduleIntent.ConsumeError) }, - modifier = Modifier.weight(1f), - ) { - Text("닫기") - } - - if (state.canRetry) { + if (state.pendingAlarmSchedule != null) { + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { Button( onClick = { onIntent(AddScheduleIntent.Retry) }, + modifier = Modifier.fillMaxWidth().heightIn(min = 56.dp), + ) { + Text(stringResource(R.string.retry_saved_alarm)) + } + OutlinedButton( + onClick = { onIntent(AddScheduleIntent.ConsumeError) }, + modifier = Modifier.fillMaxWidth().heightIn(min = 56.dp), + ) { + Text(stringResource(R.string.return_to_saved_schedules)) + } + } + } else { + Row( + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + OutlinedButton( + onClick = { onIntent(AddScheduleIntent.ConsumeError) }, modifier = Modifier.weight(1f), ) { - Text("다시 시도") + Text("닫기") + } + + if (state.canRetry) { + Button( + onClick = { onIntent(AddScheduleIntent.Retry) }, + modifier = Modifier.weight(1f), + ) { + Text("다시 시도") + } } } } diff --git a/feature/addschedule/src/main/java/com/example/slowclock/ui/addschedule/AddScheduleViewModel.kt b/feature/addschedule/src/main/java/com/example/slowclock/ui/addschedule/AddScheduleViewModel.kt index 25ac7f92..b53e09f1 100644 --- a/feature/addschedule/src/main/java/com/example/slowclock/ui/addschedule/AddScheduleViewModel.kt +++ b/feature/addschedule/src/main/java/com/example/slowclock/ui/addschedule/AddScheduleViewModel.kt @@ -30,6 +30,11 @@ class AddScheduleViewModel override fun onIntent(intent: AddScheduleIntent) { // 폼이 읽히거나 저장되는 중의 중복 입력·저장은 진행 중인 작업을 바꾸지 않는다. if (currentState.isLoading && (intent !is AddScheduleIntent.LoadForEdit || editLoadJob?.isActive != true)) return + if (currentState.pendingAlarmSchedule != null && + intent != AddScheduleIntent.Retry && intent != AddScheduleIntent.ConsumeError + ) { + return + } when (intent) { is AddScheduleIntent.UpdateTitle -> { dispatch(AddScheduleReducerEvent.TitleChanged(intent.value)) @@ -70,7 +75,9 @@ class AddScheduleViewModel AddScheduleIntent.Retry -> { dispatch(AddScheduleReducerEvent.ErrorConsumed) val state = currentState - if (state.isEditMode && state.editingSchedule == null) { + if (state.pendingAlarmSchedule != null) { + reserveSavedAlarm(state.pendingAlarmSchedule) + } else if (state.isEditMode && state.editingSchedule == null) { state.editScheduleId?.let(::loadForEdit) } else { save() @@ -78,7 +85,11 @@ class AddScheduleViewModel } AddScheduleIntent.ConsumeError -> { - dispatch(AddScheduleReducerEvent.ErrorConsumed) + if (currentState.pendingAlarmSchedule != null) { + dispatch(AddScheduleReducerEvent.Saved) + } else { + dispatch(AddScheduleReducerEvent.ErrorConsumed) + } } AddScheduleIntent.ConsumeSaved -> { @@ -167,7 +178,16 @@ class AddScheduleViewModel } AddScheduleReducerEvent.Saved -> { - state.copy(isLoading = false, isSaved = true) + state.copy(isLoading = false, isSaved = true, pendingAlarmSchedule = null, error = null) + } + + is AddScheduleReducerEvent.AlarmFailed -> { + state.copy( + isLoading = false, + pendingAlarmSchedule = event.schedule, + error = AppError.GeneralError("일정은 저장됐지만 알람을 예약하지 못했습니다. 다시 시도하면 알람만 예약합니다."), + canRetry = true, + ) } is AddScheduleReducerEvent.Failed -> { @@ -183,6 +203,17 @@ class AddScheduleViewModel } } + private fun reserveSavedAlarm(schedule: Schedule) { + dispatch(AddScheduleReducerEvent.Saving) + try { + alarmScheduler.schedule(schedule) + dispatch(AddScheduleReducerEvent.Saved) + } catch (error: Exception) { + Log.e(TAG, "일정 저장 후 알람 예약 실패", error) + dispatch(AddScheduleReducerEvent.AlarmFailed(schedule)) + } + } + private fun loadForEdit(scheduleId: String) { if (currentState.editingSchedule?.id == scheduleId || (currentState.editScheduleId == scheduleId && editLoadJob?.isActive == true) @@ -235,9 +266,7 @@ class AddScheduleViewModel when (result) { is ScheduleRepository.ScheduleResult.Success -> { // 새 일정은 Firestore 가 준 ID 로 알람을 건다. 빈 ID 로 걸면 모든 새 일정이 같은 요청 코드를 쓴다. - runCatching { alarmScheduler.schedule(schedule.copy(id = result.data)) } - .onFailure { Log.e(TAG, "알람 예약 실패", it) } - dispatch(AddScheduleReducerEvent.Saved) + reserveSavedAlarm(schedule.copy(id = result.data)) } is ScheduleRepository.ScheduleResult.Error -> { diff --git a/feature/addschedule/src/main/res/values/strings.xml b/feature/addschedule/src/main/res/values/strings.xml new file mode 100644 index 00000000..a4986150 --- /dev/null +++ b/feature/addschedule/src/main/res/values/strings.xml @@ -0,0 +1,5 @@ + + + 알람 다시 예약 + 목록으로 돌아가기 + diff --git a/feature/addschedule/src/test/java/com/example/slowclock/ui/addschedule/AddScheduleViewModelTest.kt b/feature/addschedule/src/test/java/com/example/slowclock/ui/addschedule/AddScheduleViewModelTest.kt index 38794d71..0dcf92aa 100644 --- a/feature/addschedule/src/test/java/com/example/slowclock/ui/addschedule/AddScheduleViewModelTest.kt +++ b/feature/addschedule/src/test/java/com/example/slowclock/ui/addschedule/AddScheduleViewModelTest.kt @@ -7,6 +7,7 @@ import com.example.slowclock.util.AppError import com.google.firebase.Timestamp import io.mockk.coEvery import io.mockk.coVerify +import io.mockk.every import io.mockk.justRun import io.mockk.mockk import io.mockk.slot @@ -43,6 +44,51 @@ class AddScheduleViewModelTest { Dispatchers.resetMain() } + @Test + fun `서버 저장 후 알람 실패 재시도는 같은 ID를 예약하고 서버 저장을 반복하지 않는다`() = + runTest { + coEvery { scheduleRepository.addSchedule(any()) } returns ScheduleRepository.ScheduleResult.Success("saved-id") + every { alarmScheduler.schedule(any()) } throws IllegalStateException("quota") + val viewModel = createViewModel() + viewModel.onIntent(AddScheduleIntent.UpdateTitle("약")) + viewModel.onIntent(AddScheduleIntent.Save) + assertEquals( + "saved-id", + viewModel.uiState.value.pendingAlarmSchedule + ?.id, + ) + assertFalse(viewModel.uiState.value.isSaved) + assertFalse(viewModel.uiState.value.canSave) + assertTrue( + viewModel.uiState.value.error!! + .message + .contains("일정은 저장됐지만"), + ) + + viewModel.onIntent(AddScheduleIntent.Save) + viewModel.onIntent(AddScheduleIntent.UpdateTitle("변경되지 않아야 함")) + justRun { alarmScheduler.schedule(any()) } + viewModel.onIntent(AddScheduleIntent.Retry) + + assertTrue(viewModel.uiState.value.isSaved) + assertNull(viewModel.uiState.value.pendingAlarmSchedule) + coVerify(exactly = 1) { scheduleRepository.addSchedule(any()) } + verify(exactly = 2) { alarmScheduler.schedule(match { it.id == "saved-id" && it.title == "약" }) } + } + + @Test + fun `알람 실패 안내를 닫으면 저장된 일정으로 돌아가고 재저장하지 않는다`() = + runTest { + coEvery { scheduleRepository.addSchedule(any()) } returns ScheduleRepository.ScheduleResult.Success("saved-id") + every { alarmScheduler.schedule(any()) } throws IllegalStateException("quota") + val viewModel = createViewModel() + viewModel.onIntent(AddScheduleIntent.UpdateTitle("약")) + viewModel.onIntent(AddScheduleIntent.Save) + viewModel.onIntent(AddScheduleIntent.ConsumeError) + assertTrue(viewModel.uiState.value.isSaved) + coVerify(exactly = 1) { scheduleRepository.addSchedule(any()) } + } + private fun createViewModel() = AddScheduleViewModel(scheduleRepository, alarmScheduler) @Test diff --git a/feature/main/src/main/java/com/example/slowclock/ui/main/MainContract.kt b/feature/main/src/main/java/com/example/slowclock/ui/main/MainContract.kt index ad14311d..a338491d 100644 --- a/feature/main/src/main/java/com/example/slowclock/ui/main/MainContract.kt +++ b/feature/main/src/main/java/com/example/slowclock/ui/main/MainContract.kt @@ -44,6 +44,10 @@ sealed interface MainIntent : MviIntent { data object DismissExactAlarmNotice : MainIntent data object ConsumeExactAlarmSettingsRequest : MainIntent + + data object OpenNotificationSettings : MainIntent + + data object ConsumeNotificationSettingsRequest : MainIntent } /** 메인 화면의 단일 UI 상태. 오늘 일정과 공유 일정, 다이얼로그 상태를 담는다. */ @@ -67,6 +71,8 @@ data class MainUiState( val showExactAlarmNotice: Boolean = false, /** null 이 아니면 화면이 시스템 설정을 한 번 연다. */ val openExactAlarmSettings: Unit? = null, + val alarmControlsAvailable: Boolean = true, + val openNotificationSettings: Unit? = null, ) : UiState /** 메인 화면의 상태가 겪은 것. 화면은 만들지 않고 ViewModel 만 dispatch 한다. */ @@ -141,4 +147,12 @@ sealed interface MainReducerEvent : ReducerEvent { data object ExactAlarmSettingsRequested : MainReducerEvent data object ExactAlarmSettingsRequestConsumed : MainReducerEvent + + data class AlarmControlsChecked( + val available: Boolean, + ) : MainReducerEvent + + data object NotificationSettingsRequested : MainReducerEvent + + data object NotificationSettingsRequestConsumed : MainReducerEvent } diff --git a/feature/main/src/main/java/com/example/slowclock/ui/main/MainScreen.kt b/feature/main/src/main/java/com/example/slowclock/ui/main/MainScreen.kt index c5b556e2..2c2bcd95 100644 --- a/feature/main/src/main/java/com/example/slowclock/ui/main/MainScreen.kt +++ b/feature/main/src/main/java/com/example/slowclock/ui/main/MainScreen.kt @@ -3,8 +3,11 @@ package com.example.slowclock.ui.main import android.content.Intent import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn @@ -13,12 +16,14 @@ import androidx.compose.material.icons.filled.Add import androidx.compose.material.icons.outlined.Person import androidx.compose.material.icons.outlined.Settings import androidx.compose.material3.AlertDialog +import androidx.compose.material3.Button import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExtendedFloatingActionButton import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold +import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.material3.TopAppBar @@ -28,11 +33,13 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.LifecycleEventEffect import androidx.lifecycle.compose.collectAsStateWithLifecycle +import com.example.slowclock.feature.main.R import com.example.slowclock.ui.common.components.ErrorCard import com.example.slowclock.ui.common.components.SignInPrompt import com.example.slowclock.ui.common.components.rememberDayText @@ -68,6 +75,31 @@ fun MainScreen( ) { context.startActivity(Intent(android.provider.Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM)) } + ObserveSignal( + signal = state.openNotificationSettings, + consumed = MainIntent.ConsumeNotificationSettingsRequest, + onIntent = viewModel::onIntent, + ) { + val opened = + runCatching { + context.startActivity( + Intent(android.provider.Settings.ACTION_APP_NOTIFICATION_SETTINGS) + .putExtra(android.provider.Settings.EXTRA_APP_PACKAGE, context.packageName), + ) + }.isSuccess + if (!opened) { + runCatching { + context.startActivity( + Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS) + .setData(android.net.Uri.parse("package:${context.packageName}")), + ) + }.onFailure { + android.widget.Toast + .makeText(context, R.string.notification_settings_unavailable, android.widget.Toast.LENGTH_LONG) + .show() + } + } + } MainContent( state = state, onIntent = viewModel::onIntent, @@ -213,6 +245,32 @@ internal fun MainContent( return@LazyColumn } + if (!state.alarmControlsAvailable) { + item { + Surface( + color = MaterialTheme.colorScheme.errorContainer, + shape = MaterialTheme.shapes.medium, + ) { + Column( + modifier = Modifier.fillMaxWidth().padding(20.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Text( + text = stringResource(R.string.alarm_notifications_disabled), + style = MaterialTheme.typography.bodyLarge, + color = MaterialTheme.colorScheme.onErrorContainer, + ) + Button( + onClick = { onIntent(MainIntent.OpenNotificationSettings) }, + modifier = Modifier.fillMaxWidth().heightIn(min = 56.dp), + ) { + Text(stringResource(R.string.open_notification_settings)) + } + } + } + } + } + state.currentSchedule?.let { schedule -> item { NowCard( diff --git a/feature/main/src/main/java/com/example/slowclock/ui/main/MainViewModel.kt b/feature/main/src/main/java/com/example/slowclock/ui/main/MainViewModel.kt index b21eb0cc..a3a5cec7 100644 --- a/feature/main/src/main/java/com/example/slowclock/ui/main/MainViewModel.kt +++ b/feature/main/src/main/java/com/example/slowclock/ui/main/MainViewModel.kt @@ -52,6 +52,7 @@ class MainViewModel init { observeSignedInUser() + dispatch(MainReducerEvent.AlarmControlsChecked(alarmScheduler.canShowAlarmControls())) // 정확한 알람 권한이 없으면 첫 진입에 한 번만 이유를 설명한다. 설정으로 보내는 건 // 사용자가 「설정 열기」 를 눌렀을 때다(#83). if (!alarmScheduler.canScheduleExactAlarms() && !settingsRepository.hasSeenExactAlarmNotice()) { @@ -64,6 +65,7 @@ class MainViewModel override fun onIntent(intent: MainIntent) { when (intent) { MainIntent.ScreenResumed -> { + dispatch(MainReducerEvent.AlarmControlsChecked(alarmScheduler.canShowAlarmControls())) resubscribeIfDayChanged() authRepository.currentUid?.let(::syncAlarms) } @@ -120,6 +122,14 @@ class MainViewModel dispatch(MainReducerEvent.ExactAlarmNoticeDismissed) } + MainIntent.OpenNotificationSettings -> { + dispatch(MainReducerEvent.NotificationSettingsRequested) + } + + MainIntent.ConsumeNotificationSettingsRequest -> { + dispatch(MainReducerEvent.NotificationSettingsRequestConsumed) + } + MainIntent.ConsumeExactAlarmSettingsRequest -> { dispatch(MainReducerEvent.ExactAlarmSettingsRequestConsumed) } @@ -219,6 +229,18 @@ class MainViewModel state.copy(error = null, canRetry = false) } + is MainReducerEvent.AlarmControlsChecked -> { + state.copy(alarmControlsAvailable = event.available) + } + + MainReducerEvent.NotificationSettingsRequested -> { + state.copy(openNotificationSettings = Unit) + } + + MainReducerEvent.NotificationSettingsRequestConsumed -> { + state.copy(openNotificationSettings = null) + } + MainReducerEvent.ExactAlarmNoticeShown -> { state.copy(showExactAlarmNotice = true) } diff --git a/feature/main/src/main/res/values/strings.xml b/feature/main/src/main/res/values/strings.xml new file mode 100644 index 00000000..e027219e --- /dev/null +++ b/feature/main/src/main/res/values/strings.xml @@ -0,0 +1,6 @@ + + + 알림이 꺼져 있어 알람이 울리지 않습니다. 설정에서 앱 알림과 알람 채널을 허용해 주세요. + 알림 설정 열기 + 설정을 열지 못했습니다. 휴대전화 설정에서 느린 시계 알림을 허용해 주세요. + diff --git a/feature/main/src/screenshotTest/java/com/example/slowclock/ui/MainScreenshotTest.kt b/feature/main/src/screenshotTest/java/com/example/slowclock/ui/MainScreenshotTest.kt index 33edaaed..f7bcd83e 100644 --- a/feature/main/src/screenshotTest/java/com/example/slowclock/ui/MainScreenshotTest.kt +++ b/feature/main/src/screenshotTest/java/com/example/slowclock/ui/MainScreenshotTest.kt @@ -144,3 +144,21 @@ internal fun SettingsContentWithNoticeScreenshot() { ) } } + +@PreviewTest +@Preview(name = "알람 알림 차단 안내", showBackground = true, device = "spec:width=360dp,height=1100dp", fontScale = 1.5f) +@Composable +internal fun MainNotificationsDisabledScreenshot() { + SlowClockTheme(darkTheme = false) { + MainContent( + state = loadedState.copy(alarmControlsAvailable = false), + onIntent = {}, + onAddSchedule = {}, + onEditSchedule = {}, + onNavigateToProfile = {}, + onNavigateToSettings = {}, + onSignIn = {}, + today = fixedToday, + ) + } +} diff --git a/feature/main/src/test/java/com/example/slowclock/ui/main/MainViewModelTest.kt b/feature/main/src/test/java/com/example/slowclock/ui/main/MainViewModelTest.kt index 427cf7ab..dc432bb7 100644 --- a/feature/main/src/test/java/com/example/slowclock/ui/main/MainViewModelTest.kt +++ b/feature/main/src/test/java/com/example/slowclock/ui/main/MainViewModelTest.kt @@ -64,6 +64,7 @@ class MainViewModelTest { coEvery { userRepository.registerShareCodeWatcher(any()) } returns true // 기본값은 정시 알람이 허용된 기기다. 안내 다이얼로그를 다루는 테스트만 이 값을 뒤집는다. every { alarmScheduler.canScheduleExactAlarms() } returns true + every { alarmScheduler.canShowAlarmControls() } returns true every { settingsRepository.hasSeenExactAlarmNotice() } returns false every { settingsRepository.markExactAlarmNoticeSeen() } returns Unit } @@ -73,6 +74,21 @@ class MainViewModelTest { Dispatchers.resetMain() } + @Test + fun `알림 차단 안내는 설정에서 허용한 뒤 화면 복귀하면 사라진다`() = + runTest { + every { alarmScheduler.canShowAlarmControls() } returns false + val viewModel = createViewModel() + assertFalse(viewModel.uiState.value.alarmControlsAvailable) + viewModel.onIntent(MainIntent.OpenNotificationSettings) + assertNotNull(viewModel.uiState.value.openNotificationSettings) + viewModel.onIntent(MainIntent.ConsumeNotificationSettingsRequest) + assertNull(viewModel.uiState.value.openNotificationSettings) + every { alarmScheduler.canShowAlarmControls() } returns true + viewModel.onIntent(MainIntent.ScreenResumed) + assertTrue(viewModel.uiState.value.alarmControlsAvailable) + } + private fun createViewModel() = MainViewModel(scheduleRepository, userRepository, authRepository, settingsRepository, alarmScheduler) @Test @@ -309,6 +325,7 @@ class MainViewModelTest { fun `정시 알람을 못 걸고 안내를 본 적 없으면 안내 다이얼로그를 띄운다`() = runTest { every { alarmScheduler.canScheduleExactAlarms() } returns false + every { alarmScheduler.canShowAlarmControls() } returns true val state = createViewModel().uiState.value @@ -320,6 +337,7 @@ class MainViewModelTest { fun `안내를 이미 봤으면 다시 띄우지 않는다`() = runTest { every { alarmScheduler.canScheduleExactAlarms() } returns false + every { alarmScheduler.canShowAlarmControls() } returns true every { settingsRepository.hasSeenExactAlarmNotice() } returns true assertFalse(createViewModel().uiState.value.showExactAlarmNotice) @@ -329,6 +347,7 @@ class MainViewModelTest { fun `설정 열기는 본 것으로 표시하고 설정 열기 신호를 냈다가 소비한다`() = runTest { every { alarmScheduler.canScheduleExactAlarms() } returns false + every { alarmScheduler.canShowAlarmControls() } returns true val viewModel = createViewModel() viewModel.onIntent(MainIntent.OpenExactAlarmSettings) @@ -347,6 +366,7 @@ class MainViewModelTest { fun `나중에를 누르면 안내를 닫고 본 것으로 표시한다`() = runTest { every { alarmScheduler.canScheduleExactAlarms() } returns false + every { alarmScheduler.canShowAlarmControls() } returns true val viewModel = createViewModel() viewModel.onIntent(MainIntent.DismissExactAlarmNotice) From 5046ab38a4195d42115a173f66a5f9633bc6c524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=BC=ED=98=81?= Date: Sun, 6 Sep 2026 17:20:16 +0900 Subject: [PATCH 2/5] =?UTF-8?q?fix:=20=EC=95=8C=EB=A6=BC=20=EC=A1=B0?= =?UTF-8?q?=EC=9E=91=20PendingIntent=EB=A5=BC=20=ED=9A=8C=EC=B0=A8?= =?UTF-8?q?=EB=B3=84=EB=A1=9C=20=EB=B6=84=EB=A6=AC=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs #200 Source: https://developer.android.com/reference/android/app/PendingIntent API 34 격리 기기에서 실제 PendingIntent 신원과 미룸 횟수 extras 2개 테스트 통과. --- .../slowclock/AlarmCommandIdentityTest.kt | 47 +++++++++++++++++++ .../slowclock/ui/alarm/AlarmTriggerService.kt | 15 +++++- 2 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 app/src/androidTest/java/com/example/slowclock/AlarmCommandIdentityTest.kt diff --git a/app/src/androidTest/java/com/example/slowclock/AlarmCommandIdentityTest.kt b/app/src/androidTest/java/com/example/slowclock/AlarmCommandIdentityTest.kt new file mode 100644 index 00000000..a045cd08 --- /dev/null +++ b/app/src/androidTest/java/com/example/slowclock/AlarmCommandIdentityTest.kt @@ -0,0 +1,47 @@ +package com.example.slowclock + +import android.app.PendingIntent +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.platform.app.InstrumentationRegistry +import com.example.slowclock.ui.alarm.AlarmTriggerService +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNotEquals +import org.junit.Test +import org.junit.runner.RunWith + +/** OS가 extras를 신원에서 제외해도 앞 회차 버튼이 다음 회차로 바뀌지 않는지 확인한다. */ +@RunWith(AndroidJUnit4::class) +class AlarmCommandIdentityTest { + private val context = InstrumentationRegistry.getInstrumentation().targetContext + + @Test + fun dismissAndSnoozePendingIntentsKeepTheirOwnOccurrence() { + val first = AlarmTriggerService.dismissIntent(context, 42, "first-occurrence") + val second = AlarmTriggerService.dismissIntent(context, 42, "second-occurrence") + val snooze = AlarmTriggerService.snoozeIntent(context, 42, "second-occurrence") + assertFalse(first.filterEquals(second)) + assertFalse(second.filterEquals(snooze)) + val flags = PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE + val firstPending = PendingIntent.getService(context, 0, first, flags) + val secondPending = PendingIntent.getService(context, 0, second, flags) + try { + assertNotEquals(firstPending, secondPending) + assertEquals("first-occurrence", first.getStringExtra("alarmCommandToken")) + assertEquals("second-occurrence", second.getStringExtra("alarmCommandToken")) + } finally { + firstPending.cancel() + secondPending.cancel() + } + } + + @Test + fun receiverToServiceIntentPreservesSnoozeCounts() { + for (count in 0..2) { + val intent = AlarmTriggerService.ringIntent(context, "약", "", true, "test-schedule", 42, count) + assertEquals(count, intent.getIntExtra(AlarmTriggerService.EXTRA_SNOOZE_COUNT, -1)) + assertEquals(42, intent.getIntExtra(AlarmTriggerService.EXTRA_REQUEST_CODE, -1)) + assertEquals("test-schedule", intent.getStringExtra(AlarmTriggerService.EXTRA_SCHEDULE_ID)) + } + } +} diff --git a/core/alarm/src/main/java/com/example/slowclock/ui/alarm/AlarmTriggerService.kt b/core/alarm/src/main/java/com/example/slowclock/ui/alarm/AlarmTriggerService.kt index 0c9f6956..afbd12b4 100644 --- a/core/alarm/src/main/java/com/example/slowclock/ui/alarm/AlarmTriggerService.kt +++ b/core/alarm/src/main/java/com/example/slowclock/ui/alarm/AlarmTriggerService.kt @@ -12,6 +12,7 @@ import android.media.AudioAttributes import android.media.AudioManager import android.media.MediaPlayer import android.media.RingtoneManager +import android.net.Uri import android.os.Build import android.os.Bundle import android.os.Handler @@ -118,7 +119,10 @@ class AlarmTriggerService : Service() { .putExtra(EXTRA_REQUEST_CODE, requestCode) .putExtra(EXTRA_SNOOZE_COUNT, snoozeCount) - /** 울리는 알람을 끈다. */ + /** + * 울리는 알람을 끈다. token은 data에도 넣어 PendingIntent 신원을 회차마다 가른다. + * extras만 바꾸면 FLAG_UPDATE_CURRENT가 옛 버튼까지 다음 회차로 바꿔 버린다. + */ fun dismissIntent( context: Context, requestCode: Int, @@ -127,6 +131,7 @@ class AlarmTriggerService : Service() { Intent(context, AlarmTriggerService::class.java) .setClass(context, AlarmTriggerService::class.java) .setAction(ACTION_DISMISS) + .setData(token?.let { Uri.parse("slowclock://alarm-command/$it") }) .putExtra(EXTRA_REQUEST_CODE, requestCode) .putExtra(AlarmNotifications.EXTRA_TOKEN, token) @@ -146,6 +151,7 @@ class AlarmTriggerService : Service() { Intent(context, AlarmTriggerService::class.java) .setClass(context, AlarmTriggerService::class.java) .setAction(ACTION_SNOOZE) + .setData(token?.let { Uri.parse("slowclock://alarm-command/$it") }) .putExtra(EXTRA_REQUEST_CODE, requestCode) .putExtra(AlarmNotifications.EXTRA_TOKEN, token) } @@ -214,7 +220,10 @@ class AlarmTriggerService : Service() { // 이미 울리는 알람이 있으면 그 알림을 별도 자리로 옮겨 남긴다. 알림 자리가 하나뿐이라 // 그냥 두면 뒤에 온 알람이 앞의 것을 화면에서 지우고, 끄기 한 번에 둘 다 꺼진다(#131). - ringing?.let { previous -> keepAsSeparateNotification(previous) } + ringing?.let { previous -> + runCatching { keepAsSeparateNotification(previous) } + .onFailure { Log.e(TAG, "겹친 알람 알림을 남기지 못했다", it) } + } val current = Ringing( @@ -300,6 +309,7 @@ class AlarmTriggerService : Service() { Intent(this, AlarmTriggerService::class.java) .setClass(this, AlarmTriggerService::class.java) .setAction(ACTION_SNOOZE_MISSED) + .setData(Uri.parse("slowclock://alarm-command/${missed.token}")) .putExtra(EXTRA_TITLE, missed.title) .putExtra(EXTRA_DESC, missed.desc) .putExtra(EXTRA_FULL_SCREEN, missed.isFullScreen) @@ -374,6 +384,7 @@ class AlarmTriggerService : Service() { val fullScreenIntent = Intent(this, AlarmFullScreenActivity::class.java) .setClass(this, AlarmFullScreenActivity::class.java) + .setData(Uri.parse("slowclock://alarm-command/${current.token}")) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP) .putExtra(EXTRA_TITLE, title) .putExtra(EXTRA_DESC, desc) From ed1676075fe0ba55d3fb61bc316e74381f80069a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 6 Sep 2026 08:24:50 +0000 Subject: [PATCH 3/5] test: update screenshot baselines in CI --- ...50 \354\225\210\353\202\264_f300fa05_0.png" | Bin 0 -> 168267 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "feature/main/src/screenshotTestDebug/reference/com/example/slowclock/ui/MainScreenshotTestKt/MainNotificationsDisabledScreenshot_\354\225\214\353\236\214 \354\225\214\353\246\274 \354\260\250\353\213\250 \354\225\210\353\202\264_f300fa05_0.png" diff --git "a/feature/main/src/screenshotTestDebug/reference/com/example/slowclock/ui/MainScreenshotTestKt/MainNotificationsDisabledScreenshot_\354\225\214\353\236\214 \354\225\214\353\246\274 \354\260\250\353\213\250 \354\225\210\353\202\264_f300fa05_0.png" "b/feature/main/src/screenshotTestDebug/reference/com/example/slowclock/ui/MainScreenshotTestKt/MainNotificationsDisabledScreenshot_\354\225\214\353\236\214 \354\225\214\353\246\274 \354\260\250\353\213\250 \354\225\210\353\202\264_f300fa05_0.png" new file mode 100644 index 0000000000000000000000000000000000000000..aabdde810b07f3bba9cb9c107d593ce7e86dcff7 GIT binary patch literal 168267 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 z

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¿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�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

_cFLq3*Y zg*I~A4SuvxOY&zupr=0T*~Csn%6Zer{fl41byb*s|013SX8%;L`0jobNi>IL_^>-gT9?jgn@hO;6>+;~W;e{=@i zSOJO3H%O{GSNCga2TQFP6gjUpH#fT!J_C2OYmF=9GM&(qB0u*{1%-_F@6YN!WLZL^ zizn+3qgXh0t}bQOT|lf}KS_w}rdX>ee4f(Ins)upxSfhsIOytfoG0Afs|ocTk(tA&x%k`JBt30E=}f zB{n*`$=~-J(R?an@!=1a+zh%)xM>knK>Z}=&a_?J z*E8)0eTpQp=4(Ov|Co}D%X>h57d7;bymTO1*eS?_q|AQtiY_k`r|vWIhMQuC6ENML zs~^=pebqHPV@kudi*3(wQG@?DNaDJFGmwU}CVn;JHB1F|M5o)zr=5LENdmh|+MkLp zt$afU>8PC2$8Zb*VDY01;uh{U`fylgtADbHr^k|v<%91!+pE1waUXK>h>v5mya&E@ zrl6Rfj(qxb$>T>9&HK=gucIo zT6quD1SF;~{1*_%z}U%ScnlBZ0+)j~IJ(q3j?eBq7d1sg5FN$*4U*;YcK=H`;yE-W z1Ad0^)P$#^+9Fq_gQ;%^NlG2;QnB+}jocWLH8M8dN`CwpUYrO%$p?RtF8sRX1!jFx zLbuML;7_wI~j%G{u*2yV)zlc(3iNae1-@ z`!K2P`8pjUqU&@0CcNlR`^SU2_&CvXcEST(m@Pj5mbc~kW}}(gb;R$DPNh{-ARbIyw*epN4Fo{1UmO7AU4HWps>{VitC5h3b3Ivct0&C!>U^|_`Ax2y zkKlYH2q4Euv$=isBirIph(?o>WBp$sW$lTu40ibwu)_`-Tg#Z<$E`LpR*E3LlFw^O zmiL4WGPm74ED&s*L;G0s5KmD?)KEi+#DV1JZk=KaMy}QCkhsWG zE4{(xOSSv=nc{?qWM~qvH7}W{golUDOv+nRZ6ZqkKh<% zxCkW9nFWp8EOdDdNcC6VOqZ)Lp%&9<#ajH`eE6~>KB0R>oa%+MxwRlwNTz@0tr&Dw zeN>`Y{6Bqiwoz)KA7SPj@-;bCgCxD~CPqKH+~15z-49`m5Imo0|xs`E!7npov1 z!PMXqaG}P^9pqr3+a8(aAuxWViy7F&b6^29mLfSNOZ5)ABRt;{L|F6GoO(AUkw4~7 z4G+8@5Jutgp8l`ax!A>^YoY;a+;z*pL|&%A;8O5FTGvXK*r%EgZ&AOLk0WhhF%3z7 z@c~~v=R|xN>7w^(CxkbKks2cK_ID3JVAtrH_YZ9<%Yj8YStmk(6He!T9sw5vL#|3v zU+(EXwTt|8+lXW}gnC7SSKMMoSyeR)d>TeNS;rtzw6fO2a&^2qKY~*y8I;~Le3}j^ z60^(zM$SpDD<4W#Ss7lkIQGNl0~HA&Am}yGjC6>g+R^Is^%z+&Z&-u$ZfYXU-?mm` z22byNLD?293X3V3P<&9;Gbd@oc^{lD@CP1vEJv9{a$<&*xYTcHJ*5?P?AheI*$~Xo zoc$NjLsg*h^i*YCYjg7~P`W_6JaQx0DhVkXl`p!18X_QhD^=N2>9&i)ECpQ~iTw}0 zRfys!ss){VZsi*hsuIdd9+0*MOApcM1NGWFSZLf+A4t3fT zLUk`ARJRIchSF{W_;KaUz)!9x@b06zSZimS_VtNh_<%IE=XYlQ<46cI=iB^zA86i= zIHA$d(rV6@4pfq`aBv8}bN6nKs#vOS69DDRC-2@iEy7M5?VfF8B*vT>USy1T;CYPX zHx4i5rZx?sr`Dxyx+fvvJD|Q)M|#ld%K&!_nLMN;ILp{43ci$eLp*LZUf2Qo!}y1i z8hf5vqz9WWgheo+{z&3;OWe~WHqDV7-Sk)YtMj!=Bh-RpoPE>_p2t!ZRa);?58vi^ zb@h_f1;k(Hu{3O8{ollG0F}tt%&d_g zx;LKZ4HMU@;J<4GhNycUan4?DE4^w(iKCTnY9hzO4XF0{mV~;XD|EVqh@R#OvtHRT zTBQ+6eFrl$v!cmfUg_>T7M~$cqc2Gl+Bk?d{1 z4AEMZQwsp(;M;Du0j(c|+bV14uP%kl0S@?g5m!l!soC@uu&u>nS`AHzZ=DEgynLzu z;H5qApsKLHo6RP?j?I1@?whqIi~>(y!VQmvpwvg5*n8-YGsp3Lh;O9(G9Xdu#5dp| zd;`$&ts(KQhh`OOky1c$fiK|sk)9d}BRtC^C5m7j$CbkWxsD(WuDcu)Z`{4IK|7LQ zv11y=AbQ@Fn%j&KlxD6wdhHqD>!wqHDi9959sw^>8c}enQ(s7ht;ZshiOP#|U$C%i5P*k8LHlZO zt>}a%>>S4HUr)#<<@LE5>KANkp39&5+hMC^=I5)mA023HOw_x*cCZ>PHxv?xxa`0l z{pi%kE{=yFk^W z%c=9hAm5aTeYHPd0cF<*VkzrXMdgAVU+Yii0uyDLnwpR?D?s!To~w9`UrqW>es>_` z19<;nwXyFH(b3oVZf1I2duRS#rLx}d>Mrhe+OMUSAR)NmuvQ)WQ_m}pS~6gRW0 z>&o*XTc5ehR1_4MH8tWZ{%1o=E&^XnQBY9u4m-PCSV>wEhwFlatU`58{IIDzgiBxw z6^avfIpc***_EA^2Oc}@wKohUWH7+?-eJK<;(CEvPr)pAzpxu(+X0TPa)o1lcE6sR z|)x8O{>5 zJ}w#EbUgZxp6p&oR~&ctyvF^l6c81-8yj~L&iy;@c^4J&a{RSUz!xem`9lI}qNnUZ zt85HCz2XDZ3<`2w)0s#anA@z+H*Z`?lES(Zf5-m;iZ&i(w7$SLt#hQM}6oxg$Rm zGcB*9^5y!Q-KJtrWn<+zBI_g?$H$M~@qY`RLwDR0XPcNQDWijc5uY&u&@J~WiLq2L zo$&8$@5>@Hoi7wUo~6|K5cT@>p2ufY{X|Mr1t@6NFwQ`PDAgowGpQ)aH4a|GC;Ype<1>SdEY-h7Bv@8(fDdt8iMI zQUTU1yMsPFwVk?(;ssL?b`#t+-IV=<6s}HSQ!xdZ&H?xQ%8mt)a=<;Ozk4>J)1Rts z<4%w-W!hB#Yy0{y+{jP!k53T--nBr_r)=Vy*H}9{66}gDT(s7@)uqqcxvhJyw#jmf z34(7faO9!JX+{*8rPs~KBuKJlWK!w`?M)F0uMV8*c~Dmln~R?ay?x|qGy08OB1h?g z>o$B37GiY~A^&Fb?3Una$njBX+=C>Jp}OFPR4x!v8wMXor}#K9V6)$Kj%+gkm{nTg z;ZpqZtYk9=#-Ge5=H_SD%@R%x2q_~biRG2y(%!G{@SnsoA*6$?N{C^$w!_HF5U!z* zd66b;S8uOdN2!{t&DbXCbESTYPCp(6u--ZcU#!~}J2*6bV|XeV{owpuuY{aYWxgqpyW9Q=C3Oly8$iC+cj*|r+F|m*q9ci0 zZszA9!U*9AV@bZX#Lnfv`e>g7caT|q0u z%wtMJR;2oGnp}BB`Z=Xy-t9b_HLi)Tw21YR$Jqi^vUo4$43v-mBVAO)}Fy*;zFGF1;T?K_@NmPvXUK2?`2q zX*U$qU_$wY}~LZNXo{n|*YFB?W{V6%uzJD-ntwFGz$ZtS+yBqnob%aIo7u5*_vgk9TW1`l_zT>hf@oz~!M^S?}skx3n@TaAp;Q-k`f9F7Qh8=yT}@ISG#bd@VMsf$i1}U|SX^ZV4Ir z6h3$d7QhA;@E(Nm+4Jcb`@nYH{3PKHzzN)#26zIWVa-#rzgo3RU8DIE`Nx#ML}s!Q z8u{-;33|3EJ5+PW9nb-lwNye%W9~!3aL4Mb)Z+Yx&)oRB<6F~4rSC}*SF0qVOUs=* z#dUkHu$8tdKtY?0GyghBAOXR={QSyl;~lCjbMHESj|%gfPYU!YtBrQN2cHE9=SdGz zaYAp5>$Qo4-|j0J0I%$3QhJZ77`{G5F9O0qB14VQ4IbllvoqI)9RnVmk5u(0@&Pjm{3j9r%%qj!HJK((D zVdp8A5ApG-SQ1~lUTkvw%;xYFr`~-M2{>@kaFHJBRqR&c(GxHs{X^%^YW{+%0yk6Y z>gtf1k8t?jL|5P0Ul6072aI|evS3DO0_&0Mly%;ati*kPy>f}{s)WtnS6#EgDK3@G zcOpy6i&q_3r$g_QX?`Ojyh#oIj92#;_Xc%yrDrPLmhL?k8SX_6DxnbKn2BSZLpga$|8DiT>!f+c9O?Y%0OI{Xb2FP9qwIi60+ zl%g(cmcO*FN2$KK{J&8~j59Sgi|m7&f5*brhG6;}2<$KX^(SVMW?lZibp?Vh^C>?+ zBBbvWElgVGlXmOeEFbyytrMyFbbDo3n%1A@0^q6O|H4yMP}qmPTJy$P118A!EjH|? zw%p_X4(Tr@)SY4nH08!G>o2Z~=H})ud~!f9aRvQ4`c~V3jPaTSIT#~vYm4Q-Cm4rP zY8KQ0$;1pK(_{DlE9~_AvW8k$@5~1Cldl1#dTj~Gzh(0`=gyD=cFh=Hw zjvv)QzRSv~+_RYaI^Wz=nBLRlmjdFD#YLO{hrGY=iuwr~hH)E|ZUF(2mJ%t61xX2M zX;@?tX^@tsR3w&?21x5G9)QOb93Azsf2luTUmL8zZBYIbSqf{|T}i_iR%I ziorsnal}QX88ChX|C6(GCg(E~IQVH>^7a=8zooemkz}p&$h^dm3xutK0O|K5Zi@;J zs76l*eGFXk0830T!v8kXUnsppbW6o1TmF8YZKJHuO=ETkM@I~*TrrkwqBq_is0a3i zdVo|!33pBTM4sHL*8G~wOyJD#=4J&bsRxdYM7_5W)H$_I3r_oe2tW~d6_?1;AZ)hgemB+2dhw}y;i2lx;frPt%XeY-$S+r zE9O=X9T~M_NX~8H9N{pCo)Luxi=B;pm+;A?eBn=SJK4ai5F~!n1UyQRMl0CmpY-9_ z!=8gH|C_ZhupZBV_4r>kAx2WxYHH!wvLkH?f`FPDMn;9NJK}S^)=$<-gl83Ppf6&% z45#aqD1~6<<|KkK6869M?W^>7|C61IGMm(r zdAqhrqVu0t|F2>oZu(u2ni-5dAev!fwR`X|j7^TvTZ zkmLz5Oha8=nsAa!f0wK;I3QU5vjh<%%U7KF{>tf3@8pewdn@ zlQYpv+#I~nEhAEKVd>?jXJ-RU>?yeQ8vkFv_a{sUPv(*&1V=F*fUGXKlh~X^kefRe zsJN;Zi&bCV?Eg`M|AoI)K!&H08}?)up;i{kq0XUG+4l8o=0bAfISq|ERQYh3&D7<0 zjVjPJt`A7A%PQO}7g$!)o=3@h_iB!4h&}|nEQ}zu9dG<_Ss}HVNfz@A1WN-p0PB(y zOm;4Y7F%_9|L+pE9YPVeE@`57FOotz8JUCWSVHS;%+3E^ zBGOzFX|Xs1o$65;cIp3mrgC=CT6rb!Ts5HhsNxTt1mYt*OMM%bp_Avy+Ty`^kO&XZ zzKw9PF(PSreAqs0xAE{AOWAoZJSfvpJ&(^q@ldX7eaP{%RePd$!KagR;@!ug$1dPHJzb5t05;@q+oD zISC2(}Rta2m-X+o}^pbLLf?fi%=y+08X6}6rlIyF>cl{Px!4cT&Pbd=7S z1HrU2)==YZkOc43S>-Bx2%LipV6R|~WLA&!4Qm65i#EUso6aJuLjt<)9 z0&Jt^oH9+x(-Wl8sX>X=US;V(CpeS1b-n{BB&FgM5wl$msM1p$ot=eI#hw}E&!PzJ z5=_&@`@NvdoiNIKn?t(dyukFbUbgbTdf7_+J5r?NZu=9N$s!HNq2?&I$T}hCoU(8@ zkJQZOjN;_o*Idx50BsxaRuB}A>dDg{9$t3#AnmgMYx1Z_FWG<9xUp^p8Ar!Z^IEZ_ z)(S^6ne~bDkRQ*e)?80c<_V)ucaC(In^j?g@Xz;nk0oe^kGMHv=RR`&)yzouK^p{R!xZ8@_1> zdwu;M$l}zDTz?4Rkj+3zb(?VDk1;XRW&-FpC1tt$ON$R>ap{y|YE460P@KY!w-Q4BpV(e$Ur7)I<;51i$igq+S}uvGnx!bneSEAsLkfaE zy#zI95TMmv9mrf5T~C?yAV+(f=V^tRTS*vrHR0Rg6bYK5A-D(JnYF1Q9sHk6zYC}C zFAy+GwaPfSEL$E}w5n_4HgL1&@-{TA1-WgRE0dx3coMaPZWpVpV6CB9+U=sWc0z8& ztAIyb`RqsDe7*S@T(^9XnqL2(Ts_Uody*xDqbYbx?~;hiEAe+~pRCV+&`iq)0ax*} zK^0(YU%!66nakrd#Ah?~!sbaH3a_yGP+`E)__~Bt1Y6>k6&_>$ru*(Pr5Ecka0f2A z{iuN8g}x#EC8zVzqmS_u1@=Q``gpyjcUOiVGBL^6fRF|_Nz^azDORUgSXfw2)#F*V zCk|R}XNT+A&HhQ1Du!6aa_HuPHxn~g$EsV9_4odx@;(WitD`cmE75n+sxT;T`X+=D z*0kJ`m0(omcPM;%c)7n{d6!kLZ#10vzKA=8n6il-E`W(4eN`NM6Af)QGP;EG$~tLp zbVeIx_SgFwuNVvG2MOKN)4mws$4ELr`Y+gtw%ystp#R%yIj{h1)tu%<3h7QSs|>U->bX{kV4 z=bL;!w5hPET1=xXw5ywbcQzyj(I&KD1}i1I=*s{gFy3hv67oyMl;t){3v5OtY# zJ~`^jnWflLUQs%Q{|5##=Z9f;ms|hc*KAlD*3(Q78d%fjG zx7^EZOH2t>|d7 zHa@lXZ@DXPZtkt|7ccte7jTeMHX;w1G3s{K5`Dh26cu0p-tngUH`hCM)^y)!61*|DIFh;YgQJ=s6!2KVeuH36@TkPv*Ko%aD@vx-V;G(8AYo*QgdY7P55bsa_ z7JbKHUhba7Q}&h5EN-%@<-ydx%(&lxU*)2fNz+zgqV~BzxpvVm1U`^sB|sm@&X{Hj zn8j8FJL)A*P&RNM3Sc6N^-vqb!N>#3Mc`;1L;i!{_WMnFwbdD|bh#y4tw8H37EcMXd)iRFIN$r1y%tyGo@c{EUBmpau$ya;-=%N=9U%C?7R;-KzaZ*q1DO zt9{5ScFv=p5mC?H%Dz{6fVuVU5H61tBwlH9LRLng=l%`7|G-wuu-idaaaB%DurM~z z`kKCU0N&)v;+<&FvZ5K6f$0523z=RM|2H1{HkFux-T>TqaHM`j;=sp@ctG#t0AZE; zk>A7S>YhWq7<=X3(SnIJng2eJ0|FV{AIB1W@L{ulbm(EY%okF60bC15<0O9?j0SWn+kNq@R&KeMGWF72VhW)BEl?H`@L zT?_vFb!26EVbG?bP37pr^GvlMyIPm+F%~X|r1i(KY}OZpvB4zYnn*Rh_{%nw0+V$w zKRU*rxz>yoMG{;=f7Hdssj?n?Rf>dO;Leg&Au{3vF8Qm3s`!*tOFJ#Lop~Z}?tem6 zr7*R11~$K9(Vx86^ID%v;IRjOpKvOZUZ>nFszDN|cM z9Utl$$yRl>q+aUpw}6xZd)K}D>7S5du;8beb8q0ZS#u6>v8*{KI5ca{1@1N1v2D?0h_uRLRQrPq#2_>1Pnr%M6vO-2L5Zc#2 zrrH|~Zl+Yzk{kc~^m14d8>Aza%q(YdiD}4D%zM`#1ql0Iphwdp@(0_1R?Mswdo=Jv zUfk5BC>9S)-0pt3^kBRmOY-9DyX@b&lB_-O#nU05x*dfeDcz33kiu?95eT~5QPjKC ze}jac{BkIEs+DwrFM#VDxOplf*aeW_pGw(}I+vi(e=H#S|A*m!e8+xhT&Mr|=hnd- zyA#O30IH;3pCQl%|C2DBdH5kHF39lw+wptEu&Op5{l`b4n;phnXZQR!$S!~N?)W{c zj!w0{{!Q>p{LPN>mlHAGHMIjlggAhv_422GYw1F-`Suc zrS>&|DS4~I-Anx4F5(ifpQ=9W-f|CX^uF}131#2vFvuO+r9^ri)Xz;y;7Vc}TW54Y z4{>Q9AF;3SeilnOm~+m4A2Uw(a{B@1TyzAQ(7psrSAs2WP{PmDeTh?%nYpya}3SY4LX&5nUIh2!4+8hWVfjMr;_8=|mpUtBi=ubb_ zFQt+pN<3GwYM zqxKDLZ2Ik#*Y5>X<7W0K?iyT(@*`ZS+l8@@d0&)mIQF_4EpyP?0v;SnRbn}%tY^5W zJdG>Sz8rW13}op@(Wb*o$UHqd2%R*(1w=tS!~J(dZI;y@_D5a!OYnTm$zJaGhkG`t zzZe#q!ua3-2AUTerfdw=jMqO3x__R>1JYxBrR_J8_9afxrsh%2RGrkFb3QkI@>kKg z>3eY1-SprDyENc}5%G8P_M8_o4HsDoT}cR-&%b3oEw&LX@o2H#ZkD}&fnp;cP9gjq zCu^(J8atS2*aLYc9c>im4;_4T2^L=bO&$2Ra>pfMxY4=TVN~H@jb^Y{o-=F5VgDOy zZwGFgvlzjrFY0t|aa@#c+Z4@tp2NO5|&C%ZACE8>V@w{A|sM^wBxS%A4*s!pI$W{6n#Sv-pBpT7MVTNnHbI%)c`8t{&`{ zAV1gZ)VY#7->h6#DF|)>=u@c;N<0hgd^j$UQ?Vj@S;j)AdA8@PJehh05ZKAbiC`H1 zH-P(pMv%WG$V^l}+ft|4czO;x z$xcf<+uN0f-uCz$VhWFf4O(pt&9S?$5?0-z_(d0D3CZC3N#$;g)voivcK>`>>^(8p zib}_&N|*7iO-Yr@K}>7D8Po?gQ*4v61ORq;+nHBQ`jGp!v}0Jt(WOAnzihi^ZLC&v zxRYQMKn*zuN@gKhTTgv@;r=CuNj9$_{RjHpKamK&1;qc;;>BmJ=NK>(1lc&sqQ1oJ zcH8W)_Ct7NIqH0?^m_BF(k35nvg6K(_O4XBP|SkZz29AUA}rk0N524}xAUC{zPhJU z{G&5Sz#A|4ot%cTP5R*jNDrIv8O)0BprDjm!RN~Lr*{*oQ>nWq>hyf15&T|KymHSx z(84ay<&3YQuu|f3iC&JMeIu;eDxRWGM=%$o6!tKSOQy+pE{SG{w7<(U8nDrW^Lf;-B%a|`=hdJy|GGqAXMSsSRr81l{?H7w>7`yO`bU@O z&E5bujF*5*Xu174*6Sp_j$Iy{n68tqV!=L{f8w{)V^>;#CBY~x>vRn#38O@PuEr_Z zYv>-CnVGrLJ4I=NeN6u|_Ie%<20soZJ@V}w{DH}L3qc7|dGKyug9?!cN^H=VIwV zFkN{2duw}Sf@at!i}BSBnsBH+JNFDZ!U5`Z+@&-*)YO0YoX~W1wUr-a*dx$h$ShWz z46JqoV)T#c@3AsM+(*+5*Nfe=YwWC%)h0@kdEFl_mGYTY)q5b>3-#{X+q(89et$ZW zD-+Y7fTIxcOx1i5jsHQ0mB%BGOx7hAL8g?+*qn`hcTZ_uR?dR*U*68S#YGBHTa{Vr z9c6cl>N#B#X)jS1)}np6L#SArGM}lae{((I@khiqs>~g^Nwr@ke) zqCpa4qjmjt{)?3(6>{h09u5p~RU(B<0H`X_1g%F$D*7Y$U?s+NhhZ>eZy*inzvp&U>_UiR+>AH1cXsVs71$u+$3AOm2-x zZELbF^j6U$r*S#~jSPd<$&TN~5(Moev35iap)Y<&Eu+CJ(hz1&h3wRJi~pb}FQXGp zv(?s)TcxIEZQOKssk+qOCkJgsITWSN0V|JSmF1LDj@?B#2V3#=zIoTw$Zy4xcccRO3+*1p|EDCB>HjU*z)E2iIHXI2~t)M8v+24x41-jeB#v$_2hJ_Pog<(0pDv3ni zdu@^&zgm1BO6Ku8O9gn&e&64n^cJ?QG53iE3FOl}Lsw15>b#v1otj1x3t||FP~P1O zTb~{!*c7kjXlzAoS5%z#08J!i)k$LY$$N>9@9UKW%@?_SD=KQ;S~mTD)}NroP|lGm zBN_-e-~D|c+{^6WEUR99zu z#&j-BPH6b}y@YGlOE;6|nME9DWbH}(`k>#iQFEY5;qjl}O8jL@#a|BR@O@+;t8?TFClL% z7eY*r>V+R&?sHBbU)KgCNLqJCoE?sRbBgq|dt+V3wh=#%2pMC$O4}IO0o79R7%=L& z{rXIoy=O&a=lBhkS(l^Cfoib`MtxteVo7dbESDF}rC0Yk7VkBhvPI@cD=2cIDDxe7 zBMI6mt;T8i^oA z=%IfsK?8nzUaeBuZ5)|{m!Phhp_hY^5Or@g5TwyTgV98B|MJPg9HHVC49Tt-Pw}?P zCyy4E^yHFj#=mC-r6514r1Hja+=;i0Yr))|^7?<{BnYa}9$PqSVg_@0!)*ll_RGJ? z)CA&`2~ghq_m63pRAmB6V&6!nex?hFV}kdt6iu97A2V2~?ihZVF?iGsGMu8ZF`2er z!_5)s+;-N0f#LA+BT3=A|6Zq3A??&X! z!8DHN!CJKeA@o|~TKHdWy^6?gMcMx+$SN?D7K4qv?QBUl5@u*)gF5_a%NdKlIiMiob)la1#tw_H9$6$d6&KZ zCe^^P#C_|34zkM(J{6|Nc%o||sr!LaMmdQ0Dz z{*>4fVtTD1(`^n;OeyqljwiCr_)x%C-n)dbS%xlBG0zr|jwB7Nl=Xuh=kUAF~&zj)^2(^r&%h@nu{mviD z4}SmDYXfyMc&q3iA(LnUJiRXgu_3ZU8r`^5maQ$fx^C0&7Si~ycMI}5{1R3h<2oUQ zt&RQY;MOqtm3fku*T2m7nig#xqJ|^oZAXt$Fgkr8Kg_+WMTW;_dk5tVx68ZkPj>Ve z0|FxC1jU_085&sj$!O6X7Bw!aoVkdUTFyf@j8+U;F3qq&HcGx$bGRQ$Y$JI1d#mH( z_KFq#eh}0^-7dvOVWX5|#`oU_^x7pK_6d{1yf^g(?YDg2%cxjS*9g86J}a?kh5k^C z3h6uab3f)A^7>L`aKBA*xz_)abcK#WZC?I>%XS{1xz}wJ-KWGhZq(=Rl;Qc7E6n+` zVQ6uV?S4vntwW@sSbs9!jvGoZ;KZe4;Aw3j_4Cy!KBa*1wH0#uK4$TiW5g2zN$Vgl zY*Y`m%CDU)@q=*ChN@ouRju~9`%XGI_tW>~1SZhpeB-m0C-`=#Iysrjt1fY% zvE&Z!`5t1L9!;AjKluIAu3Luu^!*mRO7Eq=+n}HUU)K1f74>f@>(3`)so3*ZiWB#c_-1RQUq5~03-~B=3 zBN&4#^{ShLj{W#T%YKICbDdJ%D7A2#u&_YNZvi)Jx z-`HXOrx!4xuMHj(+yM`}5SrE!fm(bvozsIR@j#b_(+z@8$j{x(IqVB_GKT3w+FTaD zb{DeFxI$BpKB3Q;a_Pq}v{z$nIuCA~0JvVMTpMqWLU1!gM?6>6|jDyQ)GAC z53f(G)QEGpHMf#&Pcy@N%GAe#95%(D7`I!T@rLe>K0yl6P6hBr3dCQY%=|1M$vIBp zdx*5lnft+lFsT^yAz!<#H<}Q8ffb~_LsPS#6%*t2LjhIuQ$r)bhEgkWA2<;Mk2uls z+_Zj8_VNtUgL2hxSHC_Ht1z9?QxmvH1X~F|y+7_bhu6tGT2n1;Cw2CgK+J)&o9+*=Ys4JSGD}%6L3KRUSmG0;1bbXO>k$cDxCOn5fR2Agy$>Ip z?O61T6lfIg(sDQZFV0G39nkZehi9>f)3P>W@v719)^#+jYgk%~! zCV@bvwxN>^%)>ROMXc0;7vdN(J`l`KOg;CTs;sY*!Z}SyxWk!->)ckHyLD)1s@%32 zKA&rPdx#+Eq^GC5qhdqJ$y%-B<=Q>BWxf+qf11F|J>EL7;2#6d`H>K(s;Mj-ih82; z70!m?8glr#c_RCYJj%TGPl)raR=uX6k`I{#A1fahlVt2BNH8$H9efGWEJte{epWbt zwJf$^`hKL{59{>8@Nxvf4ic_+^Ow2*A=PM=amW)fx7{8dz_|ROP(td;ZL0OsFz=%! zjUgWaZaTzv>YrKPIgC)_NM1{t$D<@dSiavxWL4fM5YUD%IKq^0Wn<55|fYl(H8tqPh{l#_GI2Q}Q7G*KR|7UGC0pEc zz-Txk5)c6r+n4r;Ykm5Xy@qA*3cy|lnnjD*qPi_$OP7QBE`&JUwd*5K8t1fM32?2< zM@l>+pJ2(a;X#3`ij8_d+ocsn8n6jAm8E+Jcx}QMfzf+A)UUfe1~Lhcz%EZAXvnRA zbE_g;XvrnWY9s!8-|A$n&7GBKcsWmE{;;>C{#*ZRwo32*=1MtI=fuXO2)>x2f#t)` z%*~gKMDQ&%OHH~Apm~&sG#e)V$OI|tjvU3_jFAUpPFJIE@1D*J8>d!kYIh(@Kh#L; zR_(m}V<8ica^ms%w#D;Kbdj zrSmXK3@TlmF!fpZNNC01kr2Gw@)?v)L+HVk4_;EdIN#c&5NJFU-$!|)9)xZ7d4$cr zdnXMW)$RfU2tyxaT%=NCcYjUK;WU62K)pwemW{~XH|A8#RyS|%ztR584{D?px8AdG zji(g_HNTBi8gyaY4{WdGODWAh78d{b&hK~kHP{+~N0DD z(vZ%qkka>21}1!#3Ft)++VIou4ioBYO{N?q095xrt31n|ve4cyy#L@~u5GSZcPzqD z8dfE_yzXYjaoze`enO~We%8bF9UVVsvqIeSlEK)?vUXkOnDuuom8~cJ9L_T ztn=$DeM6HO_g1a0r2eM0=v#H?gm0?%*u(Wsk~qiRbfQ4`LdS}|-dpH21HMwLqrfK(yeemgQ8?P5G4`vt*rM}{P3nrvTV0WR z1BGQz`agMZ*M1Yfkw^$*QMt$7UMS+~Vr``OQOB&&?o~dy(_?F-2`;Kw+S%}qGgSSJ#AXR5Gq@A~rMl@;^{75s zjOJ!;{(zgPCVRuut*#t;m+>aPmV=+~ztI2U)mkHM!0C6rrGjIT{n&r@b@%a#E47cH z`0J`=Q5Rafm|LFjiJKNjD?x{(y2^4%*YCb9n1$R%nf^-gc7446z+2lgA3|!s?cW<% z#+$W!V??Iu;dCj>0}~8tTn0d#W6OM&*E`+Q5@|w}sJPl?HZS;@F=pxIWoSvqZO6oE z4LZ1#jSsfFy(#7xiC|MKXav8n&UdgiX-?WnEtfgI*_KH%zwXkCa2D{wMOF4J^?LW+ zDLH)_SedAwr%<5D&pjr+B~_?7-a|f}n#`kzjUazJ+3-yYTqLsY5We5RRona7X^AY_ z!rU^Oy-xj4#<<4)Y_m7ur~|Xjj|LadkivhPt~KGP`SS5voSL(46$v2>zO`8frJBQy z7%hUML$U-t?xqR#kpxeHmTKO1r>$sC3?%;OSu=z zCmDrz&g_#t^sBq+-cvKn-}L+2Ck;Bzjwsc*;(#NkwPumd3Nh0=sHq`(oxzV+sM_I<3qjGOkFw_v=Zp z8$Kf@|Md0sy3}Xl=HDs+8$MA%Qgh`;C&~F*w55uRqZ!d}r6v|jsMEZv3@SN43qJGN zr3iI#HU-9NYSyOLq$}-94a7Y6NwW6wl>f;K8Iu5;c#7fTa*|Q+oqU&I98q1{GLv$2 z_erw&^>wq4a^PH93lS*|z%qUuL1vO)e8(NB%|&Kf+l!#z^>H01hnUI!a9X^-7zQqX zNO9U%E%ptTxzCs2JzO#6EnV@FSs24*RP;14LBwYBty;(Pk2-tuI6~{xaTf1R1TbBa zMD+*X4x2ICHjjJx}wPRm!Zm4CO54)yi)8!T`*gi79 z$_V|m)I+Ek@5}sw96NntzF3aDki=?XugGQG-bT5UEWF^9I-l>^NFWhTU*P71lr?+QkW zJ#sVTlFU1b666jdYyr-4Xwrn63{*ho|4R+w2qrIJIotKam0a47M@9<%+4= zbG{$^S;+QxcCetQkC(D$>{&4a&G`#^q>CQLEOJK;>T%O&v{n|ZCB3ROzU;-L3fD@bHPe?>I_yhxt)QzAy3UHXBfbwF1wsW&#Wk;lY%nl)d1{`2E~ zJ35k?2jDnEYxMS1x0AN3U~Hh91wY6nlDo`JA_}ig+HXK`7|qqL*w5qDDz~vVeZb3t z;R){YpZERFW;|H9M=>eN2yRfypqDzXHyy(nhD)&6u%hfuCzniz%6^f;#HnUSE96ky zk}g-hq1{haIB=&wL6SzUUevcPayuK|YDd9}mN69btPR~g3sL{vF+HW~VAY-`I z&Lc|W@_OZgVs{TvX+-+VjLL4^MR!nsP@O4{fmy;~KDwA1vQ>!N`+rBz-Arhc_JUho zXjG~8#0p-oN<*8S7h08IA&nDD`m>IFbu8K)owD!BP6Qiex8XG{q2oXuVcgVMz_#AD zBDA5Xsg;=ZP+@vf8H9*Re@3DN`yODZDBezXTx0ZpjSWm9VToSi>z4WwaPUlqI6uFa zlE`Zn5Bzv#TvUQ!9uY7d`HM`CF%eogqMc#|34Pw2&Hj_S`AfarUZ)!N&mYIzcn}l8 zEcTBIy$*Qol_P3K(;pY-3Z794nLjnMuQHboP)a=ZGo^Y7oS}NCPEEE3kV5tE+SY{U zQrL$2WscK4qEzf+d50!2ZX^fj5j9V z1{YN^8ziD;XRWz(Gx>ShFrqsQ*5R)cFZB$G^$a=qP0r!>fEvJOchy3Sz~SjQG>v1g z@mKZaPz6BBb{O_dkXyv?WY*i8X(&Un&@{Wc$V@#n`~3+#$YlQXbYndCcNMN0_X`q$ z7MZD+m;<=C72F`ue)Ft?>!u2jPH?r}1xheH5Qjt(Q%iBQ`EzOtQb}2xngon`{SEt% zd2k_2rOZ(C>zM+E-)3So^v#lH`=b;hSh(Mc%X_v)Bc-d&WditJw~|kCi+L~t+^b*P zK;UBpk-1yE7}D!UD!5ZG%lCC)x`O^5s9enVia`ym{|N$Yb2+jL@T-c8Int-y^QV3=j? zzu%$9lu{`ecq-{Xl>|QOmUQ@X$wVX5$2UkNufF*#5dc6EJ zbFa@l!;k&5r*`fmeS#596Zw+T1JcQ!Pz z5cgUtf8y>iCcWp9;|wvjnNAuf8&-yOAr!Yj03FrO<_NO_d5u_IpEAL4^+&0mPqXre z3bdAm(@JTC((w~3zN&M*wpi1onpNIn*h_le?Z?AC>?Id+X8Cbsqt=4_gh?_OTJO~; zQlWOk&26+R&0wbtEy}hy-}PtO+zVW+fe0VZZgn@F@z9x4g?XC7Y@XQ5bibJltS3}V zKy4*(<8sVm4xioeN|fHkbiL`sPoK@65h1WTs#e!e%K$k6X8{K7HoYG$;i+KD`Ua9> zrN>3SU-F&iA+<|`Y?67~MuvU@egk>+b47`>HZI$BNqK&x`i1KEj@*EEOv{rD43t@y zhl*a0@MWhM&oRNiQLkqoDtky_IvXov%T$vzg&e*`$i6Q%aR60)| zeT>*ob8|lNnpL{9_43^|+CnqFEeFe=itNe;J1JZrQ>(XXvxUBb za(KI7KLd6_k2${Z?UKxvV^>{?W4@$ytTK%rCvk~Wr>M=T;ET&)9g zRGe+a#Hsa4w2V$Nj|=ju@Cg2Sal5G@ZS-{)xdLBLj2P=aYWYzNea!Ey-ZZny;x*1f zGiJP`S?3BqbR68)ZS?86a(SiSA%`i=)oMixb|7r-pnQi!liZMk2*Aud5YE}gz*Sg2 z4mcmFtTSV7E{;<3nMIqcR3)J;Qtr;$lxYfD9n4t0;=2Wh_SqV(@+%uSJ{sOj`MRlC zxG`J$L2}y4lR2OgMM$qDY*u%e2_nqhMQzG%;gw@=&ob!i-fOXizJ=yBZAoRr#W26g z0m>ZH`UD4T7^)1-(e^~q+}*Xo0s$KxaCxkL-U;`K;E6jQ=$7Uu2mJgt&;Pe!x=Ril zDj2pca=Uo(yX{_qVetukp*E7vCy0>RyH4q06rp?fU0A|wt>y3%-x!Al7yhWUg%^HX zw@@TpdBnr`WhcoJ9SJ4O=-4B;nd{+H76CRMO@?v3DC@#(^o#X}5~*&*RW?vZjZHSM zL8?#a{%282U(udrpZfZ+#yx5ihVD?&Dx12U=pYE$A@+-3A2y@A?!vyK4M%b;3U%Ny zHni%`w_qjob>MQq96^xR*IA(mB3xpaqJ+)0+tNHfp@JoS83jC=3gSLK+ik}vhA!6Z zoqQPOSYH;yhN3WhQ^28kI`vz;u}f#H|2Be?)+uJg(9xFn ziPziuase8C&FJ@%c~aH+#_gQSSkbuMdx$gJq`D4nKCgBHIqQjutIgs#32xaWH|6!N zv%YEmrCfl)57JL=%x6IwNHCXru=-(=-D~aYdai2R>6yahaL>HV!m)!l?hhKIM)Wx~ zeE(x&W16(#_}!OLahaRWo9)G|q{9rmcr<4JK=KN}q}!xJpLlqQjYT<$Op!PtlRJj7 z6uUO*KFU1&}%5bvP2;$MwH^XuH6k|!sn_g9E<|O^}96F zbapUWdqobsrQ2}pe5+Wg791yux)UeV!xxn3npE)>{z|QBG0}t)H8I=)2F9 z9M9q0WbA8cL5@+F#9%U;5zm%y*Db~+IT7oBolp)Ncno{>t%3I^;;mhq!XR3KDJ=?; zPA{6oxdZ!BHhTDAuPG19Q|(}_nOx3#K`My)Ok`e_T&$mX#z|FccSqYOV$f^HVDJ^3 z9_8zgmHnJJ!8V)3Gi&>ovXfa{b0U>qeDHlBQ_KQh&6+Uo@&$Tb=H)$|&C}OYhfnr@ zAlHaPAX3K*GbW`mWGtF6gp8eMt5M9+6PHb#4Y_N6b`r4ao}Ruy6umwyt2kN5xmB6i zUqk{XA;HRm$OxbIfIAUS6pG-2Tbn93%F1UK>1K|PiZU#Zv{2RyLG|dY>%{sx!GB3* zVcodSY4pU0FIm8DI-@*ye9aSO3?%(H3W?$JawYK=J{TD5F*TrOF@w6MJbAOv>P@++ z)*5VNz^DsD_}Ok{N*d0++t0fDeRJ>%LP_G}8-vfNtqO;H-Xfyp)1dt9o2;T3ox}9? z5SxgDS`D<|m{g9cGVzazDd+knr3V$Slq~2USY)K2x6ce72zV7KpHic_60WtOq-DxaCevDxi*@-Re5ibM3kmno+Lw>RPTHX}D~@3g7Zzzp;k84Y1MXP=7- zw(lEPnRPl$#lx;4l(pU6lgc|7b+W`|gmZhK(&QT!xx9{9ft;r>ji<0J777GY z<#2*SvZw*>eUz^+7V{a0^?s`Ii^}PK5=Ga*e!IcfH%$I^To2Ml%xQVUo}RTA-mI8l zLDg#T!dB^GK?eM0T5g6v+GZmbeJm5RziBl!yPIV+#VsRduE2#Z?UAp<5Es{Qc$uYd ztjS*?PMAEwO9>3WstAV@QC+2c2m8x{no%vNPR|KK+Z?d^Js;iJeti0P z+6T^eP?Dj{CTAV-9y8>zN3n%@Y2<&GW;uKYL#nN*k{6}37^F0RNeZ!lq`)G^ntX?q z`J9;gHLw**=;VQ>PA~hl@81ib6Gk!5JVYS{G&jmP>Gs6-G6C&5j^0oMagcCmDdcp% zk2<)DDEVCWCI>v3w;e^I5;6!u@oF&Kq+Z4B5gWh599plU-P>J*dHExM4%<~*RQao? zCNh>5{^*UnX863I{8)Wziy?v$#dkZQ*?nOkvrMasK88z|qvhS4`02N|FUJh*$47)F z!~MM&l6BWVzFqJYZ)QlI-%o=4V4wMnVH7%c{V@6Sx`r$QkEaLmA=5~OBO0Q)JYsso z^h%&ag#w3C{Ej>6VRiS*EQSV^%~*Q6xsy9SN$)7+^4c;374%_{8H|exhbH6z-&Huy zqMU?Lz~uwuZYFhsU;!t^hxQ21lakmFtM3440gFF)gr^5YbrCvxe}wfGF$pb3(PkaV z8)f58|||)5T|~JnZ;t&y> zSZM_Wp}oU5^wMV6&Q=p(6WuD!KM=>x@Ae=0L!n{yuWpepFkI*DOTAvgQ z{)_uGl}#JLGEakq&V+?pluA#K}oJdN-?<% zE-zF#Mp^s(MKTy;4q?$4_z{d(K2Iz)ZjB7PCaduVBY2z`7r`%10_|6c*N1X4WEB{KeNxB67bag(`lrZv1%Nh2iOSRk>ze zSVzU_Ri4VdE8a(|Q_~b#8BQm2$Mf(3@1spiREyc;qSJvF-LT^k>#M{GbTeEiQeNcV zi(%rWZW1fSJlArK%-g_3Ku7|oAg{529xnJ|;!|!jmO8OzV$_B1MB{GFaq*oU8KJr3 z7m*?TSZTgkU$dFC=$56&^P5mtdBnO{TE5JRRb#Nbu8__MR>P@N!aGsWuc zF~k!@N(>Ht?)Vh&9#IW@1xH7Xa-$FJymYg%q6N451%`pNJ`+;psB0eW)eOay zx-)9+Vs6PgO1rd zCws^BMNE@vIPLt&D&AwGA`gR8Zg&2>u5LiAD4{9Ov9tE)(Vh6bw^QjIl)nIYSHT`c z5+pB&bMj?Exrd>}sKffkIUPArf}&M&+b*R6r>g>PvUw3Ym29{OPNENt0$|@?@291Z zj~tltHw*6gus@ydTwfyp{&B$Z4teAkXwMU--9@CAxoFDd>JQs8@;2ouv$PN7-KL60 ze978a*Hb3nV|^`Wit$sKC;m}=r(xyYI+N>8z5$ogGFMWY#c0o^7$%n%_f=g?RZP^fxW!7l4iz+LEuaw8fHL8F}kAk zex|js>iB~_q>+v`Y%)scPJsfjE1xsYu=tnj(1O;b!st-Fp;P>{h1rdy~Voyvc?4&N)<}u&lD`tx&qZ<6P35 zs;mH8c>Rd6^y52BJlGqvMwnuX(8m=4G96rx3PKWQ{ivp#318Sq1aYEir?Cj+e8Yh6 z5gIYj3@+XfEGTco9=Y=F)y9_pnWE^)EF1;jvPCgpcN$xkQtS(8S=D`coa``@u_wlF zt4esbG`C0He=Rb0eB9cjBSz<}zA!<_V>B=%MeD^|#+XTF#?l+_|AS&TkN51?TdohM z?o<8bAC6|*d7wDq7LNrQX#qiEbnX->z@GWT^PY|{-EtSfRQW1~{5@~;kK!fZfXg_Q z2nHs%lXv!yGEZd)GmsPO!*0lPz+r72H;Ac|?<1H#>+NKjBHoizo(^p>&7*Uc&elrm zOMGD~KkO(A{r9J9!B6+a-#&d9g;AGBaiQ|t@Fs`*N3CwW0c(7@C$wbdDC20t$>>r_ zSUgeh1l!_$kMU!XgN+-0|6T4;QW6#-0KpS?42^AHhNvwGFGrnEc)>^^m zy(pqa&=L90VRG?kHYhX(-r3v73KxzyL}Vn?fSGUp&&-p7E!_NLA}CkbKzS*l=P5F^qp9%*AogGL{>4k}l-X~LsvF$%ZWH4NxubLfeC*NqqX$k&sx}k!M-0lY%7pC%zTwt_LMeIsX~#1=WN42WUugx#V{k~v02*W{sblJct<;UPV>0i zcdkVy?(E*Vdcwj7s(~=#A~NoC_=_|}OuA^pmMoEVu3la#M1RkzG}!1`@I(8B<_e)r zD5mn{TT&0fa7@I&doH)@I`SNK-S-h0PjC@R*b>C|?%+GoZdw}hQcUY!h;F)T!9)J0|zMvA7Ktb7liQ~$G} zYk$Y7;$kn&XtX3|m+1@FVJk9#?deK56q0dd86qH!j4s^r%jKLXOG(ri1yUh!VRdWh zlVGFInA?~0CjnoRczYh?PbLwFk>-cEPm6uZB;NAUajOcA8nD%e`JXVlU}ALGSJjVq z6qcdh2#BRZUf@Y3X0!SlqktkXvQ2*|{Lr6R-(zM~!Z6HadX4+;0oM)-#vHZ^gXgxU zhOE3e&V4;GgT2rJC`#VT&!CjdNgD+>^Bq{<5Z>rZC=7C6t*qVm^fGYzRk1mDuymty zqxb)5>RTL{eBb{?QG^_#TF#^~ypdJTMRJ_ln2nrfn=nK<H{vx~|vty7uh3ZZHBn^SIF&vrM4q(W0Tq zV)p(+Gz4;`tnkE|ki$|-KHJ|5(|3ee{SAZjr6j(}9qfe*UHS3zb+(`26VKs8%8Bny z#xT1e%f;s__w9ifUiS0Taizb%ke^uYu`vG! zM?$&7DVotw^k_&wb3#K*y40eqnVMF#mBUh@9&LQqrjd~={oR4+zQCMBWKL1KXCNZ6 z@fSPW3C{!Uy0;u5Vpaa@+WD}1d7adC>slax-yC+ueq0XTyXlDeRc4HFz%;Zwd__1? z_PT-_9f@SR7Ky9R^v!%$!+0L6iJZAv^P>^dnYp=B9H*DA+#>jdxr_XG&cUbim# zyMex(h1^oF@UF9jDf(Efg{oz&-{4_dm@mX(3FusA@-dGM*1w667@s|4>(k88K$B1I zUG731usd-Awa%29TwuP8DW%io+X0>OVdf)n%MDQ?EOvC~Zvc2}@Wnp{SM=Jx+`FVj zy6kT@bzr%ULDmBkm$itv0-^(E;*54a+rbO-sm74$4W=Ov*2Fp=E&g=Kc!p3D>k=`g zOLKE9BLm@OyHAy733{t3_ki*8nvtbBc%bm5U+rD^PNMr61LkB5a^OAeca$wN>h&Mn zj`cxITwtD+RfY;6#~ld4?FD+YPibajScbD)CV1aa7m$NyASW&6OkqxFUd)|OjhE(f zL%G91r?oW_q*DH8U&R}ZHaCLI2!A3POdIZj+7qiG6o}R#BF=`qHoz#D#A5PMG56#g z2)Ay-`lJdNFVARuVcZGnjNYA+E$`ulmp%?XeJf_K&?2<*#48_+EYZ`8=Ep}55;i)1 zeUT|Xw`!1f1J8XNc*Sdd=H)2G^=PBPWc)U;pb12o+(s3n-YAAR5|Gcx9}2lJGZ4=n zvSammn`m6j<;~t4ZmGvi5J7MceKMRY;NlRg4b+jm?#qtE~Rp1Bs-ME7Tz5t9^diY;fv)qSzsQJ9h$vLAsniZ}Bak zwl$F=fB4ypCpri0{m2lCDKcG?B)Z>`7`5SFVEzhRJR7wWfJrFX{{1$c0!FXpv;zzr z=0x7lE0nJ%K=^y~Q1o*o+*cRDr`|U-4_p@()@3~*cXpXukw~Yu~QQOcyqYfLFb{CCT)Slrwcm*+8!C+q{vBx|l5wd(MOplNnT zmN;5FNP`*f29)6*(@tunj$x7PV;k}$+=jg2bmjjT-<#BqxNm@zjH$A$OajyJ;S?R+ znmfBlPrh~iP^b|M6tUkYUy5w<)?Re*BU_@P?gBG8KdkkLl4Q*`sq%{MR)jjKD0NjD zumSZ{vBO|`7l(a5-OMGAQNzoM5;Y(54niZB)_URZYR%X!GL$Zna@APFcJM+cu;=zU2JnH0K5$4nk{BTVV&KmK+$Km(|tLh|_`DhWsehtAoH z>dZ!|%zqf@frDwrMK@I%W=Vp|6nIaL>Ha_kdfSHlujBgPrvQ$t*}xb}$5g#MbbNZC z$pAWY)~qwyfo2+Z+Uh7$GOo&Ovc<5{MVNokVr?4!^>y(bS3v;z|J>O7Ad6Z5dg#YT z8B~QoED4Q@0m=o%vWTsx6`jk9a3Z!Qq4L?gH>u2ni?-H+$t=LNac+NPLDB7q3%(RI zeCc58ta0^C>Da1#%pQU~_^pOu2r%^oJwqE(%z1hv~@ff;;y zc?HZYCs2;RbHD}g)m#_ZO0wvZyjI)jg9Knc~Jz6mkl)7c}wJ{B9YxFLf zkKK|0$_THk+7h5+qXQ+5OL+g8I>yp@r3vZ!V%cA7&t9JCJt_VFov5=FB0#q#hOL7? z%Ex@arxfaFIO9UnVkUGKEDWOtdxJ&F4-(yR%u9h@MSCBshlHx%E8}shugC`e{wNhN zF7W7wXAc^0X}o!ZdJpa^(qcs3kds5{(>%en($pdm@?=g5EKGqUKw;cP3+hB{{*;~* z@;_lOVUEJ(qg;In_wu=WM9RyI1ICpejL-NN%a2>{_CYSma6G-Rx;oITQe~gRe-`Op zIWB@*q;E*dJ0)%Y24OB=p4Lc~*9}eKOGU0?{YwF$IcWB<2)PVG39OVWk_|zl0(1-w zw4QgWKr3#;wr|l2WF>h{mzLWvTA>)?3a-h=JQ09B5Ra#ry&E_d)~CE;8&l8E#~cOm zwCSzjyrPA*)(2TC(_hl^7^ROe0e=l7$vn%z$FYxxzKe}5v%bODZ4Jt%KXx&mC<=D8A73(wEH~%gM?>GKUZ_+_720pFP)qqu`^39N^K_8El<16K?K&<=&oLR3tqOFtoXG3M}K%AUDZNk#wq>nCaPr zZ7*G&s%G-n3++2yNl&CF@0qWzI!5#s#T+Qz5A0xW8#DQ|kEe{I&#v$L zlt`(P?sn4-IL47YcC8}oII<7e%Sn}wjNA!gRHfWj!1e6%g%hM=9dQ8&k@El0X-OjG zAK60R+LaoPB1_#4KBAzAl!83>Ii@B(32q5B)KQL2dibMPI{YZ~D6k-28#uG*_Fc-w zk5p4e9%ZwQ^KR0qFawI==zt*Qzxu>iBF-p~RO$;}SPL|PP;!2voeedx>CGkh*Y8#jhuAB? zvWG*@hd$wzc$_*FMLzc}Dnc^@yo3Fpwz4S0bzh ze)xnn7k1j>QHHp*Ut9kME+7%$H4f@avUX8Ul$iNhC=#@C_j14tfdZ{N)ZQD7Z4FSpi%#x+ z3fmPMBvO?{`Dy8L+hUDlN$YGoVg4Ypq5V(Z0;9z0@oTmwkmUBFEq3Fco2NrY8mGrq zUtiFVD6xfI&$+z=nrVayRi~AtO6qIDBrh3VpExT*j*R>AQ+O-D%*=1>*i{}5W$jxz z5+EJBF}%>OGy!rd$ZRDL@Q^-)qo(|tl3*F128;nKCy|T00gdA!hx1_!FbPUmH zXmHzaY-GA5)1n$Q_i|o4%v?byQjuM0go!^8F>i!1RU{S3Jnp386-d&T;D#I$ivRG( z73JT}m5D-s53c^J5>;1{qi^j}Dn1qtB}vDw;sa(Oy3akZMZ+6Oq6Co-+O5AY0{HJS zNZ8~Tw5XzIX|AWQOQ0nnU#^bSWTVXB+V`^A;}WIwC~|iSto%i)1YzTamg1H$5f_#| ze~t^MlYX`<8H0GvI=StXn^5tySp@crtH57ufHQGZnx2>@%t+~;Kf8;7#WA`Tdgwmv zYfANZL8BT``iW#GRc!vYfh?=NDr?93^62p z(~l=8NvqrY+}XqaJ(Mxx4@*#wxCfyupp?Ef&sI3dZ)Jh}Ze{jPiP})Wha`!*bWR}dS&!9eVE+%FzJ8ssE8io0eL?}13HrGU!hdS#VKf*u)x71vJlJ=ffqbtC%&BKH9y3K&G{B6Ed z#(3Y-rJHJVCbB6x)NJ-eeaM$oJ)rb&h3VnL=G`T-rD`A$4jr*uy)*==a1tnI)ndNS z9(JS+cG*Fw9ofg0k8qFR7;gkJjqSFSCW!Bw{1w%}Oo|508H=zfSJ&5l?u0G<(0ixA zmUS|dz@|_NIR^qnwwLSxB;;|q%TgAiR~(#epp!r$*IzyJyV zejn1H(t%}@UcZ`b{9r;@FXCnlcX^&kAlmuO>S*ZyFF4}9WTR8-my-MEy^$Sn^>x?R z`{uRjn~qq$^RszTNaP>|iC-!v7o7}o3PsTb&4^yGs&v59HZ8#P-Z;ti#Z9AuwZBvypQ#b+mmLfhtg#zzH7>Ne?o zyXC#!>fNiDX)GUJCBt@8fiRhHeGTNl>9SW@sG1>~L15FlYn!y685Cx+RSiQa&R2gYyaSfJ$|cb0DMp||GQVK*k^p8^csupc%gHj&+QjC@6RWpe)+c09 znMdVg?sn(eX;Sz9@+;b+e#Q)sOn^@*KeO zOf<6X!B8Ftb{fBV4f*2vhC}ELwxB*7)Te-hM#`dEhtk~V-3LNQoY($lzjSu6GHv9q zSIM#05~&V){{>%DR9U{de^ItR3wXo7&fSgME| zbr)LrKjzJ6f!RfNEcc-f$G8zgz;v`aCdECGdYU|Y$+0pUwbee~I2?Q7h%Isl(iKYj z-e-51Uhs@n*p@ZK+|HIK_=Xe=QbDJEf2z z)b4V7pZzppK_aW3T@eCnK@0ou)4BI-qlXnZbuuC2*6O7?22#U=t3I4RFb}+Y2~DqM zy*JHqh;Y00sHNk11Uw`#$T$-a7RmNs_aea!usW(*qh4$Vd?8E!lSqWpuaFM^;QaAC5&k6zI|nGnP((>9cM9gA@pnKtiLh58ofA zES9(wkfW}#iYEWra{}QFWra3AykH6MucZiPQ8iSi}^)Jpb(RiGNk(pn(pHW~SV*h__17Ek-7eu%a z>tj#_B?A89zFL+)DON8+)Kjl@RhHFmFqn8RQo!wQ zX;nM0EF)*LjG;Vn&t5ahx?OH(IEpsdFbm!$R0;VM@^;oK+$$%&oE2RBSpoClZhgr; zS+Wa5e{9TtNq$+9AvK14V$;G3S8RxyI_2bDeZHOMDsR?pQK zc;2Am7)?-PWhs@u&RQWbq;y<#dw76F?kHlO0zJtb+T#w7~Jr{wvG8*-~-3F*6`r`_RAkkhL%F^C&Zq7 zbHQCW{+MHmMIPEujfU%0)V6$ZE$ZYFh*yw5cr*lvMd$WzM`Df_HsnDZ4w<=x^ul_V zw4Q1s3F;38=p~}6HJXcZhr^r(mKqy!M|DbOxcwB}7I2-UZX57;m1gVnMNxpxJ_V}O?V3EE0#uMYBkp77qHT4QPvP8L3^L zUz$4eXpfZIb2JVM(qZ+DhEzay8;y>Hay=yP$POWD+# zYyu*_NA!4vD$Vc$W8>tq5^wL-8OdIJw#|OdzSY+albZUwYZfWZ%^RMP1Dg zLm|CRPI>xjZ9Mjzrqnle%->3k8cg?2v2e2#^fnqF`ky)&PAZl~D18o<9lz7bQjBm; zqWwwOxJEk*{7&b$x-kAVi&BV|MW4oBSB}K4U({;Wq~{Lj_v@4tsh8$+_Jf<{a))!X zI&(*1W+%<&b}rwQ_jJOSj85*xDtKL=77+LDz?^D6vhnfr0~8iEKJjz04cXK)_!MFp zcDDIq!IWi{&IPwquz(Th*xPXo5r`$|oXM}HdL5NF+H-uinwL*dhW|m~UwgG)C;YBO z0lQ8XHQq76LtQC7)*j=QbmB+NZUC6r_U?HDdfRZhIeut~cn5}Dx3@&2%S)o@%?P#T z=3B2|H(u4qcuiVAj1=&$(fP!Q)FPH|j9wcH=UFjlx=i7;B#oO|n!eIax18`mv_)T? z@;NCYR5y3Gt_{AM-#SG1_x&%6_Zd(J276?0u+1x9`rgtUW=2u#PaG^$Ce7CUJS5o6 z=L;z#-q_F*i#aUL)vl<>-Kc&ryLuFMjDv1?g%V%Bmq(7OhPG@Ko}42+j=UocuRl+Q zHq5SyR<|~eZ&(_ds$QO4oLky{K*+vX?tGf?<`>om8H2g&I#^$O=@?It^gr4QJtV+Q z&0c=H>izY5F6v8$wTdpF>%|n=Wv8H_aS_pIw0?7RNd!rdRy=Ibct*qN zuz!_I$ko(|JU|!(S=2_6SuvgqxDX=$%cl28)$K&gr3Qy*qh!s8;O(CDV&`$hp1 z#-KxHArhfFP9T^->o88?{j2$&4KtBS#avVU*TAwtowZRFtiPM%ANJ@)axGjQ6~A)p zulo^jb*8NYUy|s)dP_&e^5Y;6d_dmJX$K(1(>}EDPgm?){D-88ZyH3g}5y zpZ4xF8MGI^sQ*?XorA}Pmdw1slK8_Lqyx=M6w+-;tv2O{0^xc5xo7EF6gj(Ix3Q(s zDX#T(yyy3z&0=>`r1>#F@A0Xz!`H(!Zdc!#&M0p)Ey)=<{_B2`bVcMG|Duae;B~>- z_mr8_eRqF9689mh{Q){DCPh(2T+`VMUQ#?TBFnk*hjkyX<>*rWLcY_Y&Z)qQMOqK<#9@8;tM56w z0umKT|L&Uc=eg*CPh#sDQo zsL(f>rEkJYMHT>soi`|uC+vRUMwJq3LBs^Jh!xk=G5OV+JH2){_C!R$Wr8&xH+3Ky z^|!e46LUre>l;`rfK>>8NYq@|?B#3qFTpE0a)1$R_YNo^!8`lYh6gwLDKo~r-O1u5 z!1+LS1n(_pN^D#%^+72GMHx5#L3?D1=o~teKn+irjJR6q53^`6sp^cV{di+ZcGkxG zc%bjd>icJDEu{OvYADf7neVy$%iE(9s3LREfWBGyLY#{>{T$vEWCSWJn!vFDNpcw< zRWedYcEJJ43s@7tUH(7LJ;6@84YQ5yH3N?#sD1OX^t=bD?E&jN-iqDsYgB$j-f&IgS@J8BPD z&zDwY6R=QcB&&Z|wCF%!|MN%i(jxZdIf3n0$3jAP`n%w~Tp}a~AHmBm%(*`{yw4RU z))%r#GgVWV$oBfB<|fk{sPvM76W6#H6jcxo#v| zzoiZm3f)qN$dlqB_xmPJpVM1A*4^Bw@9C^|___1-b%&JJI)(AsO&mFKB8B0Z&=&qm zgDR#<6%zU<@OF8^d x+T(-72AR%K6Yl7rT{b?(;*{%RMMi&BIu!1uDcR5t0M80JoPyalp7i_A{{x}l?1%sW literal 0 HcmV?d00001 From 551bc32b491a2a91dbcc80e757fe1b8b2f4f0387 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 6 Sep 2026 08:32:46 +0000 Subject: [PATCH 4/5] test: update screenshot baselines in CI --- ...0 \354\225\210\353\202\264_f300fa05_0.png" | Bin 168267 -> 176468 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git "a/feature/main/src/screenshotTestDebug/reference/com/example/slowclock/ui/MainScreenshotTestKt/MainNotificationsDisabledScreenshot_\354\225\214\353\236\214 \354\225\214\353\246\274 \354\260\250\353\213\250 \354\225\210\353\202\264_f300fa05_0.png" "b/feature/main/src/screenshotTestDebug/reference/com/example/slowclock/ui/MainScreenshotTestKt/MainNotificationsDisabledScreenshot_\354\225\214\353\236\214 \354\225\214\353\246\274 \354\260\250\353\213\250 \354\225\210\353\202\264_f300fa05_0.png" index aabdde810b07f3bba9cb9c107d593ce7e86dcff7..8b1ccbb169eaebe33f909903fe7945197d3a41fe 100644 GIT binary patch delta 65024 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

YcO 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 RHTc^rs?RhPi{;JU{y&px2Q>fy From c9ad43924b97d7865e383119b9d6a022e97f40c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=BC=ED=98=81?= Date: Sun, 6 Sep 2026 17:39:10 +0900 Subject: [PATCH 5/5] =?UTF-8?q?fix:=20=EC=84=A4=EC=A0=95=20=EC=8B=A4?= =?UTF-8?q?=ED=8C=A8=20=EC=95=88=EB=82=B4=EC=9D=98=20=EA=B5=AC=EC=84=B1=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=EC=9D=84=20=EC=B6=94=EC=A0=81=ED=95=9C?= =?UTF-8?q?=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Read the snackbar message through Compose stringResource before dispatching the external-settings callback. Source: https://developer.android.com/develop/ui/compose/resources#strings --- .../src/main/java/com/example/slowclock/ui/main/MainScreen.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/feature/main/src/main/java/com/example/slowclock/ui/main/MainScreen.kt b/feature/main/src/main/java/com/example/slowclock/ui/main/MainScreen.kt index f5663cc8..e61a7665 100644 --- a/feature/main/src/main/java/com/example/slowclock/ui/main/MainScreen.kt +++ b/feature/main/src/main/java/com/example/slowclock/ui/main/MainScreen.kt @@ -76,6 +76,7 @@ fun MainScreen( val context = LocalContext.current val snackbarHostState = remember { SnackbarHostState() } val scope = rememberCoroutineScope() + val notificationSettingsUnavailable = stringResource(R.string.notification_settings_unavailable) ObserveSignal( signal = state.userMessage, consumed = MainIntent.ConsumeUserMessage, @@ -117,7 +118,7 @@ fun MainScreen( }, ) if (!opened) { - scope.launch { snackbarHostState.showSnackbar(context.getString(R.string.notification_settings_unavailable)) } + scope.launch { snackbarHostState.showSnackbar(notificationSettingsUnavailable) } } } MainContent(