From 83b66ce40cf1a5f7d62c0e3ac38aa8df10949bd8 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 08:45:50 +0900 Subject: [PATCH 01/56] =?UTF-8?q?feat=20::=20=EA=B3=B5=EC=A7=80=20?= =?UTF-8?q?=EA=B8=80=20response=20dto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/data/dto/response/notice_response.dart | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 lib/data/dto/response/notice_response.dart diff --git a/lib/data/dto/response/notice_response.dart b/lib/data/dto/response/notice_response.dart new file mode 100644 index 00000000..cd36704b --- /dev/null +++ b/lib/data/dto/response/notice_response.dart @@ -0,0 +1,32 @@ +import 'package:lotura/domain/entity/notice_entity.dart'; + +class NoticeResponse { + final int id; + final String title; + final String contents; + final String date; + + NoticeResponse({ + required this.id, + required this.title, + required this.contents, + required this.date, + }); + + factory NoticeResponse.fromJson(Map json) { + return NoticeResponse( + id: json['id'], + title: json['title'], + contents: json['contents'], + date: json['date'], + ); + } + + NoticeEntity toEntity() { + return NoticeEntity( + title: title, + contents: contents, + date: date, + ); + } +} From 4f7196074fcb66b7794728f88af520cf36aa1488 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 08:46:15 +0900 Subject: [PATCH 02/56] feat :: remote notice data source --- .../remote/remote_notice_data_source.dart | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 lib/data/data_source/notice/remote/remote_notice_data_source.dart diff --git a/lib/data/data_source/notice/remote/remote_notice_data_source.dart b/lib/data/data_source/notice/remote/remote_notice_data_source.dart new file mode 100644 index 00000000..6e5b4e7c --- /dev/null +++ b/lib/data/data_source/notice/remote/remote_notice_data_source.dart @@ -0,0 +1,19 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:http/http.dart' as http; +import 'package:lotura/data/dto/response/notice_response.dart'; +import 'package:lotura/domain/entity/notice_entity.dart'; +import 'package:lotura/secret.dart'; + +class RemoteNoticeDataSource { + Future> getNotice() async { + final response = await http.get(Uri.parse("$baseurl/notice")); + if (response.statusCode != 200) { + throw Exception(response.body); + } + return (jsonDecode(utf8.decode(response.bodyBytes)) as List) + .map((i) => NoticeResponse.fromJson(i).toEntity()) + .toList(); + } +} From 293f64570a1d1e4a3c743e85ccda35b50f500bb7 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 08:46:31 +0900 Subject: [PATCH 03/56] =?UTF-8?q?feat=20::=20=EA=B3=B5=EC=A7=80=20?= =?UTF-8?q?=EC=97=94=ED=8B=B0=ED=8B=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/domain/entity/notice_entity.dart | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 lib/domain/entity/notice_entity.dart diff --git a/lib/domain/entity/notice_entity.dart b/lib/domain/entity/notice_entity.dart new file mode 100644 index 00000000..ef347002 --- /dev/null +++ b/lib/domain/entity/notice_entity.dart @@ -0,0 +1,11 @@ +class NoticeEntity { + final String title; + final String contents; + final String date; + + const NoticeEntity({ + required this.title, + required this.contents, + required this.date, + }); +} From 4fbee2e77cfce5c761582c4159c5eb57fc76dd21 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 08:46:57 +0900 Subject: [PATCH 04/56] =?UTF-8?q?feat=20::=20notice=20repository=20?= =?UTF-8?q?=EC=84=A4=EA=B3=84=20&=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/data/repository/notice_repository_impl.dart | 13 +++++++++++++ lib/domain/repository/notice_repository.dart | 7 +++++++ 2 files changed, 20 insertions(+) create mode 100644 lib/data/repository/notice_repository_impl.dart create mode 100644 lib/domain/repository/notice_repository.dart diff --git a/lib/data/repository/notice_repository_impl.dart b/lib/data/repository/notice_repository_impl.dart new file mode 100644 index 00000000..132ef81e --- /dev/null +++ b/lib/data/repository/notice_repository_impl.dart @@ -0,0 +1,13 @@ +import 'package:lotura/data/data_source/notice/remote/remote_notice_data_source.dart'; +import 'package:lotura/domain/entity/notice_entity.dart'; +import 'package:lotura/domain/repository/notice_repository.dart'; + +class NoticeRepositoryImpl implements NoticeRepository { + final RemoteNoticeDataSource _remoteNoticeDataSource; + + NoticeRepositoryImpl({required RemoteNoticeDataSource remoteNoticeDataSource}) + : _remoteNoticeDataSource = remoteNoticeDataSource; + + @override + Future> getNotice() => _remoteNoticeDataSource.getNotice(); +} diff --git a/lib/domain/repository/notice_repository.dart b/lib/domain/repository/notice_repository.dart new file mode 100644 index 00000000..b1520dde --- /dev/null +++ b/lib/domain/repository/notice_repository.dart @@ -0,0 +1,7 @@ +import 'dart:async'; + +import 'package:lotura/domain/entity/notice_entity.dart'; + +abstract class NoticeRepository { + Future> getNotice(); +} From c23660466b9722a0432828da8245e3eb48140773 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 08:47:19 +0900 Subject: [PATCH 05/56] =?UTF-8?q?feat=20::=20=EA=B3=B5=EC=A7=80=20?= =?UTF-8?q?=EB=B6=88=EB=9F=AC=EC=98=A4=EA=B8=B0=20use=20case?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/domain/use_case/get_notice_use_case.dart | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 lib/domain/use_case/get_notice_use_case.dart diff --git a/lib/domain/use_case/get_notice_use_case.dart b/lib/domain/use_case/get_notice_use_case.dart new file mode 100644 index 00000000..d2082023 --- /dev/null +++ b/lib/domain/use_case/get_notice_use_case.dart @@ -0,0 +1,11 @@ +import 'package:lotura/domain/entity/notice_entity.dart'; +import 'package:lotura/domain/repository/notice_repository.dart'; + +class GetNoticeUseCase { + final NoticeRepository _noticeRepository; + + GetNoticeUseCase({required NoticeRepository noticeRepository}) + : _noticeRepository = noticeRepository; + + Future> execute() => _noticeRepository.getNotice(); +} From 7bbef5ae2f59c923ff4549167e1e646bff53d0b6 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 08:47:40 +0900 Subject: [PATCH 06/56] =?UTF-8?q?feat=20::=20notice=20=EA=B4=80=EB=A0=A8?= =?UTF-8?q?=20bloc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../notice_page/bloc/notice_bloc.dart | 26 +++++++++++++++ .../notice_page/bloc/notice_event.dart | 3 ++ .../notice_page/bloc/notice_state.dart | 33 +++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 lib/presentation/notice_page/bloc/notice_bloc.dart create mode 100644 lib/presentation/notice_page/bloc/notice_event.dart create mode 100644 lib/presentation/notice_page/bloc/notice_state.dart diff --git a/lib/presentation/notice_page/bloc/notice_bloc.dart b/lib/presentation/notice_page/bloc/notice_bloc.dart new file mode 100644 index 00000000..b9e9220c --- /dev/null +++ b/lib/presentation/notice_page/bloc/notice_bloc.dart @@ -0,0 +1,26 @@ +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:lotura/domain/entity/notice_entity.dart'; +import 'package:lotura/domain/use_case/get_notice_use_case.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_event.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_state.dart'; + +class NoticeBloc extends Bloc>> { + final GetNoticeUseCase _getNoticeUseCase; + + NoticeBloc({required GetNoticeUseCase getNoticeUseCase}) + : _getNoticeUseCase = getNoticeUseCase, + super(Empty()) { + on(_getNoticeEventHandler); + } + + void _getNoticeEventHandler(GetNoticeEvent event, + Emitter>> emit) async { + try { + emit(Loading()); + final noticeList = await _getNoticeUseCase.execute(); + emit(Loaded(data: noticeList)); + } catch (e) { + emit(Error(error: e)); + } + } +} diff --git a/lib/presentation/notice_page/bloc/notice_event.dart b/lib/presentation/notice_page/bloc/notice_event.dart new file mode 100644 index 00000000..122f1f89 --- /dev/null +++ b/lib/presentation/notice_page/bloc/notice_event.dart @@ -0,0 +1,3 @@ +abstract class NoticeEvent {} + +class GetNoticeEvent extends NoticeEvent {} diff --git a/lib/presentation/notice_page/bloc/notice_state.dart b/lib/presentation/notice_page/bloc/notice_state.dart new file mode 100644 index 00000000..6a80d6cf --- /dev/null +++ b/lib/presentation/notice_page/bloc/notice_state.dart @@ -0,0 +1,33 @@ +enum NoticeStateEnum { empty, loading, error, loaded } + +sealed class NoticeState { + NoticeState({required this.noticeState, this.error, this.valueOrNull}); + + T? valueOrNull; + Object? error; + NoticeStateEnum noticeState; + + T get value => valueOrNull!; +} + +class Empty extends NoticeState { + Empty() : super(noticeState: NoticeStateEnum.empty); +} + +class Loading extends NoticeState { + Loading() : super(noticeState: NoticeStateEnum.loading); +} + +class Error extends NoticeState { + final Object error; + + Error({required this.error}) + : super(noticeState: NoticeStateEnum.error, error: error); +} + +class Loaded extends NoticeState { + final T data; + + Loaded({required this.data}) + : super(noticeState: NoticeStateEnum.loaded, valueOrNull: data); +} From 68f3c2b6df87dda57da6dd3141431ce44a3e4c1e Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 08:47:55 +0900 Subject: [PATCH 07/56] =?UTF-8?q?feat=20::=20=EA=B3=B5=EC=A7=80=20?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=ED=8D=BC=EB=B8=94=EB=A6=AC?= =?UTF-8?q?=EC=8B=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../notice_page/ui/view/notice_page.dart | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 lib/presentation/notice_page/ui/view/notice_page.dart diff --git a/lib/presentation/notice_page/ui/view/notice_page.dart b/lib/presentation/notice_page/ui/view/notice_page.dart new file mode 100644 index 00000000..c77e3750 --- /dev/null +++ b/lib/presentation/notice_page/ui/view/notice_page.dart @@ -0,0 +1,73 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:lotura/domain/entity/notice_entity.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_bloc.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_state.dart'; +import 'package:lotura/presentation/notice_page/ui/widget/notice_list_tile.dart'; +import 'package:lotura/presentation/utils/lotura_colors.dart'; + +class NoticePage extends StatelessWidget { + const NoticePage({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: LoturaColors.gray100, + appBar: AppBar( + backgroundColor: LoturaColors.gray100, + elevation: 0.0, + leadingWidth: 300.0.r, + leading: Row( + children: [ + IconButton( + padding: EdgeInsets.only(left: 24.0.r, right: 12.0.r), + onPressed: () => Navigator.pop(context), + icon: Icon( + Icons.keyboard_arrow_left, + color: LoturaColors.black, + size: 30.0.r, + ), + ), + Text( + "공지", + style: TextStyle( + fontSize: 24.0.sp, + color: LoturaColors.black, + fontWeight: FontWeight.bold, + ), + ), + ], + ), + ), + body: Padding( + padding: EdgeInsets.only( + left: 24.0.w, + right: 24.0.w, + top: 12.0.h, + bottom: 12.0.h, + ), + child: Padding( + padding: EdgeInsets.all(12.0.r), + child: BlocBuilder>>( + builder: (context, state) => switch (state) { + Empty() => const Center(child: Text("비어있음")), + Loading() => const Center(child: CircularProgressIndicator()), + Error() => const Center(child: Text("인터넷 연결을 확인해주세요")), + Loaded() => SizedBox( + width: double.infinity, + height: double.infinity, + child: ListView.builder( + itemCount: state.data.length, + itemBuilder: (context, index) { + return NoticeListTile(noticeEntity: state.data[index]); + }, + ), + ), + }, + ), + ), + ), + ); + } +} From 60b1bf3a4ee43a200ddd70a2b287ab1be6ef5e9f Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 08:48:09 +0900 Subject: [PATCH 08/56] =?UTF-8?q?feat=20::=20=EA=B3=B5=EC=A7=80=20?= =?UTF-8?q?=EB=A6=AC=EC=8A=A4=ED=8A=B8=EB=B7=B0=20=EC=85=80=20=EC=BB=B4?= =?UTF-8?q?=ED=8F=AC=EB=84=8C=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/widget/notice_list_tile.dart | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 lib/presentation/notice_page/ui/widget/notice_list_tile.dart diff --git a/lib/presentation/notice_page/ui/widget/notice_list_tile.dart b/lib/presentation/notice_page/ui/widget/notice_list_tile.dart new file mode 100644 index 00000000..03622bef --- /dev/null +++ b/lib/presentation/notice_page/ui/widget/notice_list_tile.dart @@ -0,0 +1,70 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:lotura/domain/entity/notice_entity.dart'; +import 'package:lotura/presentation/utils/lotura_colors.dart'; + +class NoticeListTile extends StatefulWidget { + final NoticeEntity noticeEntity; + + const NoticeListTile({super.key, required this.noticeEntity}); + + @override + State createState() => _NoticeListTileState(); +} + +class _NoticeListTileState extends State { + bool _tap = false; + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: () => setState(() => _tap = !_tap), + child: _tap + ? Container( + margin: EdgeInsets.symmetric(vertical: 7.5.h), + padding: EdgeInsets.all(20.0.r), + decoration: const BoxDecoration( + color: LoturaColors.white, + borderRadius: BorderRadius.all(Radius.circular(12))), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(widget.noticeEntity.title, + style: TextStyle(fontSize: 16.0.sp)), + Text(widget.noticeEntity.date, + style: TextStyle(fontSize: 10.0.sp)), + SizedBox(height: 10.0.r), + ListView( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + children: [ + Text( + widget.noticeEntity.contents, + style: TextStyle(fontSize: 16.0.sp), + ), + ], + ), + ], + ), + ) + : Container( + margin: EdgeInsets.symmetric(vertical: 7.5.h), + padding: EdgeInsets.all(20.0.r), + decoration: const BoxDecoration( + color: LoturaColors.white, + borderRadius: BorderRadius.all(Radius.circular(12))), + width: 370.0.w, + height: 80.0.h, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(widget.noticeEntity.title, + style: TextStyle(fontSize: 16.0.sp)), + Text(widget.noticeEntity.date, + style: TextStyle(fontSize: 10.0.sp)), + ], + ), + ), + ); + } +} From 41681a86cde1dd14b44a890855e45d743e6d2e1d Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 08:48:25 +0900 Subject: [PATCH 09/56] =?UTF-8?q?feat=20::=20notice=20=EA=B4=80=EB=A0=A8?= =?UTF-8?q?=20=ED=81=B4=EB=9E=98=EC=8A=A4=20=EC=9D=98=EC=A1=B4=EC=84=B1=20?= =?UTF-8?q?=EC=A3=BC=EC=9E=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/di/di.dart | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/di/di.dart b/lib/di/di.dart index 2ae441f3..8aa64a44 100644 --- a/lib/di/di.dart +++ b/lib/di/di.dart @@ -5,20 +5,25 @@ import 'package:hive/hive.dart'; import 'package:lotura/data/data_source/apply/remote/remote_apply_data_source.dart'; import 'package:lotura/data/data_source/laundry/local/local_laundry_data_source.dart'; import 'package:lotura/data/data_source/laundry/remote/remote_laundry_data_source.dart'; +import 'package:lotura/data/data_source/notice/remote/remote_notice_data_source.dart'; import 'package:lotura/data/repository/apply_repository_impl.dart'; import 'package:lotura/data/repository/laundry_repository_impl.dart'; +import 'package:lotura/data/repository/notice_repository_impl.dart'; import 'package:lotura/domain/entity/laundry_entity.dart'; import 'package:lotura/domain/repository/apply_repository.dart'; import 'package:lotura/domain/repository/laundry_repository.dart'; +import 'package:lotura/domain/repository/notice_repository.dart'; import 'package:lotura/domain/use_case/apply_cancel_use_case.dart'; import 'package:lotura/domain/use_case/get_all_laundry_list_use_case.dart'; import 'package:lotura/domain/use_case/get_apply_list_use_case.dart'; import 'package:lotura/domain/use_case/get_laundry_room_index_use_case.dart'; import 'package:lotura/domain/use_case/get_laundry_status_use_case.dart'; +import 'package:lotura/domain/use_case/get_notice_use_case.dart'; import 'package:lotura/domain/use_case/send_fcm_info_use_case.dart'; import 'package:lotura/domain/use_case/update_laundry_room_index_use_case.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_bloc.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_bloc.dart'; import 'package:lotura/presentation/setting_page/bloc/room_bloc.dart'; Future> di() async { @@ -31,6 +36,7 @@ Future> di() async { streamController: StreamController.broadcast()); RemoteApplyDataSource remoteApplyDataSource = RemoteApplyDataSource(); + RemoteNoticeDataSource remoteNoticeDataSource = RemoteNoticeDataSource(); LaundryRepository laundryRepository = LaundryRepositoryImpl( localLaundryDataSource: localLaundryDataSource, @@ -39,6 +45,9 @@ Future> di() async { ApplyRepository applyRepository = ApplyRepositoryImpl(remoteApplyDataSource: remoteApplyDataSource); + NoticeRepository noticeRepository = + NoticeRepositoryImpl(remoteNoticeDataSource: remoteNoticeDataSource); + GetLaundryStatusUseCase getLaundryStatusUseCase = GetLaundryStatusUseCase(laundryRepository: laundryRepository); @@ -60,6 +69,9 @@ Future> di() async { UpdateLaundryRoomIndexUseCase updateLaundryRoomIndexUseCase = UpdateLaundryRoomIndexUseCase(laundryRepository: laundryRepository); + GetNoticeUseCase getNoticeUseCase = + GetNoticeUseCase(noticeRepository: noticeRepository); + return [ BlocProvider( create: (context) => ApplyBloc( @@ -75,5 +87,8 @@ Future> di() async { getLaundryRoomIndexUseCase: getLaundryRoomIndexUseCase, updateLaundryRoomIndexUseCase: updateLaundryRoomIndexUseCase), ), + BlocProvider( + create: (context) => NoticeBloc(getNoticeUseCase: getNoticeUseCase), + ), ]; } From b220b468324f409ae9479ae6f81ed9cc696c9425 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 08:49:11 +0900 Subject: [PATCH 10/56] =?UTF-8?q?feat=20::=20=EC=95=B1=20=EC=8B=9C?= =?UTF-8?q?=EC=9E=91=EC=8B=9C=20=EA=B3=B5=EC=A7=80=20=EB=B6=88=EB=9F=AC?= =?UTF-8?q?=EC=98=A4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/presentation/splash_page/ui/view/splash_page.dart | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/presentation/splash_page/ui/view/splash_page.dart b/lib/presentation/splash_page/ui/view/splash_page.dart index 74d34e6f..4c2c6755 100644 --- a/lib/presentation/splash_page/ui/view/splash_page.dart +++ b/lib/presentation/splash_page/ui/view/splash_page.dart @@ -12,6 +12,8 @@ import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_event.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_bloc.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_event.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_bloc.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_event.dart'; import 'package:lotura/presentation/utils/bottom_navi.dart'; import 'package:lotura/presentation/utils/lotura_colors.dart'; import 'package:lotura/secret.dart'; @@ -63,6 +65,7 @@ class _SplashPageState extends State { checkAppVersion(); context.read().add(GetAllLaundryListEvent()); context.read().add(GetLaundryEvent()); + context.read().add(GetNoticeEvent()); context .read() .add(GetApplyListEvent(getApplyListRequest: GetApplyListRequest())); From 4ae19c3e9919e1cd706c9919fd5808c50810cf99 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 08:50:27 +0900 Subject: [PATCH 11/56] =?UTF-8?q?feat=20::=20=EC=95=8C=EB=A6=BC=20?= =?UTF-8?q?=EC=95=84=EC=9D=B4=EC=BD=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/fonts/Lotura.ttf | Bin 3192 -> 3368 bytes lib/presentation/utils/lotura_icons.dart | 18 ++++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/assets/fonts/Lotura.ttf b/assets/fonts/Lotura.ttf index 147e6c600521fc46767cb5ee0172b94f4c6d12b1..8a214596e6b9b51fe970d09e5baa8bd8dabeecf3 100644 GIT binary patch delta 1000 zcmYLHO>7fa5T4n8uhW=K9IxdP6aU2o(zHs}b|WArC>1nLFN7K>kefzz6Gdtfm^WNL- z;JwgVtn(27t^z>bsOn4htw&!2Fnb8XVx@iYpwh+Wxas3BrH6OhtB&B{|#QYOA&bf>A7G3x3+Cx;-0bd z3wUk#{YL=lIR!znF;q96{WGinAC5hW8) z0|S0hox+rs98TiKk<_fmzjLddjqICjqt-kS494)b+%F$ax2NC!!H(_x=Eid22xTzq zWnVPM$rJ4h-<%qq``o1*%uHryXLfYn!&df0+tX}PBoalZax=3Z*ALB89$5GIcNWi| zum-qI>kEFtx+@sWXJ1*eIAhhMPKPevzQmT)P%nmG2ju< zZ}3M-qZi}Kcp@>bNMSWOF`dr^j%M?|kx)Dy8u8_`M|1h z9?NI3>_rAyD(SL4MV@ES$aC>y1QQ89Z8rKVA@)l8#h7T7|g%`G-c1+G$R swzy@zSrnJ+jdH2B=(*4^_3})8xhB-=t&(BNtwu?&Emq7gm+0pI1@G3@o&W#< delta 820 zcmXv~OH30{6uoa|Iy0S;C{SqA1)pMCKcpx_+t6tt0W_Ef7a}MLfeh23txTt-)Yuw< zg~o`{0C{m?B(7MvV5NyG5{WS`T)A~&;&0KFAwi=HWW3YHmz;O+IrpCXKF@uByc=Ds z=K#n<0GQNrYT@m@&>R5MfZBfAsLVTlGs^&+8}T!vtEm9p+QZ(@h)4zn(Z@|XZ?S)EbBV=jvYrX0%NPVY@bBi z$RgRG8|2z5vxpZ#EAs~9D}2z`I=3};$g-FpHJbx>7SWC1a7w8*2*5pFCz3NGl~6pE9Ge(a`sEqrFQbr4;ix=~#)RMFJ~NX{$o=tw ziLqoX9;(n4@y^R9PKgkiZcDF;{4(X5B58>*ge4qt5S|D`Bu*j`7jQ;)sl=s=*_2?Y zH_TMA!Xkv5`Qk#>OuMv Date: Mon, 8 Apr 2024 08:50:56 +0900 Subject: [PATCH 12/56] =?UTF-8?q?feat=20::=20notice=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EC=9D=B4=EB=8F=99=20=EC=95=8C=EB=A6=BC=20=EC=95=84?= =?UTF-8?q?=EC=9D=B4=EC=BD=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/presentation/apply_page/ui/view/apply_page.dart | 8 ++++++++ .../laundry_room_page/ui/view/laundry_room_page.dart | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/lib/presentation/apply_page/ui/view/apply_page.dart b/lib/presentation/apply_page/ui/view/apply_page.dart index 6ba0118b..587d0975 100644 --- a/lib/presentation/apply_page/ui/view/apply_page.dart +++ b/lib/presentation/apply_page/ui/view/apply_page.dart @@ -5,8 +5,10 @@ import 'package:lotura/domain/entity/apply_entity.dart'; import 'package:lotura/main.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_state.dart'; +import 'package:lotura/presentation/notice_page/ui/view/notice_page.dart'; import 'package:lotura/presentation/setting_page/ui/view/setting_page.dart'; import 'package:lotura/presentation/utils/lotura_colors.dart'; +import 'package:lotura/presentation/utils/lotura_icons.dart'; import 'package:lotura/presentation/utils/machine_card.dart'; class ApplyPage extends StatelessWidget { @@ -50,6 +52,12 @@ class ApplyPage extends StatelessWidget { ], ), actions: [ + IconButton( + onPressed: () => Navigator.push(context, + MaterialPageRoute(builder: (context) => const NoticePage())), + icon: const Icon( + LoturaIcons.notice, + )), IconButton( onPressed: () => Navigator.push(context, MaterialPageRoute(builder: (context) => const SettingPage())), diff --git a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart index 1efbb35d..4fa58269 100644 --- a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart +++ b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart @@ -6,6 +6,7 @@ import 'package:lotura/domain/entity/room_entity.dart'; import 'package:lotura/main.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_bloc.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_state.dart'; +import 'package:lotura/presentation/notice_page/ui/view/notice_page.dart'; import 'package:lotura/presentation/setting_page/bloc/room_bloc.dart'; import 'package:lotura/presentation/setting_page/bloc/room_event.dart'; import 'package:lotura/presentation/setting_page/bloc/room_state.dart'; @@ -56,6 +57,15 @@ class LaundryRoomPage extends StatelessWidget { ], ), actions: [ + IconButton( + onPressed: () => Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const NoticePage())), + icon: const Icon( + LoturaIcons.notice, + color: Colors.black, + )), IconButton( onPressed: () => Navigator.push( context, From 2a16b98e38457198b6154c203529f8387a6d02b6 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 08:53:48 +0900 Subject: [PATCH 13/56] =?UTF-8?q?feat=20::=20Container=20=EB=8F=99?= =?UTF-8?q?=EC=A0=81=20=ED=81=AC=EA=B8=B0=20=ED=95=A0=EB=8B=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/presentation/notice_page/ui/widget/notice_list_tile.dart | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/presentation/notice_page/ui/widget/notice_list_tile.dart b/lib/presentation/notice_page/ui/widget/notice_list_tile.dart index 03622bef..879a4baf 100644 --- a/lib/presentation/notice_page/ui/widget/notice_list_tile.dart +++ b/lib/presentation/notice_page/ui/widget/notice_list_tile.dart @@ -53,8 +53,6 @@ class _NoticeListTileState extends State { decoration: const BoxDecoration( color: LoturaColors.white, borderRadius: BorderRadius.all(Radius.circular(12))), - width: 370.0.w, - height: 80.0.h, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ From 678c6642ae0f7ad8db64847b46a04cfd37731767 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 08:54:51 +0900 Subject: [PATCH 14/56] =?UTF-8?q?refactor=20::=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=EC=BD=98=20=EC=83=89=EA=B9=94=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laundry_room_page/ui/view/laundry_room_page.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart index 4fa58269..5efa7ad9 100644 --- a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart +++ b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart @@ -64,7 +64,6 @@ class LaundryRoomPage extends StatelessWidget { builder: (context) => const NoticePage())), icon: const Icon( LoturaIcons.notice, - color: Colors.black, )), IconButton( onPressed: () => Navigator.push( From 8bc9936079d3f7c4c1d0f91b1de3b9e9c9bdce8b Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 09:17:18 +0900 Subject: [PATCH 15/56] =?UTF-8?q?feat=20::=20=EC=95=84=EC=9D=B4=EC=BD=98?= =?UTF-8?q?=20=ED=81=AC=EA=B8=B0=20=EC=A1=B0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/presentation/apply_page/ui/view/apply_page.dart | 6 ++++-- .../laundry_room_page/ui/view/laundry_room_page.dart | 9 +++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/presentation/apply_page/ui/view/apply_page.dart b/lib/presentation/apply_page/ui/view/apply_page.dart index 587d0975..d59c4e8f 100644 --- a/lib/presentation/apply_page/ui/view/apply_page.dart +++ b/lib/presentation/apply_page/ui/view/apply_page.dart @@ -55,15 +55,17 @@ class ApplyPage extends StatelessWidget { IconButton( onPressed: () => Navigator.push(context, MaterialPageRoute(builder: (context) => const NoticePage())), - icon: const Icon( + icon: Icon( LoturaIcons.notice, + size: 24.0.r, )), IconButton( onPressed: () => Navigator.push(context, MaterialPageRoute(builder: (context) => const SettingPage())), - icon: const Icon( + icon: Icon( Icons.settings, color: LoturaColors.black, + size: 28.0.r, )), SizedBox(width: 24.0.w), ], diff --git a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart index 5efa7ad9..f544a1ca 100644 --- a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart +++ b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart @@ -62,15 +62,20 @@ class LaundryRoomPage extends StatelessWidget { context, MaterialPageRoute( builder: (context) => const NoticePage())), - icon: const Icon( + icon: Icon( LoturaIcons.notice, + size: 24.0.r, )), IconButton( onPressed: () => Navigator.push( context, MaterialPageRoute( builder: (context) => const SettingPage())), - icon: Icon(Icons.settings, color: LoturaColors.black), + icon: Icon( + Icons.settings, + color: LoturaColors.black, + size: 28.0.r, + ), ), SizedBox(width: 24.0.w), ], From e95758215318bc36ef48340c73e4b3f2c05d051b Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 09:48:13 +0900 Subject: [PATCH 16/56] =?UTF-8?q?feat=20::=20=EC=A4=91=EB=B3=B5=EB=90=98?= =?UTF-8?q?=EB=8A=94=20=EC=BD=94=EB=93=9C=20=EB=B3=91=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/widget/notice_list_tile.dart | 56 +++++++------------ 1 file changed, 20 insertions(+), 36 deletions(-) diff --git a/lib/presentation/notice_page/ui/widget/notice_list_tile.dart b/lib/presentation/notice_page/ui/widget/notice_list_tile.dart index 879a4baf..2ac779a0 100644 --- a/lib/presentation/notice_page/ui/widget/notice_list_tile.dart +++ b/lib/presentation/notice_page/ui/widget/notice_list_tile.dart @@ -19,22 +19,21 @@ class _NoticeListTileState extends State { Widget build(BuildContext context) { return GestureDetector( onTap: () => setState(() => _tap = !_tap), - child: _tap - ? Container( - margin: EdgeInsets.symmetric(vertical: 7.5.h), - padding: EdgeInsets.all(20.0.r), - decoration: const BoxDecoration( - color: LoturaColors.white, - borderRadius: BorderRadius.all(Radius.circular(12))), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text(widget.noticeEntity.title, - style: TextStyle(fontSize: 16.0.sp)), - Text(widget.noticeEntity.date, - style: TextStyle(fontSize: 10.0.sp)), - SizedBox(height: 10.0.r), - ListView( + child: Container( + margin: EdgeInsets.symmetric(vertical: 7.5.h), + padding: EdgeInsets.all(20.0.r), + decoration: const BoxDecoration( + color: LoturaColors.white, + borderRadius: BorderRadius.all(Radius.circular(12))), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(widget.noticeEntity.title, + style: TextStyle(fontSize: 16.0.sp)), + Text(widget.noticeEntity.date, style: TextStyle(fontSize: 10.0.sp)), + _tap + ? ListView( + padding: EdgeInsets.only(top: 10.0.r), shrinkWrap: true, physics: const NeverScrollableScrollPhysics(), children: [ @@ -43,26 +42,11 @@ class _NoticeListTileState extends State { style: TextStyle(fontSize: 16.0.sp), ), ], - ), - ], - ), - ) - : Container( - margin: EdgeInsets.symmetric(vertical: 7.5.h), - padding: EdgeInsets.all(20.0.r), - decoration: const BoxDecoration( - color: LoturaColors.white, - borderRadius: BorderRadius.all(Radius.circular(12))), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text(widget.noticeEntity.title, - style: TextStyle(fontSize: 16.0.sp)), - Text(widget.noticeEntity.date, - style: TextStyle(fontSize: 10.0.sp)), - ], - ), - ), + ) + : const SizedBox.shrink(), + ], + ), + ), ); } } From e03aab4b991de49217f7fa1fd46b9944e6b5b81d Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 09:59:11 +0900 Subject: [PATCH 17/56] =?UTF-8?q?feat=20::=20=EA=B3=B5=EC=A7=80=20?= =?UTF-8?q?=EC=95=84=EC=9D=B4=EC=BD=98=20=EC=83=89=EA=B9=94=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/presentation/apply_page/ui/view/apply_page.dart | 1 + .../laundry_room_page/ui/view/laundry_room_page.dart | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/presentation/apply_page/ui/view/apply_page.dart b/lib/presentation/apply_page/ui/view/apply_page.dart index d59c4e8f..ce95ecac 100644 --- a/lib/presentation/apply_page/ui/view/apply_page.dart +++ b/lib/presentation/apply_page/ui/view/apply_page.dart @@ -58,6 +58,7 @@ class ApplyPage extends StatelessWidget { icon: Icon( LoturaIcons.notice, size: 24.0.r, + color: LoturaColors.black, )), IconButton( onPressed: () => Navigator.push(context, diff --git a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart index f544a1ca..28c678ec 100644 --- a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart +++ b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart @@ -65,6 +65,7 @@ class LaundryRoomPage extends StatelessWidget { icon: Icon( LoturaIcons.notice, size: 24.0.r, + color: LoturaColors.black, )), IconButton( onPressed: () => Navigator.push( From b754075c3c9b26ecad5561b6648e2ba4773438dd Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 8 Apr 2024 10:07:08 +0900 Subject: [PATCH 18/56] =?UTF-8?q?feat=20::=20=EA=B3=B5=EC=A7=80=20?= =?UTF-8?q?=ED=81=B4=EB=A6=AD=20=EC=9C=A0=EB=8F=84=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=EC=BD=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/widget/notice_list_tile.dart | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/presentation/notice_page/ui/widget/notice_list_tile.dart b/lib/presentation/notice_page/ui/widget/notice_list_tile.dart index 2ac779a0..b9980bf2 100644 --- a/lib/presentation/notice_page/ui/widget/notice_list_tile.dart +++ b/lib/presentation/notice_page/ui/widget/notice_list_tile.dart @@ -28,9 +28,22 @@ class _NoticeListTileState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text(widget.noticeEntity.title, - style: TextStyle(fontSize: 16.0.sp)), - Text(widget.noticeEntity.date, style: TextStyle(fontSize: 10.0.sp)), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(widget.noticeEntity.title, + style: TextStyle(fontSize: 16.0.sp)), + Text(widget.noticeEntity.date, + style: TextStyle(fontSize: 10.0.sp)), + ], + ), + Icon( + _tap ? Icons.keyboard_arrow_up : Icons.keyboard_arrow_down), + ], + ), _tap ? ListView( padding: EdgeInsets.only(top: 10.0.r), From eedbb9d64d6284c5f2d6f07bdc4f8135e939904f Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Tue, 9 Apr 2024 10:27:39 +0900 Subject: [PATCH 19/56] =?UTF-8?q?feat=20::=20noticeId=20=ED=95=84=EB=93=9C?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/domain/entity/notice_entity.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/domain/entity/notice_entity.dart b/lib/domain/entity/notice_entity.dart index ef347002..ae64171e 100644 --- a/lib/domain/entity/notice_entity.dart +++ b/lib/domain/entity/notice_entity.dart @@ -1,9 +1,11 @@ class NoticeEntity { + final int noticeId; final String title; final String contents; final String date; const NoticeEntity({ + required this.noticeId, required this.title, required this.contents, required this.date, From 78889516629f0a4c814b55d3e923a8275af12e5b Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Tue, 9 Apr 2024 17:14:13 +0900 Subject: [PATCH 20/56] =?UTF-8?q?feat=20::=20Entity=20=EB=B3=80=ED=99=98?= =?UTF-8?q?=20=EC=8B=9C=20id=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/data/dto/response/notice_response.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/data/dto/response/notice_response.dart b/lib/data/dto/response/notice_response.dart index cd36704b..15037cd2 100644 --- a/lib/data/dto/response/notice_response.dart +++ b/lib/data/dto/response/notice_response.dart @@ -24,6 +24,7 @@ class NoticeResponse { NoticeEntity toEntity() { return NoticeEntity( + noticeId: id, title: title, contents: contents, date: date, From 2af8e14a4a1e92ace0b2e86b69f6d59811723344 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Tue, 9 Apr 2024 17:14:30 +0900 Subject: [PATCH 21/56] =?UTF-8?q?feat=20::=20notice=20repository=20?= =?UTF-8?q?=EB=A9=94=EC=86=8C=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/data/repository/notice_repository_impl.dart | 17 +++++++++++++++-- lib/domain/repository/notice_repository.dart | 4 ++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/data/repository/notice_repository_impl.dart b/lib/data/repository/notice_repository_impl.dart index 132ef81e..a531f369 100644 --- a/lib/data/repository/notice_repository_impl.dart +++ b/lib/data/repository/notice_repository_impl.dart @@ -1,13 +1,26 @@ +import 'package:lotura/data/data_source/notice/local/local_notice_data_source.dart'; import 'package:lotura/data/data_source/notice/remote/remote_notice_data_source.dart'; import 'package:lotura/domain/entity/notice_entity.dart'; import 'package:lotura/domain/repository/notice_repository.dart'; class NoticeRepositoryImpl implements NoticeRepository { final RemoteNoticeDataSource _remoteNoticeDataSource; + final LocalNoticeDataSource _localNoticeDataSource; - NoticeRepositoryImpl({required RemoteNoticeDataSource remoteNoticeDataSource}) - : _remoteNoticeDataSource = remoteNoticeDataSource; + const NoticeRepositoryImpl({ + required RemoteNoticeDataSource remoteNoticeDataSource, + required LocalNoticeDataSource localNoticeDataSource, + }) : _remoteNoticeDataSource = remoteNoticeDataSource, + _localNoticeDataSource = localNoticeDataSource; @override Future> getNotice() => _remoteNoticeDataSource.getNotice(); + + @override + int? getLastNoticeId({required String key}) => + _localNoticeDataSource.getValue(key: key); + + @override + Future setLastNoticeId({required String key, required int value}) => + _localNoticeDataSource.setValue(key: key, value: value); } diff --git a/lib/domain/repository/notice_repository.dart b/lib/domain/repository/notice_repository.dart index b1520dde..d7f9e73e 100644 --- a/lib/domain/repository/notice_repository.dart +++ b/lib/domain/repository/notice_repository.dart @@ -4,4 +4,8 @@ import 'package:lotura/domain/entity/notice_entity.dart'; abstract class NoticeRepository { Future> getNotice(); + + Future setLastNoticeId({required String key, required int value}); + + int? getLastNoticeId({required String key}); } From baa98d97718c16f3a9f079cad69c88d5edb63461 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Tue, 9 Apr 2024 17:15:43 +0900 Subject: [PATCH 22/56] feat :: notice data source --- .../notice/local/local_notice_data_source.dart | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 lib/data/data_source/notice/local/local_notice_data_source.dart diff --git a/lib/data/data_source/notice/local/local_notice_data_source.dart b/lib/data/data_source/notice/local/local_notice_data_source.dart new file mode 100644 index 00000000..2484f444 --- /dev/null +++ b/lib/data/data_source/notice/local/local_notice_data_source.dart @@ -0,0 +1,12 @@ +import 'package:hive/hive.dart'; + +class LocalNoticeDataSource { + final Box _box; + + const LocalNoticeDataSource({required Box box}) : _box = box; + + Future setValue({required String key, required int value}) => + _box.put(key, value); + + int? getValue({required String key}) => _box.get(key); +} From 0777633f131feeaeb0d21c3456eae47591166684 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Tue, 9 Apr 2024 17:16:35 +0900 Subject: [PATCH 23/56] =?UTF-8?q?feat=20::=20notice=20icon=20=EC=97=90=20b?= =?UTF-8?q?locbuilder=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apply_page/ui/view/apply_page.dart | 20 ++++++++++++----- .../ui/view/laundry_room_page.dart | 22 ++++++++++++++----- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/lib/presentation/apply_page/ui/view/apply_page.dart b/lib/presentation/apply_page/ui/view/apply_page.dart index ce95ecac..166eeb1b 100644 --- a/lib/presentation/apply_page/ui/view/apply_page.dart +++ b/lib/presentation/apply_page/ui/view/apply_page.dart @@ -5,6 +5,10 @@ import 'package:lotura/domain/entity/apply_entity.dart'; import 'package:lotura/main.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_state.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_bloc.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_event.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_model.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_state.dart' as n; import 'package:lotura/presentation/notice_page/ui/view/notice_page.dart'; import 'package:lotura/presentation/setting_page/ui/view/setting_page.dart'; import 'package:lotura/presentation/utils/lotura_colors.dart'; @@ -53,13 +57,19 @@ class ApplyPage extends StatelessWidget { ), actions: [ IconButton( - onPressed: () => Navigator.push(context, - MaterialPageRoute(builder: (context) => const NoticePage())), - icon: Icon( - LoturaIcons.notice, + onPressed: () { + context.read().add(UpdateLastNoticeIdEvent()); + Navigator.push(context, + MaterialPageRoute(builder: (context) => const NoticePage())); + }, + icon: BlocBuilder>( + builder: (context, state) => Icon( + state.value.isNewNotice ? LoturaIcons.notice : Icons.ac_unit, size: 24.0.r, color: LoturaColors.black, - )), + ), + ), + ), IconButton( onPressed: () => Navigator.push(context, MaterialPageRoute(builder: (context) => const SettingPage())), diff --git a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart index 28c678ec..589867d4 100644 --- a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart +++ b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart @@ -6,6 +6,10 @@ import 'package:lotura/domain/entity/room_entity.dart'; import 'package:lotura/main.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_bloc.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_state.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_bloc.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_event.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_model.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_state.dart' as n; import 'package:lotura/presentation/notice_page/ui/view/notice_page.dart'; import 'package:lotura/presentation/setting_page/bloc/room_bloc.dart'; import 'package:lotura/presentation/setting_page/bloc/room_event.dart'; @@ -58,15 +62,23 @@ class LaundryRoomPage extends StatelessWidget { ), actions: [ IconButton( - onPressed: () => Navigator.push( + onPressed: () { + context.read().add(UpdateLastNoticeIdEvent()); + Navigator.push( context, MaterialPageRoute( - builder: (context) => const NoticePage())), - icon: Icon( - LoturaIcons.notice, + builder: (context) => const NoticePage())); + }, + icon: BlocBuilder>( + builder: (context, state) => Icon( + state.value.isNewNotice + ? LoturaIcons.notice + : Icons.ac_unit, size: 24.0.r, color: LoturaColors.black, - )), + ), + ), + ), IconButton( onPressed: () => Navigator.push( context, From de9458cf2a165d72c723970c152d774bd2dc5c4a Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Tue, 9 Apr 2024 17:17:08 +0900 Subject: [PATCH 24/56] =?UTF-8?q?feat=20::=20notice=20bloc=20=EC=B4=88?= =?UTF-8?q?=EA=B8=B0=EA=B0=92=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/presentation/notice_page/bloc/notice_state.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/presentation/notice_page/bloc/notice_state.dart b/lib/presentation/notice_page/bloc/notice_state.dart index 6a80d6cf..054215e1 100644 --- a/lib/presentation/notice_page/bloc/notice_state.dart +++ b/lib/presentation/notice_page/bloc/notice_state.dart @@ -11,7 +11,9 @@ sealed class NoticeState { } class Empty extends NoticeState { - Empty() : super(noticeState: NoticeStateEnum.empty); + final T data; + + Empty({required this.data}) : super(noticeState: NoticeStateEnum.empty); } class Loading extends NoticeState { From f3f4d2e9de0f98c633a3f7243d4c078ff56d7c48 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Tue, 9 Apr 2024 17:17:44 +0900 Subject: [PATCH 25/56] =?UTF-8?q?feat=20::=20=EC=83=81=ED=83=9C=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20=ED=81=B4=EB=9E=98=EC=8A=A4=20notice=20model=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../notice_page/bloc/notice_model.dart | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 lib/presentation/notice_page/bloc/notice_model.dart diff --git a/lib/presentation/notice_page/bloc/notice_model.dart b/lib/presentation/notice_page/bloc/notice_model.dart new file mode 100644 index 00000000..ca3954a3 --- /dev/null +++ b/lib/presentation/notice_page/bloc/notice_model.dart @@ -0,0 +1,18 @@ +import 'package:lotura/domain/entity/notice_entity.dart'; + +class NoticeModel { + final List noticeList; + final bool isNewNotice; + + const NoticeModel({ + required this.noticeList, + required this.isNewNotice, + }); + + NoticeModel copyWith({List? noticeList, bool? isNewNotice}) { + return NoticeModel( + noticeList: noticeList ?? this.noticeList, + isNewNotice: isNewNotice ?? this.isNewNotice, + ); + } +} From 53ee75cb6c75822781b486a799c87a5adc95afce Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Tue, 9 Apr 2024 17:17:58 +0900 Subject: [PATCH 26/56] =?UTF-8?q?feat=20::=20=EC=95=B1=20=EC=8B=9C?= =?UTF-8?q?=EC=9E=91=EC=8B=9C=20=EA=B3=B5=EC=A7=80=20=EB=B6=88=EB=9F=AC?= =?UTF-8?q?=EC=98=A4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/presentation/splash_page/ui/view/splash_page.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/presentation/splash_page/ui/view/splash_page.dart b/lib/presentation/splash_page/ui/view/splash_page.dart index 4c2c6755..295b06f6 100644 --- a/lib/presentation/splash_page/ui/view/splash_page.dart +++ b/lib/presentation/splash_page/ui/view/splash_page.dart @@ -63,12 +63,12 @@ class _SplashPageState extends State { void initState() { super.initState(); checkAppVersion(); - context.read().add(GetAllLaundryListEvent()); - context.read().add(GetLaundryEvent()); context.read().add(GetNoticeEvent()); + context.read().add(GetAllLaundryListEvent()); context .read() .add(GetApplyListEvent(getApplyListRequest: GetApplyListRequest())); + context.read().add(GetLaundryEvent()); } @override From d350594918dd978417abba7d729596b535c68a46 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Tue, 9 Apr 2024 18:43:20 +0900 Subject: [PATCH 27/56] =?UTF-8?q?feat=20::=20=EC=B5=9C=EC=8B=A0=20?= =?UTF-8?q?=EA=B3=B5=EC=A7=80=20id=20=EA=B0=B1=EC=8B=A0=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../notice_page/bloc/notice_bloc.dart | 42 ++++++++++++++++--- .../notice_page/bloc/notice_event.dart | 2 + 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/lib/presentation/notice_page/bloc/notice_bloc.dart b/lib/presentation/notice_page/bloc/notice_bloc.dart index b9e9220c..553d148b 100644 --- a/lib/presentation/notice_page/bloc/notice_bloc.dart +++ b/lib/presentation/notice_page/bloc/notice_bloc.dart @@ -1,24 +1,54 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:lotura/domain/entity/notice_entity.dart'; +import 'package:lotura/domain/use_case/get_last_notice_id_use_case.dart'; import 'package:lotura/domain/use_case/get_notice_use_case.dart'; +import 'package:lotura/domain/use_case/update_last_notice_id_use_case.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_event.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_model.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_state.dart'; -class NoticeBloc extends Bloc>> { +class NoticeBloc extends Bloc> { final GetNoticeUseCase _getNoticeUseCase; + final GetLastNoticeIdUseCase _getLastNoticeIdUseCase; + final UpdateLastNoticeIdUseCase _updateLastNoticeIdUseCase; - NoticeBloc({required GetNoticeUseCase getNoticeUseCase}) + NoticeBloc( + {required GetNoticeUseCase getNoticeUseCase, + required GetLastNoticeIdUseCase getLastNoticeIdUseCase, + required UpdateLastNoticeIdUseCase updateLastNoticeIdUseCase}) : _getNoticeUseCase = getNoticeUseCase, - super(Empty()) { + _getLastNoticeIdUseCase = getLastNoticeIdUseCase, + _updateLastNoticeIdUseCase = updateLastNoticeIdUseCase, + super(Empty( + data: const NoticeModel( + noticeList: [], + isNewNotice: false, + ))) { on(_getNoticeEventHandler); + on(_updateLastNoticeIdEventHandler); } - void _getNoticeEventHandler(GetNoticeEvent event, - Emitter>> emit) async { + void _getNoticeEventHandler( + GetNoticeEvent event, Emitter> emit) async { try { emit(Loading()); final noticeList = await _getNoticeUseCase.execute(); - emit(Loaded(data: noticeList)); + final isNewNotice = + _getLastNoticeIdUseCase.execute(noticeList: noticeList); + final newNoticeModel = + NoticeModel(noticeList: noticeList, isNewNotice: isNewNotice); + emit(Loaded(data: newNoticeModel)); + } catch (e) { + emit(Error(error: e)); + } + } + + void _updateLastNoticeIdEventHandler(UpdateLastNoticeIdEvent event, + Emitter> emit) async { + try { + await _updateLastNoticeIdUseCase.execute( + noticeList: state.value.noticeList); + emit(Loaded(data: state.value.copyWith(isNewNotice: false))); } catch (e) { emit(Error(error: e)); } diff --git a/lib/presentation/notice_page/bloc/notice_event.dart b/lib/presentation/notice_page/bloc/notice_event.dart index 122f1f89..131095ed 100644 --- a/lib/presentation/notice_page/bloc/notice_event.dart +++ b/lib/presentation/notice_page/bloc/notice_event.dart @@ -1,3 +1,5 @@ abstract class NoticeEvent {} class GetNoticeEvent extends NoticeEvent {} + +class UpdateLastNoticeIdEvent extends NoticeEvent {} From db87c1e3579c044ce55969c48ae2c8e09dedbd14 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Tue, 9 Apr 2024 18:44:26 +0900 Subject: [PATCH 28/56] =?UTF-8?q?feat=20::=20notice=20model=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/presentation/notice_page/ui/view/notice_page.dart | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/presentation/notice_page/ui/view/notice_page.dart b/lib/presentation/notice_page/ui/view/notice_page.dart index c77e3750..37f3f398 100644 --- a/lib/presentation/notice_page/ui/view/notice_page.dart +++ b/lib/presentation/notice_page/ui/view/notice_page.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:lotura/domain/entity/notice_entity.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_bloc.dart'; +import 'package:lotura/presentation/notice_page/bloc/notice_model.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_state.dart'; import 'package:lotura/presentation/notice_page/ui/widget/notice_list_tile.dart'; import 'package:lotura/presentation/utils/lotura_colors.dart'; @@ -49,18 +49,19 @@ class NoticePage extends StatelessWidget { ), child: Padding( padding: EdgeInsets.all(12.0.r), - child: BlocBuilder>>( + child: BlocBuilder>( builder: (context, state) => switch (state) { Empty() => const Center(child: Text("비어있음")), Loading() => const Center(child: CircularProgressIndicator()), Error() => const Center(child: Text("인터넷 연결을 확인해주세요")), - Loaded() => SizedBox( + Loaded(data: final data) => SizedBox( width: double.infinity, height: double.infinity, child: ListView.builder( - itemCount: state.data.length, + itemCount: data.noticeList.length, itemBuilder: (context, index) { - return NoticeListTile(noticeEntity: state.data[index]); + return NoticeListTile( + noticeEntity: data.noticeList[index]); }, ), ), From f26595e79ca68275dc3a2ccbad617da60e57159b Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Tue, 9 Apr 2024 18:50:47 +0900 Subject: [PATCH 29/56] =?UTF-8?q?feat=20::=20=EB=A7=88=EC=A7=80=EB=A7=89?= =?UTF-8?q?=20=EA=B3=B5=EC=A7=80=20id=20=EB=B6=88=EB=9F=AC=EC=98=A4?= =?UTF-8?q?=EA=B8=B0=20use=20case?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../use_case/get_last_notice_id_use_case.dart | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 lib/domain/use_case/get_last_notice_id_use_case.dart diff --git a/lib/domain/use_case/get_last_notice_id_use_case.dart b/lib/domain/use_case/get_last_notice_id_use_case.dart new file mode 100644 index 00000000..3c81f9ea --- /dev/null +++ b/lib/domain/use_case/get_last_notice_id_use_case.dart @@ -0,0 +1,16 @@ +import 'package:lotura/domain/entity/notice_entity.dart'; +import 'package:lotura/domain/repository/notice_repository.dart'; + +class GetLastNoticeIdUseCase { + final NoticeRepository _noticeRepository; + + const GetLastNoticeIdUseCase({required NoticeRepository noticeRepository}) + : _noticeRepository = noticeRepository; + + bool execute({required List noticeList}) { + int lastNoticeId = + _noticeRepository.getLastNoticeId(key: "lastNoticeId") ?? -1; + int newNoticeId = noticeList.isEmpty ? -1 : noticeList.first.noticeId; + return lastNoticeId < newNoticeId; + } +} From 3bdb47b5e97c4bc5069b89fd261eabdf7c67646f Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Tue, 9 Apr 2024 18:51:35 +0900 Subject: [PATCH 30/56] =?UTF-8?q?feat=20::=20=EB=A7=88=EC=A7=80=EB=A7=89?= =?UTF-8?q?=20=EA=B3=B5=EC=A7=80=20id=20=EA=B0=B1=EC=8B=A0=20use=20case?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../use_case/update_last_notice_id_use_case.dart | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 lib/domain/use_case/update_last_notice_id_use_case.dart diff --git a/lib/domain/use_case/update_last_notice_id_use_case.dart b/lib/domain/use_case/update_last_notice_id_use_case.dart new file mode 100644 index 00000000..61256bd8 --- /dev/null +++ b/lib/domain/use_case/update_last_notice_id_use_case.dart @@ -0,0 +1,14 @@ +import 'package:lotura/domain/entity/notice_entity.dart'; +import 'package:lotura/domain/repository/notice_repository.dart'; + +class UpdateLastNoticeIdUseCase { + final NoticeRepository _noticeRepository; + + UpdateLastNoticeIdUseCase({required NoticeRepository noticeRepository}) + : _noticeRepository = noticeRepository; + + Future execute({required List noticeList}) => + _noticeRepository.setLastNoticeId( + key: "lastNoticeId", + value: noticeList.isEmpty ? -1 : noticeList.first.noticeId); +} From 2d8b795b0d47ebfe008f263386c3615ddcdf6c7e Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Tue, 9 Apr 2024 18:53:51 +0900 Subject: [PATCH 31/56] =?UTF-8?q?feat=20::=20local=20notion=20data=20sourc?= =?UTF-8?q?e=20=EC=9D=98=EC=A1=B4=EC=84=B1=20=EC=A3=BC=EC=9E=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/di/di.dart | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/di/di.dart b/lib/di/di.dart index 8aa64a44..87a9ecb6 100644 --- a/lib/di/di.dart +++ b/lib/di/di.dart @@ -5,6 +5,7 @@ import 'package:hive/hive.dart'; import 'package:lotura/data/data_source/apply/remote/remote_apply_data_source.dart'; import 'package:lotura/data/data_source/laundry/local/local_laundry_data_source.dart'; import 'package:lotura/data/data_source/laundry/remote/remote_laundry_data_source.dart'; +import 'package:lotura/data/data_source/notice/local/local_notice_data_source.dart'; import 'package:lotura/data/data_source/notice/remote/remote_notice_data_source.dart'; import 'package:lotura/data/repository/apply_repository_impl.dart'; import 'package:lotura/data/repository/laundry_repository_impl.dart'; @@ -16,10 +17,12 @@ import 'package:lotura/domain/repository/notice_repository.dart'; import 'package:lotura/domain/use_case/apply_cancel_use_case.dart'; import 'package:lotura/domain/use_case/get_all_laundry_list_use_case.dart'; import 'package:lotura/domain/use_case/get_apply_list_use_case.dart'; +import 'package:lotura/domain/use_case/get_last_notice_id_use_case.dart'; import 'package:lotura/domain/use_case/get_laundry_room_index_use_case.dart'; import 'package:lotura/domain/use_case/get_laundry_status_use_case.dart'; import 'package:lotura/domain/use_case/get_notice_use_case.dart'; import 'package:lotura/domain/use_case/send_fcm_info_use_case.dart'; +import 'package:lotura/domain/use_case/update_last_notice_id_use_case.dart'; import 'package:lotura/domain/use_case/update_laundry_room_index_use_case.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_bloc.dart'; @@ -32,10 +35,13 @@ Future> di() async { LocalLaundryDataSource localLaundryDataSource = LocalLaundryDataSource(localDatabase: box); + LocalNoticeDataSource localNoticeDataSource = LocalNoticeDataSource(box: box); + RemoteLaundryDataSource remoteLaundryDataSource = RemoteLaundryDataSource( streamController: StreamController.broadcast()); RemoteApplyDataSource remoteApplyDataSource = RemoteApplyDataSource(); + RemoteNoticeDataSource remoteNoticeDataSource = RemoteNoticeDataSource(); LaundryRepository laundryRepository = LaundryRepositoryImpl( @@ -45,8 +51,9 @@ Future> di() async { ApplyRepository applyRepository = ApplyRepositoryImpl(remoteApplyDataSource: remoteApplyDataSource); - NoticeRepository noticeRepository = - NoticeRepositoryImpl(remoteNoticeDataSource: remoteNoticeDataSource); + NoticeRepository noticeRepository = NoticeRepositoryImpl( + remoteNoticeDataSource: remoteNoticeDataSource, + localNoticeDataSource: localNoticeDataSource); GetLaundryStatusUseCase getLaundryStatusUseCase = GetLaundryStatusUseCase(laundryRepository: laundryRepository); @@ -72,6 +79,12 @@ Future> di() async { GetNoticeUseCase getNoticeUseCase = GetNoticeUseCase(noticeRepository: noticeRepository); + GetLastNoticeIdUseCase getLastNoticeIdUseCase = + GetLastNoticeIdUseCase(noticeRepository: noticeRepository); + + UpdateLastNoticeIdUseCase updateLastNoticeIdUseCase = + UpdateLastNoticeIdUseCase(noticeRepository: noticeRepository); + return [ BlocProvider( create: (context) => ApplyBloc( @@ -88,7 +101,11 @@ Future> di() async { updateLaundryRoomIndexUseCase: updateLaundryRoomIndexUseCase), ), BlocProvider( - create: (context) => NoticeBloc(getNoticeUseCase: getNoticeUseCase), + create: (context) => NoticeBloc( + getNoticeUseCase: getNoticeUseCase, + getLastNoticeIdUseCase: getLastNoticeIdUseCase, + updateLastNoticeIdUseCase: updateLastNoticeIdUseCase, + ), ), ]; } From 27854c670c24fa3733af913c8171d337cd224e57 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sat, 13 Apr 2024 23:45:52 +0900 Subject: [PATCH 32/56] =?UTF-8?q?feat=20::=20=EC=83=88=EB=A1=9C=EC=9A=B4?= =?UTF-8?q?=20=EA=B3=B5=EC=A7=80=20=EC=B6=94=EA=B0=80=20=EC=8B=9C=20?= =?UTF-8?q?=ED=81=B4=EB=A6=AD=20=EC=9C=A0=EB=8F=84=EC=9A=A9=20=ED=8C=8C?= =?UTF-8?q?=EB=9E=80=20=EC=A0=90=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apply_page/ui/view/apply_page.dart | 29 ++++++++++++++--- .../ui/view/laundry_room_page.dart | 31 ++++++++++++++----- 2 files changed, 48 insertions(+), 12 deletions(-) diff --git a/lib/presentation/apply_page/ui/view/apply_page.dart b/lib/presentation/apply_page/ui/view/apply_page.dart index 166eeb1b..d76f8d8a 100644 --- a/lib/presentation/apply_page/ui/view/apply_page.dart +++ b/lib/presentation/apply_page/ui/view/apply_page.dart @@ -63,11 +63,30 @@ class ApplyPage extends StatelessWidget { MaterialPageRoute(builder: (context) => const NoticePage())); }, icon: BlocBuilder>( - builder: (context, state) => Icon( - state.value.isNewNotice ? LoturaIcons.notice : Icons.ac_unit, - size: 24.0.r, - color: LoturaColors.black, - ), + builder: (context, state) => state.value.isNewNotice + ? Stack( + alignment: Alignment.topRight, + children: [ + Icon( + LoturaIcons.notice, + color: LoturaColors.black, + size: 24.0.r, + ), + Container( + width: 10.0.r, + height: 10.0.r, + decoration: const BoxDecoration( + color: Colors.blue, + shape: BoxShape.circle, + ), + ), + ], + ) + : Icon( + LoturaIcons.notice, + color: LoturaColors.black, + size: 24.0.r, + ), ), ), IconButton( diff --git a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart index 589867d4..bb582b4c 100644 --- a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart +++ b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart @@ -70,13 +70,30 @@ class LaundryRoomPage extends StatelessWidget { builder: (context) => const NoticePage())); }, icon: BlocBuilder>( - builder: (context, state) => Icon( - state.value.isNewNotice - ? LoturaIcons.notice - : Icons.ac_unit, - size: 24.0.r, - color: LoturaColors.black, - ), + builder: (context, state) => state.value.isNewNotice + ? Stack( + alignment: Alignment.topRight, + children: [ + Icon( + LoturaIcons.notice, + color: LoturaColors.black, + size: 24.0.r, + ), + Container( + width: 10.0.r, + height: 10.0.r, + decoration: const BoxDecoration( + color: Colors.blue, + shape: BoxShape.circle, + ), + ), + ], + ) + : Icon( + LoturaIcons.notice, + color: LoturaColors.black, + size: 24.0.r, + ), ), ), IconButton( From b665039d9040d149a7417bb243b3d9abc3a30c86 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sat, 13 Apr 2024 23:46:06 +0900 Subject: [PATCH 33/56] =?UTF-8?q?feat=20::=20=EC=A2=8C=EC=9A=B0=EB=A1=9C?= =?UTF-8?q?=20=ED=9D=94=EB=93=A4=EB=A6=AC=EB=8A=94=20=EC=9C=84=EC=A0=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/presentation/utils/vibrating_widget.dart | 45 ++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 lib/presentation/utils/vibrating_widget.dart diff --git a/lib/presentation/utils/vibrating_widget.dart b/lib/presentation/utils/vibrating_widget.dart new file mode 100644 index 00000000..ac8722fd --- /dev/null +++ b/lib/presentation/utils/vibrating_widget.dart @@ -0,0 +1,45 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; + +class VibratingWidget extends StatefulWidget { + const VibratingWidget({super.key, required this.child}); + + final Widget child; + + @override + State createState() => _VibratingWidgetState(); +} + +class _VibratingWidgetState extends State + with SingleTickerProviderStateMixin { + late AnimationController _animationController; + late Animation _animation; + + @override + void initState() { + super.initState(); + _animationController = AnimationController( + duration: const Duration(milliseconds: 100), vsync: this); + + _animation = Tween(begin: 0.0, end: 4.0.r).animate(_animationController); + + _animationController.repeat(); + } + + @override + void dispose() { + _animationController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return AnimatedBuilder( + animation: _animation, + builder: (context, child) => Transform.translate( + offset: Offset(_animation.value - 2.0.r, 0), + child: widget.child, + ), + ); + } +} From 0edd93e893b949e5501039c3e152cf3f9644d378 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 13:30:55 +0900 Subject: [PATCH 34/56] =?UTF-8?q?refactor=20::=20room=20entity=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../setting_page/bloc/laundry_room_model.dart} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename lib/{domain/entity/room_entity.dart => presentation/setting_page/bloc/laundry_room_model.dart} (87%) diff --git a/lib/domain/entity/room_entity.dart b/lib/presentation/setting_page/bloc/laundry_room_model.dart similarity index 87% rename from lib/domain/entity/room_entity.dart rename to lib/presentation/setting_page/bloc/laundry_room_model.dart index 151a7825..a1771fe4 100644 --- a/lib/domain/entity/room_entity.dart +++ b/lib/presentation/setting_page/bloc/laundry_room_model.dart @@ -1,11 +1,11 @@ import 'package:lotura/main.dart'; -class LaundryRoomEntity { +class LaundryRoomModel { final RoomLocation roomLocation; final ButtonView buttonView; final bool isClick, isNFCShowBottomSheet, showingBottomSheet; - const LaundryRoomEntity({ + const LaundryRoomModel({ required this.roomLocation, required this.buttonView, required this.isClick, @@ -13,13 +13,13 @@ class LaundryRoomEntity { required this.showingBottomSheet, }); - LaundryRoomEntity copyWith( + LaundryRoomModel copyWith( {RoomLocation? roomLocation, ButtonView? buttonView, bool? isClick, bool? isNFCShowBottomSheet, bool? showingBottomSheet}) { - return LaundryRoomEntity( + return LaundryRoomModel( roomLocation: roomLocation ?? this.roomLocation, buttonView: buttonView ?? this.buttonView, isClick: isClick ?? this.isClick, From d0946e672c734282b06ace4206dfa720914caa5e Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 13:32:01 +0900 Subject: [PATCH 35/56] =?UTF-8?q?refactor=20::=20LaundryRoomModel=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/view/laundry_room_page.dart | 67 ++++++++++--------- .../setting_page/bloc/room_bloc.dart | 22 +++--- .../setting_page/ui/view/setting_page.dart | 4 +- .../ui/widget/setting_page_bottom_sheet.dart | 4 +- 4 files changed, 52 insertions(+), 45 deletions(-) diff --git a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart index bb582b4c..44a876fe 100644 --- a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart +++ b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:lotura/domain/entity/laundry_entity.dart'; -import 'package:lotura/domain/entity/room_entity.dart'; import 'package:lotura/main.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_bloc.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_state.dart'; @@ -11,6 +10,7 @@ import 'package:lotura/presentation/notice_page/bloc/notice_event.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_model.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_state.dart' as n; import 'package:lotura/presentation/notice_page/ui/view/notice_page.dart'; +import 'package:lotura/presentation/setting_page/bloc/laundry_room_model.dart'; import 'package:lotura/presentation/setting_page/bloc/room_bloc.dart'; import 'package:lotura/presentation/setting_page/bloc/room_event.dart'; import 'package:lotura/presentation/setting_page/bloc/room_state.dart'; @@ -38,7 +38,7 @@ class LaundryRoomPage extends StatelessWidget { @override Widget build(BuildContext context) { - return BlocBuilder>( + return BlocBuilder>( builder: (context, roomBlocState) { if (roomBlocState is Changed) { return Scaffold( @@ -220,7 +220,7 @@ class LaundryRoomPage extends StatelessWidget { const Center(child: Text("인터넷 연결을 확인해주세요")), Loaded() => LaundryList( list: state.data, - roomEntity: roomBlocState.value, + laundryRoomModel: roomBlocState.value, nfcData: nfcTagData, ), }; @@ -243,18 +243,18 @@ class LaundryList extends StatelessWidget { LaundryList({ super.key, required this.list, - required this.roomEntity, + required this.laundryRoomModel, required this.nfcData, }); final List list; - final LaundryRoomEntity roomEntity; + final LaundryRoomModel laundryRoomModel; final int nfcData; final Map placeIndex = {0: 0, 1: 16, 2: 31}; MachineWidget machineWidget( - {required LaundryRoomEntity roomState, + {required LaundryRoomModel roomState, required int index, required CurrentState state, required Machine machine}) => @@ -276,8 +276,8 @@ class LaundryList extends StatelessWidget { Widget build(BuildContext context) { WidgetsBinding.instance.addPostFrameCallback( (_) { - if (nfcData != -1 && roomEntity.isNFCShowBottomSheet == false) { - if (roomEntity.showingBottomSheet == true) { + if (nfcData != -1 && laundryRoomModel.isNFCShowBottomSheet == false) { + if (laundryRoomModel.showingBottomSheet == true) { Navigator.of(context).pop(); } context.read().add(ShowBottomSheetEvent()); @@ -303,7 +303,8 @@ class LaundryList extends StatelessWidget { return ScrollConfiguration( behavior: const ScrollBehavior().copyWith(overscroll: false), child: ListView.builder( - itemCount: roomEntity.roomLocation == RoomLocation.womanRoom ? 10 : 8, + itemCount: + laundryRoomModel.roomLocation == RoomLocation.womanRoom ? 10 : 8, itemBuilder: (context, index) { return Column( children: [ @@ -311,59 +312,65 @@ class LaundryList extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ machineWidget( - roomState: roomEntity, - index: list[placeIndex[roomEntity.roomLocation.index]! + - index] + roomState: laundryRoomModel, + index: list[ + placeIndex[laundryRoomModel.roomLocation.index]! + + index] .id, - machine: list[placeIndex[roomEntity.roomLocation.index]! + - index] + machine: list[ + placeIndex[laundryRoomModel.roomLocation.index]! + + index] .deviceType, - state: list[placeIndex[roomEntity.roomLocation.index]! + - index] + state: list[ + placeIndex[laundryRoomModel.roomLocation.index]! + + index] .state), - roomEntity.buttonView.triangle, + laundryRoomModel.buttonView.triangle, machineWidget( - roomState: roomEntity, - index: placeIndex[roomEntity.roomLocation.index]! + + roomState: laundryRoomModel, + index: placeIndex[laundryRoomModel.roomLocation.index]! + index + - (roomEntity.roomLocation == + (laundryRoomModel.roomLocation == RoomLocation.womanRoom ? 10 : 8) < 44 - ? list[placeIndex[roomEntity.roomLocation.index]! + + ? list[placeIndex[ + laundryRoomModel.roomLocation.index]! + index + - (roomEntity.roomLocation == + (laundryRoomModel.roomLocation == RoomLocation.womanRoom ? 10 : 8)] .id : -1, - machine: placeIndex[roomEntity.roomLocation.index]! + + machine: placeIndex[laundryRoomModel.roomLocation.index]! + index + - (roomEntity.roomLocation == + (laundryRoomModel.roomLocation == RoomLocation.womanRoom ? 10 : 8) < 44 - ? list[placeIndex[roomEntity.roomLocation.index]! + + ? list[placeIndex[ + laundryRoomModel.roomLocation.index]! + index + - (roomEntity.roomLocation == + (laundryRoomModel.roomLocation == RoomLocation.womanRoom ? 10 : 8)] .deviceType : Machine.dry, - state: placeIndex[roomEntity.roomLocation.index]! + + state: placeIndex[laundryRoomModel.roomLocation.index]! + index + - (roomEntity.roomLocation == + (laundryRoomModel.roomLocation == RoomLocation.womanRoom ? 10 : 8) < 44 - ? list[placeIndex[roomEntity.roomLocation.index]! + + ? list[placeIndex[ + laundryRoomModel.roomLocation.index]! + index + - (roomEntity.roomLocation == + (laundryRoomModel.roomLocation == RoomLocation.womanRoom ? 10 : 8)] diff --git a/lib/presentation/setting_page/bloc/room_bloc.dart b/lib/presentation/setting_page/bloc/room_bloc.dart index b158dd1b..80c24aec 100644 --- a/lib/presentation/setting_page/bloc/room_bloc.dart +++ b/lib/presentation/setting_page/bloc/room_bloc.dart @@ -1,12 +1,12 @@ import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:lotura/domain/entity/room_entity.dart'; import 'package:lotura/domain/use_case/get_laundry_room_index_use_case.dart'; import 'package:lotura/domain/use_case/update_laundry_room_index_use_case.dart'; import 'package:lotura/main.dart'; +import 'package:lotura/presentation/setting_page/bloc/laundry_room_model.dart'; import 'package:lotura/presentation/setting_page/bloc/room_event.dart'; import 'package:lotura/presentation/setting_page/bloc/room_state.dart'; -class RoomBloc extends Bloc> { +class RoomBloc extends Bloc> { final GetLaundryRoomIndexUseCase _getLaundryRoomIndexUseCase; final UpdateLaundryRoomIndexUseCase _updateLaundryRoomIndexUseCase; @@ -16,7 +16,7 @@ class RoomBloc extends Bloc> { : _getLaundryRoomIndexUseCase = getLaundryRoomIndexUseCase, _updateLaundryRoomIndexUseCase = updateLaundryRoomIndexUseCase, super(Initial( - data: const LaundryRoomEntity( + data: const LaundryRoomModel( roomLocation: RoomLocation.schoolSide, buttonView: ButtonView.icon, isClick: false, @@ -33,13 +33,13 @@ class RoomBloc extends Bloc> { } void _updateRoomIndexEventHandler( - UpdateRoomIndexEvent event, Emitter> emit) { + UpdateRoomIndexEvent event, Emitter> emit) { emit(Changed(data: state.value.copyWith(roomLocation: event.roomLocation))); _updateLaundryRoomIndexUseCase.execute(value: event.roomLocation.index); } void _getRoomIndexEventHandler( - GetRoomIndexEvent event, Emitter> emit) { + GetRoomIndexEvent event, Emitter> emit) { emit(Changed( data: state.value.copyWith( roomLocation: RoomLocation.values @@ -47,32 +47,32 @@ class RoomBloc extends Bloc> { } void _modifyRoomIndexEventHandler( - ModifyRoomIndexEvent event, Emitter> emit) { + ModifyRoomIndexEvent event, Emitter> emit) { emit(Changed(data: state.value.copyWith(roomLocation: event.roomLocation))); } void _modifyPlaceIconIndexEventHandler( - ModifyButtonViewEvent event, Emitter> emit) { + ModifyButtonViewEvent event, Emitter> emit) { emit(Changed(data: state.value.copyWith(buttonView: event.buttonView))); } void _showBottomSheetEventHandler( - ShowBottomSheetEvent event, Emitter> emit) { + ShowBottomSheetEvent event, Emitter> emit) { emit(Changed(data: state.value.copyWith(isNFCShowBottomSheet: true))); } void _initialShowBottomSheetEventHandler(InitialShowBottomSheetEvent event, - Emitter> emit) { + Emitter> emit) { emit(Changed(data: state.value.copyWith(isNFCShowBottomSheet: false))); } void _showingBottomSheetEventHandler(ShowingBottomSheetEvent event, - Emitter> emit) { + Emitter> emit) { emit(Changed(data: state.value.copyWith(showingBottomSheet: true))); } void _closingBottomSheetEventHandler(ClosingBottomSheetEvent event, - Emitter> emit) { + Emitter> emit) { emit(Changed(data: state.value.copyWith(showingBottomSheet: false))); } } diff --git a/lib/presentation/setting_page/ui/view/setting_page.dart b/lib/presentation/setting_page/ui/view/setting_page.dart index e4f299d1..19db7d0f 100644 --- a/lib/presentation/setting_page/ui/view/setting_page.dart +++ b/lib/presentation/setting_page/ui/view/setting_page.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:lotura/domain/entity/room_entity.dart'; +import 'package:lotura/presentation/setting_page/bloc/laundry_room_model.dart'; import 'package:lotura/presentation/setting_page/bloc/room_bloc.dart'; import 'package:lotura/presentation/setting_page/bloc/room_event.dart'; import 'package:lotura/presentation/setting_page/bloc/room_state.dart'; @@ -69,7 +69,7 @@ class _SettingPageState extends State { ), Row( children: [ - BlocBuilder>( + BlocBuilder>( builder: (context, state) { return switch (state) { Initial() => const SizedBox.shrink(), diff --git a/lib/presentation/setting_page/ui/widget/setting_page_bottom_sheet.dart b/lib/presentation/setting_page/ui/widget/setting_page_bottom_sheet.dart index 5541600d..41fbcb6c 100644 --- a/lib/presentation/setting_page/ui/widget/setting_page_bottom_sheet.dart +++ b/lib/presentation/setting_page/ui/widget/setting_page_bottom_sheet.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:lotura/domain/entity/room_entity.dart'; import 'package:lotura/main.dart'; +import 'package:lotura/presentation/setting_page/bloc/laundry_room_model.dart'; import 'package:lotura/presentation/setting_page/bloc/room_bloc.dart'; import 'package:lotura/presentation/setting_page/bloc/room_event.dart'; import 'package:lotura/presentation/setting_page/bloc/room_state.dart'; @@ -15,7 +15,7 @@ class SettingPageBottomSheet extends StatelessWidget { @override Widget build(BuildContext context) { - return BlocBuilder>( + return BlocBuilder>( builder: (context, state) { if (state is Initial) { context.read().add(GetRoomIndexEvent()); From c93d464553bf00277fea40b32aa60497212f65e2 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 14:35:44 +0900 Subject: [PATCH 36/56] =?UTF-8?q?feat=20::=20=EC=95=8C=EB=A6=BC=20?= =?UTF-8?q?=EC=8B=A0=EC=B2=AD=20=EC=83=81=ED=83=9C=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=EB=AA=A8=EB=8D=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apply_page/bloc/apply_model.dart | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 lib/presentation/apply_page/bloc/apply_model.dart diff --git a/lib/presentation/apply_page/bloc/apply_model.dart b/lib/presentation/apply_page/bloc/apply_model.dart new file mode 100644 index 00000000..44e5cc08 --- /dev/null +++ b/lib/presentation/apply_page/bloc/apply_model.dart @@ -0,0 +1,21 @@ +import 'package:lotura/main.dart'; + +class ApplyModel { + final int deviceId; + final String deviceType; + final Machine machine; + + const ApplyModel({ + required this.deviceId, + required this.deviceType, + required this.machine, + }); + + ApplyModel copyWith({int? deviceId, String? deviceType, Machine? machine}) { + return ApplyModel( + deviceId: deviceId ?? this.deviceId, + deviceType: deviceType ?? this.deviceType, + machine: machine ?? this.machine, + ); + } +} From 583eddfa84ace1da1f7aa94ddb373de0a735cf50 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 14:35:58 +0900 Subject: [PATCH 37/56] =?UTF-8?q?refactor=20::=20ApplyModel=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apply_page/bloc/apply_bloc.dart | 35 ++++++++++++++----- .../apply_page/ui/view/apply_page.dart | 4 +-- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/lib/presentation/apply_page/bloc/apply_bloc.dart b/lib/presentation/apply_page/bloc/apply_bloc.dart index 3f325b69..83f44705 100644 --- a/lib/presentation/apply_page/bloc/apply_bloc.dart +++ b/lib/presentation/apply_page/bloc/apply_bloc.dart @@ -1,12 +1,12 @@ import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:lotura/domain/entity/apply_entity.dart'; import 'package:lotura/domain/use_case/apply_cancel_use_case.dart'; import 'package:lotura/domain/use_case/get_apply_list_use_case.dart'; import 'package:lotura/domain/use_case/send_fcm_info_use_case.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_event.dart'; +import 'package:lotura/presentation/apply_page/bloc/apply_model.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_state.dart'; -class ApplyBloc extends Bloc>> { +class ApplyBloc extends Bloc>> { final GetApplyListUseCase _getApplyListUseCase; final SendFCMInfoUseCase _sendFCMInfoUseCase; final ApplyCancelUseCase _applyCancelUseCase; @@ -25,34 +25,53 @@ class ApplyBloc extends Bloc>> { } void _getApplyListEventHandler(GetApplyListEvent event, - Emitter>> emit) async { + Emitter>> emit) async { try { emit(Loading()); - emit(Loaded(data: await _getApplyListUseCase.execute())); + final applyList = await _getApplyListUseCase.execute(); + final applyModelList = applyList + .map((e) => ApplyModel( + deviceId: e.deviceId, + deviceType: e.deviceType, + machine: e.machine)) + .toList(); + emit((Loaded(data: applyModelList))); } catch (e) { emit(Error(errorMessage: e)); } } void _sendFCMEventHandler( - SendFCMEvent event, Emitter>> emit) async { + SendFCMEvent event, Emitter>> emit) async { try { emit(Loading()); final applyList = await _sendFCMInfoUseCase.execute( sendFCMInfoRequest: event.sendFCMInfoRequest); - emit(Loaded(data: applyList)); + final applyModelList = applyList + .map((e) => ApplyModel( + deviceId: e.deviceId, + deviceType: e.deviceType, + machine: e.machine)) + .toList(); + emit(Loaded(data: applyModelList)); } catch (e) { emit(Error(errorMessage: e)); } } void _applyCancelEventHandler(ApplyCancelEvent event, - Emitter>> emit) async { + Emitter>> emit) async { try { emit(Loading()); final applyList = await _applyCancelUseCase.execute( applyCancelRequest: event.applyCancelRequest); - emit(Loaded(data: applyList)); + final applyModelList = applyList + .map((e) => ApplyModel( + deviceId: e.deviceId, + deviceType: e.deviceType, + machine: e.machine)) + .toList(); + emit(Loaded(data: applyModelList)); } catch (e) { emit(Error(errorMessage: e)); } diff --git a/lib/presentation/apply_page/ui/view/apply_page.dart b/lib/presentation/apply_page/ui/view/apply_page.dart index d76f8d8a..13926e5a 100644 --- a/lib/presentation/apply_page/ui/view/apply_page.dart +++ b/lib/presentation/apply_page/ui/view/apply_page.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:lotura/domain/entity/apply_entity.dart'; import 'package:lotura/main.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; +import 'package:lotura/presentation/apply_page/bloc/apply_model.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_state.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_bloc.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_event.dart'; @@ -118,7 +118,7 @@ class ApplyPage extends StatelessWidget { ), SizedBox(height: 20.0.h), Expanded( - child: BlocBuilder>>( + child: BlocBuilder>>( builder: (context, state) { return switch (state) { Empty() => const Center(child: Text("비어있음")), From 1a746088c04079eba916b884abab5ced4970c2d2 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 15:26:14 +0900 Subject: [PATCH 38/56] =?UTF-8?q?feat=20::=20=EC=84=B8=ED=83=81=EC=8B=A4?= =?UTF-8?q?=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=83=81=ED=83=9C=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20=EB=AA=A8=EB=8D=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laundry_room_page/bloc/laundry_model.dart | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 lib/presentation/laundry_room_page/bloc/laundry_model.dart diff --git a/lib/presentation/laundry_room_page/bloc/laundry_model.dart b/lib/presentation/laundry_room_page/bloc/laundry_model.dart new file mode 100644 index 00000000..6de65cf6 --- /dev/null +++ b/lib/presentation/laundry_room_page/bloc/laundry_model.dart @@ -0,0 +1,15 @@ +import 'package:lotura/domain/entity/laundry_entity.dart'; + +class LaundryModel { + final LaundryEntity laundryEntity; + + const LaundryModel({ + required this.laundryEntity, + }); + + LaundryModel copyWith({LaundryEntity? laundryEntity}) { + return LaundryModel( + laundryEntity: laundryEntity ?? this.laundryEntity, + ); + } +} From 2346a7625f08b62537b7ee5ed9ab175fbf856fe8 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 15:26:31 +0900 Subject: [PATCH 39/56] =?UTF-8?q?refactor=20::=20laundry=20model=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laundry_room_page/bloc/laundry_bloc.dart | 32 ++++++++----------- .../ui/view/laundry_room_page.dart | 16 +++++++--- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart b/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart index 6da2b012..424c720c 100644 --- a/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart +++ b/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart @@ -1,12 +1,11 @@ import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:lotura/domain/entity/laundry_entity.dart'; import 'package:lotura/domain/use_case/get_all_laundry_list_use_case.dart'; import 'package:lotura/domain/use_case/get_laundry_status_use_case.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_event.dart'; +import 'package:lotura/presentation/laundry_room_page/bloc/laundry_model.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_state.dart'; -class LaundryBloc - extends Bloc>> { +class LaundryBloc extends Bloc>> { final GetLaundryStatusUseCase _getLaundryStatusUseCase; final GetAllLaundryListUseCase _getAllLaundryListEventUseCase; @@ -21,20 +20,16 @@ class LaundryBloc } void _getLaundryEventHandler(GetLaundryEvent event, - Emitter>> emit) async { + Emitter>> emit) async { try { _getLaundryStatusUseCase.execute(); await for (var data in _getLaundryStatusUseCase.laundryList) { - final newState = Loaded( - data: state.value - .map((e) => e.id == data.id - ? LaundryEntity( - id: data.id, - state: data.state.index, - deviceType: data.deviceType.name.toUpperCase()) - : e) - .toList()); - emit(newState); + final newState = state.value + .map((e) => e.laundryEntity.id == data.id + ? LaundryModel(laundryEntity: data) + : e) + .toList(); + emit(Loaded(data: newState)); } } catch (e) { emit(Error(error: e)); @@ -42,12 +37,13 @@ class LaundryBloc } void _getAllLaundryListEventHandler(GetAllLaundryListEvent event, - Emitter>> emit) async { + Emitter>> emit) async { try { emit(Loading()); - final newState = - Loaded(data: await _getAllLaundryListEventUseCase.execute()); - emit(newState); + final newState = await _getAllLaundryListEventUseCase.execute(); + final laundryModelList = + newState.map((e) => LaundryModel(laundryEntity: e)).toList(); + emit(Loaded(data: laundryModelList)); } catch (e) { emit(Error(error: e)); } diff --git a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart index 44a876fe..faae3d84 100644 --- a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart +++ b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:lotura/domain/entity/laundry_entity.dart'; import 'package:lotura/main.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_bloc.dart'; +import 'package:lotura/presentation/laundry_room_page/bloc/laundry_model.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_state.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_bloc.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_event.dart'; @@ -210,7 +210,7 @@ class LaundryRoomPage extends StatelessWidget { ), Expanded( child: BlocBuilder>>( + LaundryState>>( builder: (context, state) { return switch (state) { Empty() => const Center(child: Text("비어있음")), @@ -247,7 +247,7 @@ class LaundryList extends StatelessWidget { required this.nfcData, }); - final List list; + final List list; final LaundryRoomModel laundryRoomModel; final int nfcData; @@ -293,8 +293,8 @@ class LaundryList extends StatelessWidget { index: nfcData, isEnableNotification: true, isWoman: nfcData > 31 ? true : false, - state: list[nfcData - 1].state, - machine: list[nfcData - 1].deviceType, + state: list[nfcData - 1].laundryEntity.state, + machine: list[nfcData - 1].laundryEntity.deviceType, ), ); } @@ -316,14 +316,17 @@ class LaundryList extends StatelessWidget { index: list[ placeIndex[laundryRoomModel.roomLocation.index]! + index] + .laundryEntity .id, machine: list[ placeIndex[laundryRoomModel.roomLocation.index]! + index] + .laundryEntity .deviceType, state: list[ placeIndex[laundryRoomModel.roomLocation.index]! + index] + .laundryEntity .state), laundryRoomModel.buttonView.triangle, machineWidget( @@ -342,6 +345,7 @@ class LaundryList extends StatelessWidget { RoomLocation.womanRoom ? 10 : 8)] + .laundryEntity .id : -1, machine: placeIndex[laundryRoomModel.roomLocation.index]! + @@ -358,6 +362,7 @@ class LaundryList extends StatelessWidget { RoomLocation.womanRoom ? 10 : 8)] + .laundryEntity .deviceType : Machine.dry, state: placeIndex[laundryRoomModel.roomLocation.index]! + @@ -374,6 +379,7 @@ class LaundryList extends StatelessWidget { RoomLocation.womanRoom ? 10 : 8)] + .laundryEntity .state : CurrentState.breakdown, ), From ac872a4ff8e776a91707d4c421727952c3f2ecfd Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 15:34:39 +0900 Subject: [PATCH 40/56] =?UTF-8?q?refactor=20::=20apply=20model=20=ED=95=84?= =?UTF-8?q?=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apply_page/bloc/apply_bloc.dart | 39 ++++++------------ .../apply_page/bloc/apply_model.dart | 20 +++------- .../apply_page/ui/view/apply_page.dart | 40 ++++++++++++------- 3 files changed, 44 insertions(+), 55 deletions(-) diff --git a/lib/presentation/apply_page/bloc/apply_bloc.dart b/lib/presentation/apply_page/bloc/apply_bloc.dart index 83f44705..af8d13f5 100644 --- a/lib/presentation/apply_page/bloc/apply_bloc.dart +++ b/lib/presentation/apply_page/bloc/apply_bloc.dart @@ -6,7 +6,7 @@ import 'package:lotura/presentation/apply_page/bloc/apply_event.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_model.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_state.dart'; -class ApplyBloc extends Bloc>> { +class ApplyBloc extends Bloc> { final GetApplyListUseCase _getApplyListUseCase; final SendFCMInfoUseCase _sendFCMInfoUseCase; final ApplyCancelUseCase _applyCancelUseCase; @@ -24,54 +24,39 @@ class ApplyBloc extends Bloc>> { on(_applyCancelEventHandler); } - void _getApplyListEventHandler(GetApplyListEvent event, - Emitter>> emit) async { + void _getApplyListEventHandler( + GetApplyListEvent event, Emitter> emit) async { try { emit(Loading()); final applyList = await _getApplyListUseCase.execute(); - final applyModelList = applyList - .map((e) => ApplyModel( - deviceId: e.deviceId, - deviceType: e.deviceType, - machine: e.machine)) - .toList(); - emit((Loaded(data: applyModelList))); + final applyModel = ApplyModel(applyList: applyList); + emit((Loaded(data: applyModel))); } catch (e) { emit(Error(errorMessage: e)); } } void _sendFCMEventHandler( - SendFCMEvent event, Emitter>> emit) async { + SendFCMEvent event, Emitter> emit) async { try { emit(Loading()); final applyList = await _sendFCMInfoUseCase.execute( sendFCMInfoRequest: event.sendFCMInfoRequest); - final applyModelList = applyList - .map((e) => ApplyModel( - deviceId: e.deviceId, - deviceType: e.deviceType, - machine: e.machine)) - .toList(); - emit(Loaded(data: applyModelList)); + final applyModel = ApplyModel(applyList: applyList); + emit(Loaded(data: applyModel)); } catch (e) { emit(Error(errorMessage: e)); } } - void _applyCancelEventHandler(ApplyCancelEvent event, - Emitter>> emit) async { + void _applyCancelEventHandler( + ApplyCancelEvent event, Emitter> emit) async { try { emit(Loading()); final applyList = await _applyCancelUseCase.execute( applyCancelRequest: event.applyCancelRequest); - final applyModelList = applyList - .map((e) => ApplyModel( - deviceId: e.deviceId, - deviceType: e.deviceType, - machine: e.machine)) - .toList(); - emit(Loaded(data: applyModelList)); + final applyModel = ApplyModel(applyList: applyList); + emit(Loaded(data: applyModel)); } catch (e) { emit(Error(errorMessage: e)); } diff --git a/lib/presentation/apply_page/bloc/apply_model.dart b/lib/presentation/apply_page/bloc/apply_model.dart index 44e5cc08..6e88faea 100644 --- a/lib/presentation/apply_page/bloc/apply_model.dart +++ b/lib/presentation/apply_page/bloc/apply_model.dart @@ -1,21 +1,13 @@ -import 'package:lotura/main.dart'; +import 'package:lotura/domain/entity/apply_entity.dart'; class ApplyModel { - final int deviceId; - final String deviceType; - final Machine machine; + final List applyList; - const ApplyModel({ - required this.deviceId, - required this.deviceType, - required this.machine, + ApplyModel({ + required this.applyList, }); - ApplyModel copyWith({int? deviceId, String? deviceType, Machine? machine}) { - return ApplyModel( - deviceId: deviceId ?? this.deviceId, - deviceType: deviceType ?? this.deviceType, - machine: machine ?? this.machine, - ); + ApplyModel copyWith({List? applyList}) { + return ApplyModel(applyList: applyList ?? this.applyList); } } diff --git a/lib/presentation/apply_page/ui/view/apply_page.dart b/lib/presentation/apply_page/ui/view/apply_page.dart index 13926e5a..e60fae22 100644 --- a/lib/presentation/apply_page/ui/view/apply_page.dart +++ b/lib/presentation/apply_page/ui/view/apply_page.dart @@ -118,7 +118,7 @@ class ApplyPage extends StatelessWidget { ), SizedBox(height: 20.0.h), Expanded( - child: BlocBuilder>>( + child: BlocBuilder>( builder: (context, state) { return switch (state) { Empty() => const Center(child: Text("비어있음")), @@ -129,9 +129,9 @@ class ApplyPage extends StatelessWidget { behavior: const ScrollBehavior().copyWith(overscroll: false), child: ListView.builder( - itemCount: state.value.length.isEven - ? state.value.length ~/ 2 - : state.value.length ~/ 2 + 1, + itemCount: state.value.applyList.length.isEven + ? state.value.applyList.length ~/ 2 + : state.value.applyList.length ~/ 2 + 1, itemBuilder: (context, index) { return Column( children: [ @@ -140,26 +140,38 @@ class ApplyPage extends StatelessWidget { MainAxisAlignment.spaceBetween, children: [ MachineCard( - index: state.value[index * 2].deviceId, + index: state.value.applyList[index * 2] + .deviceId, isEnableNotification: false, - isWoman: - state.value[index * 2].deviceId > 31 - ? true - : false, - machine: state.value[index * 2].machine, + isWoman: state + .value + .applyList[index * 2] + .deviceId > + 31 + ? true + : false, + machine: state + .value.applyList[index * 2].machine, state: CurrentState.working), - index * 2 + 1 < state.value.length + index * 2 + 1 < state.value.applyList.length ? MachineCard( index: state - .value[index * 2 + 1].deviceId, + .value + .applyList[index * 2 + 1] + .deviceId, isEnableNotification: false, - isWoman: state.value[index * 2 + 1] + isWoman: state + .value + .applyList[ + index * 2 + 1] .deviceId > 31 ? true : false, machine: state - .value[index * 2 + 1].machine, + .value + .applyList[index * 2 + 1] + .machine, state: CurrentState.working) : SizedBox( width: 185.0.w, From 10768f0be7b8219804b39a933f2896207f961e87 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 15:41:52 +0900 Subject: [PATCH 41/56] =?UTF-8?q?refactor=20::=20laundry=20model=20?= =?UTF-8?q?=ED=95=84=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laundry_room_page/bloc/laundry_bloc.dart | 30 +++++++++++-------- .../laundry_room_page/bloc/laundry_model.dart | 8 ++--- .../ui/view/laundry_room_page.dart | 18 ++++------- 3 files changed, 27 insertions(+), 29 deletions(-) diff --git a/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart b/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart index 424c720c..8deafb7e 100644 --- a/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart +++ b/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart @@ -1,11 +1,12 @@ import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:lotura/domain/entity/laundry_entity.dart'; import 'package:lotura/domain/use_case/get_all_laundry_list_use_case.dart'; import 'package:lotura/domain/use_case/get_laundry_status_use_case.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_event.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_model.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_state.dart'; -class LaundryBloc extends Bloc>> { +class LaundryBloc extends Bloc> { final GetLaundryStatusUseCase _getLaundryStatusUseCase; final GetAllLaundryListUseCase _getAllLaundryListEventUseCase; @@ -19,17 +20,21 @@ class LaundryBloc extends Bloc>> { on(_getAllLaundryListEventHandler); } - void _getLaundryEventHandler(GetLaundryEvent event, - Emitter>> emit) async { + void _getLaundryEventHandler( + GetLaundryEvent event, Emitter> emit) async { try { _getLaundryStatusUseCase.execute(); await for (var data in _getLaundryStatusUseCase.laundryList) { - final newState = state.value - .map((e) => e.laundryEntity.id == data.id - ? LaundryModel(laundryEntity: data) - : e) - .toList(); - emit(Loaded(data: newState)); + final newLaundryModel = LaundryModel( + laundryList: state.value.laundryList + .map((e) => e.id == data.id + ? LaundryEntity( + id: e.id, + state: data.state.index, + deviceType: data.deviceType.text.toLowerCase()) + : e) + .toList()); + emit(Loaded(data: newLaundryModel)); } } catch (e) { emit(Error(error: e)); @@ -37,13 +42,12 @@ class LaundryBloc extends Bloc>> { } void _getAllLaundryListEventHandler(GetAllLaundryListEvent event, - Emitter>> emit) async { + Emitter> emit) async { try { emit(Loading()); final newState = await _getAllLaundryListEventUseCase.execute(); - final laundryModelList = - newState.map((e) => LaundryModel(laundryEntity: e)).toList(); - emit(Loaded(data: laundryModelList)); + final newLaundryModel = LaundryModel(laundryList: newState); + emit(Loaded(data: newLaundryModel)); } catch (e) { emit(Error(error: e)); } diff --git a/lib/presentation/laundry_room_page/bloc/laundry_model.dart b/lib/presentation/laundry_room_page/bloc/laundry_model.dart index 6de65cf6..efec4989 100644 --- a/lib/presentation/laundry_room_page/bloc/laundry_model.dart +++ b/lib/presentation/laundry_room_page/bloc/laundry_model.dart @@ -1,15 +1,15 @@ import 'package:lotura/domain/entity/laundry_entity.dart'; class LaundryModel { - final LaundryEntity laundryEntity; + final List laundryList; const LaundryModel({ - required this.laundryEntity, + required this.laundryList, }); - LaundryModel copyWith({LaundryEntity? laundryEntity}) { + LaundryModel copyWith({List? laundryList}) { return LaundryModel( - laundryEntity: laundryEntity ?? this.laundryEntity, + laundryList: laundryList ?? this.laundryList, ); } } diff --git a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart index faae3d84..395d423e 100644 --- a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart +++ b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:lotura/domain/entity/laundry_entity.dart'; import 'package:lotura/main.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_bloc.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_model.dart'; @@ -209,8 +210,7 @@ class LaundryRoomPage extends StatelessWidget { ], ), Expanded( - child: BlocBuilder>>( + child: BlocBuilder>( builder: (context, state) { return switch (state) { Empty() => const Center(child: Text("비어있음")), @@ -219,7 +219,7 @@ class LaundryRoomPage extends StatelessWidget { Error() => const Center(child: Text("인터넷 연결을 확인해주세요")), Loaded() => LaundryList( - list: state.data, + list: state.data.laundryList, laundryRoomModel: roomBlocState.value, nfcData: nfcTagData, ), @@ -247,7 +247,7 @@ class LaundryList extends StatelessWidget { required this.nfcData, }); - final List list; + final List list; final LaundryRoomModel laundryRoomModel; final int nfcData; @@ -293,8 +293,8 @@ class LaundryList extends StatelessWidget { index: nfcData, isEnableNotification: true, isWoman: nfcData > 31 ? true : false, - state: list[nfcData - 1].laundryEntity.state, - machine: list[nfcData - 1].laundryEntity.deviceType, + state: list[nfcData - 1].state, + machine: list[nfcData - 1].deviceType, ), ); } @@ -316,17 +316,14 @@ class LaundryList extends StatelessWidget { index: list[ placeIndex[laundryRoomModel.roomLocation.index]! + index] - .laundryEntity .id, machine: list[ placeIndex[laundryRoomModel.roomLocation.index]! + index] - .laundryEntity .deviceType, state: list[ placeIndex[laundryRoomModel.roomLocation.index]! + index] - .laundryEntity .state), laundryRoomModel.buttonView.triangle, machineWidget( @@ -345,7 +342,6 @@ class LaundryList extends StatelessWidget { RoomLocation.womanRoom ? 10 : 8)] - .laundryEntity .id : -1, machine: placeIndex[laundryRoomModel.roomLocation.index]! + @@ -362,7 +358,6 @@ class LaundryList extends StatelessWidget { RoomLocation.womanRoom ? 10 : 8)] - .laundryEntity .deviceType : Machine.dry, state: placeIndex[laundryRoomModel.roomLocation.index]! + @@ -379,7 +374,6 @@ class LaundryList extends StatelessWidget { RoomLocation.womanRoom ? 10 : 8)] - .laundryEntity .state : CurrentState.breakdown, ), From 06e0ff1ee848fb918211dab2a92d01aa4265c79b Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 16:04:34 +0900 Subject: [PATCH 42/56] =?UTF-8?q?refactor=20::=20=EC=8B=A0=EC=B2=AD=20?= =?UTF-8?q?=EB=8F=84=EB=A9=94=EC=9D=B8=20=ED=8F=B4=EB=8D=94=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=20=EA=B0=9C=ED=8E=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../remote/remote_apply_data_source.dart | 8 ++++---- .../dto/request/apply_cancel_request.dart | 0 lib/data/{ => apply}/dto/request/apply_request.dart | 0 .../dto/request/get_apply_list_request.dart | 0 .../dto/request/send_fcm_info_request.dart | 0 .../{ => apply}/dto/response/apply_response.dart | 2 +- .../repository/apply_repository_impl.dart | 10 +++++----- .../local/local_laundry_data_source.dart | 0 .../remote/remote_laundry_data_source.dart | 0 .../{ => laundry}/dto/response/laundry_response.dart | 0 .../repository/laundry_repository_impl.dart | 4 ++-- lib/di/di.dart | 12 ++++++------ lib/domain/{ => apply}/entity/apply_entity.dart | 0 .../{ => apply}/repository/apply_repository.dart | 6 +++--- .../{ => apply}/use_case/apply_cancel_use_case.dart | 6 +++--- .../use_case/get_apply_list_use_case.dart | 4 ++-- .../{ => apply}/use_case/send_fcm_info_use_case.dart | 6 +++--- lib/domain/{ => laundry}/entity/laundry_entity.dart | 0 .../{ => laundry}/repository/laundry_repository.dart | 0 .../use_case/get_all_laundry_list_use_case.dart | 0 .../use_case/get_laundry_room_index_use_case.dart | 0 .../use_case/get_laundry_status_use_case.dart | 0 .../use_case/update_laundry_room_index_use_case.dart | 0 lib/init/fcm_init.dart | 2 +- lib/presentation/apply_page/bloc/apply_bloc.dart | 6 +++--- lib/presentation/apply_page/bloc/apply_event.dart | 6 +++--- lib/presentation/apply_page/bloc/apply_model.dart | 2 +- .../splash_page/ui/view/splash_page.dart | 2 +- lib/presentation/utils/bottom_navi.dart | 2 +- lib/presentation/utils/osj_bottom_sheet.dart | 4 ++-- 30 files changed, 41 insertions(+), 41 deletions(-) rename lib/data/{data_source/apply => apply/data_source}/remote/remote_apply_data_source.dart (84%) rename lib/data/{ => apply}/dto/request/apply_cancel_request.dart (100%) rename lib/data/{ => apply}/dto/request/apply_request.dart (100%) rename lib/data/{ => apply}/dto/request/get_apply_list_request.dart (100%) rename lib/data/{ => apply}/dto/request/send_fcm_info_request.dart (100%) rename lib/data/{ => apply}/dto/response/apply_response.dart (86%) rename lib/data/{ => apply}/repository/apply_repository_impl.dart (70%) rename lib/data/{data_source/laundry => laundry/data_source}/local/local_laundry_data_source.dart (100%) rename lib/data/{data_source/laundry => laundry/data_source}/remote/remote_laundry_data_source.dart (100%) rename lib/data/{ => laundry}/dto/response/laundry_response.dart (100%) rename lib/data/{ => laundry}/repository/laundry_repository_impl.dart (90%) rename lib/domain/{ => apply}/entity/apply_entity.dart (100%) rename lib/domain/{ => apply}/repository/apply_repository.dart (56%) rename lib/domain/{ => apply}/use_case/apply_cancel_use_case.dart (63%) rename lib/domain/{ => apply}/use_case/get_apply_list_use_case.dart (65%) rename lib/domain/{ => apply}/use_case/send_fcm_info_use_case.dart (66%) rename lib/domain/{ => laundry}/entity/laundry_entity.dart (100%) rename lib/domain/{ => laundry}/repository/laundry_repository.dart (100%) rename lib/domain/{ => laundry}/use_case/get_all_laundry_list_use_case.dart (100%) rename lib/domain/{ => laundry}/use_case/get_laundry_room_index_use_case.dart (100%) rename lib/domain/{ => laundry}/use_case/get_laundry_status_use_case.dart (100%) rename lib/domain/{ => laundry}/use_case/update_laundry_room_index_use_case.dart (100%) diff --git a/lib/data/data_source/apply/remote/remote_apply_data_source.dart b/lib/data/apply/data_source/remote/remote_apply_data_source.dart similarity index 84% rename from lib/data/data_source/apply/remote/remote_apply_data_source.dart rename to lib/data/apply/data_source/remote/remote_apply_data_source.dart index dde89d29..bd87541c 100644 --- a/lib/data/data_source/apply/remote/remote_apply_data_source.dart +++ b/lib/data/apply/data_source/remote/remote_apply_data_source.dart @@ -3,10 +3,10 @@ import 'dart:convert'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:http/http.dart' as http; -import 'package:lotura/data/dto/request/apply_cancel_request.dart'; -import 'package:lotura/data/dto/request/send_fcm_info_request.dart'; -import 'package:lotura/data/dto/response/apply_response.dart'; -import 'package:lotura/domain/entity/apply_entity.dart'; +import 'package:lotura/data/apply/dto/request/apply_cancel_request.dart'; +import 'package:lotura/data/apply/dto/request/send_fcm_info_request.dart'; +import 'package:lotura/data/apply/dto/response/apply_response.dart'; +import 'package:lotura/domain/apply/entity/apply_entity.dart'; import 'package:lotura/secret.dart'; class RemoteApplyDataSource { diff --git a/lib/data/dto/request/apply_cancel_request.dart b/lib/data/apply/dto/request/apply_cancel_request.dart similarity index 100% rename from lib/data/dto/request/apply_cancel_request.dart rename to lib/data/apply/dto/request/apply_cancel_request.dart diff --git a/lib/data/dto/request/apply_request.dart b/lib/data/apply/dto/request/apply_request.dart similarity index 100% rename from lib/data/dto/request/apply_request.dart rename to lib/data/apply/dto/request/apply_request.dart diff --git a/lib/data/dto/request/get_apply_list_request.dart b/lib/data/apply/dto/request/get_apply_list_request.dart similarity index 100% rename from lib/data/dto/request/get_apply_list_request.dart rename to lib/data/apply/dto/request/get_apply_list_request.dart diff --git a/lib/data/dto/request/send_fcm_info_request.dart b/lib/data/apply/dto/request/send_fcm_info_request.dart similarity index 100% rename from lib/data/dto/request/send_fcm_info_request.dart rename to lib/data/apply/dto/request/send_fcm_info_request.dart diff --git a/lib/data/dto/response/apply_response.dart b/lib/data/apply/dto/response/apply_response.dart similarity index 86% rename from lib/data/dto/response/apply_response.dart rename to lib/data/apply/dto/response/apply_response.dart index b35704d5..6a9417e5 100644 --- a/lib/data/dto/response/apply_response.dart +++ b/lib/data/apply/dto/response/apply_response.dart @@ -1,4 +1,4 @@ -import 'package:lotura/domain/entity/apply_entity.dart'; +import 'package:lotura/domain/apply/entity/apply_entity.dart'; class ApplyResponse { final int deviceId; diff --git a/lib/data/repository/apply_repository_impl.dart b/lib/data/apply/repository/apply_repository_impl.dart similarity index 70% rename from lib/data/repository/apply_repository_impl.dart rename to lib/data/apply/repository/apply_repository_impl.dart index b681dd91..170533dc 100644 --- a/lib/data/repository/apply_repository_impl.dart +++ b/lib/data/apply/repository/apply_repository_impl.dart @@ -1,10 +1,10 @@ import 'dart:async'; -import 'package:lotura/data/data_source/apply/remote/remote_apply_data_source.dart'; -import 'package:lotura/data/dto/request/apply_cancel_request.dart'; -import 'package:lotura/data/dto/request/send_fcm_info_request.dart'; -import 'package:lotura/domain/entity/apply_entity.dart'; -import 'package:lotura/domain/repository/apply_repository.dart'; +import 'package:lotura/data/apply/data_source/remote/remote_apply_data_source.dart'; +import 'package:lotura/data/apply/dto/request/apply_cancel_request.dart'; +import 'package:lotura/data/apply/dto/request/send_fcm_info_request.dart'; +import 'package:lotura/domain/apply/entity/apply_entity.dart'; +import 'package:lotura/domain/apply/repository/apply_repository.dart'; class ApplyRepositoryImpl implements ApplyRepository { final RemoteApplyDataSource _remoteApplyDataSource; diff --git a/lib/data/data_source/laundry/local/local_laundry_data_source.dart b/lib/data/laundry/data_source/local/local_laundry_data_source.dart similarity index 100% rename from lib/data/data_source/laundry/local/local_laundry_data_source.dart rename to lib/data/laundry/data_source/local/local_laundry_data_source.dart diff --git a/lib/data/data_source/laundry/remote/remote_laundry_data_source.dart b/lib/data/laundry/data_source/remote/remote_laundry_data_source.dart similarity index 100% rename from lib/data/data_source/laundry/remote/remote_laundry_data_source.dart rename to lib/data/laundry/data_source/remote/remote_laundry_data_source.dart diff --git a/lib/data/dto/response/laundry_response.dart b/lib/data/laundry/dto/response/laundry_response.dart similarity index 100% rename from lib/data/dto/response/laundry_response.dart rename to lib/data/laundry/dto/response/laundry_response.dart diff --git a/lib/data/repository/laundry_repository_impl.dart b/lib/data/laundry/repository/laundry_repository_impl.dart similarity index 90% rename from lib/data/repository/laundry_repository_impl.dart rename to lib/data/laundry/repository/laundry_repository_impl.dart index ba13ff80..0dd0396a 100644 --- a/lib/data/repository/laundry_repository_impl.dart +++ b/lib/data/laundry/repository/laundry_repository_impl.dart @@ -1,7 +1,7 @@ import 'dart:async'; -import 'package:lotura/data/data_source/laundry/local/local_laundry_data_source.dart'; -import 'package:lotura/data/data_source/laundry/remote/remote_laundry_data_source.dart'; +import 'package:lotura/data/laundry/data_source/local/local_laundry_data_source.dart'; +import 'package:lotura/data/laundry/data_source/remote/remote_laundry_data_source.dart'; import 'package:lotura/domain/entity/laundry_entity.dart'; import 'package:lotura/domain/repository/laundry_repository.dart'; diff --git a/lib/di/di.dart b/lib/di/di.dart index 87a9ecb6..03855327 100644 --- a/lib/di/di.dart +++ b/lib/di/di.dart @@ -2,26 +2,26 @@ import 'dart:async'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:hive/hive.dart'; -import 'package:lotura/data/data_source/apply/remote/remote_apply_data_source.dart'; +import 'package:lotura/data/apply/data_source/remote/remote_apply_data_source.dart'; +import 'package:lotura/data/apply/repository/apply_repository_impl.dart'; import 'package:lotura/data/data_source/laundry/local/local_laundry_data_source.dart'; import 'package:lotura/data/data_source/laundry/remote/remote_laundry_data_source.dart'; import 'package:lotura/data/data_source/notice/local/local_notice_data_source.dart'; import 'package:lotura/data/data_source/notice/remote/remote_notice_data_source.dart'; -import 'package:lotura/data/repository/apply_repository_impl.dart'; import 'package:lotura/data/repository/laundry_repository_impl.dart'; import 'package:lotura/data/repository/notice_repository_impl.dart'; +import 'package:lotura/domain/apply/repository/apply_repository.dart'; +import 'package:lotura/domain/apply/use_case/apply_cancel_use_case.dart'; +import 'package:lotura/domain/apply/use_case/get_apply_list_use_case.dart'; +import 'package:lotura/domain/apply/use_case/send_fcm_info_use_case.dart'; import 'package:lotura/domain/entity/laundry_entity.dart'; -import 'package:lotura/domain/repository/apply_repository.dart'; import 'package:lotura/domain/repository/laundry_repository.dart'; import 'package:lotura/domain/repository/notice_repository.dart'; -import 'package:lotura/domain/use_case/apply_cancel_use_case.dart'; import 'package:lotura/domain/use_case/get_all_laundry_list_use_case.dart'; -import 'package:lotura/domain/use_case/get_apply_list_use_case.dart'; import 'package:lotura/domain/use_case/get_last_notice_id_use_case.dart'; import 'package:lotura/domain/use_case/get_laundry_room_index_use_case.dart'; import 'package:lotura/domain/use_case/get_laundry_status_use_case.dart'; import 'package:lotura/domain/use_case/get_notice_use_case.dart'; -import 'package:lotura/domain/use_case/send_fcm_info_use_case.dart'; import 'package:lotura/domain/use_case/update_last_notice_id_use_case.dart'; import 'package:lotura/domain/use_case/update_laundry_room_index_use_case.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; diff --git a/lib/domain/entity/apply_entity.dart b/lib/domain/apply/entity/apply_entity.dart similarity index 100% rename from lib/domain/entity/apply_entity.dart rename to lib/domain/apply/entity/apply_entity.dart diff --git a/lib/domain/repository/apply_repository.dart b/lib/domain/apply/repository/apply_repository.dart similarity index 56% rename from lib/domain/repository/apply_repository.dart rename to lib/domain/apply/repository/apply_repository.dart index 378494e0..196ca764 100644 --- a/lib/domain/repository/apply_repository.dart +++ b/lib/domain/apply/repository/apply_repository.dart @@ -1,8 +1,8 @@ import 'dart:async'; -import 'package:lotura/data/dto/request/apply_cancel_request.dart'; -import 'package:lotura/data/dto/request/send_fcm_info_request.dart'; -import 'package:lotura/domain/entity/apply_entity.dart'; +import 'package:lotura/data/apply/dto/request/apply_cancel_request.dart'; +import 'package:lotura/data/apply/dto/request/send_fcm_info_request.dart'; +import 'package:lotura/domain/apply/entity/apply_entity.dart'; abstract class ApplyRepository { Future> getApplyList(); diff --git a/lib/domain/use_case/apply_cancel_use_case.dart b/lib/domain/apply/use_case/apply_cancel_use_case.dart similarity index 63% rename from lib/domain/use_case/apply_cancel_use_case.dart rename to lib/domain/apply/use_case/apply_cancel_use_case.dart index be3c40e5..8520369a 100644 --- a/lib/domain/use_case/apply_cancel_use_case.dart +++ b/lib/domain/apply/use_case/apply_cancel_use_case.dart @@ -1,6 +1,6 @@ -import 'package:lotura/data/dto/request/apply_cancel_request.dart'; -import 'package:lotura/domain/entity/apply_entity.dart'; -import 'package:lotura/domain/repository/apply_repository.dart'; +import 'package:lotura/data/apply/dto/request/apply_cancel_request.dart'; +import 'package:lotura/domain/apply/entity/apply_entity.dart'; +import 'package:lotura/domain/apply/repository/apply_repository.dart'; class ApplyCancelUseCase { final ApplyRepository _applyRepository; diff --git a/lib/domain/use_case/get_apply_list_use_case.dart b/lib/domain/apply/use_case/get_apply_list_use_case.dart similarity index 65% rename from lib/domain/use_case/get_apply_list_use_case.dart rename to lib/domain/apply/use_case/get_apply_list_use_case.dart index 62dac1c0..a80296f0 100644 --- a/lib/domain/use_case/get_apply_list_use_case.dart +++ b/lib/domain/apply/use_case/get_apply_list_use_case.dart @@ -1,5 +1,5 @@ -import 'package:lotura/domain/entity/apply_entity.dart'; -import 'package:lotura/domain/repository/apply_repository.dart'; +import 'package:lotura/domain/apply/entity/apply_entity.dart'; +import 'package:lotura/domain/apply/repository/apply_repository.dart'; class GetApplyListUseCase { final ApplyRepository _applyRepository; diff --git a/lib/domain/use_case/send_fcm_info_use_case.dart b/lib/domain/apply/use_case/send_fcm_info_use_case.dart similarity index 66% rename from lib/domain/use_case/send_fcm_info_use_case.dart rename to lib/domain/apply/use_case/send_fcm_info_use_case.dart index 1f40b616..6cec09ea 100644 --- a/lib/domain/use_case/send_fcm_info_use_case.dart +++ b/lib/domain/apply/use_case/send_fcm_info_use_case.dart @@ -1,6 +1,6 @@ -import 'package:lotura/data/dto/request/send_fcm_info_request.dart'; -import 'package:lotura/domain/entity/apply_entity.dart'; -import 'package:lotura/domain/repository/apply_repository.dart'; +import 'package:lotura/data/apply/dto/request/send_fcm_info_request.dart'; +import 'package:lotura/domain/apply/entity/apply_entity.dart'; +import 'package:lotura/domain/apply/repository/apply_repository.dart'; class SendFCMInfoUseCase { final ApplyRepository _applyRepository; diff --git a/lib/domain/entity/laundry_entity.dart b/lib/domain/laundry/entity/laundry_entity.dart similarity index 100% rename from lib/domain/entity/laundry_entity.dart rename to lib/domain/laundry/entity/laundry_entity.dart diff --git a/lib/domain/repository/laundry_repository.dart b/lib/domain/laundry/repository/laundry_repository.dart similarity index 100% rename from lib/domain/repository/laundry_repository.dart rename to lib/domain/laundry/repository/laundry_repository.dart diff --git a/lib/domain/use_case/get_all_laundry_list_use_case.dart b/lib/domain/laundry/use_case/get_all_laundry_list_use_case.dart similarity index 100% rename from lib/domain/use_case/get_all_laundry_list_use_case.dart rename to lib/domain/laundry/use_case/get_all_laundry_list_use_case.dart diff --git a/lib/domain/use_case/get_laundry_room_index_use_case.dart b/lib/domain/laundry/use_case/get_laundry_room_index_use_case.dart similarity index 100% rename from lib/domain/use_case/get_laundry_room_index_use_case.dart rename to lib/domain/laundry/use_case/get_laundry_room_index_use_case.dart diff --git a/lib/domain/use_case/get_laundry_status_use_case.dart b/lib/domain/laundry/use_case/get_laundry_status_use_case.dart similarity index 100% rename from lib/domain/use_case/get_laundry_status_use_case.dart rename to lib/domain/laundry/use_case/get_laundry_status_use_case.dart diff --git a/lib/domain/use_case/update_laundry_room_index_use_case.dart b/lib/domain/laundry/use_case/update_laundry_room_index_use_case.dart similarity index 100% rename from lib/domain/use_case/update_laundry_room_index_use_case.dart rename to lib/domain/laundry/use_case/update_laundry_room_index_use_case.dart diff --git a/lib/init/fcm_init.dart b/lib/init/fcm_init.dart index 6cb19323..b4ffa3a0 100644 --- a/lib/init/fcm_init.dart +++ b/lib/init/fcm_init.dart @@ -3,7 +3,7 @@ import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; -import 'package:lotura/data/dto/request/get_apply_list_request.dart'; +import 'package:lotura/data/apply/dto/request/get_apply_list_request.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_event.dart'; diff --git a/lib/presentation/apply_page/bloc/apply_bloc.dart b/lib/presentation/apply_page/bloc/apply_bloc.dart index af8d13f5..f28061c3 100644 --- a/lib/presentation/apply_page/bloc/apply_bloc.dart +++ b/lib/presentation/apply_page/bloc/apply_bloc.dart @@ -1,7 +1,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:lotura/domain/use_case/apply_cancel_use_case.dart'; -import 'package:lotura/domain/use_case/get_apply_list_use_case.dart'; -import 'package:lotura/domain/use_case/send_fcm_info_use_case.dart'; +import 'package:lotura/domain/apply/use_case/apply_cancel_use_case.dart'; +import 'package:lotura/domain/apply/use_case/get_apply_list_use_case.dart'; +import 'package:lotura/domain/apply/use_case/send_fcm_info_use_case.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_event.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_model.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_state.dart'; diff --git a/lib/presentation/apply_page/bloc/apply_event.dart b/lib/presentation/apply_page/bloc/apply_event.dart index 2fd01b90..742296d6 100644 --- a/lib/presentation/apply_page/bloc/apply_event.dart +++ b/lib/presentation/apply_page/bloc/apply_event.dart @@ -1,6 +1,6 @@ -import 'package:lotura/data/dto/request/apply_cancel_request.dart'; -import 'package:lotura/data/dto/request/get_apply_list_request.dart'; -import 'package:lotura/data/dto/request/send_fcm_info_request.dart'; +import 'package:lotura/data/apply/dto/request/apply_cancel_request.dart'; +import 'package:lotura/data/apply/dto/request/get_apply_list_request.dart'; +import 'package:lotura/data/apply/dto/request/send_fcm_info_request.dart'; abstract class ApplyEvent {} diff --git a/lib/presentation/apply_page/bloc/apply_model.dart b/lib/presentation/apply_page/bloc/apply_model.dart index 6e88faea..354eb6d4 100644 --- a/lib/presentation/apply_page/bloc/apply_model.dart +++ b/lib/presentation/apply_page/bloc/apply_model.dart @@ -1,4 +1,4 @@ -import 'package:lotura/domain/entity/apply_entity.dart'; +import 'package:lotura/domain/apply/entity/apply_entity.dart'; class ApplyModel { final List applyList; diff --git a/lib/presentation/splash_page/ui/view/splash_page.dart b/lib/presentation/splash_page/ui/view/splash_page.dart index 295b06f6..fead8004 100644 --- a/lib/presentation/splash_page/ui/view/splash_page.dart +++ b/lib/presentation/splash_page/ui/view/splash_page.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:http/http.dart' as http; -import 'package:lotura/data/dto/request/get_apply_list_request.dart'; +import 'package:lotura/data/apply/dto/request/get_apply_list_request.dart'; import 'package:lotura/presentation/app_update_page/ui/app_update_page.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_event.dart'; diff --git a/lib/presentation/utils/bottom_navi.dart b/lib/presentation/utils/bottom_navi.dart index 3c499a86..c841d181 100644 --- a/lib/presentation/utils/bottom_navi.dart +++ b/lib/presentation/utils/bottom_navi.dart @@ -6,7 +6,7 @@ import 'package:flutter/services.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:hive_flutter/hive_flutter.dart'; -import 'package:lotura/data/dto/request/get_apply_list_request.dart'; +import 'package:lotura/data/apply/dto/request/get_apply_list_request.dart'; import 'package:lotura/main.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_event.dart'; diff --git a/lib/presentation/utils/osj_bottom_sheet.dart b/lib/presentation/utils/osj_bottom_sheet.dart index f11d109e..b416bb72 100644 --- a/lib/presentation/utils/osj_bottom_sheet.dart +++ b/lib/presentation/utils/osj_bottom_sheet.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:lotura/data/dto/request/apply_cancel_request.dart'; -import 'package:lotura/data/dto/request/send_fcm_info_request.dart'; +import 'package:lotura/data/apply/dto/request/apply_cancel_request.dart'; +import 'package:lotura/data/apply/dto/request/send_fcm_info_request.dart'; import 'package:lotura/main.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_event.dart'; From fa294a1d31c88d06b0e992132c4b765c19daa165 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 16:05:06 +0900 Subject: [PATCH 43/56] =?UTF-8?q?refactor=20::=20=EC=84=B8=ED=83=81?= =?UTF-8?q?=EC=8B=A4=20=EB=8F=84=EB=A9=94=EC=9D=B8=20=ED=8F=B4=EB=8D=94=20?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=20=EA=B0=9C=ED=8E=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../remote/remote_laundry_data_source.dart | 4 ++-- .../laundry/dto/response/laundry_response.dart | 2 +- .../repository/laundry_repository_impl.dart | 4 ++-- lib/di/di.dart | 18 +++++++++--------- .../laundry/repository/laundry_repository.dart | 2 +- .../get_all_laundry_list_use_case.dart | 4 ++-- .../get_laundry_room_index_use_case.dart | 2 +- .../use_case/get_laundry_status_use_case.dart | 4 ++-- .../update_laundry_room_index_use_case.dart | 2 +- .../laundry_room_page/bloc/laundry_bloc.dart | 6 +++--- .../laundry_room_page/bloc/laundry_model.dart | 2 +- .../ui/view/laundry_room_page.dart | 2 +- .../setting_page/bloc/room_bloc.dart | 4 ++-- 13 files changed, 28 insertions(+), 28 deletions(-) diff --git a/lib/data/laundry/data_source/remote/remote_laundry_data_source.dart b/lib/data/laundry/data_source/remote/remote_laundry_data_source.dart index 0a96aa57..c4db5ee6 100644 --- a/lib/data/laundry/data_source/remote/remote_laundry_data_source.dart +++ b/lib/data/laundry/data_source/remote/remote_laundry_data_source.dart @@ -2,8 +2,8 @@ import 'dart:async'; import 'dart:convert'; import 'package:http/http.dart' as http; -import 'package:lotura/data/dto/response/laundry_response.dart'; -import 'package:lotura/domain/entity/laundry_entity.dart'; +import 'package:lotura/data/laundry/dto/response/laundry_response.dart'; +import 'package:lotura/domain/laundry/entity/laundry_entity.dart'; import 'package:lotura/secret.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; diff --git a/lib/data/laundry/dto/response/laundry_response.dart b/lib/data/laundry/dto/response/laundry_response.dart index 5f48e60f..49eda714 100644 --- a/lib/data/laundry/dto/response/laundry_response.dart +++ b/lib/data/laundry/dto/response/laundry_response.dart @@ -1,4 +1,4 @@ -import 'package:lotura/domain/entity/laundry_entity.dart'; +import 'package:lotura/domain/laundry/entity/laundry_entity.dart'; class LaundryResponse { final int id; diff --git a/lib/data/laundry/repository/laundry_repository_impl.dart b/lib/data/laundry/repository/laundry_repository_impl.dart index 0dd0396a..c5f48c29 100644 --- a/lib/data/laundry/repository/laundry_repository_impl.dart +++ b/lib/data/laundry/repository/laundry_repository_impl.dart @@ -2,8 +2,8 @@ import 'dart:async'; import 'package:lotura/data/laundry/data_source/local/local_laundry_data_source.dart'; import 'package:lotura/data/laundry/data_source/remote/remote_laundry_data_source.dart'; -import 'package:lotura/domain/entity/laundry_entity.dart'; -import 'package:lotura/domain/repository/laundry_repository.dart'; +import 'package:lotura/domain/laundry/entity/laundry_entity.dart'; +import 'package:lotura/domain/laundry/repository/laundry_repository.dart'; class LaundryRepositoryImpl implements LaundryRepository { final LocalLaundryDataSource _localLaundryDataSource; diff --git a/lib/di/di.dart b/lib/di/di.dart index 03855327..599c5077 100644 --- a/lib/di/di.dart +++ b/lib/di/di.dart @@ -4,26 +4,26 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:hive/hive.dart'; import 'package:lotura/data/apply/data_source/remote/remote_apply_data_source.dart'; import 'package:lotura/data/apply/repository/apply_repository_impl.dart'; -import 'package:lotura/data/data_source/laundry/local/local_laundry_data_source.dart'; -import 'package:lotura/data/data_source/laundry/remote/remote_laundry_data_source.dart'; import 'package:lotura/data/data_source/notice/local/local_notice_data_source.dart'; import 'package:lotura/data/data_source/notice/remote/remote_notice_data_source.dart'; -import 'package:lotura/data/repository/laundry_repository_impl.dart'; +import 'package:lotura/data/laundry/data_source/local/local_laundry_data_source.dart'; +import 'package:lotura/data/laundry/data_source/remote/remote_laundry_data_source.dart'; +import 'package:lotura/data/laundry/repository/laundry_repository_impl.dart'; import 'package:lotura/data/repository/notice_repository_impl.dart'; import 'package:lotura/domain/apply/repository/apply_repository.dart'; import 'package:lotura/domain/apply/use_case/apply_cancel_use_case.dart'; import 'package:lotura/domain/apply/use_case/get_apply_list_use_case.dart'; import 'package:lotura/domain/apply/use_case/send_fcm_info_use_case.dart'; -import 'package:lotura/domain/entity/laundry_entity.dart'; -import 'package:lotura/domain/repository/laundry_repository.dart'; +import 'package:lotura/domain/laundry/entity/laundry_entity.dart'; +import 'package:lotura/domain/laundry/repository/laundry_repository.dart'; +import 'package:lotura/domain/laundry/use_case/get_all_laundry_list_use_case.dart'; +import 'package:lotura/domain/laundry/use_case/get_laundry_room_index_use_case.dart'; +import 'package:lotura/domain/laundry/use_case/get_laundry_status_use_case.dart'; +import 'package:lotura/domain/laundry/use_case/update_laundry_room_index_use_case.dart'; import 'package:lotura/domain/repository/notice_repository.dart'; -import 'package:lotura/domain/use_case/get_all_laundry_list_use_case.dart'; import 'package:lotura/domain/use_case/get_last_notice_id_use_case.dart'; -import 'package:lotura/domain/use_case/get_laundry_room_index_use_case.dart'; -import 'package:lotura/domain/use_case/get_laundry_status_use_case.dart'; import 'package:lotura/domain/use_case/get_notice_use_case.dart'; import 'package:lotura/domain/use_case/update_last_notice_id_use_case.dart'; -import 'package:lotura/domain/use_case/update_laundry_room_index_use_case.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_bloc.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_bloc.dart'; diff --git a/lib/domain/laundry/repository/laundry_repository.dart b/lib/domain/laundry/repository/laundry_repository.dart index e4d9a2fe..521f09a1 100644 --- a/lib/domain/laundry/repository/laundry_repository.dart +++ b/lib/domain/laundry/repository/laundry_repository.dart @@ -1,6 +1,6 @@ import 'dart:async'; -import 'package:lotura/domain/entity/laundry_entity.dart'; +import 'package:lotura/domain/laundry/entity/laundry_entity.dart'; abstract class LaundryRepository { Stream get laundryList; diff --git a/lib/domain/laundry/use_case/get_all_laundry_list_use_case.dart b/lib/domain/laundry/use_case/get_all_laundry_list_use_case.dart index 6e09a385..5a9c84fc 100644 --- a/lib/domain/laundry/use_case/get_all_laundry_list_use_case.dart +++ b/lib/domain/laundry/use_case/get_all_laundry_list_use_case.dart @@ -1,5 +1,5 @@ -import 'package:lotura/domain/entity/laundry_entity.dart'; -import 'package:lotura/domain/repository/laundry_repository.dart'; +import 'package:lotura/domain/laundry/entity/laundry_entity.dart'; +import 'package:lotura/domain/laundry/repository/laundry_repository.dart'; class GetAllLaundryListUseCase { final LaundryRepository _laundryRepository; diff --git a/lib/domain/laundry/use_case/get_laundry_room_index_use_case.dart b/lib/domain/laundry/use_case/get_laundry_room_index_use_case.dart index 49e6a683..fd1d6030 100644 --- a/lib/domain/laundry/use_case/get_laundry_room_index_use_case.dart +++ b/lib/domain/laundry/use_case/get_laundry_room_index_use_case.dart @@ -1,4 +1,4 @@ -import 'package:lotura/domain/repository/laundry_repository.dart'; +import 'package:lotura/domain/laundry/repository/laundry_repository.dart'; class GetLaundryRoomIndexUseCase { final LaundryRepository _laundryRepository; diff --git a/lib/domain/laundry/use_case/get_laundry_status_use_case.dart b/lib/domain/laundry/use_case/get_laundry_status_use_case.dart index 40a0e105..fe9d6b09 100644 --- a/lib/domain/laundry/use_case/get_laundry_status_use_case.dart +++ b/lib/domain/laundry/use_case/get_laundry_status_use_case.dart @@ -1,5 +1,5 @@ -import 'package:lotura/domain/entity/laundry_entity.dart'; -import 'package:lotura/domain/repository/laundry_repository.dart'; +import 'package:lotura/domain/laundry/entity/laundry_entity.dart'; +import 'package:lotura/domain/laundry/repository/laundry_repository.dart'; class GetLaundryStatusUseCase { final LaundryRepository _laundryRepository; diff --git a/lib/domain/laundry/use_case/update_laundry_room_index_use_case.dart b/lib/domain/laundry/use_case/update_laundry_room_index_use_case.dart index 15692519..6c51a435 100644 --- a/lib/domain/laundry/use_case/update_laundry_room_index_use_case.dart +++ b/lib/domain/laundry/use_case/update_laundry_room_index_use_case.dart @@ -1,4 +1,4 @@ -import 'package:lotura/domain/repository/laundry_repository.dart'; +import 'package:lotura/domain/laundry/repository/laundry_repository.dart'; class UpdateLaundryRoomIndexUseCase { final LaundryRepository _laundryRepository; diff --git a/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart b/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart index 8deafb7e..69ccb6b3 100644 --- a/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart +++ b/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart @@ -1,7 +1,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:lotura/domain/entity/laundry_entity.dart'; -import 'package:lotura/domain/use_case/get_all_laundry_list_use_case.dart'; -import 'package:lotura/domain/use_case/get_laundry_status_use_case.dart'; +import 'package:lotura/domain/laundry/entity/laundry_entity.dart'; +import 'package:lotura/domain/laundry/use_case/get_all_laundry_list_use_case.dart'; +import 'package:lotura/domain/laundry/use_case/get_laundry_status_use_case.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_event.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_model.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_state.dart'; diff --git a/lib/presentation/laundry_room_page/bloc/laundry_model.dart b/lib/presentation/laundry_room_page/bloc/laundry_model.dart index efec4989..6b8b6acd 100644 --- a/lib/presentation/laundry_room_page/bloc/laundry_model.dart +++ b/lib/presentation/laundry_room_page/bloc/laundry_model.dart @@ -1,4 +1,4 @@ -import 'package:lotura/domain/entity/laundry_entity.dart'; +import 'package:lotura/domain/laundry/entity/laundry_entity.dart'; class LaundryModel { final List laundryList; diff --git a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart index 395d423e..3737ab22 100644 --- a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart +++ b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:lotura/domain/entity/laundry_entity.dart'; +import 'package:lotura/domain/laundry/entity/laundry_entity.dart'; import 'package:lotura/main.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_bloc.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_model.dart'; diff --git a/lib/presentation/setting_page/bloc/room_bloc.dart b/lib/presentation/setting_page/bloc/room_bloc.dart index 80c24aec..941a5b2f 100644 --- a/lib/presentation/setting_page/bloc/room_bloc.dart +++ b/lib/presentation/setting_page/bloc/room_bloc.dart @@ -1,6 +1,6 @@ import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:lotura/domain/use_case/get_laundry_room_index_use_case.dart'; -import 'package:lotura/domain/use_case/update_laundry_room_index_use_case.dart'; +import 'package:lotura/domain/laundry/use_case/get_laundry_room_index_use_case.dart'; +import 'package:lotura/domain/laundry/use_case/update_laundry_room_index_use_case.dart'; import 'package:lotura/main.dart'; import 'package:lotura/presentation/setting_page/bloc/laundry_room_model.dart'; import 'package:lotura/presentation/setting_page/bloc/room_event.dart'; From 047447a0a09b0f6f7b87d27f683a0810e571592b Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 16:07:45 +0900 Subject: [PATCH 44/56] =?UTF-8?q?refactor=20::=20=EA=B3=B5=EC=A7=80=20?= =?UTF-8?q?=EB=8F=84=EB=A9=94=EC=9D=B8=20=ED=8F=B4=EB=8D=94=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=20=EA=B0=9C=ED=8E=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../local/local_notice_data_source.dart | 0 .../remote/remote_notice_data_source.dart | 4 ++-- .../{ => notice}/dto/response/notice_response.dart | 2 +- .../repository/notice_repository_impl.dart | 8 ++++---- lib/di/di.dart | 14 +++++++------- lib/domain/{ => notice}/entity/notice_entity.dart | 0 .../{ => notice}/repository/notice_repository.dart | 2 +- .../use_case/get_last_notice_id_use_case.dart | 4 ++-- .../{ => notice}/use_case/get_notice_use_case.dart | 4 ++-- .../use_case/update_last_notice_id_use_case.dart | 4 ++-- lib/presentation/notice_page/bloc/notice_bloc.dart | 8 ++++---- .../notice_page/bloc/notice_model.dart | 2 +- .../notice_page/ui/widget/notice_list_tile.dart | 2 +- 13 files changed, 27 insertions(+), 27 deletions(-) rename lib/data/{data_source/notice => notice/data_source}/local/local_notice_data_source.dart (100%) rename lib/data/{data_source/notice => notice/data_source}/remote/remote_notice_data_source.dart (78%) rename lib/data/{ => notice}/dto/response/notice_response.dart (90%) rename lib/data/{ => notice}/repository/notice_repository_impl.dart (75%) rename lib/domain/{ => notice}/entity/notice_entity.dart (100%) rename lib/domain/{ => notice}/repository/notice_repository.dart (77%) rename lib/domain/{ => notice}/use_case/get_last_notice_id_use_case.dart (77%) rename lib/domain/{ => notice}/use_case/get_notice_use_case.dart (65%) rename lib/domain/{ => notice}/use_case/update_last_notice_id_use_case.dart (75%) diff --git a/lib/data/data_source/notice/local/local_notice_data_source.dart b/lib/data/notice/data_source/local/local_notice_data_source.dart similarity index 100% rename from lib/data/data_source/notice/local/local_notice_data_source.dart rename to lib/data/notice/data_source/local/local_notice_data_source.dart diff --git a/lib/data/data_source/notice/remote/remote_notice_data_source.dart b/lib/data/notice/data_source/remote/remote_notice_data_source.dart similarity index 78% rename from lib/data/data_source/notice/remote/remote_notice_data_source.dart rename to lib/data/notice/data_source/remote/remote_notice_data_source.dart index 6e5b4e7c..f66931b4 100644 --- a/lib/data/data_source/notice/remote/remote_notice_data_source.dart +++ b/lib/data/notice/data_source/remote/remote_notice_data_source.dart @@ -2,8 +2,8 @@ import 'dart:async'; import 'dart:convert'; import 'package:http/http.dart' as http; -import 'package:lotura/data/dto/response/notice_response.dart'; -import 'package:lotura/domain/entity/notice_entity.dart'; +import 'package:lotura/data/notice/dto/response/notice_response.dart'; +import 'package:lotura/domain/notice/entity/notice_entity.dart'; import 'package:lotura/secret.dart'; class RemoteNoticeDataSource { diff --git a/lib/data/dto/response/notice_response.dart b/lib/data/notice/dto/response/notice_response.dart similarity index 90% rename from lib/data/dto/response/notice_response.dart rename to lib/data/notice/dto/response/notice_response.dart index 15037cd2..60e9db33 100644 --- a/lib/data/dto/response/notice_response.dart +++ b/lib/data/notice/dto/response/notice_response.dart @@ -1,4 +1,4 @@ -import 'package:lotura/domain/entity/notice_entity.dart'; +import 'package:lotura/domain/notice/entity/notice_entity.dart'; class NoticeResponse { final int id; diff --git a/lib/data/repository/notice_repository_impl.dart b/lib/data/notice/repository/notice_repository_impl.dart similarity index 75% rename from lib/data/repository/notice_repository_impl.dart rename to lib/data/notice/repository/notice_repository_impl.dart index a531f369..2f22c380 100644 --- a/lib/data/repository/notice_repository_impl.dart +++ b/lib/data/notice/repository/notice_repository_impl.dart @@ -1,7 +1,7 @@ -import 'package:lotura/data/data_source/notice/local/local_notice_data_source.dart'; -import 'package:lotura/data/data_source/notice/remote/remote_notice_data_source.dart'; -import 'package:lotura/domain/entity/notice_entity.dart'; -import 'package:lotura/domain/repository/notice_repository.dart'; +import 'package:lotura/data/notice/data_source/local/local_notice_data_source.dart'; +import 'package:lotura/data/notice/data_source/remote/remote_notice_data_source.dart'; +import 'package:lotura/domain/notice/entity/notice_entity.dart'; +import 'package:lotura/domain/notice/repository/notice_repository.dart'; class NoticeRepositoryImpl implements NoticeRepository { final RemoteNoticeDataSource _remoteNoticeDataSource; diff --git a/lib/di/di.dart b/lib/di/di.dart index 599c5077..5ceab07f 100644 --- a/lib/di/di.dart +++ b/lib/di/di.dart @@ -4,12 +4,12 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:hive/hive.dart'; import 'package:lotura/data/apply/data_source/remote/remote_apply_data_source.dart'; import 'package:lotura/data/apply/repository/apply_repository_impl.dart'; -import 'package:lotura/data/data_source/notice/local/local_notice_data_source.dart'; -import 'package:lotura/data/data_source/notice/remote/remote_notice_data_source.dart'; import 'package:lotura/data/laundry/data_source/local/local_laundry_data_source.dart'; import 'package:lotura/data/laundry/data_source/remote/remote_laundry_data_source.dart'; import 'package:lotura/data/laundry/repository/laundry_repository_impl.dart'; -import 'package:lotura/data/repository/notice_repository_impl.dart'; +import 'package:lotura/data/notice/data_source/local/local_notice_data_source.dart'; +import 'package:lotura/data/notice/data_source/remote/remote_notice_data_source.dart'; +import 'package:lotura/data/notice/repository/notice_repository_impl.dart'; import 'package:lotura/domain/apply/repository/apply_repository.dart'; import 'package:lotura/domain/apply/use_case/apply_cancel_use_case.dart'; import 'package:lotura/domain/apply/use_case/get_apply_list_use_case.dart'; @@ -20,10 +20,10 @@ import 'package:lotura/domain/laundry/use_case/get_all_laundry_list_use_case.dar import 'package:lotura/domain/laundry/use_case/get_laundry_room_index_use_case.dart'; import 'package:lotura/domain/laundry/use_case/get_laundry_status_use_case.dart'; import 'package:lotura/domain/laundry/use_case/update_laundry_room_index_use_case.dart'; -import 'package:lotura/domain/repository/notice_repository.dart'; -import 'package:lotura/domain/use_case/get_last_notice_id_use_case.dart'; -import 'package:lotura/domain/use_case/get_notice_use_case.dart'; -import 'package:lotura/domain/use_case/update_last_notice_id_use_case.dart'; +import 'package:lotura/domain/notice/repository/notice_repository.dart'; +import 'package:lotura/domain/notice/use_case/get_last_notice_id_use_case.dart'; +import 'package:lotura/domain/notice/use_case/get_notice_use_case.dart'; +import 'package:lotura/domain/notice/use_case/update_last_notice_id_use_case.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_bloc.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_bloc.dart'; diff --git a/lib/domain/entity/notice_entity.dart b/lib/domain/notice/entity/notice_entity.dart similarity index 100% rename from lib/domain/entity/notice_entity.dart rename to lib/domain/notice/entity/notice_entity.dart diff --git a/lib/domain/repository/notice_repository.dart b/lib/domain/notice/repository/notice_repository.dart similarity index 77% rename from lib/domain/repository/notice_repository.dart rename to lib/domain/notice/repository/notice_repository.dart index d7f9e73e..c9fb6f8b 100644 --- a/lib/domain/repository/notice_repository.dart +++ b/lib/domain/notice/repository/notice_repository.dart @@ -1,6 +1,6 @@ import 'dart:async'; -import 'package:lotura/domain/entity/notice_entity.dart'; +import 'package:lotura/domain/notice/entity/notice_entity.dart'; abstract class NoticeRepository { Future> getNotice(); diff --git a/lib/domain/use_case/get_last_notice_id_use_case.dart b/lib/domain/notice/use_case/get_last_notice_id_use_case.dart similarity index 77% rename from lib/domain/use_case/get_last_notice_id_use_case.dart rename to lib/domain/notice/use_case/get_last_notice_id_use_case.dart index 3c81f9ea..64f71ac4 100644 --- a/lib/domain/use_case/get_last_notice_id_use_case.dart +++ b/lib/domain/notice/use_case/get_last_notice_id_use_case.dart @@ -1,5 +1,5 @@ -import 'package:lotura/domain/entity/notice_entity.dart'; -import 'package:lotura/domain/repository/notice_repository.dart'; +import 'package:lotura/domain/notice/entity/notice_entity.dart'; +import 'package:lotura/domain/notice/repository/notice_repository.dart'; class GetLastNoticeIdUseCase { final NoticeRepository _noticeRepository; diff --git a/lib/domain/use_case/get_notice_use_case.dart b/lib/domain/notice/use_case/get_notice_use_case.dart similarity index 65% rename from lib/domain/use_case/get_notice_use_case.dart rename to lib/domain/notice/use_case/get_notice_use_case.dart index d2082023..35681c60 100644 --- a/lib/domain/use_case/get_notice_use_case.dart +++ b/lib/domain/notice/use_case/get_notice_use_case.dart @@ -1,5 +1,5 @@ -import 'package:lotura/domain/entity/notice_entity.dart'; -import 'package:lotura/domain/repository/notice_repository.dart'; +import 'package:lotura/domain/notice/entity/notice_entity.dart'; +import 'package:lotura/domain/notice/repository/notice_repository.dart'; class GetNoticeUseCase { final NoticeRepository _noticeRepository; diff --git a/lib/domain/use_case/update_last_notice_id_use_case.dart b/lib/domain/notice/use_case/update_last_notice_id_use_case.dart similarity index 75% rename from lib/domain/use_case/update_last_notice_id_use_case.dart rename to lib/domain/notice/use_case/update_last_notice_id_use_case.dart index 61256bd8..ff2013b2 100644 --- a/lib/domain/use_case/update_last_notice_id_use_case.dart +++ b/lib/domain/notice/use_case/update_last_notice_id_use_case.dart @@ -1,5 +1,5 @@ -import 'package:lotura/domain/entity/notice_entity.dart'; -import 'package:lotura/domain/repository/notice_repository.dart'; +import 'package:lotura/domain/notice/entity/notice_entity.dart'; +import 'package:lotura/domain/notice/repository/notice_repository.dart'; class UpdateLastNoticeIdUseCase { final NoticeRepository _noticeRepository; diff --git a/lib/presentation/notice_page/bloc/notice_bloc.dart b/lib/presentation/notice_page/bloc/notice_bloc.dart index 553d148b..1e5c4413 100644 --- a/lib/presentation/notice_page/bloc/notice_bloc.dart +++ b/lib/presentation/notice_page/bloc/notice_bloc.dart @@ -1,8 +1,8 @@ import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:lotura/domain/entity/notice_entity.dart'; -import 'package:lotura/domain/use_case/get_last_notice_id_use_case.dart'; -import 'package:lotura/domain/use_case/get_notice_use_case.dart'; -import 'package:lotura/domain/use_case/update_last_notice_id_use_case.dart'; +import 'package:lotura/domain/notice/entity/notice_entity.dart'; +import 'package:lotura/domain/notice/use_case/get_last_notice_id_use_case.dart'; +import 'package:lotura/domain/notice/use_case/get_notice_use_case.dart'; +import 'package:lotura/domain/notice/use_case/update_last_notice_id_use_case.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_event.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_model.dart'; import 'package:lotura/presentation/notice_page/bloc/notice_state.dart'; diff --git a/lib/presentation/notice_page/bloc/notice_model.dart b/lib/presentation/notice_page/bloc/notice_model.dart index ca3954a3..e7bd26d9 100644 --- a/lib/presentation/notice_page/bloc/notice_model.dart +++ b/lib/presentation/notice_page/bloc/notice_model.dart @@ -1,4 +1,4 @@ -import 'package:lotura/domain/entity/notice_entity.dart'; +import 'package:lotura/domain/notice/entity/notice_entity.dart'; class NoticeModel { final List noticeList; diff --git a/lib/presentation/notice_page/ui/widget/notice_list_tile.dart b/lib/presentation/notice_page/ui/widget/notice_list_tile.dart index b9980bf2..e1561e8d 100644 --- a/lib/presentation/notice_page/ui/widget/notice_list_tile.dart +++ b/lib/presentation/notice_page/ui/widget/notice_list_tile.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:lotura/domain/entity/notice_entity.dart'; +import 'package:lotura/domain/notice/entity/notice_entity.dart'; import 'package:lotura/presentation/utils/lotura_colors.dart'; class NoticeListTile extends StatefulWidget { From efc959f485008f107ea3964bc04594e856c42925 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 20:00:39 +0900 Subject: [PATCH 45/56] =?UTF-8?q?refactor=20::=20apply=20cancel=20?= =?UTF-8?q?=EB=B0=98=ED=99=98=20=ED=83=80=EC=9E=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data_source/remote/remote_apply_data_source.dart | 5 +---- lib/data/apply/repository/apply_repository_impl.dart | 8 +++----- lib/domain/apply/repository/apply_repository.dart | 3 +-- lib/domain/apply/use_case/apply_cancel_use_case.dart | 4 +--- 4 files changed, 6 insertions(+), 14 deletions(-) diff --git a/lib/data/apply/data_source/remote/remote_apply_data_source.dart b/lib/data/apply/data_source/remote/remote_apply_data_source.dart index bd87541c..d97d57c2 100644 --- a/lib/data/apply/data_source/remote/remote_apply_data_source.dart +++ b/lib/data/apply/data_source/remote/remote_apply_data_source.dart @@ -32,14 +32,11 @@ class RemoteApplyDataSource { } } - Future> applyCancel( + Future applyCancel( {required ApplyCancelRequest applyCancelRequest}) async { applyCancelRequest.token = await _getToken(); final response = await http.post(Uri.parse("$baseurl/push_cancel"), body: applyCancelRequest.toJson()); if (response.statusCode != 200) throw Exception(response.body); - return (jsonDecode(response.body) as List) - .map((i) => ApplyResponse.fromJson(i).toEntity()) - .toList(); } } diff --git a/lib/data/apply/repository/apply_repository_impl.dart b/lib/data/apply/repository/apply_repository_impl.dart index 170533dc..6956969c 100644 --- a/lib/data/apply/repository/apply_repository_impl.dart +++ b/lib/data/apply/repository/apply_repository_impl.dart @@ -13,18 +13,16 @@ class ApplyRepositoryImpl implements ApplyRepository { : _remoteApplyDataSource = remoteApplyDataSource; @override - Future> getApplyList() async => + Future> getApplyList() => _remoteApplyDataSource.getApplyList(); @override - Future sendFCMInfo( - {required SendFCMInfoRequest sendFCMInfoRequest}) async => + Future sendFCMInfo({required SendFCMInfoRequest sendFCMInfoRequest}) => _remoteApplyDataSource.sendFCMInfo( sendFCMInfoRequest: sendFCMInfoRequest); @override - Future> applyCancel( - {required ApplyCancelRequest applyCancelRequest}) async => + Future applyCancel({required ApplyCancelRequest applyCancelRequest}) => _remoteApplyDataSource.applyCancel( applyCancelRequest: applyCancelRequest); } diff --git a/lib/domain/apply/repository/apply_repository.dart b/lib/domain/apply/repository/apply_repository.dart index 196ca764..5d321806 100644 --- a/lib/domain/apply/repository/apply_repository.dart +++ b/lib/domain/apply/repository/apply_repository.dart @@ -9,6 +9,5 @@ abstract class ApplyRepository { Future sendFCMInfo({required SendFCMInfoRequest sendFCMInfoRequest}); - Future> applyCancel( - {required ApplyCancelRequest applyCancelRequest}); + Future applyCancel({required ApplyCancelRequest applyCancelRequest}); } diff --git a/lib/domain/apply/use_case/apply_cancel_use_case.dart b/lib/domain/apply/use_case/apply_cancel_use_case.dart index 8520369a..eee26a9b 100644 --- a/lib/domain/apply/use_case/apply_cancel_use_case.dart +++ b/lib/domain/apply/use_case/apply_cancel_use_case.dart @@ -1,5 +1,4 @@ import 'package:lotura/data/apply/dto/request/apply_cancel_request.dart'; -import 'package:lotura/domain/apply/entity/apply_entity.dart'; import 'package:lotura/domain/apply/repository/apply_repository.dart'; class ApplyCancelUseCase { @@ -8,7 +7,6 @@ class ApplyCancelUseCase { ApplyCancelUseCase({required ApplyRepository applyRepository}) : _applyRepository = applyRepository; - Future> execute( - {required ApplyCancelRequest applyCancelRequest}) => + Future execute({required ApplyCancelRequest applyCancelRequest}) => _applyRepository.applyCancel(applyCancelRequest: applyCancelRequest); } From a992061b9af2e2926b604b545f8c1fc499cd34e3 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 22:17:28 +0900 Subject: [PATCH 46/56] =?UTF-8?q?feat=20::=20content=20type=20=ED=97=A4?= =?UTF-8?q?=EB=8D=94=20=EC=B6=94=EA=B0=80,=20body=20=EC=9D=B8=EC=BD=94?= =?UTF-8?q?=EB=94=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apply/data_source/remote/remote_apply_data_source.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/data/apply/data_source/remote/remote_apply_data_source.dart b/lib/data/apply/data_source/remote/remote_apply_data_source.dart index d97d57c2..6b36fa8f 100644 --- a/lib/data/apply/data_source/remote/remote_apply_data_source.dart +++ b/lib/data/apply/data_source/remote/remote_apply_data_source.dart @@ -26,7 +26,8 @@ class RemoteApplyDataSource { {required SendFCMInfoRequest sendFCMInfoRequest}) async { sendFCMInfoRequest.token = await _getToken(); final response = await http.post(Uri.parse("$baseurl/push_request"), - body: sendFCMInfoRequest.toJson()); + headers: {"Content-Type": "application/json"}, + body: json.encode(sendFCMInfoRequest.toJson())); if (response.statusCode != 200 && response.statusCode != 304) { throw Exception(response.body); } @@ -36,7 +37,8 @@ class RemoteApplyDataSource { {required ApplyCancelRequest applyCancelRequest}) async { applyCancelRequest.token = await _getToken(); final response = await http.post(Uri.parse("$baseurl/push_cancel"), - body: applyCancelRequest.toJson()); + headers: {"Content-Type": "application/json"}, + body: json.encode(applyCancelRequest.toJson())); if (response.statusCode != 200) throw Exception(response.body); } } From a2e0b9456df1ccc4cbf1db652b4544c8bdd9b1e2 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 22:18:55 +0900 Subject: [PATCH 47/56] =?UTF-8?q?refactor=20::=20deviceId=20=ED=83=80?= =?UTF-8?q?=EC=9E=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/request/apply_cancel_request.dart | 2 +- .../dto/request/send_fcm_info_request.dart | 4 +- lib/presentation/utils/osj_bottom_sheet.dart | 42 +++++++++---------- 3 files changed, 22 insertions(+), 26 deletions(-) diff --git a/lib/data/apply/dto/request/apply_cancel_request.dart b/lib/data/apply/dto/request/apply_cancel_request.dart index ac86a783..fce99b0c 100644 --- a/lib/data/apply/dto/request/apply_cancel_request.dart +++ b/lib/data/apply/dto/request/apply_cancel_request.dart @@ -1,6 +1,6 @@ class ApplyCancelRequest { String? token; - String deviceId; + int deviceId; ApplyCancelRequest({this.token, required this.deviceId}); diff --git a/lib/data/apply/dto/request/send_fcm_info_request.dart b/lib/data/apply/dto/request/send_fcm_info_request.dart index 327d00e9..d9ecbcb8 100644 --- a/lib/data/apply/dto/request/send_fcm_info_request.dart +++ b/lib/data/apply/dto/request/send_fcm_info_request.dart @@ -1,7 +1,7 @@ class SendFCMInfoRequest { String? token; - String deviceId; - String expectState; + int deviceId; + int expectState; SendFCMInfoRequest( {this.token, required this.deviceId, required this.expectState}); diff --git a/lib/presentation/utils/osj_bottom_sheet.dart b/lib/presentation/utils/osj_bottom_sheet.dart index b416bb72..80fa53db 100644 --- a/lib/presentation/utils/osj_bottom_sheet.dart +++ b/lib/presentation/utils/osj_bottom_sheet.dart @@ -1,8 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:lotura/data/apply/dto/request/apply_cancel_request.dart'; -import 'package:lotura/data/apply/dto/request/send_fcm_info_request.dart'; import 'package:lotura/main.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_event.dart'; @@ -14,14 +12,14 @@ import 'package:lotura/presentation/utils/osj_text_button.dart'; class OSJBottomSheet extends StatefulWidget { const OSJBottomSheet({ super.key, - required this.index, + required this.deviceId, required this.isEnableNotification, required this.isWoman, required this.state, required this.machine, }); - final int index; + final int deviceId; final bool isEnableNotification, isWoman; final CurrentState state; final Machine machine; @@ -36,31 +34,31 @@ class _OSJBottomSheetState extends State { if (isWoman) { switch (state) { case CurrentState.working: - return "여자 세탁실 ${widget.index - 31}번 ${widget.machine.text}를\n알림 설정 하실건가요?"; + return "여자 세탁실 ${widget.deviceId - 31}번 ${widget.machine.text}를\n알림 설정 하실건가요?"; case CurrentState.available: - return "여자 세탁실 ${widget.index - 31}번 ${widget.machine.text}는\n현재 사용 가능한 상태에요."; + return "여자 세탁실 ${widget.deviceId - 31}번 ${widget.machine.text}는\n현재 사용 가능한 상태에요."; case CurrentState.disconnected: - return "여자층 ${widget.index - 31}번 ${widget.machine.text}의 연결이 끊겨서\n상태를 확인할 수 없어요."; + return "여자층 ${widget.deviceId - 31}번 ${widget.machine.text}의 연결이 끊겨서\n상태를 확인할 수 없어요."; case CurrentState.breakdown: - return "여자 세탁실 ${widget.index - 31}번 ${widget.machine.text}는\n고장으로 인해 사용이 불가능해요."; + return "여자 세탁실 ${widget.deviceId - 31}번 ${widget.machine.text}는\n고장으로 인해 사용이 불가능해요."; } } else { switch (state) { case CurrentState.working: - return "${widget.index}번 ${widget.machine.text}를\n알림 설정 하실건가요?"; + return "${widget.deviceId}번 ${widget.machine.text}를\n알림 설정 하실건가요?"; case CurrentState.available: - return "${widget.index}번 ${widget.machine.text}는\n현재 사용 가능한 상태에요."; + return "${widget.deviceId}번 ${widget.machine.text}는\n현재 사용 가능한 상태에요."; case CurrentState.disconnected: - return "${widget.index}번 ${widget.machine.text}의 연결이 끊겨서\n상태를 확인할 수 없어요."; + return "${widget.deviceId}번 ${widget.machine.text}의 연결이 끊겨서\n상태를 확인할 수 없어요."; case CurrentState.breakdown: - return "${widget.index}번 ${widget.machine.text}는\n고장으로 인해 사용이 불가능해요."; + return "${widget.deviceId}번 ${widget.machine.text}는\n고장으로 인해 사용이 불가능해요."; } } } else { if (isWoman) { - return "여자 세탁실 ${widget.index - 31}번 ${widget.machine.text}의\n알림 설정을 해제하실건가요?"; + return "여자 세탁실 ${widget.deviceId - 31}번 ${widget.machine.text}의\n알림 설정을 해제하실건가요?"; } else { - return "${widget.index}번 ${widget.machine.text}의\n알림 설정을 해제하실건가요?"; + return "${widget.deviceId}번 ${widget.machine.text}의\n알림 설정을 해제하실건가요?"; } } } @@ -137,15 +135,13 @@ class _OSJBottomSheetState extends State { function: () { widget.isEnableNotification ? context.read().add(SendFCMEvent( - sendFCMInfoRequest: SendFCMInfoRequest( - deviceId: widget.index.toString(), - expectState: '1'))) - : context.read().add( - ApplyCancelEvent( - applyCancelRequest: - ApplyCancelRequest( - deviceId: widget.index - .toString()))); + deviceId: widget.deviceId, + deviceType: widget.machine)) + : context + .read() + .add(ApplyCancelEvent( + deviceId: widget.deviceId, + )); context .read() .add(ClosingBottomSheetEvent()); From e84c6194adfa824e9c5c8f2aececefb43d6bdb3b Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 22:19:43 +0900 Subject: [PATCH 48/56] =?UTF-8?q?refactor=20::=20index=20=EB=B3=80?= =?UTF-8?q?=EC=88=98=20=EC=9D=B4=EB=A6=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/presentation/apply_page/ui/view/apply_page.dart | 6 +++--- .../laundry_room_page/ui/view/laundry_room_page.dart | 12 ++++++------ lib/presentation/utils/machine_button.dart | 6 +++--- lib/presentation/utils/machine_card.dart | 4 ++-- lib/presentation/utils/machine_widget.dart | 8 ++++---- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/lib/presentation/apply_page/ui/view/apply_page.dart b/lib/presentation/apply_page/ui/view/apply_page.dart index e60fae22..a3b509fb 100644 --- a/lib/presentation/apply_page/ui/view/apply_page.dart +++ b/lib/presentation/apply_page/ui/view/apply_page.dart @@ -140,8 +140,8 @@ class ApplyPage extends StatelessWidget { MainAxisAlignment.spaceBetween, children: [ MachineCard( - index: state.value.applyList[index * 2] - .deviceId, + deviceId: state.value + .applyList[index * 2].deviceId, isEnableNotification: false, isWoman: state .value @@ -155,7 +155,7 @@ class ApplyPage extends StatelessWidget { state: CurrentState.working), index * 2 + 1 < state.value.applyList.length ? MachineCard( - index: state + deviceId: state .value .applyList[index * 2 + 1] .deviceId, diff --git a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart index 3737ab22..d19753d7 100644 --- a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart +++ b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart @@ -255,18 +255,18 @@ class LaundryList extends StatelessWidget { MachineWidget machineWidget( {required LaundryRoomModel roomState, - required int index, + required int deviceId, required CurrentState state, required Machine machine}) => roomState.buttonView == ButtonView.image ? MachineCard( - index: index, + deviceId: deviceId, isEnableNotification: true, isWoman: roomState.roomLocation == RoomLocation.womanRoom, state: state, machine: machine) : MachineButton( - index: index, + deviceId: deviceId, isEnableNotification: true, isWoman: roomState.roomLocation == RoomLocation.womanRoom, state: state, @@ -290,7 +290,7 @@ class LaundryList extends StatelessWidget { ), ), builder: (context) => OSJBottomSheet( - index: nfcData, + deviceId: nfcData, isEnableNotification: true, isWoman: nfcData > 31 ? true : false, state: list[nfcData - 1].state, @@ -313,7 +313,7 @@ class LaundryList extends StatelessWidget { children: [ machineWidget( roomState: laundryRoomModel, - index: list[ + deviceId: list[ placeIndex[laundryRoomModel.roomLocation.index]! + index] .id, @@ -328,7 +328,7 @@ class LaundryList extends StatelessWidget { laundryRoomModel.buttonView.triangle, machineWidget( roomState: laundryRoomModel, - index: placeIndex[laundryRoomModel.roomLocation.index]! + + deviceId: placeIndex[laundryRoomModel.roomLocation.index]! + index + (laundryRoomModel.roomLocation == RoomLocation.womanRoom diff --git a/lib/presentation/utils/machine_button.dart b/lib/presentation/utils/machine_button.dart index 98e1e71a..25c2f81f 100644 --- a/lib/presentation/utils/machine_button.dart +++ b/lib/presentation/utils/machine_button.dart @@ -6,7 +6,7 @@ import 'package:lotura/presentation/utils/machine_widget.dart'; class MachineButton extends MachineWidget { const MachineButton({ super.key, - required super.index, + required super.deviceId, required super.isEnableNotification, required super.isWoman, required super.state, @@ -37,10 +37,10 @@ class MachineButton extends MachineWidget { size: 24.0.r, color: LoturaColors.gray300), Row( children: [ - Text("${isWoman ? index - 31 : index}번", + Text("${isWoman ? deviceId - 31 : deviceId}번", style: TextStyle(fontSize: 16.0.sp)), SizedBox( - width: (isWoman ? index - 31 : index) < 10 + width: (isWoman ? deviceId - 31 : deviceId) < 10 ? 10.2.w : 5.0.w), Text(machine.text, style: TextStyle(fontSize: 16.0.sp)), diff --git a/lib/presentation/utils/machine_card.dart b/lib/presentation/utils/machine_card.dart index f1226561..7ccbb66e 100644 --- a/lib/presentation/utils/machine_card.dart +++ b/lib/presentation/utils/machine_card.dart @@ -6,7 +6,7 @@ import 'package:lotura/presentation/utils/osj_status_button.dart'; class MachineCard extends MachineWidget { const MachineCard({ super.key, - required super.index, + required super.deviceId, required super.isEnableNotification, required super.isWoman, required super.machine, @@ -41,7 +41,7 @@ class MachineCard extends MachineWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - "${isWoman ? index - 31 : index}번 ", + "${isWoman ? deviceId - 31 : deviceId}번 ", style: TextStyle( fontSize: 16.0.sp, fontWeight: FontWeight.w500, diff --git a/lib/presentation/utils/machine_widget.dart b/lib/presentation/utils/machine_widget.dart index 7d141a4c..2ea720e7 100644 --- a/lib/presentation/utils/machine_widget.dart +++ b/lib/presentation/utils/machine_widget.dart @@ -6,14 +6,14 @@ import 'package:lotura/presentation/utils/osj_bottom_sheet.dart'; abstract class MachineWidget extends StatelessWidget { const MachineWidget({ super.key, - required this.index, + required this.deviceId, required this.isEnableNotification, required this.isWoman, required this.state, required this.machine, }); - final int index; + final int deviceId; final bool isEnableNotification, isWoman; final CurrentState state; @@ -21,7 +21,7 @@ abstract class MachineWidget extends StatelessWidget { final Machine machine; bool get isEmptyContainer => - (!isWoman && index == 32) || (isWoman && index == -1); + (!isWoman && deviceId == 32) || (isWoman && deviceId == -1); void showModalOSJBottomSheet({required BuildContext context}) => showModalBottomSheet( @@ -32,7 +32,7 @@ abstract class MachineWidget extends StatelessWidget { ), ), builder: (context) => OSJBottomSheet( - index: index, + deviceId: deviceId, isEnableNotification: isEnableNotification, isWoman: isWoman, state: state, From b60fe09337793d6bf0d304b8620c99ed924e6aca Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 22:23:21 +0900 Subject: [PATCH 49/56] =?UTF-8?q?refactor=20::=20=EC=95=8C=EB=A6=BC=20?= =?UTF-8?q?=EC=8B=A0=EC=B2=AD=20=ED=9B=84=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=9E=AC=EC=9A=94=EC=B2=AD=20=EB=A1=9C=EC=A7=81=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/domain/apply/use_case/send_fcm_info_use_case.dart | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/domain/apply/use_case/send_fcm_info_use_case.dart b/lib/domain/apply/use_case/send_fcm_info_use_case.dart index 6cec09ea..38976ab2 100644 --- a/lib/domain/apply/use_case/send_fcm_info_use_case.dart +++ b/lib/domain/apply/use_case/send_fcm_info_use_case.dart @@ -1,5 +1,4 @@ import 'package:lotura/data/apply/dto/request/send_fcm_info_request.dart'; -import 'package:lotura/domain/apply/entity/apply_entity.dart'; import 'package:lotura/domain/apply/repository/apply_repository.dart'; class SendFCMInfoUseCase { @@ -8,9 +7,6 @@ class SendFCMInfoUseCase { SendFCMInfoUseCase({required ApplyRepository applyRepository}) : _applyRepository = applyRepository; - Future> execute( - {required SendFCMInfoRequest sendFCMInfoRequest}) async { - await _applyRepository.sendFCMInfo(sendFCMInfoRequest: sendFCMInfoRequest); - return _applyRepository.getApplyList(); - } + Future execute({required SendFCMInfoRequest sendFCMInfoRequest}) => + _applyRepository.sendFCMInfo(sendFCMInfoRequest: sendFCMInfoRequest); } From 0535ea6511404a8a6b222092cf360b4d3b0e205b Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 22:24:26 +0900 Subject: [PATCH 50/56] =?UTF-8?q?refactor=20::=20Apply=20Event=EC=97=90?= =?UTF-8?q?=EC=84=9C=20Request=20DTO=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apply_page/bloc/apply_event.dart | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/presentation/apply_page/bloc/apply_event.dart b/lib/presentation/apply_page/bloc/apply_event.dart index 742296d6..ad230c1a 100644 --- a/lib/presentation/apply_page/bloc/apply_event.dart +++ b/lib/presentation/apply_page/bloc/apply_event.dart @@ -1,6 +1,5 @@ -import 'package:lotura/data/apply/dto/request/apply_cancel_request.dart'; import 'package:lotura/data/apply/dto/request/get_apply_list_request.dart'; -import 'package:lotura/data/apply/dto/request/send_fcm_info_request.dart'; +import 'package:lotura/main.dart'; abstract class ApplyEvent {} @@ -11,13 +10,19 @@ class GetApplyListEvent extends ApplyEvent { } class ApplyCancelEvent extends ApplyEvent { - final ApplyCancelRequest applyCancelRequest; + final int deviceId; - ApplyCancelEvent({required this.applyCancelRequest}); + ApplyCancelEvent({ + required this.deviceId, + }); } class SendFCMEvent extends ApplyEvent { - final SendFCMInfoRequest sendFCMInfoRequest; + final int deviceId; + final Machine deviceType; - SendFCMEvent({required this.sendFCMInfoRequest}); + SendFCMEvent({ + required this.deviceId, + required this.deviceType, + }); } From 05c54f19e3e9f7888f294d975755f4daef6fb15e Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 14 Apr 2024 22:28:29 +0900 Subject: [PATCH 51/56] =?UTF-8?q?refactor=20::=20=EC=8B=A0=EC=B2=AD,=20?= =?UTF-8?q?=EC=B7=A8=EC=86=8C=20=ED=9B=84=20=EC=83=81=ED=83=9C=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=EC=A4=91=EC=9D=B8=20=EB=A6=AC=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=9A=94=EC=86=8C=20=EC=B6=94=EA=B0=80,?= =?UTF-8?q?=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apply_page/bloc/apply_bloc.dart | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/lib/presentation/apply_page/bloc/apply_bloc.dart b/lib/presentation/apply_page/bloc/apply_bloc.dart index f28061c3..448423d3 100644 --- a/lib/presentation/apply_page/bloc/apply_bloc.dart +++ b/lib/presentation/apply_page/bloc/apply_bloc.dart @@ -1,4 +1,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:lotura/data/apply/dto/request/apply_cancel_request.dart'; +import 'package:lotura/data/apply/dto/request/send_fcm_info_request.dart'; +import 'package:lotura/domain/apply/entity/apply_entity.dart'; import 'package:lotura/domain/apply/use_case/apply_cancel_use_case.dart'; import 'package:lotura/domain/apply/use_case/get_apply_list_use_case.dart'; import 'package:lotura/domain/apply/use_case/send_fcm_info_use_case.dart'; @@ -39,10 +42,16 @@ class ApplyBloc extends Bloc> { void _sendFCMEventHandler( SendFCMEvent event, Emitter> emit) async { try { + List newApplyList = state.value.applyList; emit(Loading()); - final applyList = await _sendFCMInfoUseCase.execute( - sendFCMInfoRequest: event.sendFCMInfoRequest); - final applyModel = ApplyModel(applyList: applyList); + await _sendFCMInfoUseCase.execute( + sendFCMInfoRequest: + SendFCMInfoRequest(deviceId: event.deviceId, expectState: 1)); + newApplyList.add(ApplyEntity( + deviceId: event.deviceId, + deviceType: event.deviceType.text == "세탁기" ? "WASH" : "DRY")); + newApplyList.sort((a, b) => a.deviceId.compareTo(b.deviceId)); + final applyModel = ApplyModel(applyList: newApplyList); emit(Loaded(data: applyModel)); } catch (e) { emit(Error(errorMessage: e)); @@ -52,10 +61,12 @@ class ApplyBloc extends Bloc> { void _applyCancelEventHandler( ApplyCancelEvent event, Emitter> emit) async { try { + List newApplyList = state.value.applyList; emit(Loading()); - final applyList = await _applyCancelUseCase.execute( - applyCancelRequest: event.applyCancelRequest); - final applyModel = ApplyModel(applyList: applyList); + await _applyCancelUseCase.execute( + applyCancelRequest: ApplyCancelRequest(deviceId: event.deviceId)); + newApplyList.removeWhere((e) => e.deviceId == event.deviceId); + final applyModel = ApplyModel(applyList: newApplyList); emit(Loaded(data: applyModel)); } catch (e) { emit(Error(errorMessage: e)); From 7f4d022003cca6f62b4354a9639997391b3bba01 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 15 Apr 2024 00:02:10 +0900 Subject: [PATCH 52/56] =?UTF-8?q?refactor=20::=20Machine=20enum=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DeviceType으로 바꿈 --- lib/main.dart | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 077fbc4e..27bfe640 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -93,14 +93,26 @@ enum CurrentState { }); } -enum Machine { - wash(text: "세탁기", icon: LoturaIcons.laundry), - dry(text: "건조기", icon: LoturaIcons.dry); +enum DeviceType { + wash( + text: "세탁기", + icon: LoturaIcons.laundry, + imagePath: "assets/laundry_image.jpeg", + ), + dry( + text: "건조기", + icon: LoturaIcons.dry, + imagePath: "assets/dry_image.jpeg", + ); - final String text; + final String text, imagePath; final IconData icon; - const Machine({required this.text, required this.icon}); + const DeviceType({ + required this.text, + required this.icon, + required this.imagePath, + }); } enum RoomLocation { From bfecc72793ed256b0b38fc52d818235c3d551f75 Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Mon, 15 Apr 2024 00:52:36 +0900 Subject: [PATCH 53/56] =?UTF-8?q?refactor=20::=20DeviceType=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apply/dto/response/apply_response.dart | 6 ++- .../dto/response/laundry_response.dart | 12 ++++-- lib/domain/apply/entity/apply_entity.dart | 9 ++-- lib/domain/laundry/entity/laundry_entity.dart | 11 +++-- .../apply_page/bloc/apply_bloc.dart | 5 +-- .../apply_page/bloc/apply_event.dart | 2 +- .../apply_page/ui/view/apply_page.dart | 8 ++-- .../laundry_room_page/bloc/laundry_bloc.dart | 4 +- .../ui/view/laundry_room_page.dart | 43 ++++++++++--------- lib/presentation/utils/machine_button.dart | 7 +-- lib/presentation/utils/machine_card.dart | 8 ++-- lib/presentation/utils/machine_widget.dart | 9 ++-- lib/presentation/utils/osj_bottom_sheet.dart | 4 +- 13 files changed, 66 insertions(+), 62 deletions(-) diff --git a/lib/data/apply/dto/response/apply_response.dart b/lib/data/apply/dto/response/apply_response.dart index 6a9417e5..12e5b933 100644 --- a/lib/data/apply/dto/response/apply_response.dart +++ b/lib/data/apply/dto/response/apply_response.dart @@ -1,4 +1,5 @@ import 'package:lotura/domain/apply/entity/apply_entity.dart'; +import 'package:lotura/main.dart'; class ApplyResponse { final int deviceId; @@ -13,6 +14,7 @@ class ApplyResponse { ); } - ApplyEntity toEntity() => - ApplyEntity(deviceId: deviceId, deviceType: deviceType); + ApplyEntity toEntity() => ApplyEntity( + deviceId: deviceId, + deviceType: deviceType == "WASH" ? DeviceType.wash : DeviceType.dry); } diff --git a/lib/data/laundry/dto/response/laundry_response.dart b/lib/data/laundry/dto/response/laundry_response.dart index 49eda714..df0364e8 100644 --- a/lib/data/laundry/dto/response/laundry_response.dart +++ b/lib/data/laundry/dto/response/laundry_response.dart @@ -1,12 +1,16 @@ import 'package:lotura/domain/laundry/entity/laundry_entity.dart'; +import 'package:lotura/main.dart'; class LaundryResponse { final int id; final int state; final String deviceType; - LaundryResponse( - {required this.id, required this.state, required this.deviceType}); + const LaundryResponse({ + required this.id, + required this.state, + required this.deviceType, + }); factory LaundryResponse.fromJson(Map json) { return LaundryResponse( @@ -19,8 +23,8 @@ class LaundryResponse { LaundryEntity toEntity() { return LaundryEntity( id: id, - state: state, - deviceType: deviceType, + state: CurrentState.values.elementAt(state), + deviceType: deviceType == "WASH" ? DeviceType.wash : DeviceType.dry, ); } } diff --git a/lib/domain/apply/entity/apply_entity.dart b/lib/domain/apply/entity/apply_entity.dart index c71ff0e7..eddcfe5e 100644 --- a/lib/domain/apply/entity/apply_entity.dart +++ b/lib/domain/apply/entity/apply_entity.dart @@ -2,9 +2,10 @@ import 'package:lotura/main.dart'; class ApplyEntity { final int deviceId; - final String deviceType; - final Machine machine; + final DeviceType deviceType; - ApplyEntity({required this.deviceId, required this.deviceType}) - : machine = deviceType == "WASH" ? Machine.wash : Machine.dry; + const ApplyEntity({ + required this.deviceId, + required this.deviceType, + }); } diff --git a/lib/domain/laundry/entity/laundry_entity.dart b/lib/domain/laundry/entity/laundry_entity.dart index a6bd449b..81190d4a 100644 --- a/lib/domain/laundry/entity/laundry_entity.dart +++ b/lib/domain/laundry/entity/laundry_entity.dart @@ -3,12 +3,11 @@ import 'package:lotura/main.dart'; class LaundryEntity { final int id; final CurrentState state; - final Machine deviceType; + final DeviceType deviceType; - LaundryEntity({ + const LaundryEntity({ required this.id, - required int state, - required String deviceType, - }) : state = CurrentState.values.elementAt(state), - deviceType = deviceType == "WASH" ? Machine.wash : Machine.dry; + required this.state, + required this.deviceType, + }); } diff --git a/lib/presentation/apply_page/bloc/apply_bloc.dart b/lib/presentation/apply_page/bloc/apply_bloc.dart index 448423d3..3c831d95 100644 --- a/lib/presentation/apply_page/bloc/apply_bloc.dart +++ b/lib/presentation/apply_page/bloc/apply_bloc.dart @@ -47,9 +47,8 @@ class ApplyBloc extends Bloc> { await _sendFCMInfoUseCase.execute( sendFCMInfoRequest: SendFCMInfoRequest(deviceId: event.deviceId, expectState: 1)); - newApplyList.add(ApplyEntity( - deviceId: event.deviceId, - deviceType: event.deviceType.text == "세탁기" ? "WASH" : "DRY")); + newApplyList.add( + ApplyEntity(deviceId: event.deviceId, deviceType: event.deviceType)); newApplyList.sort((a, b) => a.deviceId.compareTo(b.deviceId)); final applyModel = ApplyModel(applyList: newApplyList); emit(Loaded(data: applyModel)); diff --git a/lib/presentation/apply_page/bloc/apply_event.dart b/lib/presentation/apply_page/bloc/apply_event.dart index ad230c1a..85d5815b 100644 --- a/lib/presentation/apply_page/bloc/apply_event.dart +++ b/lib/presentation/apply_page/bloc/apply_event.dart @@ -19,7 +19,7 @@ class ApplyCancelEvent extends ApplyEvent { class SendFCMEvent extends ApplyEvent { final int deviceId; - final Machine deviceType; + final DeviceType deviceType; SendFCMEvent({ required this.deviceId, diff --git a/lib/presentation/apply_page/ui/view/apply_page.dart b/lib/presentation/apply_page/ui/view/apply_page.dart index a3b509fb..1946a2b5 100644 --- a/lib/presentation/apply_page/ui/view/apply_page.dart +++ b/lib/presentation/apply_page/ui/view/apply_page.dart @@ -150,8 +150,8 @@ class ApplyPage extends StatelessWidget { 31 ? true : false, - machine: state - .value.applyList[index * 2].machine, + deviceType: state.value + .applyList[index * 2].deviceType, state: CurrentState.working), index * 2 + 1 < state.value.applyList.length ? MachineCard( @@ -168,10 +168,10 @@ class ApplyPage extends StatelessWidget { 31 ? true : false, - machine: state + deviceType: state .value .applyList[index * 2 + 1] - .machine, + .deviceType, state: CurrentState.working) : SizedBox( width: 185.0.w, diff --git a/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart b/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart index 69ccb6b3..1188b9a7 100644 --- a/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart +++ b/lib/presentation/laundry_room_page/bloc/laundry_bloc.dart @@ -30,8 +30,8 @@ class LaundryBloc extends Bloc> { .map((e) => e.id == data.id ? LaundryEntity( id: e.id, - state: data.state.index, - deviceType: data.deviceType.text.toLowerCase()) + state: data.state, + deviceType: data.deviceType) : e) .toList()); emit(Loaded(data: newLaundryModel)); diff --git a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart index d19753d7..a058a23d 100644 --- a/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart +++ b/lib/presentation/laundry_room_page/ui/view/laundry_room_page.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart' as s; import 'package:lotura/domain/laundry/entity/laundry_entity.dart'; import 'package:lotura/main.dart'; import 'package:lotura/presentation/laundry_room_page/bloc/laundry_bloc.dart'; @@ -257,20 +257,20 @@ class LaundryList extends StatelessWidget { {required LaundryRoomModel roomState, required int deviceId, required CurrentState state, - required Machine machine}) => + required DeviceType deviceType}) => roomState.buttonView == ButtonView.image ? MachineCard( deviceId: deviceId, isEnableNotification: true, isWoman: roomState.roomLocation == RoomLocation.womanRoom, state: state, - machine: machine) + deviceType: deviceType) : MachineButton( deviceId: deviceId, isEnableNotification: true, isWoman: roomState.roomLocation == RoomLocation.womanRoom, state: state, - machine: machine); + deviceType: deviceType); @override Widget build(BuildContext context) { @@ -317,7 +317,7 @@ class LaundryList extends StatelessWidget { placeIndex[laundryRoomModel.roomLocation.index]! + index] .id, - machine: list[ + deviceType: list[ placeIndex[laundryRoomModel.roomLocation.index]! + index] .deviceType, @@ -344,22 +344,23 @@ class LaundryList extends StatelessWidget { : 8)] .id : -1, - machine: placeIndex[laundryRoomModel.roomLocation.index]! + - index + - (laundryRoomModel.roomLocation == - RoomLocation.womanRoom - ? 10 - : 8) < - 44 - ? list[placeIndex[ - laundryRoomModel.roomLocation.index]! + - index + - (laundryRoomModel.roomLocation == - RoomLocation.womanRoom - ? 10 - : 8)] - .deviceType - : Machine.dry, + deviceType: + placeIndex[laundryRoomModel.roomLocation.index]! + + index + + (laundryRoomModel.roomLocation == + RoomLocation.womanRoom + ? 10 + : 8) < + 44 + ? list[placeIndex[ + laundryRoomModel.roomLocation.index]! + + index + + (laundryRoomModel.roomLocation == + RoomLocation.womanRoom + ? 10 + : 8)] + .deviceType + : DeviceType.dry, state: placeIndex[laundryRoomModel.roomLocation.index]! + index + (laundryRoomModel.roomLocation == diff --git a/lib/presentation/utils/machine_button.dart b/lib/presentation/utils/machine_button.dart index 25c2f81f..bef50249 100644 --- a/lib/presentation/utils/machine_button.dart +++ b/lib/presentation/utils/machine_button.dart @@ -10,7 +10,7 @@ class MachineButton extends MachineWidget { required super.isEnableNotification, required super.isWoman, required super.state, - required super.machine, + required super.deviceType, }); @override @@ -33,7 +33,7 @@ class MachineButton extends MachineWidget { crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Icon(machine.icon, + Icon(deviceType.icon, size: 24.0.r, color: LoturaColors.gray300), Row( children: [ @@ -43,7 +43,8 @@ class MachineButton extends MachineWidget { width: (isWoman ? deviceId - 31 : deviceId) < 10 ? 10.2.w : 5.0.w), - Text(machine.text, style: TextStyle(fontSize: 16.0.sp)), + Text(deviceType.text, + style: TextStyle(fontSize: 16.0.sp)), SizedBox(width: 8.0.w), Icon( state.icon, diff --git a/lib/presentation/utils/machine_card.dart b/lib/presentation/utils/machine_card.dart index 7ccbb66e..62c54966 100644 --- a/lib/presentation/utils/machine_card.dart +++ b/lib/presentation/utils/machine_card.dart @@ -9,7 +9,7 @@ class MachineCard extends MachineWidget { required super.deviceId, required super.isEnableNotification, required super.isWoman, - required super.machine, + required super.deviceType, required super.state, }); @@ -30,9 +30,7 @@ class MachineCard extends MachineWidget { children: [ SizedBox(height: 24.0.h), Image.asset( - machine.index == 0 - ? "assets/laundry_image.jpeg" - : "assets/dry_image.jpeg", + deviceType.imagePath, width: 120.0.r, height: 120.0.r, ), @@ -48,7 +46,7 @@ class MachineCard extends MachineWidget { ), ), Text( - machine.index == 0 ? "세탁기" : "건조기", + deviceType.text, style: TextStyle(fontSize: 16.0.sp), ), ], diff --git a/lib/presentation/utils/machine_widget.dart b/lib/presentation/utils/machine_widget.dart index 2ea720e7..3f1c04a0 100644 --- a/lib/presentation/utils/machine_widget.dart +++ b/lib/presentation/utils/machine_widget.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart' as m; import 'package:lotura/main.dart'; import 'package:lotura/presentation/utils/osj_bottom_sheet.dart'; @@ -10,15 +10,14 @@ abstract class MachineWidget extends StatelessWidget { required this.isEnableNotification, required this.isWoman, required this.state, - required this.machine, + required this.deviceType, }); final int deviceId; final bool isEnableNotification, isWoman; final CurrentState state; - - final Machine machine; + final DeviceType deviceType; bool get isEmptyContainer => (!isWoman && deviceId == 32) || (isWoman && deviceId == -1); @@ -36,7 +35,7 @@ abstract class MachineWidget extends StatelessWidget { isEnableNotification: isEnableNotification, isWoman: isWoman, state: state, - machine: machine, + machine: deviceType, ), ); } diff --git a/lib/presentation/utils/osj_bottom_sheet.dart b/lib/presentation/utils/osj_bottom_sheet.dart index 80fa53db..7b6712c9 100644 --- a/lib/presentation/utils/osj_bottom_sheet.dart +++ b/lib/presentation/utils/osj_bottom_sheet.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart' as s; import 'package:lotura/main.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_bloc.dart'; import 'package:lotura/presentation/apply_page/bloc/apply_event.dart'; @@ -22,7 +22,7 @@ class OSJBottomSheet extends StatefulWidget { final int deviceId; final bool isEnableNotification, isWoman; final CurrentState state; - final Machine machine; + final DeviceType machine; @override State createState() => _OSJBottomSheetState(); From 6b7228039d7923965436d5354ee6e9253f37585a Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 21 Apr 2024 01:24:45 +0900 Subject: [PATCH 54/56] =?UTF-8?q?chore=20::=20=EC=95=88=EB=93=9C=EB=A1=9C?= =?UTF-8?q?=EC=9D=B4=EB=93=9C=20=EC=95=B1=20=EB=B2=84=EC=A0=84=20=EC=97=85?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 9dc6887d..8de28232 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -13,12 +13,12 @@ if (flutterRoot == null) { def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { - flutterVersionCode = '21' + flutterVersionCode = '22' } def flutterVersionName = localProperties.getProperty('flutter.versionName') if (flutterVersionName == null) { - flutterVersionName = '3.3.7' + flutterVersionName = '3.4.0' } def keystoreProperties = new Properties() From f048859451b1940714e8c6e71c421afed2b9bdce Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 21 Apr 2024 01:25:02 +0900 Subject: [PATCH 55/56] =?UTF-8?q?chore=20::=20iOS=20=EC=95=B1=20=EB=B2=84?= =?UTF-8?q?=EC=A0=84=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ios/Podfile.lock | 2 +- ios/Runner.xcodeproj/project.pbxproj | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 494f79ad..e12dde01 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -126,4 +126,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 3765b805c03121794c6d132546df9366f592bc4d -COCOAPODS: 1.13.0 +COCOAPODS: 1.15.2 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 8cadf561..87f407ff 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -376,7 +376,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 3.3.7; + MARKETING_VERSION = 3.4.0; PRODUCT_BUNDLE_IDENTIFIER = com.osj.lotura; PRODUCT_NAME = "$(TARGET_NAME)"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; @@ -516,7 +516,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 3.3.7; + MARKETING_VERSION = 3.4.0; PRODUCT_BUNDLE_IDENTIFIER = com.osj.lotura; PRODUCT_NAME = "$(TARGET_NAME)"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; @@ -546,7 +546,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 3.3.7; + MARKETING_VERSION = 3.4.0; PRODUCT_BUNDLE_IDENTIFIER = com.osj.lotura; PRODUCT_NAME = "$(TARGET_NAME)"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; From 2049821984dabb6b8b5384895684069439c401af Mon Sep 17 00:00:00 2001 From: yoochanhong Date: Sun, 21 Apr 2024 01:25:37 +0900 Subject: [PATCH 56/56] =?UTF-8?q?chore=20::=20flutter=20=EC=95=B1=20?= =?UTF-8?q?=EB=B2=84=EC=A0=84=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 19971eee..ad77423a 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: 3.3.7+21 +version: 3.4.0+20 environment: sdk: '>=3.1.3 <4.0.0'