From db02b9a1aff7fca6ff471badbf64ebacecde0649 Mon Sep 17 00:00:00 2001 From: leesengjun Date: Mon, 31 Aug 2026 20:14:40 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=90=9B=20::=20=EC=84=B8=ED=83=81=20?= =?UTF-8?q?=EC=A7=84=ED=96=89=20=EC=83=81=ED=83=9C=20=EB=B0=8F=20=EC=95=8C?= =?UTF-8?q?=EB=A6=BC=20=EB=AA=A9=EB=A1=9D=20=EA=B0=B1=EC=8B=A0=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/data_sources/alarm_data_source.dart | 5 +++-- .../reservation_sync_controller.dart | 19 +++++++++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/lib/features/alarm/data/data_sources/alarm_data_source.dart b/lib/features/alarm/data/data_sources/alarm_data_source.dart index 31db9f9..26ca90d 100644 --- a/lib/features/alarm/data/data_sources/alarm_data_source.dart +++ b/lib/features/alarm/data/data_sources/alarm_data_source.dart @@ -43,8 +43,9 @@ class AlarmDataSourceImpl implements AlarmDataSource { return const AlarmListResponse(data: []); } - // 서버 응답은 `{ notifications: [...] }` 형태로 봉투가 없다. - return AlarmListResponse.fromJson(castJsonMap(response.data)); + final body = castJsonMap(response.data); + final data = body.containsKey('data') ? extractDataMap(body) : body; + return AlarmListResponse.fromJson(data); } @override diff --git a/lib/features/reservation/presentation/providers/reservation_sync_controller.dart b/lib/features/reservation/presentation/providers/reservation_sync_controller.dart index cbdfe6b..1d26e5d 100644 --- a/lib/features/reservation/presentation/providers/reservation_sync_controller.dart +++ b/lib/features/reservation/presentation/providers/reservation_sync_controller.dart @@ -70,10 +70,8 @@ class ReservationSyncController { return; } - final hasPendingReservation = latest.any( - (reservation) => reservation.laundryStatus == LaundryStatus.reserved, - ); - if (!hasPendingReservation) { + final shouldKeepPolling = latest.any(_shouldKeepPolling); + if (!shouldKeepPolling) { stopPolling(); } @@ -117,4 +115,17 @@ class ReservationSyncController { return listEquals(current, latest); } + + bool _shouldKeepPolling(ActiveReservationModel reservation) { + if (reservation.laundryStatus == LaundryStatus.reserved) { + return true; + } + + return reservation.laundryStatus == LaundryStatus.inUse && + !_hasText(reservation.expectedCompletionTime); + } + + bool _hasText(String? value) { + return value != null && value.trim().isNotEmpty; + } } From 8c65b95edbc297b76737cebb5acf446351e3c050 Mon Sep 17 00:00:00 2001 From: leesengjun Date: Mon, 31 Aug 2026 20:39:24 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=94=96=20::=20=EC=84=B8=ED=83=81=20?= =?UTF-8?q?=EC=A7=84=ED=96=89=20=EC=83=81=ED=83=9C=20=EB=B0=8F=20=EC=95=8C?= =?UTF-8?q?=EB=A6=BC=20=EB=AA=A9=EB=A1=9D=20=EA=B0=B1=EC=8B=A0=20=EA=B0=9C?= =?UTF-8?q?=EC=84=A0=20=EB=82=B4=EC=9A=A9=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fastlane/metadata/ko/release_notes.txt | 1 + pubspec.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/fastlane/metadata/ko/release_notes.txt b/fastlane/metadata/ko/release_notes.txt index 47fd77e..5a310a7 100644 --- a/fastlane/metadata/ko/release_notes.txt +++ b/fastlane/metadata/ko/release_notes.txt @@ -3,3 +3,4 @@ • 로그인을 앱 내부 화면 대신 기기의 브라우저로 진행하도록 변경해 더 안전하게 로그인할 수 있습니다. • 예약을 취소한 직후 같은 기기를 다시 예약할 때 이미 사용 중이라고 잘못 안내되던 문제를 개선했습니다. • 서버 오류 발생 시 더 정확한 안내 메시지가 표시되도록 개선했습니다. +• 세탁 진행 상태와 알림 목록이 더 정확하게 갱신되도록 개선했습니다. diff --git a/pubspec.yaml b/pubspec.yaml index 3c0957f..fec7370 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.1.5+6 +version: 1.1.5+7 environment: sdk: ^3.9.2