From 0ee90b8a02ca46f7c4793a83fcce6c4d72c427ed Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Mon, 19 Aug 2024 11:14:40 +0900 Subject: [PATCH 01/32] =?UTF-8?q?Fix(post=5Fwrite=5Fpage.dart):=20Request?= =?UTF-8?q?=20URL=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ios/Podfile.lock | 2 +- lib/pages/post_write_page.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index cb3e2bc8..c7556b04 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -174,4 +174,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 40e3ca182cfbd571c46e751b6eb8a6f2cbbf72fc -COCOAPODS: 1.14.2 +COCOAPODS: 1.15.2 diff --git a/lib/pages/post_write_page.dart b/lib/pages/post_write_page.dart index e85b9f17..57fb0c30 100644 --- a/lib/pages/post_write_page.dart +++ b/lib/pages/post_write_page.dart @@ -1533,7 +1533,7 @@ class _PostWritePageState extends State filename: attachFile.path.split('/').last), }); Response? response = await userProvider.postApiRes( - "$newAraDefaultUrl/api/attachments/", + "attachments/", data: formData); if (response != null) { final attachmentModel = AttachmentModel.fromJson(response.data); From dd1f237f64c5af278ff622b2526c85b5612b087b Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Mon, 19 Aug 2024 11:15:17 +0900 Subject: [PATCH 02/32] =?UTF-8?q?Feat(slide=5Frouting.dart):=20=EC=95=88?= =?UTF-8?q?=EB=93=9C=EB=A1=9C=EC=9D=B4=EB=93=9C=20back=20swipe=20=EB=B3=B5?= =?UTF-8?q?=EA=B5=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/utils/slide_routing.dart | 42 +++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/lib/utils/slide_routing.dart b/lib/utils/slide_routing.dart index 22117e96..de2f7782 100644 --- a/lib/utils/slide_routing.dart +++ b/lib/utils/slide_routing.dart @@ -1,27 +1,29 @@ -import 'dart:io'; import 'package:flutter/cupertino.dart'; Route slideRoute(Widget dst) { // iOS, Android에서 모두 back swipe 적용 // TODO: Android에서 back swipe 적용할지 여부 논의 (2023.01.24) - if (Platform.isIOS) { - return CupertinoPageRoute( - builder: (context) => dst, - ); - } - return PageRouteBuilder( - pageBuilder: (context, animation, secondaryAnimation) => dst, - transitionsBuilder: ((context, animation, secondaryAnimation, child) { - var begin = const Offset(1, 0); - var end = const Offset(0, 0); - var curve = Curves.ease; - - var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve)); - var offsetAnimation = animation.drive(tween); - return SlideTransition( - position: offsetAnimation, - child: child, - ); - }), + return CupertinoPageRoute( + builder: (context) => dst, ); + // if (Platform.isIOS) { + // return CupertinoPageRoute( + // builder: (context) => dst, + // ); + // } + // return PageRouteBuilder( + // pageBuilder: (context, animation, secondaryAnimation) => dst, + // transitionsBuilder: ((context, animation, secondaryAnimation, child) { + // var begin = const Offset(1, 0); + // var end = const Offset(0, 0); + // var curve = Curves.ease; + + // var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve)); + // var offsetAnimation = animation.drive(tween); + // return SlideTransition( + // position: offsetAnimation, + // child: child, + // ); + // }), + // ); } From 3072bfd206a6e6a5d57228ddf26e957413285aab Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Mon, 19 Aug 2024 17:07:46 +0900 Subject: [PATCH 03/32] =?UTF-8?q?Chore(build.gradle):=20targetSdkVersion,?= =?UTF-8?q?=20compileSdkVersion=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 34e9c869..299d336c 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -32,7 +32,11 @@ apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 33 + /* compileSdkVersion + - 앱을 컴파일할 때 사용하는 SDK의 버전 + - compileSdkVersion에서 지정한 SDK의 Android API를 사용하게 됨 + - 구글 정책(2024.08.31 이후로 앱은 API 버전 34를 타겟팅해야함)에 따라 33->34로 상향 */ + compileSdkVersion 34 ndkVersion flutter.ndkVersion compileOptions { @@ -53,9 +57,16 @@ android { // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. - // minSdkVersion 19 // webview_flutter에서 요구하는 최소 버전 - minSdkVersion 21 // multiDex에서 요구하는 최소 버전 - targetSdkVersion flutter.targetSdkVersion + /* minSdkVersion + - 앱이 설치될 수 있는 최소한의 API 버전 (이 버전보다 낮은 것만 지원하는 기기에는 설치 불가) + - multiDex에서 요구하는 최소 버전인 21로 설정 */ + minSdkVersion 21 + + /* targetSdkVersion + - 앱이 테스트되고 최적화된 Android SDK 버전을 의미 + - targetSdkVersion에 해당하는 Android SDK 버전을 염두해두고 개발되었다는 의미 + - 구글 정책(2024.08.31 이후로 앱은 API 버전 34를 타겟팅해야함)에 따라 33->34로 상향 */ + targetSdkVersion 34 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } From 491de78daaa72b6d969268478af70af690947a78 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Mon, 19 Aug 2024 17:55:48 +0900 Subject: [PATCH 04/32] Chore(pubspec.yaml): Update version to 1.1.1, Remove flutter_local_notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 기존에 사용하는 패키지도 아니었고, Android 14에서의 USE_FULL_SCREEN_INTENT 관련 권한문제가 발생하여 패키지를 제거함. --- android/app/src/main/AndroidManifest.xml | 1 + ios/Podfile.lock | 6 ---- ios/Runner.xcodeproj/project.pbxproj | 6 ++-- ios/Runner/Info.plist | 2 +- pubspec.lock | 40 ------------------------ pubspec.yaml | 3 +- 6 files changed, 6 insertions(+), 52 deletions(-) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 49454c08..a688021d 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -48,4 +48,5 @@ android:value="2" /> + diff --git a/ios/Podfile.lock b/ios/Podfile.lock index c7556b04..9c9eb6d5 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -45,8 +45,6 @@ PODS: - OrderedSet (~> 5.0) - flutter_keyboard_visibility (0.0.1): - Flutter - - flutter_local_notifications (0.0.1): - - Flutter - flutter_native_splash (0.0.1): - Flutter - flutter_secure_storage (6.0.0): @@ -87,7 +85,6 @@ DEPENDENCIES: - Flutter (from `Flutter`) - flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`) - flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`) - - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - gal (from `.symlinks/plugins/gal/darwin`) @@ -120,8 +117,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/flutter_inappwebview/ios" flutter_keyboard_visibility: :path: ".symlinks/plugins/flutter_keyboard_visibility/ios" - flutter_local_notifications: - :path: ".symlinks/plugins/flutter_local_notifications/ios" flutter_native_splash: :path: ".symlinks/plugins/flutter_native_splash/ios" flutter_secure_storage: @@ -155,7 +150,6 @@ SPEC CHECKSUMS: Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 flutter_inappwebview: 3d32228f1304635e7c028b0d4252937730bbc6cf flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069 - flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743 flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be gal: 61e868295d28fe67ffa297fae6dacebf56fd53e1 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 80387158..5b46526f 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -357,7 +357,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + CURRENT_PROJECT_VERSION = 240819.1748; DEVELOPMENT_TEAM = N5V8W52U3U; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -486,7 +486,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + CURRENT_PROJECT_VERSION = 240819.1748; DEVELOPMENT_TEAM = N5V8W52U3U; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -509,7 +509,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + CURRENT_PROJECT_VERSION = 240819.1748; DEVELOPMENT_TEAM = N5V8W52U3U; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index bdfea49d..d4d05167 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -25,7 +25,7 @@ CFBundleSignature ???? CFBundleVersion - $(FLUTTER_BUILD_NUMBER) + 240819.1748 LSApplicationQueriesSchemes https diff --git a/pubspec.lock b/pubspec.lock index f23c30e1..1cd08684 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -137,14 +137,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.6" - dbus: - dependency: transitive - description: - name: dbus - sha256: "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263" - url: "https://pub.dev" - source: hosted - version: "0.7.8" delta_to_html: dependency: "direct main" description: @@ -387,30 +379,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.1" - flutter_local_notifications: - dependency: "direct main" - description: - name: flutter_local_notifications - sha256: "501ed9d54f1c8c0535b7991bade36f9e7e3b45a2346401f03775c1ec7a3c06ae" - url: "https://pub.dev" - source: hosted - version: "15.1.2" - flutter_local_notifications_linux: - dependency: transitive - description: - name: flutter_local_notifications_linux - sha256: "33f741ef47b5f63cc7f78fe75eeeac7e19f171ff3c3df054d84c1e38bedb6a03" - url: "https://pub.dev" - source: hosted - version: "4.0.0+1" - flutter_local_notifications_platform_interface: - dependency: transitive - description: - name: flutter_local_notifications_platform_interface - sha256: "7cf643d6d5022f3baed0be777b0662cce5919c0a7b86e700299f22dc4ae660ef" - url: "https://pub.dev" - source: hosted - version: "7.0.0+1" flutter_localizations: dependency: transitive description: flutter @@ -1244,14 +1212,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.5.3" - timezone: - dependency: transitive - description: - name: timezone - sha256: "1cfd8ddc2d1cfd836bc93e67b9be88c3adaeca6f40a00ca999104c30693cdca0" - url: "https://pub.dev" - source: hosted - version: "0.9.2" tuple: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 0cd8ca69..13960690 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: new_ara_app description: A new Flutter project. publish_to: none -version: 1.1.0+103040304 +version: 1.1.1+108191746 environment: sdk: ">=2.18.0 <3.0.0" dependencies: @@ -30,7 +30,6 @@ dependencies: flutter_keyboard_visibility: "^5.4.1" mime: "^1.0.4" http_parser: "^4.0.2" - flutter_local_notifications: "^15.1.0+1" flutter_quill_extensions: "^0.5.0" flutter_quill: "^7.4.7" delta_to_html: "^0.2.2" From 44f25f3f56f04f88481c0d0a2ae47f4d8546ed68 Mon Sep 17 00:00:00 2001 From: "casio@sparcs.org" Date: Sat, 14 Sep 2024 22:41:15 +0900 Subject: [PATCH 05/32] Feat: caching attachments --- lib/pages/post_write_page.dart | 61 +++++++++++++++++++++------------- lib/utils/cache_function.dart | 3 +- 2 files changed, 40 insertions(+), 24 deletions(-) diff --git a/lib/pages/post_write_page.dart b/lib/pages/post_write_page.dart index 1c7f6493..6e6eae96 100644 --- a/lib/pages/post_write_page.dart +++ b/lib/pages/post_write_page.dart @@ -93,6 +93,33 @@ class AttachmentsFormat { this.fileUrlName = "", this.fileUrlSize = 0, }); + + factory AttachmentsFormat.fromJson(Map json) { + return AttachmentsFormat( + fileType: FileType.values[json['fileType']], + isNewFile: json['isNewFile'], + fileLocalPath: + json['fileLocalPath'] is String ? json['fileLocalPath'] : null, + uuid: json['uuid'] is String ? json['uuid'] : null, + id: json['id'], + fileUrlPath: json['fileUrlPath'] is String ? json['fileUrlPath'] : null, + fileUrlName: json['fileUrlName'] is String ? json['fileUrlName'] : "", + fileUrlSize: json['fileUrlSize'] ?? 0, + ); + } + + Map toJson() { + return { + 'fileType': fileType.index, + 'isNewFile': isNewFile, + 'fileLocalPath': fileLocalPath, + 'uuid': uuid, + 'id': id, + 'fileUrlPath': fileUrlPath, + 'fileUrlName': fileUrlName, + 'fileUrlSize': fileUrlSize, + }; + } } class _PostWritePageState extends State @@ -285,20 +312,19 @@ class _PostWritePageState extends State ? 'ANONYMOUS' : 'REGULAR') : 'REGULAR', - 'parent_topic' : _chosenTopicValue!.id == -1 ? '' : _chosenTopicValue!.slug, - 'parent_board' : _chosenBoardValue!.id == -1 ? '' : _chosenBoardValue!.slug, - 'attachments' : _chosenBoardValue!.id == -1 ? '' : _chosenBoardValue!.slug, + 'parent_topic': + _chosenTopicValue!.id == -1 ? '' : _chosenTopicValue!.slug, + 'parent_board': + _chosenBoardValue!.id == -1 ? '' : _chosenBoardValue!.slug, }; data['attachments'] = _attachmentList; String key = _isEditingPost ? '/cache/${widget.previousArticle!.id}/' - : '/cache/${userID}/'; + : '/cache/$userID/'; await cacheApiData(key, data); - debugPrint(key); - debugPrint(data as String?); } /// 사용자가 선택 가능한 게시판 목록을 가져오는 함수. @@ -364,9 +390,9 @@ class _PostWritePageState extends State Future _getCachedContents() async { String key = (_isEditingPost) ? '/cache/${widget.previousArticle!.id}/' - : '/cache/${userID}/'; + : '/cache/$userID/'; Map? cachedData = await fetchCachedApiData(key); - debugPrint('cache : ${cachedData}'); + debugPrint('cache : $cachedData'); if (cachedData == null && _isEditingPost) { await _getPostContent(); return; @@ -380,20 +406,9 @@ class _PostWritePageState extends State _titleController.text = title ?? ''; for (int i = 0; i < cachedData['attachments'].length; i++) { - AttachmentModel attachment = cachedData['attachments'][i]; - int id = attachment.id; - String? fileUrlPath = attachment.file; - String fileUrlName = _extractAndDecodeFileNameFromUrl(attachment.file); - int? fileUrlSize = attachment.size ?? 0; - // TODO: fileType이 이미지인지 아닌지 판단해서 넣기. - _attachmentList.add(AttachmentsFormat( - fileType: FileType.image, - isNewFile: false, - id: id, - fileUrlPath: fileUrlPath, - fileUrlName: fileUrlName, - fileUrlSize: fileUrlSize)); + _attachmentList + .add(AttachmentsFormat.fromJson(cachedData['attachments'][i])); } setState(() { @@ -535,7 +550,7 @@ class _PostWritePageState extends State //dialog pop String key = _isEditingPost ? '/cache/${widget.previousArticle!.id}/' - : '/cache/${userID}'; + : '/cache/$userID/'; await cacheApiData(key, null); Navigator.pop(context, true); }, @@ -606,7 +621,7 @@ class _PostWritePageState extends State // try-catch 문을 도입함. String key = _isEditingPost ? '/cache/${widget.previousArticle!.id}/' - : '/cache/${userID}'; + : '/cache/$userID/'; await cacheApiData(key, null); try { Navigator.of(context) diff --git a/lib/utils/cache_function.dart b/lib/utils/cache_function.dart index f2747812..c98efb8f 100644 --- a/lib/utils/cache_function.dart +++ b/lib/utils/cache_function.dart @@ -58,7 +58,8 @@ Future updateStateWithCachedOrFetchedApiData({ await callback(response.data); } } catch (error) { - debugPrint("updateStateWithCachedOrFetchedApiData error: $error, apiurl: $apiUrl"); + debugPrint( + "updateStateWithCachedOrFetchedApiData error: $error, apiurl: $apiUrl"); // 에러 발생 시 적절한 에러 처리 로직을 추가합니다. } } From d4017844e83b186e0961e7b23940af5608c01ca7 Mon Sep 17 00:00:00 2001 From: "casio@sparcs.org" Date: Sun, 15 Sep 2024 00:43:38 +0900 Subject: [PATCH 06/32] fix: delete cache after submit --- lib/pages/post_write_page.dart | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/pages/post_write_page.dart b/lib/pages/post_write_page.dart index 6e6eae96..f9f08c0e 100644 --- a/lib/pages/post_write_page.dart +++ b/lib/pages/post_write_page.dart @@ -1684,6 +1684,11 @@ class _PostWritePageState extends State // 게시물에 첨부된 파일의 ID List attachmentIds = []; + String key = isUpdate + ? '/cache/${widget.previousArticle!.id}/' + : '/cache/$userID/'; + await cacheApiData(key, null); + try { titleValue = _titleController.text; contentValue = DeltaToHTML.encodeJson( From 89f971fcc920520149cd5ea3e217dd7acf5ed281 Mon Sep 17 00:00:00 2001 From: "casio@sparcs.org" Date: Sun, 15 Sep 2024 00:55:32 +0900 Subject: [PATCH 07/32] chore: fix git issue --- ios/Podfile.lock | 6 ------ 1 file changed, 6 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index c7556b04..9c9eb6d5 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -45,8 +45,6 @@ PODS: - OrderedSet (~> 5.0) - flutter_keyboard_visibility (0.0.1): - Flutter - - flutter_local_notifications (0.0.1): - - Flutter - flutter_native_splash (0.0.1): - Flutter - flutter_secure_storage (6.0.0): @@ -87,7 +85,6 @@ DEPENDENCIES: - Flutter (from `Flutter`) - flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`) - flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`) - - flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`) - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - gal (from `.symlinks/plugins/gal/darwin`) @@ -120,8 +117,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/flutter_inappwebview/ios" flutter_keyboard_visibility: :path: ".symlinks/plugins/flutter_keyboard_visibility/ios" - flutter_local_notifications: - :path: ".symlinks/plugins/flutter_local_notifications/ios" flutter_native_splash: :path: ".symlinks/plugins/flutter_native_splash/ios" flutter_secure_storage: @@ -155,7 +150,6 @@ SPEC CHECKSUMS: Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 flutter_inappwebview: 3d32228f1304635e7c028b0d4252937730bbc6cf flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069 - flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743 flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be gal: 61e868295d28fe67ffa297fae6dacebf56fd53e1 From 8394b208a5623668eed4f2d259105b27b7924297 Mon Sep 17 00:00:00 2001 From: "casio@sparcs.org" Date: Sun, 22 Sep 2024 19:11:42 +0900 Subject: [PATCH 08/32] feat: anonymous --- lib/pages/post_write_page.dart | 39 +++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/lib/pages/post_write_page.dart b/lib/pages/post_write_page.dart index 5615b39b..d0b86499 100644 --- a/lib/pages/post_write_page.dart +++ b/lib/pages/post_write_page.dart @@ -298,14 +298,11 @@ class _PostWritePageState extends State DeltaToHTML.encodeJson(_quillController.document.toDelta().toJson()), 'is_content_sexual': _selectedCheckboxes[1], 'is_content_social': _selectedCheckboxes[2], - 'name_type': (_chosenBoardValue != null) - ? (_defaultBoardDetailActionModel.slug == 'with-school' - ? 'REALNAME' - : _chosenBoardValue!.slug == "talk" && - _selectedCheckboxes[0]! == true - ? 'ANONYMOUS' - : 'REGULAR') - : 'REGULAR', + 'name_type': _chosenBoardValue!.slug == 'with-school' + ? 'REALNAME' + : _chosenBoardValue!.slug == "talk" && _selectedCheckboxes[0]! == true + ? 'ANONYMOUS' + : 'REGULAR', 'parent_topic': _chosenTopicValue!.id == -1 ? '' : _chosenTopicValue!.slug, 'parent_board': @@ -415,10 +412,10 @@ class _PostWritePageState extends State _titleController.text = title ?? ''; for (int i = 0; i < cachedData['attachments'].length; i++) { - // TODO: fileType이 이미지인지 아닌지 판단해서 넣기. - _attachmentList - .add(AttachmentsFormat.fromJson(cachedData['attachments'][i])); - } + // TODO: fileType이 이미지인지 아닌지 판단해서 넣기. + _attachmentList + .add(AttachmentsFormat.fromJson(cachedData['attachments'][i])); + } setState(() { _quillController.document = (cachedData['content'] != null) @@ -427,7 +424,8 @@ class _PostWritePageState extends State _isFileMenuBarSelected = _attachmentList.isNotEmpty; //TODO: 명명 규칙 다름 - _selectedCheckboxes[0] = cachedData['name_type'] == 2 ? true : false; + _selectedCheckboxes[0] = + cachedData['name_type'] == 'ANONYMOUS' ? true : false; _selectedCheckboxes[1] = cachedData['is_content_sexual'] ?? false; _selectedCheckboxes[2] = cachedData['is_content_social'] ?? false; //_isLoading = false; (only finish loading AFTER boardlist load) @@ -450,6 +448,7 @@ class _PostWritePageState extends State /// 기존 게시물의 내용과 첨부 파일 가져오기. Future _getPostContent() async { + debugPrint('get Post Content called!'); // 새로 작성하는 게시물의 경우 함수 종료. if (!_isEditingPost) return; @@ -478,6 +477,8 @@ class _PostWritePageState extends State fileUrlSize: fileUrlSize)); } + debugPrint('$_attachmentList'); + // 수정 게시물의 기존 상태 반영. setState(() { _quillController.document = quill.Document.fromDelta( @@ -1710,6 +1711,7 @@ class _PostWritePageState extends State /// previousArticleId: 수정하는 경우 수정할 글의 id void Function() _managePost({bool isUpdate = false, int? previousArticleId}) { UserProvider userProvider = context.read(); + debugPrint('manage Post called'); return () async { // 아래의 변수들로 api POST, PATCH를 보낸다. // 게시물의 제목 @@ -1736,7 +1738,7 @@ class _PostWritePageState extends State _isUploadingPost = true; _isLoading = true; }); - + debugPrint('attachmentList : $_attachmentList'); for (int i = 0; i < _attachmentList.length; i++) { //새로 올리는 파일이면 새로운 id 할당 받기. if (_attachmentList[i].isNewFile) { @@ -1747,9 +1749,8 @@ class _PostWritePageState extends State "file": await MultipartFile.fromFile(attachFile.path, filename: attachFile.path.split('/').last), }); - Response? response = await userProvider.postApiRes( - "attachments/", - data: formData); + Response? response = + await userProvider.postApiRes("attachments/", data: formData); if (response != null) { final attachmentModel = AttachmentModel.fromJson(response.data); attachmentIds.add(attachmentModel.id); @@ -1780,6 +1781,7 @@ class _PostWritePageState extends State ? 'ANONYMOUS' : 'REGULAR', }; + debugPrint('manage post data : $data'); Response? response; if (isUpdate) { response = await userProvider.putApiRes( @@ -1825,6 +1827,7 @@ class _PostWritePageState extends State /// 사진 추가 시 실행되는 함수 Future _pickImage() async { + debugPrint('pick Image called'); FocusScope.of(context).unfocus(); final ImagePicker imagePicker = ImagePicker(); final XFile? image = @@ -1859,6 +1862,7 @@ class _PostWritePageState extends State fileLocalPath: imageUrl, uuid: uuid, )); + debugPrint('$_attachmentList'); }); } _editorFocusNode.requestFocus(); @@ -1885,6 +1889,7 @@ class _PostWritePageState extends State isNewFile: true, fileLocalPath: file.path, )); + debugPrint('$_attachmentList'); }); return true; } else { From 52474963ecc16dedf168ed8770cff4857b0f5f10 Mon Sep 17 00:00:00 2001 From: "casio@sparcs.org" Date: Sun, 22 Sep 2024 19:29:27 +0900 Subject: [PATCH 09/32] fix: double attachment --- lib/pages/post_write_page.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/pages/post_write_page.dart b/lib/pages/post_write_page.dart index d0b86499..b0e24e1c 100644 --- a/lib/pages/post_write_page.dart +++ b/lib/pages/post_write_page.dart @@ -408,9 +408,10 @@ class _PostWritePageState extends State } try { + _attachmentList.clear(); String? title = cachedData['title']; _titleController.text = title ?? ''; - + debugPrint('get cached data called!'); for (int i = 0; i < cachedData['attachments'].length; i++) { // TODO: fileType이 이미지인지 아닌지 판단해서 넣기. _attachmentList @@ -441,6 +442,7 @@ class _PostWritePageState extends State : _findSpecTopicListValue(cachedData['parent_topic'].toString()); _chosenBoardValue = boardDetailActionModel; }); + debugPrint('get cached data attachment List : $_attachmentList'); } catch (error) { debugPrint('_getCachedContents error: $error'); } From a3a1e1aa7509b0817b0812e5667d02969530ae54 Mon Sep 17 00:00:00 2001 From: "casio@sparcs.org" Date: Sun, 22 Sep 2024 19:41:27 +0900 Subject: [PATCH 10/32] fix: double attachment error --- lib/pages/post_write_page.dart | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/pages/post_write_page.dart b/lib/pages/post_write_page.dart index b0e24e1c..510c1012 100644 --- a/lib/pages/post_write_page.dart +++ b/lib/pages/post_write_page.dart @@ -379,10 +379,9 @@ class _PostWritePageState extends State _isLoading = false; }); } - - //_boardList를 모두 불러온 후 cache 업데이트 - await _getCachedContents(); }); + //_boardList를 모두 불러온 후 cache 업데이트 + await _getCachedContents(); } /// 사용자가 임시 저장한 데이터를 가져오는 함수. @@ -408,7 +407,6 @@ class _PostWritePageState extends State } try { - _attachmentList.clear(); String? title = cachedData['title']; _titleController.text = title ?? ''; debugPrint('get cached data called!'); From 5c18f33c4f926ed263fad2746adc3d4d073f4525 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 25 Sep 2024 00:05:24 +0900 Subject: [PATCH 11/32] =?UTF-8?q?Feat(post=5Fwrite=5Fpage.dart):=20?= =?UTF-8?q?=EC=9E=84=EC=8B=9C=EC=A0=80=EC=9E=A5=20=EA=B4=80=EB=A0=A8=20?= =?UTF-8?q?=EC=8A=A4=EB=82=B5=EB=B0=94=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/main_page.dart | 2 +- lib/pages/post_write_page.dart | 13 ++++++++++--- lib/providers/user_provider.dart | 21 ++++++++++----------- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/lib/pages/main_page.dart b/lib/pages/main_page.dart index 7440ff3e..852b728a 100644 --- a/lib/pages/main_page.dart +++ b/lib/pages/main_page.dart @@ -363,7 +363,7 @@ class _MainPageState extends State with WidgetsBindingObserver { @override Widget build(BuildContext context) { - debugPrint("build invoked!!"); + // debugPrint("build invoked!!"); return Scaffold( appBar: AppBar( elevation: 0, diff --git a/lib/pages/post_write_page.dart b/lib/pages/post_write_page.dart index 510c1012..b198ca18 100644 --- a/lib/pages/post_write_page.dart +++ b/lib/pages/post_write_page.dart @@ -262,8 +262,8 @@ class _PostWritePageState extends State @override void didChangeMetrics() async { - var now = DateTime.now(); - debugPrint("now: $now, ${MediaQuery.of(context).viewInsets.bottom}"); + // var now = DateTime.now(); + // debugPrint("now: $now, ${MediaQuery.of(context).viewInsets.bottom}"); // 기기의 키보드가 올라가거나 내려가는 애니메이션 길이가 다르다. // 기기의 애니메이션이 끝나고 확인하기 위해 50ms의 딜레이를 준다. await Future.delayed(const Duration(milliseconds: 50)); @@ -441,6 +441,10 @@ class _PostWritePageState extends State _chosenBoardValue = boardDetailActionModel; }); debugPrint('get cached data attachment List : $_attachmentList'); + + if (mounted) { + showInfoBySnackBar(context, "임시저장되었던 게시물을 다시 불러왔습니다."); + } } catch (error) { debugPrint('_getCachedContents error: $error'); } @@ -535,7 +539,7 @@ class _PostWritePageState extends State @override Widget build(BuildContext context) { - debugPrint("BUILD invoked!!!"); + // debugPrint("BUILD invoked!!!"); /// 게시물 업로드 가능한지 확인 /// TODO: 업로드 로딩 인디케이터 추가하기 @@ -560,6 +564,7 @@ class _PostWritePageState extends State userProvider: userProvider, targetContext: context, onTapConfirm: () async { + debugPrint("onTapConfirm invoked"); //dialog pop String key = _isEditingPost ? '/cache/${widget.previousArticle!.id}/' @@ -571,6 +576,7 @@ class _PostWritePageState extends State } }, onTapSave: () async { + debugPrint("onTapSave invoked"); await cacheCurrentData(); if (mounted) { Navigator.pop(context, true); @@ -664,6 +670,7 @@ class _PostWritePageState extends State Navigator.of(context) ..pop() //dialog pop ..pop(); //PostWritePage pop + showInfoBySnackBar(context, "작성 중이신 게시글을 캐시에 임시 저장하였습니다."); } } catch (error) { debugPrint("pop error: $error"); diff --git a/lib/providers/user_provider.dart b/lib/providers/user_provider.dart index 3d166068..61935d14 100644 --- a/lib/providers/user_provider.dart +++ b/lib/providers/user_provider.dart @@ -207,10 +207,10 @@ class UserProvider with ChangeNotifier { cancelToken: cancelToken, onReceiveProgress: onReceiveProgress, ); - internetConnected = true; - //인터넷 오류 snackBar 모두 지우기 - snackBarKey.currentState?.clearSnackBars(); + if (!internetConnected) snackBarKey.currentState?.clearSnackBars(); + + internetConnected = true; return response; } on DioException catch (e) { @@ -245,10 +245,10 @@ class UserProvider with ChangeNotifier { cancelToken: cancelToken, onSendProgress: onSendProgress, onReceiveProgress: onReceiveProgress); + + if (!internetConnected) snackBarKey.currentState?.clearSnackBars(); internetConnected = true; - //인터넷 오류 snackBar 모두 지우기 - snackBarKey.currentState?.clearSnackBars(); return response; } on DioException catch (e) { debugPrint("Error occured in fetching : $toUrl"); @@ -280,10 +280,10 @@ class UserProvider with ChangeNotifier { cancelToken: cancelToken, onSendProgress: onSendProgress, onReceiveProgress: onReceiveProgress); + + if (!internetConnected) snackBarKey.currentState?.clearSnackBars(); internetConnected = true; - //인터넷 오류 snackBar 모두 지우기 - snackBarKey.currentState?.clearSnackBars(); return response; } on DioException catch (e) { debugPrint("Error occured in fetching : $toUrl"); @@ -315,10 +315,10 @@ class UserProvider with ChangeNotifier { cancelToken: cancelToken, onSendProgress: onSendProgress, onReceiveProgress: onReceiveProgress); + + if (!internetConnected) snackBarKey.currentState?.clearSnackBars(); internetConnected = true; - //인터넷 오류 snackBar 모두 지우기 - snackBarKey.currentState?.clearSnackBars(); return response; } on DioException catch (e) { debugPrint("Error occured in fetching : $toUrl"); @@ -350,10 +350,9 @@ class UserProvider with ChangeNotifier { options: options, cancelToken: cancelToken, ); + if (!internetConnected) snackBarKey.currentState?.clearSnackBars(); internetConnected = true; - //인터넷 오류 snackBar 모두 지우기 - snackBarKey.currentState?.clearSnackBars(); return response; } on DioException catch (e) { debugPrint("Error occured in fetching : $toUrl"); From bcc596fc75061fc45a5455301412031d087b3907 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 25 Sep 2024 14:21:50 +0900 Subject: [PATCH 12/32] =?UTF-8?q?Feat:=20=EC=9E=84=EC=8B=9C=20=EC=A0=80?= =?UTF-8?q?=EC=9E=A5=20=EA=B8=B0=EB=8A=A5=20=EC=8A=A4=EB=82=B5=EB=B0=94=20?= =?UTF-8?q?=EC=98=81=EC=96=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/translations/en.json | 4 +++- assets/translations/ko.json | 4 +++- lib/pages/post_write_page.dart | 4 ++-- lib/translations/codegen_loader.g.dart | 8 ++++++-- lib/translations/locale_keys.g.dart | 2 ++ 5 files changed, 16 insertions(+), 6 deletions(-) diff --git a/assets/translations/en.json b/assets/translations/en.json index 2a945cf2..abc4ef92 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -191,7 +191,9 @@ "contentPlaceholder": "Type content here", "conditionSnackBar": "Please select a board and enter the title and content.", "noCategory": "No Topics", - "selectCategory": "Select Topic" + "selectCategory": "Select Topic", + "savedAtCache": "The post has been saved on your device.", + "restoreFromCache": "Stored draft has been restored." }, "termsAndConditionsPage": { "termsAndConditions": "Terms and Conditions", diff --git a/assets/translations/ko.json b/assets/translations/ko.json index dfbefcb1..7015c17e 100644 --- a/assets/translations/ko.json +++ b/assets/translations/ko.json @@ -191,7 +191,9 @@ "contentPlaceholder": "내용을 입력해주세요.", "conditionSnackBar": "게시판을 선택해주시고 제목, 내용을 입력해주세요.", "noCategory": "말머리 없음", - "selectCategory": "말머리를 선택하세요" + "selectCategory": "말머리를 선택하세요", + "savedAtCache": "작성 중이신 게시글을 디바이스에 저장하였습니다.", + "restoreFromCache": "임시 저장되었던 게시글을 다시 불러왔습니다." }, "termsAndConditionsPage": { "termsAndConditions": "이용약관", diff --git a/lib/pages/post_write_page.dart b/lib/pages/post_write_page.dart index b198ca18..86576982 100644 --- a/lib/pages/post_write_page.dart +++ b/lib/pages/post_write_page.dart @@ -443,7 +443,7 @@ class _PostWritePageState extends State debugPrint('get cached data attachment List : $_attachmentList'); if (mounted) { - showInfoBySnackBar(context, "임시저장되었던 게시물을 다시 불러왔습니다."); + showInfoBySnackBar(context, LocaleKeys.postWritePage_restoreFromCache.tr()); } } catch (error) { debugPrint('_getCachedContents error: $error'); @@ -670,7 +670,7 @@ class _PostWritePageState extends State Navigator.of(context) ..pop() //dialog pop ..pop(); //PostWritePage pop - showInfoBySnackBar(context, "작성 중이신 게시글을 캐시에 임시 저장하였습니다."); + showInfoBySnackBar(context, LocaleKeys.postWritePage_savedAtCache.tr()); } } catch (error) { debugPrint("pop error: $error"); diff --git a/lib/translations/codegen_loader.g.dart b/lib/translations/codegen_loader.g.dart index ab6450bd..db1958c3 100644 --- a/lib/translations/codegen_loader.g.dart +++ b/lib/translations/codegen_loader.g.dart @@ -207,7 +207,9 @@ class CodegenLoader extends AssetLoader{ "contentPlaceholder": "Type content here", "conditionSnackBar": "Please select a board and enter the title and content.", "noCategory": "No Topics", - "selectCategory": "Select Topic" + "selectCategory": "Select Topic", + "savedAtCache": "The post has been saved on your device.", + "restoreFromCache": "Stored draft has been restored." }, "termsAndConditionsPage": { "termsAndConditions": "Terms and Conditions", @@ -411,7 +413,9 @@ static const Map ko = { "contentPlaceholder": "내용을 입력해주세요.", "conditionSnackBar": "게시판을 선택해주시고 제목, 내용을 입력해주세요.", "noCategory": "말머리 없음", - "selectCategory": "말머리를 선택하세요" + "selectCategory": "말머리를 선택하세요", + "savedAtCache": "작성 중이신 게시글을 디바이스에 저장하였습니다.", + "restoreFromCache": "임시 저장되었던 게시글을 다시 불러왔습니다." }, "termsAndConditionsPage": { "termsAndConditions": "이용약관", diff --git a/lib/translations/locale_keys.g.dart b/lib/translations/locale_keys.g.dart index d4190460..fd3db242 100644 --- a/lib/translations/locale_keys.g.dart +++ b/lib/translations/locale_keys.g.dart @@ -178,6 +178,8 @@ abstract class LocaleKeys { static const postWritePage_conditionSnackBar = 'postWritePage.conditionSnackBar'; static const postWritePage_noCategory = 'postWritePage.noCategory'; static const postWritePage_selectCategory = 'postWritePage.selectCategory'; + static const postWritePage_savedAtCache = 'postWritePage.savedAtCache'; + static const postWritePage_restoreFromCache = 'postWritePage.restoreFromCache'; static const postWritePage = 'postWritePage'; static const termsAndConditionsPage_termsAndConditions = 'termsAndConditionsPage.termsAndConditions'; static const termsAndConditionsPage_agree = 'termsAndConditionsPage.agree'; From 1e4dd1546a7fab83bf6f5ca8669fc8d3f9700367 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 25 Sep 2024 14:34:38 +0900 Subject: [PATCH 13/32] =?UTF-8?q?Fix(Fastfile):=20build=5Fapp=20=ED=8C=8C?= =?UTF-8?q?=EB=9D=BC=EB=AF=B8=ED=84=B0=20=EC=9B=90=EC=83=81=EB=B3=B5?= =?UTF-8?q?=EA=B5=AC=20+=20=ED=94=84=EB=A1=9C=EB=B9=84=EC=A0=B8=EB=8B=9D?= =?UTF-8?q?=ED=94=84=EB=A1=9C=ED=95=84=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ios/fastlane/Fastfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ios/fastlane/Fastfile b/ios/fastlane/Fastfile index c10952c1..5ea687df 100644 --- a/ios/fastlane/Fastfile +++ b/ios/fastlane/Fastfile @@ -85,8 +85,7 @@ platform :ios do scheme: "Runner", clean: true, export_method: "app-store", - xcargs: "-allowProvisioningUpdates", - export_xcargs: "-allowProvisioningUpdates", + allowProvisioningUpdates: true # Allow Fastlane to handle provisioning ) upload_to_testflight( skip_waiting_for_build_processing: true, From 21a8cee2abd08593487af68c6907f3a11dc4e558 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 25 Sep 2024 14:56:40 +0900 Subject: [PATCH 14/32] Update Fastfile --- ios/fastlane/Fastfile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ios/fastlane/Fastfile b/ios/fastlane/Fastfile index 5ea687df..b1e2d721 100644 --- a/ios/fastlane/Fastfile +++ b/ios/fastlane/Fastfile @@ -85,7 +85,12 @@ platform :ios do scheme: "Runner", clean: true, export_method: "app-store", - allowProvisioningUpdates: true # Allow Fastlane to handle provisioning + export_options: { + provisioningProfiles: { + "org.sparcs.new-ara-app" => "match AppStore org.sparcs.new-ara-app" + } + }, + xcargs: "-allowProvisioningUpdates" ) upload_to_testflight( skip_waiting_for_build_processing: true, From 0ee1e8a78f8c84525f3b4c3033051525c1999982 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 25 Sep 2024 15:05:18 +0900 Subject: [PATCH 15/32] Update Fastfile --- ios/fastlane/Fastfile | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/ios/fastlane/Fastfile b/ios/fastlane/Fastfile index b1e2d721..3387c3cc 100644 --- a/ios/fastlane/Fastfile +++ b/ios/fastlane/Fastfile @@ -84,13 +84,7 @@ platform :ios do workspace: "Runner.xcworkspace", scheme: "Runner", clean: true, - export_method: "app-store", - export_options: { - provisioningProfiles: { - "org.sparcs.new-ara-app" => "match AppStore org.sparcs.new-ara-app" - } - }, - xcargs: "-allowProvisioningUpdates" + export_method: "app-store" ) upload_to_testflight( skip_waiting_for_build_processing: true, From 6de77ffd8169820c7150861601a109b72626c996 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Fri, 27 Sep 2024 14:45:21 +0900 Subject: [PATCH 16/32] Feat: deploy android --- android/Gemfile.lock | 101 +++++++++++++-------------- ios/Runner.xcodeproj/project.pbxproj | 6 +- ios/Runner/Info.plist | 2 +- pubspec.yaml | 2 +- 4 files changed, 55 insertions(+), 56 deletions(-) diff --git a/android/Gemfile.lock b/android/Gemfile.lock index 39371d89..8727ea87 100644 --- a/android/Gemfile.lock +++ b/android/Gemfile.lock @@ -1,29 +1,32 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.6) + CFPropertyList (3.0.7) + base64 + nkf rexml - addressable (2.8.6) - public_suffix (>= 2.0.2, < 6.0) - artifactory (3.0.15) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + artifactory (3.0.17) atomos (0.1.3) aws-eventstream (1.3.0) - aws-partitions (1.877.0) - aws-sdk-core (3.190.1) + aws-partitions (1.980.0) + aws-sdk-core (3.209.1) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) - aws-sigv4 (~> 1.8) + aws-sigv4 (~> 1.9) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.76.0) - aws-sdk-core (~> 3, >= 3.188.0) - aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.142.0) - aws-sdk-core (~> 3, >= 3.189.0) + aws-sdk-kms (1.94.0) + aws-sdk-core (~> 3, >= 3.207.0) + aws-sigv4 (~> 1.5) + aws-sdk-s3 (1.166.0) + aws-sdk-core (~> 3, >= 3.207.0) aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.8) - aws-sigv4 (1.8.0) + aws-sigv4 (~> 1.5) + aws-sigv4 (1.10.0) aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) + base64 (0.2.0) claide (1.1.0) colored (1.2) colored2 (3.1.2) @@ -32,12 +35,11 @@ GEM declarative (0.0.20) digest-crc (0.6.5) rake (>= 12.0.0, < 14.0.0) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) + domain_name (0.6.20240107) dotenv (2.8.1) emoji_regex (3.2.3) - excon (0.109.0) - faraday (1.10.3) + excon (0.111.0) + faraday (1.10.4) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -58,22 +60,22 @@ GEM faraday-httpclient (1.0.1) faraday-multipart (1.0.4) multipart-post (~> 2) - faraday-net_http (1.0.1) + faraday-net_http (1.0.2) faraday-net_http_persistent (1.2.0) faraday-patron (1.0.0) faraday-rack (1.0.0) faraday-retry (1.0.3) - faraday_middleware (1.2.0) + faraday_middleware (1.2.1) faraday (~> 1.0) - fastimage (2.3.0) - fastlane (2.219.0) + fastimage (2.3.1) + fastlane (2.223.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.8, < 3.0.0) artifactory (~> 3.0) aws-sdk-s3 (~> 1.0) babosa (>= 1.0.3, < 2.0.0) bundler (>= 1.12.0, < 3.0.0) - colored + colored (~> 1.2) commander (~> 4.6) dotenv (>= 2.1.1, < 3.0.0) emoji_regex (>= 0.1, < 4.0) @@ -94,10 +96,10 @@ GEM mini_magick (>= 4.9.4, < 5.0.0) multipart-post (>= 2.0.0, < 3.0.0) naturally (~> 2.2) - optparse (>= 0.1.1) + optparse (>= 0.1.1, < 1.0.0) plist (>= 3.1.0, < 4.0.0) rubyzip (>= 2.0.0, < 3.0.0) - security (= 0.1.3) + security (= 0.1.5) simctl (~> 1.6.3) terminal-notifier (>= 2.0.0, < 3.0.0) terminal-table (~> 3) @@ -106,11 +108,11 @@ GEM word_wrap (~> 1.0.0) xcodeproj (>= 1.13.0, < 2.0.0) xcpretty (~> 0.3.0) - xcpretty-travis-formatter (>= 0.0.3) + xcpretty-travis-formatter (>= 0.0.3, < 2.0.0) gh_inspector (1.1.3) google-apis-androidpublisher_v3 (0.54.0) google-apis-core (>= 0.11.0, < 2.a) - google-apis-core (0.11.2) + google-apis-core (0.11.3) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.16.2, < 2.a) httpclient (>= 2.8.1, < 3.a) @@ -118,24 +120,23 @@ GEM representable (~> 3.0) retriable (>= 2.0, < 4.a) rexml - webrick google-apis-iamcredentials_v1 (0.17.0) google-apis-core (>= 0.11.0, < 2.a) google-apis-playcustomapp_v1 (0.13.0) google-apis-core (>= 0.11.0, < 2.a) - google-apis-storage_v1 (0.29.0) + google-apis-storage_v1 (0.31.0) google-apis-core (>= 0.11.0, < 2.a) - google-cloud-core (1.6.1) + google-cloud-core (1.7.1) google-cloud-env (>= 1.0, < 3.a) google-cloud-errors (~> 1.0) google-cloud-env (1.6.0) faraday (>= 0.17.3, < 3.0) - google-cloud-errors (1.3.1) - google-cloud-storage (1.45.0) + google-cloud-errors (1.4.0) + google-cloud-storage (1.47.0) addressable (~> 2.8) digest-crc (~> 0.4) google-apis-iamcredentials_v1 (~> 0.1) - google-apis-storage_v1 (~> 0.29.0) + google-apis-storage_v1 (~> 0.31.0) google-cloud-core (~> 1.6) googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) @@ -146,34 +147,36 @@ GEM os (>= 0.9, < 2.0) signet (>= 0.16, < 2.a) highline (2.0.3) - http-cookie (1.0.5) + http-cookie (1.0.7) domain_name (~> 0.5) httpclient (2.8.3) jmespath (1.6.2) - json (2.7.1) - jwt (2.7.1) - mini_magick (4.12.0) + json (2.7.2) + jwt (2.9.1) + base64 + mini_magick (4.13.2) mini_mime (1.1.5) multi_json (1.15.0) - multipart-post (2.3.0) + multipart-post (2.4.1) nanaimo (0.3.0) naturally (2.2.1) - optparse (0.4.0) + nkf (0.2.0) + optparse (0.5.0) os (1.1.4) plist (3.7.1) - public_suffix (5.0.4) - rake (13.1.0) + public_suffix (6.0.1) + rake (13.2.1) representable (3.2.0) declarative (< 0.1.0) trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) retriable (3.1.2) - rexml (3.2.6) + rexml (3.3.7) rouge (2.0.7) ruby2_keywords (0.0.5) rubyzip (2.3.2) - security (0.1.3) - signet (0.18.0) + security (0.1.5) + signet (0.19.0) addressable (~> 2.8) faraday (>= 0.17.5, < 3.a) jwt (>= 1.5, < 3.0) @@ -190,19 +193,15 @@ GEM tty-spinner (0.9.3) tty-cursor (~> 0.7) uber (0.1.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.9.1) - unicode-display_width (2.5.0) - webrick (1.8.1) + unicode-display_width (2.6.0) word_wrap (1.0.0) - xcodeproj (1.23.0) + xcodeproj (1.25.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) nanaimo (~> 0.3.0) - rexml (~> 3.2.4) + rexml (>= 3.3.2, < 4.0) xcpretty (0.3.0) rouge (~> 2.0.7) xcpretty-travis-formatter (1.0.1) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index bf5e245e..75190517 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -357,7 +357,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 240818.2305; + CURRENT_PROJECT_VERSION = 240926.2335; DEVELOPMENT_TEAM = N5V8W52U3U; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -486,7 +486,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 240818.2305; + CURRENT_PROJECT_VERSION = 240926.2335; DEVELOPMENT_TEAM = N5V8W52U3U; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -512,7 +512,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 240818.2305; + CURRENT_PROJECT_VERSION = 240926.2335; DEVELOPMENT_TEAM = N5V8W52U3U; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 047274d6..39becc8f 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -25,7 +25,7 @@ CFBundleSignature ???? CFBundleVersion - 240818.2305 + 240926.2335 LSApplicationQueriesSchemes https diff --git a/pubspec.yaml b/pubspec.yaml index 1ae65eec..780fb87f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: new_ara_app description: A new Flutter project. publish_to: none -version: 1.2.0+108011948 +version: 1.2.0+109271434 environment: sdk: ">=2.18.0 <3.0.0" dependencies: From e447d8defe0c248ae96fa9482509dfac67f7b6d8 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Mon, 30 Sep 2024 09:08:22 +0900 Subject: [PATCH 17/32] Chore(pubspec.yaml): version update --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 780fb87f..d39a4366 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: new_ara_app description: A new Flutter project. publish_to: none -version: 1.2.0+109271434 +version: 1.2.0+109300859 environment: sdk: ">=2.18.0 <3.0.0" dependencies: From ea9eb9706d8ecaade156e4d8d8b07a4b2a33cc48 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 2 Oct 2024 00:08:09 +0900 Subject: [PATCH 18/32] =?UTF-8?q?Refactor(post=5Fwrite=5Fpage.dart):=20flu?= =?UTF-8?q?tter=5Fquill=20=EC=BD=94=EB=93=9C=20=EC=97=85=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .fvm/fvm_config.json | 3 - lib/pages/notification_page.dart | 1 - lib/pages/post_write_page.dart | 103 ++-- pubspec.lock | 801 +++++++++++++++++++------------ pubspec.yaml | 18 +- 5 files changed, 551 insertions(+), 375 deletions(-) delete mode 100644 .fvm/fvm_config.json diff --git a/.fvm/fvm_config.json b/.fvm/fvm_config.json deleted file mode 100644 index 1726d93d..00000000 --- a/.fvm/fvm_config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "flutterSdkVersion": "3.13.9" -} \ No newline at end of file diff --git a/lib/pages/notification_page.dart b/lib/pages/notification_page.dart index fc42e53c..d60dcd45 100644 --- a/lib/pages/notification_page.dart +++ b/lib/pages/notification_page.dart @@ -6,7 +6,6 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:new_ara_app/translations/locale_keys.g.dart'; import 'package:provider/provider.dart'; -import 'package:new_ara_app/constants/url_info.dart'; import 'package:dio/dio.dart'; import 'package:new_ara_app/widgets/loading_indicator.dart'; import 'package:new_ara_app/constants/colors_info.dart'; diff --git a/lib/pages/post_write_page.dart b/lib/pages/post_write_page.dart index 86576982..366171b3 100644 --- a/lib/pages/post_write_page.dart +++ b/lib/pages/post_write_page.dart @@ -6,7 +6,6 @@ import 'package:dio/dio.dart'; import 'package:file_icon/file_icon.dart'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/cupertino.dart'; -import 'package:new_ara_app/constants/url_info.dart'; import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -32,6 +31,7 @@ import 'package:path_provider/path_provider.dart'; import 'package:html/parser.dart' show parse; import 'package:html/dom.dart' as html; import 'package:flutter_quill/flutter_quill.dart' as quill; +import 'package:flutter_quill/quill_delta.dart' as quill_delta; import 'package:flutter_quill_extensions/flutter_quill_extensions.dart'; import 'package:html2md/html2md.dart' as html2md; import 'package:markdown_quill/markdown_quill.dart'; @@ -419,7 +419,7 @@ class _PostWritePageState extends State setState(() { _quillController.document = (cachedData['content'] != null) ? quill.Document.fromDelta(_htmlToQuillDelta(cachedData['content'])) - : ''; + : quill.Document.fromDelta(_htmlToQuillDelta('')); // TODO: 비어있는 document 만드는 방법 _isFileMenuBarSelected = _attachmentList.isNotEmpty; //TODO: 명명 규칙 다름 @@ -1460,32 +1460,33 @@ class _PostWritePageState extends State Expanded( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 20), - child: quill.QuillToolbar.basic( + child: quill.QuillToolbar.simple( controller: _quillController, - multiRowsDisplay: true, - showUndo: false, - showRedo: false, - showColorButton: false, - showBackgroundColorButton: false, - showFontFamily: false, - showFontSize: false, - showDividers: false, - showListCheck: false, - showSearchButton: false, - showSubscript: false, - showSuperscript: false, - - toolbarIconAlignment: WrapAlignment.start, - toolbarIconCrossAlignment: WrapCrossAlignment.start, - customButtons: [ - quill.QuillCustomButton( - icon: Icons.camera_alt, - onTap: () async { + configurations: quill.QuillSimpleToolbarConfigurations( + multiRowsDisplay: true, + showUndo: false, + showRedo: false, + showColorButton: false, + showBackgroundColorButton: false, + showFontFamily: false, + showFontSize: false, + showDividers: false, + showListCheck: false, + showSearchButton: false, + showSubscript: false, + showSuperscript: false, + toolbarIconAlignment: WrapAlignment.start, + toolbarIconCrossAlignment: WrapCrossAlignment.start, + customButtons: [ + quill.QuillToolbarCustomButtonOptions( + icon: const Icon(Icons.camera_alt), + onPressed: () async { await _pickImage(); _onTextChanged(); }, - ), - ], + ), + ], + ), // embedButtons: FlutterQuillEmbeds.buttons(), ), ), @@ -1505,6 +1506,7 @@ class _PostWritePageState extends State h1h2h3h4h5h6CommonStyle.copyWith( fontSize: 32, ), + quill.HorizontalSpacing.zero, // Vertical spacing around a text block. const quill.VerticalSpacing(2, 0), // Vertical spacing for individual lines within a text block. @@ -1515,6 +1517,7 @@ class _PostWritePageState extends State h1h2h3h4h5h6CommonStyle.copyWith( fontSize: 28, ), + quill.HorizontalSpacing.zero, const quill.VerticalSpacing(2, 0), const quill.VerticalSpacing(0, 0), null, @@ -1523,19 +1526,21 @@ class _PostWritePageState extends State h1h2h3h4h5h6CommonStyle.copyWith( fontSize: 24, ), + quill.HorizontalSpacing.zero, const quill.VerticalSpacing(2, 0), const quill.VerticalSpacing(0, 0), null, ), - paragraph: quill.DefaultTextBlockStyle( - const TextStyle( + paragraph: const quill.DefaultTextBlockStyle( + TextStyle( color: Color(0xFF4a4a4a), fontWeight: FontWeight.w500, height: 1.5, fontSize: 16, ), - const quill.VerticalSpacing(2, 0), - const quill.VerticalSpacing(0, 0), + quill.HorizontalSpacing.zero, + quill.VerticalSpacing(2, 0), + quill.VerticalSpacing(0, 0), null, ), @@ -1559,29 +1564,31 @@ class _PostWritePageState extends State radius: const Radius.circular(0), ), - placeHolder: quill.DefaultTextBlockStyle( - const TextStyle( + placeHolder: const quill.DefaultTextBlockStyle( + TextStyle( color: Color(0xffBBBBBB), fontWeight: FontWeight.w500, height: 1.5, fontSize: 16, ), - const quill.VerticalSpacing(2, 0), - const quill.VerticalSpacing(0, 0), + quill.HorizontalSpacing.zero, + quill.VerticalSpacing(2, 0), + quill.VerticalSpacing(0, 0), null, ), //
 태그
-      code: quill.DefaultTextBlockStyle(
-        const TextStyle(
+      code: const quill.DefaultTextBlockStyle(
+        TextStyle(
           //  backgroundColor: Colors.grey,
           color: Color(0xFF4a4a4a),
           fontWeight: FontWeight.w400,
           height: 1.5,
           fontSize: 16,
         ),
-        const quill.VerticalSpacing(2, 0),
-        const quill.VerticalSpacing(0, 0),
-        const BoxDecoration(
+        quill.HorizontalSpacing.zero,
+        quill.VerticalSpacing(2, 0),
+        quill.VerticalSpacing(0, 0),
+        BoxDecoration(
           color: Color(0xfff5f5f5),
         ),
       ),
@@ -1596,17 +1603,17 @@ class _PostWritePageState extends State
       child: quill.QuillEditor(
         focusNode: _editorFocusNode,
         controller: _quillController,
-        placeholder: LocaleKeys.postWritePage_contentPlaceholder.tr(),
-        embedBuilders: FlutterQuillEmbeds.builders(),
-        readOnly: false, // The editor is editable
-
+        configurations: quill.QuillEditorConfigurations(
+          placeholder: LocaleKeys.postWritePage_contentPlaceholder.tr(),
+          embedBuilders: FlutterQuillEmbeds.defaultEditorBuilders(),
+          // readOnly: false,
+          padding: EdgeInsets.zero,
+          scrollable: true,
+          autoFocus: false,
+          expands: false,
+          customStyles: editorStyles()
+        ),
         scrollController: _editorScrollController,
-
-        padding: EdgeInsets.zero,
-        scrollable: true,
-        autoFocus: false,
-        expands: false,
-        customStyles: editorStyles(),
       ),
     );
   }
@@ -1624,7 +1631,7 @@ class _PostWritePageState extends State
     }
   }
 
-  quill.Delta _htmlToQuillDelta(String html) {
+  quill_delta.Delta _htmlToQuillDelta(String html) {
     //TODO: quill에서 
지원 안됨 //TODO: phase3에서 MarkdownToDelta 이 strikethrough 지원 안됨 html = html diff --git a/pubspec.lock b/pubspec.lock index 1cd08684..e6668939 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,42 +5,47 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a + sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 url: "https://pub.dev" source: hosted - version: "61.0.0" + version: "72.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.2" analyzer: dependency: transitive description: name: analyzer - sha256: ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562 + sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 url: "https://pub.dev" source: hosted - version: "5.13.0" + version: "6.7.0" ansicolor: dependency: transitive description: name: ansicolor - sha256: "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880" + sha256: "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f" url: "https://pub.dev" source: hosted - version: "2.0.2" + version: "2.0.3" archive: dependency: transitive description: name: archive - sha256: "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d" + sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d url: "https://pub.dev" source: hosted - version: "3.4.10" + version: "3.6.1" args: dependency: transitive description: name: args - sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.5.0" async: dependency: transitive description: @@ -85,10 +90,10 @@ packages: dependency: transitive description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.17.2" + version: "1.18.0" convert: dependency: transitive description: @@ -101,26 +106,26 @@ packages: dependency: transitive description: name: coverage - sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097" + sha256: c1fb2dce3c0085f39dc72668e85f8e0210ec7de05345821ff58530567df345a5 url: "https://pub.dev" source: hosted - version: "1.6.3" + version: "1.9.2" cross_file: dependency: transitive description: name: cross_file - sha256: fd832b5384d0d6da4f6df60b854d33accaaeb63aa9e10e736a87381f08dee2cb + sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" url: "https://pub.dev" source: hosted - version: "0.3.3+5" + version: "0.3.4+2" crypto: dependency: transitive description: name: crypto - sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" csslib: dependency: transitive description: @@ -133,10 +138,18 @@ packages: dependency: "direct main" description: name: cupertino_icons - sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "1.0.8" + dart_quill_delta: + dependency: transitive + description: + name: dart_quill_delta + sha256: a3552d7dfe4904ab344ccc7bf6453fd2d966b7ef64a945e364ae18dd486b9569 + url: "https://pub.dev" + source: hosted + version: "10.8.1" delta_to_html: dependency: "direct main" description: @@ -149,18 +162,18 @@ packages: dependency: transitive description: name: device_info_plus - sha256: "86add5ef97215562d2e090535b0a16f197902b10c369c558a100e74ea06e8659" + sha256: a7fd703482b391a87d60b6061d04dfdeab07826b96f9abd8f5ed98068acc0074 url: "https://pub.dev" source: hosted - version: "9.0.3" + version: "10.1.2" device_info_plus_platform_interface: dependency: transitive description: name: device_info_plus_platform_interface - sha256: d3b01d5868b50ae571cd1dc6e502fc94d956b665756180f7b16ead09e836fd64 + sha256: "282d3cf731045a2feb66abfe61bbc40870ae50a3ed10a4d3d217556c35c8c2ba" url: "https://pub.dev" source: hosted - version: "7.0.0" + version: "7.0.1" diff_match_patch: dependency: transitive description: @@ -173,18 +186,26 @@ packages: dependency: "direct main" description: name: dio - sha256: "417e2a6f9d83ab396ec38ff4ea5da6c254da71e4db765ad737a42af6930140b7" + sha256: "5598aa796bbf4699afd5c67c0f5f6e2ed542afc956884b9cd58c306966efc260" url: "https://pub.dev" source: hosted - version: "5.3.3" + version: "5.7.0" + dio_web_adapter: + dependency: transitive + description: + name: dio_web_adapter + sha256: "33259a9276d6cea88774a0000cfae0d861003497755969c92faa223108620dc8" + url: "https://pub.dev" + source: hosted + version: "2.0.0" easy_localization: dependency: "direct main" description: name: easy_localization - sha256: de63e3b422adfc97f256cbb3f8cf12739b6a4993d390f3cadb3f51837afaefe5 + sha256: fa59bcdbbb911a764aa6acf96bbb6fa7a5cf8234354fc45ec1a43a0349ef0201 url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.7" easy_logger: dependency: transitive description: @@ -213,18 +234,18 @@ packages: dependency: transitive description: name: ffi - sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.3" file: dependency: transitive description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "7.0.0" file_icon: dependency: "direct main" description: @@ -237,10 +258,10 @@ packages: dependency: "direct main" description: name: file_picker - sha256: be325344c1f3070354a1d84a231a1ba75ea85d413774ec4bdf444c023342e030 + sha256: "167bb619cdddaa10ef2907609feb8a79c16dfa479d3afaf960f8e223f754bf12" url: "https://pub.dev" source: hosted - version: "5.5.0" + version: "8.1.2" file_selector_linux: dependency: transitive description: @@ -253,42 +274,50 @@ packages: dependency: transitive description: name: file_selector_macos - sha256: b15c3da8bd4908b9918111fa486903f5808e388b8d1c559949f584725a6594d6 + sha256: cb284e267f8e2a45a904b5c094d2ba51d0aabfc20b1538ab786d9ef7dc2bf75c url: "https://pub.dev" source: hosted - version: "0.9.3+3" + version: "0.9.4+1" file_selector_platform_interface: dependency: transitive description: name: file_selector_platform_interface - sha256: "0aa47a725c346825a2bd396343ce63ac00bda6eff2fbc43eabe99737dede8262" + sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b url: "https://pub.dev" source: hosted - version: "2.6.1" + version: "2.6.2" file_selector_windows: dependency: transitive description: name: file_selector_windows - sha256: d3547240c20cabf205c7c7f01a50ecdbc413755814d6677f3cb366f04abcead0 + sha256: "8f5d2f6590d51ecd9179ba39c64f722edc15226cc93dcc8698466ad36a4a85a4" url: "https://pub.dev" source: hosted - version: "0.9.3+1" + version: "0.9.3+3" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + url: "https://pub.dev" + source: hosted + version: "1.1.0" flex_color_picker: dependency: transitive description: name: flex_color_picker - sha256: f37476ab3e80dcaca94e428e159944d465dd16312fda9ff41e07e86f04bfa51c + sha256: "12dc855ae8ef5491f529b1fc52c655f06dcdf4114f1f7fdecafa41eec2ec8d79" url: "https://pub.dev" source: hosted - version: "3.3.0" + version: "3.6.0" flex_seed_scheme: dependency: transitive description: name: flex_seed_scheme - sha256: "29c12aba221eb8a368a119685371381f8035011d18de5ba277ad11d7dfb8657f" + sha256: "7639d2c86268eff84a909026eb169f008064af0fb3696a651b24b0fa24a40334" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "3.4.1" flutter: dependency: "direct main" description: flutter @@ -298,10 +327,10 @@ packages: dependency: transitive description: name: flutter_colorpicker - sha256: "458a6ed8ea480eb16ff892aedb4b7092b2804affd7e046591fb03127e8d8ef8b" + sha256: "969de5f6f9e2a570ac660fb7b501551451ea2a1ab9e2097e89475f60e07816ea" url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.1.0" flutter_dotenv: dependency: "direct main" description: @@ -319,18 +348,74 @@ packages: dependency: transitive description: name: flutter_inappwebview - sha256: d198297060d116b94048301ee6749cd2e7d03c1f2689783f52d210a6b7aba350 + sha256: "274edbb07196944e316722d9f6f641c77d0e71261200869887e10f59614c0458" + url: "https://pub.dev" + source: hosted + version: "6.1.3" + flutter_inappwebview_android: + dependency: transitive + description: + name: flutter_inappwebview_android + sha256: "9bb3cf50329b32dabc9940d0498541be29755ae7fdf2446652affcc53028b754" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_inappwebview_internal_annotations: + dependency: transitive + description: + name: flutter_inappwebview_internal_annotations + sha256: "5f80fd30e208ddded7dbbcd0d569e7995f9f63d45ea3f548d8dd4c0b473fb4c8" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter_inappwebview_ios: + dependency: transitive + description: + name: flutter_inappwebview_ios + sha256: f6f88d464b38f2fc1c5f2ae74024498115eb1470715bd8b40f902dd4ac99ccc8 + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter_inappwebview_macos: + dependency: transitive + description: + name: flutter_inappwebview_macos + sha256: "68e0c3785d8d789710cda7d7efe6effa337c91bf300dd28af7efc2d358fa1a98" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter_inappwebview_platform_interface: + dependency: transitive + description: + name: flutter_inappwebview_platform_interface + sha256: "97b4ab116d949ede20c90c7e3d15d24afaf1b706cc0af96b060770293cd6c49d" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + flutter_inappwebview_web: + dependency: transitive + description: + name: flutter_inappwebview_web + sha256: f7f97b6faa39416e4e86da1184edd4de6c27b271d036f0838ea3ff9a250a1de2 + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter_inappwebview_windows: + dependency: transitive + description: + name: flutter_inappwebview_windows + sha256: "1cb428210f7486e4decb52262b243505023d0c57609c6ff5cee772e63b51f443" url: "https://pub.dev" source: hosted - version: "5.8.0" + version: "0.4.1" flutter_keyboard_visibility: dependency: "direct main" description: name: flutter_keyboard_visibility - sha256: "4983655c26ab5b959252ee204c2fffa4afeb4413cd030455194ec0caa3b8e7cb" + sha256: "98664be7be0e3ffca00de50f7f6a287ab62c763fc8c762e0a21584584a3ff4f8" url: "https://pub.dev" source: hosted - version: "5.4.1" + version: "6.0.0" flutter_keyboard_visibility_linux: dependency: transitive description: @@ -355,6 +440,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" + flutter_keyboard_visibility_temp_fork: + dependency: transitive + description: + name: flutter_keyboard_visibility_temp_fork + sha256: e342172aaa6173a661e822c85a005f8c5d0a04a1d263e00cb9f9155adab9cb7c + url: "https://pub.dev" + source: hosted + version: "0.1.1" flutter_keyboard_visibility_web: dependency: transitive description: @@ -375,111 +468,111 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7 + sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "4.0.0" flutter_localizations: dependency: transitive description: flutter source: sdk version: "0.0.0" - flutter_math_fork: - dependency: transitive - description: - name: flutter_math_fork - sha256: a143a3a89131b578043ecbdb5e759c1033a1b3e9174f5cd1b979d93f4a7fb41c - url: "https://pub.dev" - source: hosted - version: "0.7.1" flutter_native_splash: dependency: "direct main" description: name: flutter_native_splash - sha256: "17d9671396fb8ec45ad10f4a975eb8a0f70bedf0fdaf0720b31ea9de6da8c4da" + sha256: aa06fec78de2190f3db4319dd60fdc8d12b2626e93ef9828633928c2dcaea840 url: "https://pub.dev" source: hosted - version: "2.3.7" + version: "2.4.1" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: f185ac890306b5779ecbd611f52502d8d4d63d27703ef73161ca0407e815f02c + sha256: "9ee02950848f61c4129af3d6ec84a1cfc0e47931abc746b03e7a3bc3e8ff6eda" url: "https://pub.dev" source: hosted - version: "2.0.16" + version: "2.0.22" flutter_quill: dependency: "direct main" description: name: flutter_quill - sha256: "6350f7b93bd5dc30d12f8235c32f66727c4844f328a0e91869e36ecda4fdb2fa" + sha256: "27afdee8ea3b7bf5cb3b36f4c195468b24bcaad80036d4daa423bf948e8b5a97" url: "https://pub.dev" source: hosted - version: "7.4.7" + version: "10.8.1" + flutter_quill_delta_from_html: + dependency: transitive + description: + name: flutter_quill_delta_from_html + sha256: fd6e18af21d35277524302d95e24cd3ebedc59b976ddb4605aaf775d38892d40 + url: "https://pub.dev" + source: hosted + version: "1.4.1" flutter_quill_extensions: dependency: "direct main" description: name: flutter_quill_extensions - sha256: "8ad561415a00db5555e1b4dd353abdc8a815f945a0a61faac3c187138b616343" + sha256: b397f786f122a3ce7a58ba1288e7c24656298709315719deeec22fa4aec7bf8b url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "10.8.1" flutter_secure_storage: dependency: "direct main" description: name: flutter_secure_storage - sha256: f2afec1f1762c040a349ea2a588e32f442da5d0db3494a52a929a97c9e550bc5 + sha256: "165164745e6afb5c0e3e3fcc72a012fb9e58496fb26ffb92cf22e16a821e85d0" url: "https://pub.dev" source: hosted - version: "7.0.1" + version: "9.2.2" flutter_secure_storage_linux: dependency: transitive description: name: flutter_secure_storage_linux - sha256: "3d5032e314774ee0e1a7d0a9f5e2793486f0dff2dd9ef5a23f4e3fb2a0ae6a9e" + sha256: "4d91bfc23047422cbcd73ac684bc169859ee766482517c22172c86596bf1464b" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.1" flutter_secure_storage_macos: dependency: transitive description: name: flutter_secure_storage_macos - sha256: ff0768a6700ea1d9620e03518e2e25eac86a8bd07ca3556e9617bfa5ace4bd00 + sha256: "1693ab11121a5f925bbea0be725abfcfbbcf36c1e29e571f84a0c0f436147a81" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.1.2" flutter_secure_storage_platform_interface: dependency: transitive description: name: flutter_secure_storage_platform_interface - sha256: "0d4d3a5dd4db28c96ae414d7ba3b8422fd735a8255642774803b2532c9a61d7e" + sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8 url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "1.1.2" flutter_secure_storage_web: dependency: transitive description: name: flutter_secure_storage_web - sha256: "30f84f102df9dcdaa2241866a958c2ec976902ebdaa8883fbfe525f1f2f3cf20" + sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9 url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.2.1" flutter_secure_storage_windows: dependency: transitive description: name: flutter_secure_storage_windows - sha256: ca89c8059cf439985aa83c59619b3674c7ef6cc2e86943d169a7369d6a69cab5 + sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709 url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "3.1.2" flutter_svg: dependency: "direct main" description: name: flutter_svg - sha256: "8c5d68a82add3ca76d792f058b186a0599414f279f00ece4830b9b231b570338" + sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.0.10+1" flutter_test: dependency: "direct dev" description: flutter @@ -490,14 +583,22 @@ packages: description: flutter source: sdk version: "0.0.0" + freezed_annotation: + dependency: transitive + description: + name: freezed_annotation + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 + url: "https://pub.dev" + source: hosted + version: "2.4.4" frontend_server_client: dependency: transitive description: name: frontend_server_client - sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "4.0.0" fuchsia_remote_debug_protocol: dependency: transitive description: flutter @@ -507,26 +608,26 @@ packages: dependency: transitive description: name: gal - sha256: "2132ff8cb3ba8ce9cbcacbf63ceb86bfe354ebe69997b4e14b3ef7bdd21af82e" + sha256: "54c9b72528efce7c66234f3b6dd01cb0304fd8af8196de15571d7bdddb940977" url: "https://pub.dev" source: hosted - version: "2.1.1" - glob: + version: "2.3.0" + gal_linux: dependency: transitive description: - name: glob - sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + name: gal_linux + sha256: "0040d61843134cc5a93e4597080a86f2ba073217957e28b2a684b4d8b050873c" url: "https://pub.dev" source: hosted - version: "2.1.2" - holding_gesture: + version: "0.1.2" + glob: dependency: transitive description: - name: holding_gesture - sha256: beb26bb731d7d67595c4895b42fa7962c209cecee8def42b665c495648d4620f + name: glob + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "2.1.2" html: dependency: "direct main" description: @@ -539,26 +640,26 @@ packages: dependency: "direct main" description: name: html2md - sha256: "6f50cec926b0a09816aadb66a59e4cda45c91fd00551e5a8298870069729b508" + sha256: "465cf8ffa1b510fe0e97941579bf5b22e2d575f2cecb500a9c0254efe33a8036" url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" html_editor_enhanced: dependency: "direct main" description: name: html_editor_enhanced - sha256: c2a0d0a50970fe4aa565e79e57081c8a69c3b2e94162e8f1df3e1b750c7aeb5e + sha256: "5ae6cd965cca77f7186efccc47ca353799e831b31bd71438687a56131bbcd3a5" url: "https://pub.dev" source: hosted - version: "2.5.1" + version: "2.6.0" http: dependency: "direct main" description: name: http - sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525" + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.2" http_multi_server: dependency: transitive description: @@ -575,54 +676,46 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.2" - i18n_extension: - dependency: transitive - description: - name: i18n_extension - sha256: db45cd88cf3114f5b9368d975aebebe4ac37fa634fbc5643634289cdfd4d3631 - url: "https://pub.dev" - source: hosted - version: "9.0.2" image: dependency: transitive description: name: image - sha256: "4c68bfd5ae83e700b5204c1e74451e7bf3cf750e6843c6e158289cf56bda018e" + sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8" url: "https://pub.dev" source: hosted - version: "4.1.7" + version: "4.2.0" image_picker: dependency: "direct main" description: name: image_picker - sha256: "7d7f2768df2a8b0a3cefa5ef4f84636121987d403130e70b17ef7e2cf650ba84" + sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.1.2" image_picker_android: dependency: transitive description: name: image_picker_android - sha256: "0c7b83bbe2980c8a8e36e974f055e11e51675784e13a4762889feed0f3937ff2" + sha256: c0a6763d50b354793d0192afd0a12560b823147d3ded7c6b77daf658fa05cc85 url: "https://pub.dev" source: hosted - version: "0.8.8+1" + version: "0.8.12+13" image_picker_for_web: dependency: transitive description: name: image_picker_for_web - sha256: "50bc9ae6a77eea3a8b11af5eb6c661eeb858fdd2f734c2a4fd17086922347ef7" + sha256: "65d94623e15372c5c51bebbcb820848d7bcb323836e12dfdba60b5d3a8b39e50" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.5" image_picker_ios: dependency: transitive description: name: image_picker_ios - sha256: c5538cacefacac733c724be7484377923b476216ad1ead35a0d2eadcdc0fc497 + sha256: "6703696ad49f5c3c8356d576d7ace84d1faf459afb07accbb0fae780753ff447" url: "https://pub.dev" source: hosted - version: "0.8.8+2" + version: "0.8.12" image_picker_linux: dependency: transitive description: @@ -643,10 +736,10 @@ packages: dependency: transitive description: name: image_picker_platform_interface - sha256: ed9b00e63977c93b0d2d2b343685bed9c324534ba5abafbb3dfbd6a780b1b514 + sha256: "9ec26d410ff46f483c5519c29c02ef0e02e13a543f882b152d4bfd2f06802f80" url: "https://pub.dev" source: hosted - version: "2.9.1" + version: "2.10.0" image_picker_windows: dependency: transitive description: @@ -667,10 +760,10 @@ packages: dependency: transitive description: name: intl - sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf url: "https://pub.dev" source: hosted - version: "0.18.1" + version: "0.19.0" io: dependency: transitive description: @@ -679,6 +772,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.4" + irondash_engine_context: + dependency: transitive + description: + name: irondash_engine_context + sha256: cd7b769db11a2b5243b037c8a9b1ecaef02e1ae27a2d909ffa78c1dad747bb10 + url: "https://pub.dev" + source: hosted + version: "0.5.4" + irondash_message_channel: + dependency: transitive + description: + name: irondash_message_channel + sha256: b4101669776509c76133b8917ab8cfc704d3ad92a8c450b92934dd8884a2f060 + url: "https://pub.dev" + source: hosted + version: "0.7.0" js: dependency: transitive description: @@ -687,14 +796,46 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.7" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + url: "https://pub.dev" + source: hosted + version: "10.0.5" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + url: "https://pub.dev" + source: hosted + version: "3.0.5" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" lints: dependency: transitive description: name: lints - sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 + sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "4.0.0" logging: dependency: transitive description: @@ -703,70 +844,62 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + macros: + dependency: transitive + description: + name: macros + sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + url: "https://pub.dev" + source: hosted + version: "0.1.2-main.4" markdown: dependency: "direct main" description: name: markdown - sha256: acf35edccc0463a9d7384e437c015a3535772e09714cf60e07eeef3a15870dcd + sha256: ef2a1298144e3f985cc736b22e0ccdaf188b5b3970648f2d9dc13efd1d9df051 url: "https://pub.dev" source: hosted - version: "7.1.1" + version: "7.2.2" markdown_quill: dependency: "direct main" description: name: markdown_quill - sha256: "1d9d75d160e50304ab3270f36bd257536a2233228b92992d4a30a3ee2b43ff68" + sha256: "91fbe782bd93c26949d21b9a1c41f84ced0736f87fcf209e80d796e9503f6ad9" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "4.1.0" matcher: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" - url: "https://pub.dev" - source: hosted - version: "0.5.0" - math_expressions: - dependency: transitive - description: - name: math_expressions - sha256: "3576593617c3870d75728a751f6ec6e606706d44e363f088ac394b5a28a98064" - url: "https://pub.dev" - source: hosted - version: "2.4.0" - math_keyboard: - dependency: transitive - description: - name: math_keyboard - sha256: "4f5d4eb4b7f003715e2ae7d1f58f5f1fddd9dd746d1f1bbc27f1c967e10124d4" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.2.1" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.15.0" mime: dependency: "direct main" description: name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.6" nested: dependency: transitive description: @@ -799,22 +932,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.0" - pasteboard: - dependency: transitive - description: - name: pasteboard - sha256: "1c8b6a8b3f1d12e55d4e9404433cda1b4abe66db6b17bc2d2fb5965772c04674" - url: "https://pub.dev" - source: hosted - version: "0.2.0" path: dependency: "direct main" description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" path_parsing: dependency: transitive description: @@ -827,26 +952,26 @@ packages: dependency: "direct main" description: name: path_provider - sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa + sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.4" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: "6b8b19bd80da4f11ce91b2d1fb931f3006911477cec227cce23d3253d80df3f1" + sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.2.10" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.0" path_provider_linux: dependency: transitive description: @@ -859,114 +984,138 @@ packages: dependency: transitive description: name: path_provider_platform_interface - sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: name: path_provider_windows - sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 url: "https://pub.dev" source: hosted - version: "2.2.1" - pedantic: - dependency: transitive - description: - name: pedantic - sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602" - url: "https://pub.dev" - source: hosted - version: "1.11.1" + version: "2.3.0" permission_handler: dependency: "direct main" description: name: permission_handler - sha256: bc56bfe9d3f44c3c612d8d393bd9b174eb796d706759f9b495ac254e4294baa5 + sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb" url: "https://pub.dev" source: hosted - version: "10.4.5" + version: "11.3.1" permission_handler_android: dependency: transitive description: name: permission_handler_android - sha256: "59c6322171c29df93a22d150ad95f3aa19ed86542eaec409ab2691b8f35f9a47" + sha256: "76e4ab092c1b240d31177bb64d2b0bea43f43d0e23541ec866151b9f7b2490fa" url: "https://pub.dev" source: hosted - version: "10.3.6" + version: "12.0.12" permission_handler_apple: dependency: transitive description: name: permission_handler_apple - sha256: "99e220bce3f8877c78e4ace901082fb29fa1b4ebde529ad0932d8d664b34f3f5" + sha256: e6f6d73b12438ef13e648c4ae56bd106ec60d17e90a59c4545db6781229082a0 + url: "https://pub.dev" + source: hosted + version: "9.4.5" + permission_handler_html: + dependency: transitive + description: + name: permission_handler_html + sha256: af26edbbb1f2674af65a8f4b56e1a6f526156bc273d0e65dd8075fab51c78851 url: "https://pub.dev" source: hosted - version: "9.1.4" + version: "0.1.3+2" permission_handler_platform_interface: dependency: transitive description: name: permission_handler_platform_interface - sha256: f2343e9fa9c22ae4fd92d4732755bfe452214e7189afcc097380950cf567b4b2 + sha256: e9c8eadee926c4532d0305dff94b85bf961f16759c3af791486613152af4b4f9 url: "https://pub.dev" source: hosted - version: "3.11.5" + version: "4.2.3" permission_handler_windows: dependency: transitive description: name: permission_handler_windows - sha256: cc074aace208760f1eee6aa4fae766b45d947df85bc831cde77009cdb4720098 + sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e" url: "https://pub.dev" source: hosted - version: "0.1.3" + version: "0.2.1" petitparser: dependency: transitive description: name: petitparser - sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "6.0.2" photo_view: dependency: transitive description: name: photo_view - sha256: "8036802a00bae2a78fc197af8a158e3e2f7b500561ed23b4c458107685e645bb" + sha256: "1fc3d970a91295fbd1364296575f854c9863f225505c28c46e0a03e48960c75e" url: "https://pub.dev" source: hosted - version: "0.14.0" + version: "0.15.0" + pixel_snap: + dependency: transitive + description: + name: pixel_snap + sha256: "677410ea37b07cd37ecb6d5e6c0d8d7615a7cf3bd92ba406fd1ac57e937d1fb0" + url: "https://pub.dev" + source: hosted + version: "0.1.5" platform: dependency: transitive description: name: platform - sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.5" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.6" + version: "2.1.8" pointer_interceptor: dependency: transitive description: name: pointer_interceptor - sha256: "7626e034489820fd599380d2bb4d3f4a0a5e3529370b62bfce53ab736b91adb2" + sha256: "57210410680379aea8b1b7ed6ae0c3ad349bfd56fe845b8ea934a53344b9d523" + url: "https://pub.dev" + source: hosted + version: "0.10.1+2" + pointer_interceptor_ios: + dependency: transitive + description: + name: pointer_interceptor_ios + sha256: a6906772b3205b42c44614fcea28f818b1e5fdad73a4ca742a7bd49818d9c917 url: "https://pub.dev" source: hosted - version: "0.9.3+6" - pointycastle: + version: "0.10.1" + pointer_interceptor_platform_interface: dependency: transitive description: - name: pointycastle - sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" + name: pointer_interceptor_platform_interface + sha256: "0597b0560e14354baeb23f8375cd612e8bd4841bf8306ecb71fcd0bb78552506" url: "https://pub.dev" source: hosted - version: "3.7.4" + version: "0.10.0+1" + pointer_interceptor_web: + dependency: transitive + description: + name: pointer_interceptor_web + sha256: "7a7087782110f8c1827170660b09f8aa893e0e9a61431dbbe2ac3fc482e8c044" + url: "https://pub.dev" + source: hosted + version: "0.10.2+1" pool: dependency: transitive description: @@ -979,18 +1128,18 @@ packages: dependency: transitive description: name: process - sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + sha256: "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32" url: "https://pub.dev" source: hosted - version: "4.2.4" + version: "5.0.2" provider: dependency: "direct main" description: name: provider - sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c url: "https://pub.dev" source: hosted - version: "6.0.5" + version: "6.1.2" pub_semver: dependency: transitive description: @@ -1007,14 +1156,22 @@ packages: url: "https://pub.dev" source: hosted version: "0.1.0" + quill_native_bridge: + dependency: transitive + description: + name: quill_native_bridge + sha256: "7e2050567c5dae3516b6c399fdd2036971aa16114e19c51832523f2ec1b8faca" + url: "https://pub.dev" + source: hosted + version: "10.6.2" quiver: dependency: transitive description: name: quiver - sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47 + sha256: ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2 url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" sanitize_html: dependency: "direct main" description: @@ -1027,58 +1184,58 @@ packages: dependency: "direct main" description: name: shared_preferences - sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02" + sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.3.2" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06" + sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.3.2" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7" + sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f url: "https://pub.dev" source: hosted - version: "2.3.4" + version: "2.5.2" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - sha256: c2eb5bf57a2fe9ad6988121609e47d3e07bb3bdca5b6f8444e4cf302428a128a + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.1" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - sha256: d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.1" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf + sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.4.2" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - sha256: f763a101313bd3be87edffe0560037500967de9c394a714cd598d945517f694f + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.1" shelf: dependency: transitive description: @@ -1099,18 +1256,18 @@ packages: dependency: transitive description: name: shelf_static - sha256: a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e + sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.3" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1" + sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "2.0.0" sky_engine: dependency: transitive description: flutter @@ -1120,10 +1277,10 @@ packages: dependency: transitive description: name: source_map_stack_trace - sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae" + sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" source_maps: dependency: transitive description: @@ -1152,18 +1309,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" string_scanner: dependency: transitive description: @@ -1172,6 +1329,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + super_clipboard: + dependency: transitive + description: + name: super_clipboard + sha256: cfeb142360fac67e0da1ca339accb892eb790c6528a218a008eef1709d96ed0f + url: "https://pub.dev" + source: hosted + version: "0.8.22" + super_native_extensions: + dependency: transitive + description: + name: super_native_extensions + sha256: "6a7cfb7d212da7023b86fb99c736081e9c2cd982265d15dc5fe6381a32dbc875" + url: "https://pub.dev" + source: hosted + version: "0.8.22" sync_http: dependency: transitive description: @@ -1192,34 +1365,26 @@ packages: dependency: "direct dev" description: name: test - sha256: "13b41f318e2a5751c3169137103b60c584297353d4b1761b66029bae6411fe46" + sha256: "7ee44229615f8f642b68120165ae4c2a75fe77ae2065b1e55ae4711f6cf0899e" url: "https://pub.dev" source: hosted - version: "1.24.3" + version: "1.25.7" test_api: dependency: transitive description: name: test_api - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.6.0" + version: "0.7.2" test_core: dependency: transitive description: name: test_core - sha256: "99806e9e6d95c7b059b7a0fc08f07fc53fabe54a829497f0d9676299f1e8637e" + sha256: "55ea5a652e38a1dfb32943a7973f3681a60f872f8c3a05a14664ad54ef9c6696" url: "https://pub.dev" source: hosted - version: "0.5.3" - tuple: - dependency: transitive - description: - name: tuple - sha256: a97ce2013f240b2f3807bcbaf218765b6f301c3eff91092bcfa23a039e7dd151 - url: "https://pub.dev" - source: hosted - version: "2.0.2" + version: "0.6.4" typed_data: dependency: transitive description: @@ -1248,98 +1413,98 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "47e208a6711459d813ba18af120d9663c20bdf6985d6ad39fe165d2538378d27" + sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3" url: "https://pub.dev" source: hosted - version: "6.1.14" + version: "6.3.0" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: b04af59516ab45762b2ca6da40fa830d72d0f6045cd97744450b73493fa76330 + sha256: e35a698ac302dd68e41f73250bd9517fe3ab5fa4f18fe4647a0872db61bacbab url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "6.3.10" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "7c65021d5dee51813d652357bc65b8dd4a6177082a9966bc8ba6ee477baa795f" + sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e url: "https://pub.dev" source: hosted - version: "6.1.5" + version: "6.3.1" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: b651aad005e0cb06a01dbd84b428a301916dc75f0e7ea6165f80057fee2d8e8e + sha256: e2b9622b4007f97f504cd64c0128309dfb978ae66adbe944125ed9e1750f06af url: "https://pub.dev" source: hosted - version: "3.0.6" + version: "3.2.0" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: b55486791f666e62e0e8ff825e58a023fd6b1f71c49926483f1128d3bbd8fe88 + sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672" url: "https://pub.dev" source: hosted - version: "3.0.7" + version: "3.2.1" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface - sha256: "95465b39f83bfe95fcb9d174829d6476216f2d548b79c38ab2506e0458787618" + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" url: "https://pub.dev" source: hosted - version: "2.1.5" + version: "2.3.2" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: "2942294a500b4fa0b918685aff406773ba0a4cd34b7f42198742a94083020ce5" + sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e" url: "https://pub.dev" source: hosted - version: "2.0.20" + version: "2.3.3" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "95fef3129dc7cfaba2bc3d5ba2e16063bb561fc6d78e63eee16162bc70029069" + sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185" url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.1.2" uuid: dependency: "direct main" description: name: uuid - sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff url: "https://pub.dev" source: hosted - version: "3.0.7" + version: "4.5.1" vector_graphics: dependency: transitive description: name: vector_graphics - sha256: "670f6e07aca990b4a2bcdc08a784193c4ccdd1932620244c3a86bb72a0eac67f" + sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.11+1" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: "7451721781d967db9933b63f5733b1c4533022c0ba373a01bdd79d1a5457f69f" + sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.11+1" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "80a13c613c8bde758b1464a1755a7b3a8f2b6cec61fbf0f5a53c94c30f03ba2e" + sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" url: "https://pub.dev" source: hosted - version: "1.1.7" + version: "1.1.11+1" vector_math: dependency: transitive description: @@ -1352,58 +1517,58 @@ packages: dependency: transitive description: name: video_player - sha256: "74b86e63529cf5885130c639d74cd2f9232e7c8a66cbecbddd1dcb9dbd060d1e" + sha256: e30df0d226c4ef82e2c150ebf6834b3522cf3f654d8e2f9419d376cdc071425d url: "https://pub.dev" source: hosted - version: "2.7.2" + version: "2.9.1" video_player_android: dependency: transitive description: name: video_player_android - sha256: "3fe89ab07fdbce786e7eb25b58532d6eaf189ceddc091cb66cba712f8d9e8e55" + sha256: "45d21bbba3d10b7182aa08ade5d4c68ed3367016d40f29732bb04a799b26842d" url: "https://pub.dev" source: hosted - version: "2.4.10" + version: "2.7.5" video_player_avfoundation: dependency: transitive description: name: video_player_avfoundation - sha256: "6387c2de77763b45104256b3b00b660089be4f909ded8631457dc11bf635e38f" + sha256: d1e9a824f2b324000dc8fb2dcb2a3285b6c1c7c487521c63306cc5b394f68a7c url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.6.1" video_player_platform_interface: dependency: transitive description: name: video_player_platform_interface - sha256: be72301bf2c0150ab35a8c34d66e5a99de525f6de1e8d27c0672b836fe48f73a + sha256: "236454725fafcacf98f0f39af0d7c7ab2ce84762e3b63f2cbb3ef9a7e0550bc6" url: "https://pub.dev" source: hosted - version: "6.2.1" + version: "6.2.2" video_player_web: dependency: transitive description: name: video_player_web - sha256: "2dd24f7ba46bfb5d070e9c795001db95e0ca5f2a3d025e98f287c10c9f0fd62f" + sha256: "6dcdd298136523eaf7dfc31abaf0dfba9aa8a8dbc96670e87e9d42b6f2caf774" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.3.2" visibility_detector: dependency: transitive description: name: visibility_detector - sha256: "15c54a459ec2c17b4705450483f3d5a2858e733aee893dcee9d75fd04814940d" + sha256: dd5cc11e13494f432d15939c3aa8ae76844c42b723398643ce9addb88a5ed420 url: "https://pub.dev" source: hosted - version: "0.3.3" + version: "0.4.0+2" vm_service: dependency: transitive description: name: vm_service - sha256: c620a6f783fa22436da68e42db7ebbf18b8c44b9a46ab911f666ff09ffd9153f + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" url: "https://pub.dev" source: hosted - version: "11.7.1" + version: "14.2.5" watcher: dependency: transitive description: @@ -1416,26 +1581,34 @@ packages: dependency: transitive description: name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb + url: "https://pub.dev" + source: hosted + version: "1.1.0" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" url: "https://pub.dev" source: hosted - version: "0.1.4-beta" + version: "0.1.6" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b + sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "3.0.1" webdriver: dependency: transitive description: name: webdriver - sha256: "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49" + sha256: "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" webkit_inspection_protocol: dependency: transitive description: @@ -1456,66 +1629,66 @@ packages: dependency: "direct main" description: name: webview_flutter - sha256: c1ab9b81090705c6069197d9fdc1625e587b52b8d70cdde2339d177ad0dbb98e + sha256: ec81f57aa1611f8ebecf1d2259da4ef052281cb5ad624131c93546c79ccc7736 url: "https://pub.dev" source: hosted - version: "4.4.1" + version: "4.9.0" webview_flutter_android: dependency: "direct main" description: name: webview_flutter_android - sha256: "3e5f4e9d818086b0d01a66fb1ff9cc72ab0cc58c71980e3d3661c5685ea0efb0" + sha256: ed021f27ae621bc97a6019fb601ab16331a3db4bf8afa305e9f6689bdb3edced url: "https://pub.dev" source: hosted - version: "3.15.0" + version: "3.16.8" webview_flutter_platform_interface: dependency: transitive description: name: webview_flutter_platform_interface - sha256: dbe745ee459a16b6fec296f7565a8ef430d0d681001d8ae521898b9361854943 + sha256: d937581d6e558908d7ae3dc1989c4f87b786891ab47bb9df7de548a151779d8d url: "https://pub.dev" source: hosted - version: "2.9.0" + version: "2.10.0" webview_flutter_wkwebview: dependency: "direct main" description: name: webview_flutter_wkwebview - sha256: "4d062ad505390ecef1c4bfb6001cd857a51e00912cc9dfb66edb1886a9ebd80c" + sha256: "1942a12224ab31e9508cf00c0c6347b931b023b8a4f0811e5dec3b06f94f117d" url: "https://pub.dev" source: hosted - version: "3.10.2" + version: "3.15.0" win32: dependency: transitive description: name: win32 - sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3" + sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a" url: "https://pub.dev" source: hosted - version: "5.0.9" + version: "5.5.4" win32_registry: dependency: transitive description: name: win32_registry - sha256: "41fd8a189940d8696b1b810efb9abcf60827b6cbfab90b0c43e8439e3a39d85a" + sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.5" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2" + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.4" xml: dependency: transitive description: name: xml - sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84" + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.5.0" yaml: dependency: transitive description: @@ -1524,14 +1697,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.2" - youtube_player_flutter: + youtube_explode_dart: dependency: transitive description: - name: youtube_player_flutter - sha256: "72d487e1a1b9155a2dc9d448c137380791101a0ff623723195275ac275ac6942" + name: youtube_explode_dart + sha256: "133a65907e6cf839ac7643d92dc5c56b37fcebe4f0a8f0e67716dffa500c0ef0" url: "https://pub.dev" source: hosted - version: "8.1.2" + version: "2.2.2" sdks: - dart: ">=3.1.0 <4.0.0" - flutter: ">=3.13.0" + dart: ">=3.5.1 <4.0.0" + flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index d39a4366..24617fe2 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,31 +11,31 @@ dependencies: cupertino_icons: "^1.0.2" easy_localization: "^3.0.1" flutter_svg: "^2.0.0+1" - flutter_secure_storage: "^7.0.1" + flutter_secure_storage: ^9.2.2 provider: "^6.0.5" http: "^1.1.0" webview_flutter: "^4.0.7" webview_cookie_manager: "^2.0.6" dio: "^5.1.2" image_picker: "^1.0.2" - file_picker: "^5.3.1" + file_picker: ^8.1.2 path: "^1.8.3" path_provider: "^2.0.15" - permission_handler: "^10.2.0" + permission_handler: ^11.3.1 url_launcher: "^6.1.12" html_editor_enhanced: "^2.5.1" - uuid: "^3.0.7" + uuid: ^4.5.1 html: "^0.15.4" sanitize_html: "^2.0.0" - flutter_keyboard_visibility: "^5.4.1" + flutter_keyboard_visibility: ^6.0.0 mime: "^1.0.4" http_parser: "^4.0.2" - flutter_quill_extensions: "^0.5.0" - flutter_quill: "^7.4.7" + flutter_quill_extensions: ^10.8.1 + flutter_quill: ^10.8.1 delta_to_html: "^0.2.2" html2md: "^1.3.1" quill_markdown: "^0.1.0" - markdown_quill: "^2.0.0" + markdown_quill: ^4.1.0 markdown: "^7.1.1" shared_preferences: "^2.2.2" file_icon: "^1.0.0" @@ -46,7 +46,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - flutter_lints: "^3.0.1" + flutter_lints: ^4.0.0 flutter_driver: sdk: flutter test: any From 1fa4257355328c75d905d264f02426b395fac346 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 2 Oct 2024 00:09:47 +0900 Subject: [PATCH 19/32] =?UTF-8?q?Refactor:=20unused=20var,=20import=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/profile_edit_page.dart | 1 - lib/pages/setting_page.dart | 3 --- lib/pages/user_page.dart | 1 - lib/pages/user_view_page.dart | 1 - lib/providers/user_provider.dart | 1 - 5 files changed, 7 deletions(-) diff --git a/lib/pages/profile_edit_page.dart b/lib/pages/profile_edit_page.dart index d83b1e49..11d324ce 100644 --- a/lib/pages/profile_edit_page.dart +++ b/lib/pages/profile_edit_page.dart @@ -1,7 +1,6 @@ import 'dart:io'; import 'package:http_parser/http_parser.dart'; import 'package:flutter/material.dart'; -import 'package:new_ara_app/constants/url_info.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:new_ara_app/translations/locale_keys.g.dart'; import 'package:provider/provider.dart'; diff --git a/lib/pages/setting_page.dart b/lib/pages/setting_page.dart index e2eaec89..28987a89 100644 --- a/lib/pages/setting_page.dart +++ b/lib/pages/setting_page.dart @@ -5,7 +5,6 @@ import 'package:flutter/material.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:new_ara_app/constants/url_info.dart'; import 'package:new_ara_app/pages/terms_and_conditions_page.dart'; import 'package:new_ara_app/providers/user_provider.dart'; import 'package:new_ara_app/translations/locale_keys.g.dart'; @@ -56,8 +55,6 @@ class SettingPageState extends State { Widget build(BuildContext context) { var userProvider = context.watch(); - Dio dio = userProvider.createDioWithHeadersForNonget(); - return Scaffold( appBar: AppBar( centerTitle: true, diff --git a/lib/pages/user_page.dart b/lib/pages/user_page.dart index ef903d09..eb1624a0 100644 --- a/lib/pages/user_page.dart +++ b/lib/pages/user_page.dart @@ -2,7 +2,6 @@ import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:new_ara_app/constants/url_info.dart'; import 'package:new_ara_app/translations/locale_keys.g.dart'; import 'package:provider/provider.dart'; import 'package:easy_localization/easy_localization.dart'; diff --git a/lib/pages/user_view_page.dart b/lib/pages/user_view_page.dart index 612194c9..6bac13b6 100644 --- a/lib/pages/user_view_page.dart +++ b/lib/pages/user_view_page.dart @@ -12,7 +12,6 @@ import 'package:new_ara_app/models/public_user_profile_model.dart'; import 'package:new_ara_app/models/article_list_action_model.dart'; import 'package:new_ara_app/providers/user_provider.dart'; import 'package:new_ara_app/widgets/loading_indicator.dart'; -import 'package:new_ara_app/constants/url_info.dart'; import 'package:new_ara_app/pages/post_view_page.dart'; import 'package:new_ara_app/utils/slide_routing.dart'; import 'package:new_ara_app/providers/notification_provider.dart'; diff --git a/lib/providers/user_provider.dart b/lib/providers/user_provider.dart index 61935d14..dd109ee5 100644 --- a/lib/providers/user_provider.dart +++ b/lib/providers/user_provider.dart @@ -8,7 +8,6 @@ import 'package:new_ara_app/translations/locale_keys.g.dart'; import 'package:new_ara_app/utils/create_dio_with_config.dart'; import 'package:new_ara_app/utils/global_key.dart'; import 'package:new_ara_app/widgets/snackbar_noti.dart'; -import 'package:path/path.dart'; import 'package:webview_cookie_manager/webview_cookie_manager.dart'; /// `UserProvider`는 사용자 정보 및 연관된 API 로직을 관리하는 클래스입니다. From ceeac73268e4eac175b3d7bf11ef46dbe4769c84 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 2 Oct 2024 00:12:14 +0900 Subject: [PATCH 20/32] =?UTF-8?q?Refactor:=20deprecated=20textScalerFactor?= =?UTF-8?q?,=20MaterialStateProperty=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/main.dart | 2 +- lib/pages/post_list_show_page.dart | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index fe6d7d31..e123ffc1 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -135,7 +135,7 @@ class _MyAppState extends State { final MediaQueryData data = MediaQuery.of(context); return MediaQuery( // 시스템 폰트 사이즈에 영향을 받지 않도록 textScaleFactor 지정함 - data: data.copyWith(textScaleFactor: 1.0), + data: data.copyWith(textScaler: const TextScaler.linear(1.0)), child: ScrollConfiguration( behavior: CustomScrollBehavior(), child: child!, diff --git a/lib/pages/post_list_show_page.dart b/lib/pages/post_list_show_page.dart index ba87cfbc..ab712725 100644 --- a/lib/pages/post_list_show_page.dart +++ b/lib/pages/post_list_show_page.dart @@ -247,11 +247,11 @@ class _PostListShowPageState extends State margin: const EdgeInsets.only(right: 10), child: TextButton( style: ButtonStyle( - backgroundColor: MaterialStateProperty.all( + backgroundColor: WidgetStateProperty.all( currentFilter == index ? ColorsInfo.newara : Colors.white), overlayColor: - MaterialStateProperty.all(Colors.transparent), // no splash - shape: MaterialStateProperty.all( + WidgetStateProperty.all(Colors.transparent), // no splash + shape: WidgetStateProperty.all( RoundedRectangleBorder( borderRadius: BorderRadius.circular(30), side: BorderSide( From 66beda0a7f5d36f8d2da537a0324cf6c7d1ca768 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 2 Oct 2024 00:14:20 +0900 Subject: [PATCH 21/32] =?UTF-8?q?Refactor:=20const=20=ED=82=A4=EC=9B=8C?= =?UTF-8?q?=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/pages/inquiry_page.dart | 4 ++-- lib/pages/post_view_page.dart | 2 +- lib/widgets/pop_up_menu_buttons.dart | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/pages/inquiry_page.dart b/lib/pages/inquiry_page.dart index ec2ecfba..9587852d 100644 --- a/lib/pages/inquiry_page.dart +++ b/lib/pages/inquiry_page.dart @@ -64,8 +64,8 @@ class _InquiryPageState extends State { children: [ Container( width: MediaQuery.of(context).size.width, - margin: EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0), - padding: EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0), + margin: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0), + padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(8.0), diff --git a/lib/pages/post_view_page.dart b/lib/pages/post_view_page.dart index 822b325d..3b10801b 100644 --- a/lib/pages/post_view_page.dart +++ b/lib/pages/post_view_page.dart @@ -1395,7 +1395,7 @@ class _PostViewPageState extends State { _article.created_by.id && _article.name_type == 2) ? ColorsInfo.newara - : Color(0xFF333333)), + : const Color(0xFF333333)), maxLines: 1, overflow: TextOverflow.ellipsis, )), diff --git a/lib/widgets/pop_up_menu_buttons.dart b/lib/widgets/pop_up_menu_buttons.dart index 8f68c189..7b23167e 100644 --- a/lib/widgets/pop_up_menu_buttons.dart +++ b/lib/widgets/pop_up_menu_buttons.dart @@ -27,7 +27,7 @@ class WithSchoolPopupMenuButton extends StatelessWidget { side: BorderSide(color: Color.fromRGBO(217, 217, 217, 1), width: 0.5), borderRadius: BorderRadius.all(Radius.circular(12.0))), padding: const EdgeInsets.all(2.0), - offset: Offset(0, 45), + offset: const Offset(0, 45), child: SvgPicture.asset( 'assets/icons/information.svg', colorFilter: const ColorFilter.mode(Colors.grey, BlendMode.srcIn), From a6b6d7408a8a0891361ad72d539b7d79178766e6 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 2 Oct 2024 00:21:52 +0900 Subject: [PATCH 22/32] Refactor(post_write_page.dart): WillPopScope -> PopScope --- lib/pages/post_write_page.dart | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/pages/post_write_page.dart b/lib/pages/post_write_page.dart index 366171b3..882dbda0 100644 --- a/lib/pages/post_write_page.dart +++ b/lib/pages/post_write_page.dart @@ -555,10 +555,12 @@ class _PostWritePageState extends State return _isLoading ? const LoadingIndicator() - : WillPopScope( - onWillPop: () async { - if (_hasEditorText || _titleController.text != '') { - final shouldPop = await showDialog( + : PopScope( + canPop: false, + onPopInvokedWithResult:(didPop, result) async { + if (didPop) return; + if (_hasEditorText || _titleController.text != '') { + final bool shouldPop = await showDialog( context: context, builder: (context) => ExitConfirmDialog( userProvider: userProvider, @@ -582,18 +584,18 @@ class _PostWritePageState extends State Navigator.pop(context, true); } }, - )); - return shouldPop ?? false; - } else { - String key = _isEditingPost + )) ?? false; + if (context.mounted && shouldPop) Navigator.of(context).pop(); + } else { + String key = _isEditingPost ? '/cache/${widget.previousArticle!.id}/' : '/cache/${userID}/'; await removeApiData(key); debugPrint('Cache Reset!'); - return true; - } - }, - child: Scaffold( + if (context.mounted) Navigator.of(context).pop(); + } + }, + child: Scaffold( appBar: _buildAppBar(canIupload, userProvider), body: SafeArea( child: Column( @@ -624,7 +626,7 @@ class _PostWritePageState extends State ), ), ), - ); + ); } PreferredSizeWidget _buildAppBar(bool canIupload, UserProvider userProvider) { From fa1348c57f0e4d2c83a1333a2973f6cf50b4aa98 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 2 Oct 2024 00:30:32 +0900 Subject: [PATCH 23/32] =?UTF-8?q?Refactor:=20minSdkVersion=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 --- android/app/build.gradle | 4 +- ios/Flutter/AppFrameworkInfo.plist | 52 +++---- ios/Podfile.lock | 129 +++++++++++------- ios/Runner.xcodeproj/project.pbxproj | 20 ++- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- pubspec.lock | 2 +- pubspec.yaml | 1 - 7 files changed, 126 insertions(+), 84 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 2f572dc0..b5f50ba3 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -59,8 +59,8 @@ android { /* minSdkVersion - 앱이 설치될 수 있는 최소한의 API 버전 (이 버전보다 낮은 것만 지원하는 기기에는 설치 불가) - - multiDex에서 요구하는 최소 버전인 21로 설정 */ - minSdkVersion 21 + - super_native_extensions에서 요구하는 최소 버전인 23으로 설정 */ + minSdkVersion 23 /* targetSdkVersion - 앱이 테스트되고 최적화된 Android SDK 버전을 의미 diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist index 0d9747fa..7c569640 100644 --- a/ios/Flutter/AppFrameworkInfo.plist +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -1,26 +1,26 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - App - CFBundleIdentifier - io.flutter.flutter.app - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - App - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1.0 - MinimumOSVersion - 11.0 - - + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 12.0 + + diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 9c9eb6d5..ad868bf9 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,50 +1,52 @@ PODS: - device_info_plus (0.0.1): - Flutter - - DKImagePickerController/Core (4.3.4): + - DKImagePickerController/Core (4.3.9): - DKImagePickerController/ImageDataManager - DKImagePickerController/Resource - - DKImagePickerController/ImageDataManager (4.3.4) - - DKImagePickerController/PhotoGallery (4.3.4): + - DKImagePickerController/ImageDataManager (4.3.9) + - DKImagePickerController/PhotoGallery (4.3.9): - DKImagePickerController/Core - DKPhotoGallery - - DKImagePickerController/Resource (4.3.4) - - DKPhotoGallery (0.0.17): - - DKPhotoGallery/Core (= 0.0.17) - - DKPhotoGallery/Model (= 0.0.17) - - DKPhotoGallery/Preview (= 0.0.17) - - DKPhotoGallery/Resource (= 0.0.17) + - DKImagePickerController/Resource (4.3.9) + - DKPhotoGallery (0.0.19): + - DKPhotoGallery/Core (= 0.0.19) + - DKPhotoGallery/Model (= 0.0.19) + - DKPhotoGallery/Preview (= 0.0.19) + - DKPhotoGallery/Resource (= 0.0.19) - SDWebImage - SwiftyGif - - DKPhotoGallery/Core (0.0.17): + - DKPhotoGallery/Core (0.0.19): - DKPhotoGallery/Model - DKPhotoGallery/Preview - SDWebImage - SwiftyGif - - DKPhotoGallery/Model (0.0.17): + - DKPhotoGallery/Model (0.0.19): - SDWebImage - SwiftyGif - - DKPhotoGallery/Preview (0.0.17): + - DKPhotoGallery/Preview (0.0.19): - DKPhotoGallery/Model - DKPhotoGallery/Resource - SDWebImage - SwiftyGif - - DKPhotoGallery/Resource (0.0.17): + - DKPhotoGallery/Resource (0.0.19): - SDWebImage - SwiftyGif - file_picker (0.0.1): - DKImagePickerController/PhotoGallery - Flutter - Flutter (1.0.0) - - flutter_inappwebview (0.0.1): + - flutter_inappwebview_ios (0.0.1): - Flutter - - flutter_inappwebview/Core (= 0.0.1) - - OrderedSet (~> 5.0) - - flutter_inappwebview/Core (0.0.1): + - flutter_inappwebview_ios/Core (= 0.0.1) + - OrderedSet (~> 6.0.3) + - flutter_inappwebview_ios/Core (0.0.1): - Flutter - - OrderedSet (~> 5.0) + - OrderedSet (~> 6.0.3) - flutter_keyboard_visibility (0.0.1): - Flutter + - flutter_keyboard_visibility_temp_fork (0.0.1): + - Flutter - flutter_native_splash (0.0.1): - Flutter - flutter_secure_storage (6.0.0): @@ -54,21 +56,27 @@ PODS: - FlutterMacOS - image_picker_ios (0.0.1): - Flutter - - OrderedSet (5.0.0) - - pasteboard (0.0.1): + - irondash_engine_context (0.0.1): - Flutter + - OrderedSet (6.0.3) - path_provider_foundation (0.0.1): - Flutter - FlutterMacOS - - permission_handler_apple (9.1.1): + - permission_handler_apple (9.3.0): + - Flutter + - pointer_interceptor_ios (0.0.1): + - Flutter + - quill_native_bridge (0.0.1): - Flutter - - SDWebImage (5.18.10): - - SDWebImage/Core (= 5.18.10) - - SDWebImage/Core (5.18.10) + - SDWebImage (5.19.2): + - SDWebImage/Core (= 5.19.2) + - SDWebImage/Core (5.19.2) - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS - - SwiftyGif (5.4.4) + - super_native_extensions (0.0.1): + - Flutter + - SwiftyGif (5.4.5) - url_launcher_ios (0.0.1): - Flutter - video_player_avfoundation (0.0.1): @@ -78,25 +86,30 @@ PODS: - Flutter - webview_flutter_wkwebview (0.0.1): - Flutter + - FlutterMacOS DEPENDENCIES: - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - file_picker (from `.symlinks/plugins/file_picker/ios`) - Flutter (from `Flutter`) - - flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`) + - flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`) - flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`) + - flutter_keyboard_visibility_temp_fork (from `.symlinks/plugins/flutter_keyboard_visibility_temp_fork/ios`) - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - gal (from `.symlinks/plugins/gal/darwin`) - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) - - pasteboard (from `.symlinks/plugins/pasteboard/ios`) + - irondash_engine_context (from `.symlinks/plugins/irondash_engine_context/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) + - pointer_interceptor_ios (from `.symlinks/plugins/pointer_interceptor_ios/ios`) + - quill_native_bridge (from `.symlinks/plugins/quill_native_bridge/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) + - super_native_extensions (from `.symlinks/plugins/super_native_extensions/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`) - webview_cookie_manager (from `.symlinks/plugins/webview_cookie_manager/ios`) - - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`) + - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/darwin`) SPEC REPOS: trunk: @@ -113,10 +126,12 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/file_picker/ios" Flutter: :path: Flutter - flutter_inappwebview: - :path: ".symlinks/plugins/flutter_inappwebview/ios" + flutter_inappwebview_ios: + :path: ".symlinks/plugins/flutter_inappwebview_ios/ios" flutter_keyboard_visibility: :path: ".symlinks/plugins/flutter_keyboard_visibility/ios" + flutter_keyboard_visibility_temp_fork: + :path: ".symlinks/plugins/flutter_keyboard_visibility_temp_fork/ios" flutter_native_splash: :path: ".symlinks/plugins/flutter_native_splash/ios" flutter_secure_storage: @@ -125,14 +140,20 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/gal/darwin" image_picker_ios: :path: ".symlinks/plugins/image_picker_ios/ios" - pasteboard: - :path: ".symlinks/plugins/pasteboard/ios" + irondash_engine_context: + :path: ".symlinks/plugins/irondash_engine_context/ios" path_provider_foundation: :path: ".symlinks/plugins/path_provider_foundation/darwin" permission_handler_apple: :path: ".symlinks/plugins/permission_handler_apple/ios" + pointer_interceptor_ios: + :path: ".symlinks/plugins/pointer_interceptor_ios/ios" + quill_native_bridge: + :path: ".symlinks/plugins/quill_native_bridge/ios" shared_preferences_foundation: :path: ".symlinks/plugins/shared_preferences_foundation/darwin" + super_native_extensions: + :path: ".symlinks/plugins/super_native_extensions/ios" url_launcher_ios: :path: ".symlinks/plugins/url_launcher_ios/ios" video_player_avfoundation: @@ -140,31 +161,35 @@ EXTERNAL SOURCES: webview_cookie_manager: :path: ".symlinks/plugins/webview_cookie_manager/ios" webview_flutter_wkwebview: - :path: ".symlinks/plugins/webview_flutter_wkwebview/ios" + :path: ".symlinks/plugins/webview_flutter_wkwebview/darwin" SPEC CHECKSUMS: - device_info_plus: 7545d84d8d1b896cb16a4ff98c19f07ec4b298ea - DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac - DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179 - file_picker: ce3938a0df3cc1ef404671531facef740d03f920 - Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 - flutter_inappwebview: 3d32228f1304635e7c028b0d4252937730bbc6cf + device_info_plus: 97af1d7e84681a90d0693e63169a5d50e0839a0d + DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c + DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 + file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069 - flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef - flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be + flutter_keyboard_visibility_temp_fork: 442dadca3b81868a225cd6a2f605bffff1215844 + flutter_native_splash: edf599c81f74d093a4daf8e17bd7a018854bc778 + flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 gal: 61e868295d28fe67ffa297fae6dacebf56fd53e1 - image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5 - OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c - pasteboard: 982969ebaa7c78af3e6cc7761e8f5e77565d9ce0 - path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 - permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6 - SDWebImage: fc8f2d48bbfd72ef39d70e981bd24a3f3be53fec - shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126 - SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f - url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 - video_player_avfoundation: 8563f13d8fc8b2c29dc2d09e60b660e4e8128837 + image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1 + irondash_engine_context: 3458bf979b90d616ffb8ae03a150bafe2e860cc9 + OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 + pointer_interceptor_ios: 508241697ff0947f853c061945a8b822463947c1 + quill_native_bridge: e5afa7d49c08cf68c52a5e23bc272eba6925c622 + SDWebImage: dfe95b2466a9823cf9f0c6d01217c06550d7b29a + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + super_native_extensions: 4916b3c627a9c7fffdc48a23a9eca0b1ac228fa7 + SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe + video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 webview_cookie_manager: eaf920722b493bd0f7611b5484771ca53fed03f7 - webview_flutter_wkwebview: 4f3e50f7273d31e5500066ed267e3ae4309c5ae4 + webview_flutter_wkwebview: 0982481e3d9c78fd5c6f62a002fcd24fc791f1e4 PODFILE CHECKSUM: 40e3ca182cfbd571c46e751b6eb8a6f2cbbf72fc diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 75190517..daef1680 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -139,6 +139,7 @@ 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, 2D2EA109ED6C86B74CF8977E /* [CP] Embed Pods Frameworks */, + FF64590B6C46435BF0019666 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -155,7 +156,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -267,6 +268,23 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; + FF64590B6C46435BF0019666 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index a6b826db..5e31d3d3 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ Date: Wed, 2 Oct 2024 00:34:12 +0900 Subject: [PATCH 24/32] Refactor: Change to Declarative Gradle https://docs.flutter.dev/release/breaking-changes/flutter-gradle-plugin-apply --- android/app/build.gradle | 16 ++++++---------- android/build.gradle | 13 ------------- android/settings.gradle | 30 ++++++++++++++++++++++-------- 3 files changed, 28 insertions(+), 31 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index b5f50ba3..a152e182 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -27,10 +28,6 @@ if (keystorePropertiesFile.exists()) { keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) } -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - android { /* compileSdkVersion - 앱을 컴파일할 때 사용하는 SDK의 버전 @@ -92,5 +89,4 @@ flutter { } dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" } \ No newline at end of file diff --git a/android/build.gradle b/android/build.gradle index 0a40a986..bc157bd1 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,16 +1,3 @@ -buildscript { - ext.kotlin_version = '1.8.21' - repositories { - google() - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:7.1.2' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - allprojects { repositories { google() diff --git a/android/settings.gradle b/android/settings.gradle index 33f0745d..776f5dff 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,11 +1,25 @@ -include ':app' +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + }() -def localPropertiesFile = new File(rootProject.projectDir, "local.properties") -def properties = new Properties() + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") -assert localPropertiesFile.exists() -localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} -def flutterSdkPath = properties.getProperty("flutter.sdk") -assert flutterSdkPath != null, "flutter.sdk not set in local.properties" -apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.1.2" apply false + id "org.jetbrains.kotlin.android" version "1.8.21" apply false +} + +include ":app" \ No newline at end of file From 79efaeb806c0e2a8b8ec7c9bb962f933677a739d Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 2 Oct 2024 01:01:38 +0900 Subject: [PATCH 25/32] =?UTF-8?q?Refactor:=20iOS=20=EB=B9=8C=EB=93=9C=20?= =?UTF-8?q?=EC=84=B1=EA=B3=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ios/Podfile.lock | 26 -------- pubspec.lock | 160 ----------------------------------------------- pubspec.yaml | 1 - 3 files changed, 187 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index ad868bf9..49ba8aa4 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -36,15 +36,6 @@ PODS: - DKImagePickerController/PhotoGallery - Flutter - Flutter (1.0.0) - - flutter_inappwebview_ios (0.0.1): - - Flutter - - flutter_inappwebview_ios/Core (= 0.0.1) - - OrderedSet (~> 6.0.3) - - flutter_inappwebview_ios/Core (0.0.1): - - Flutter - - OrderedSet (~> 6.0.3) - - flutter_keyboard_visibility (0.0.1): - - Flutter - flutter_keyboard_visibility_temp_fork (0.0.1): - Flutter - flutter_native_splash (0.0.1): @@ -58,14 +49,11 @@ PODS: - Flutter - irondash_engine_context (0.0.1): - Flutter - - OrderedSet (6.0.3) - path_provider_foundation (0.0.1): - Flutter - FlutterMacOS - permission_handler_apple (9.3.0): - Flutter - - pointer_interceptor_ios (0.0.1): - - Flutter - quill_native_bridge (0.0.1): - Flutter - SDWebImage (5.19.2): @@ -92,8 +80,6 @@ DEPENDENCIES: - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - file_picker (from `.symlinks/plugins/file_picker/ios`) - Flutter (from `Flutter`) - - flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`) - - flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`) - flutter_keyboard_visibility_temp_fork (from `.symlinks/plugins/flutter_keyboard_visibility_temp_fork/ios`) - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) @@ -102,7 +88,6 @@ DEPENDENCIES: - irondash_engine_context (from `.symlinks/plugins/irondash_engine_context/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) - - pointer_interceptor_ios (from `.symlinks/plugins/pointer_interceptor_ios/ios`) - quill_native_bridge (from `.symlinks/plugins/quill_native_bridge/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - super_native_extensions (from `.symlinks/plugins/super_native_extensions/ios`) @@ -115,7 +100,6 @@ SPEC REPOS: trunk: - DKImagePickerController - DKPhotoGallery - - OrderedSet - SDWebImage - SwiftyGif @@ -126,10 +110,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/file_picker/ios" Flutter: :path: Flutter - flutter_inappwebview_ios: - :path: ".symlinks/plugins/flutter_inappwebview_ios/ios" - flutter_keyboard_visibility: - :path: ".symlinks/plugins/flutter_keyboard_visibility/ios" flutter_keyboard_visibility_temp_fork: :path: ".symlinks/plugins/flutter_keyboard_visibility_temp_fork/ios" flutter_native_splash: @@ -146,8 +126,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/path_provider_foundation/darwin" permission_handler_apple: :path: ".symlinks/plugins/permission_handler_apple/ios" - pointer_interceptor_ios: - :path: ".symlinks/plugins/pointer_interceptor_ios/ios" quill_native_bridge: :path: ".symlinks/plugins/quill_native_bridge/ios" shared_preferences_foundation: @@ -169,18 +147,14 @@ SPEC CHECKSUMS: DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 - flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069 flutter_keyboard_visibility_temp_fork: 442dadca3b81868a225cd6a2f605bffff1215844 flutter_native_splash: edf599c81f74d093a4daf8e17bd7a018854bc778 flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 gal: 61e868295d28fe67ffa297fae6dacebf56fd53e1 image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1 irondash_engine_context: 3458bf979b90d616ffb8ae03a150bafe2e860cc9 - OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 - pointer_interceptor_ios: 508241697ff0947f853c061945a8b822463947c1 quill_native_bridge: e5afa7d49c08cf68c52a5e23bc272eba6925c622 SDWebImage: dfe95b2466a9823cf9f0c6d01217c06550d7b29a shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 diff --git a/pubspec.lock b/pubspec.lock index 84e03888..282013f7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -302,22 +302,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" - flex_color_picker: - dependency: transitive - description: - name: flex_color_picker - sha256: "12dc855ae8ef5491f529b1fc52c655f06dcdf4114f1f7fdecafa41eec2ec8d79" - url: "https://pub.dev" - source: hosted - version: "3.6.0" - flex_seed_scheme: - dependency: transitive - description: - name: flex_seed_scheme - sha256: "7639d2c86268eff84a909026eb169f008064af0fb3696a651b24b0fa24a40334" - url: "https://pub.dev" - source: hosted - version: "3.4.1" flutter: dependency: "direct main" description: flutter @@ -344,78 +328,6 @@ packages: description: flutter source: sdk version: "0.0.0" - flutter_inappwebview: - dependency: transitive - description: - name: flutter_inappwebview - sha256: "274edbb07196944e316722d9f6f641c77d0e71261200869887e10f59614c0458" - url: "https://pub.dev" - source: hosted - version: "6.1.3" - flutter_inappwebview_android: - dependency: transitive - description: - name: flutter_inappwebview_android - sha256: "9bb3cf50329b32dabc9940d0498541be29755ae7fdf2446652affcc53028b754" - url: "https://pub.dev" - source: hosted - version: "1.1.2" - flutter_inappwebview_internal_annotations: - dependency: transitive - description: - name: flutter_inappwebview_internal_annotations - sha256: "5f80fd30e208ddded7dbbcd0d569e7995f9f63d45ea3f548d8dd4c0b473fb4c8" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - flutter_inappwebview_ios: - dependency: transitive - description: - name: flutter_inappwebview_ios - sha256: f6f88d464b38f2fc1c5f2ae74024498115eb1470715bd8b40f902dd4ac99ccc8 - url: "https://pub.dev" - source: hosted - version: "1.1.1" - flutter_inappwebview_macos: - dependency: transitive - description: - name: flutter_inappwebview_macos - sha256: "68e0c3785d8d789710cda7d7efe6effa337c91bf300dd28af7efc2d358fa1a98" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - flutter_inappwebview_platform_interface: - dependency: transitive - description: - name: flutter_inappwebview_platform_interface - sha256: "97b4ab116d949ede20c90c7e3d15d24afaf1b706cc0af96b060770293cd6c49d" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - flutter_inappwebview_web: - dependency: transitive - description: - name: flutter_inappwebview_web - sha256: f7f97b6faa39416e4e86da1184edd4de6c27b271d036f0838ea3ff9a250a1de2 - url: "https://pub.dev" - source: hosted - version: "1.1.1" - flutter_inappwebview_windows: - dependency: transitive - description: - name: flutter_inappwebview_windows - sha256: "1cb428210f7486e4decb52262b243505023d0c57609c6ff5cee772e63b51f443" - url: "https://pub.dev" - source: hosted - version: "0.4.1" - flutter_keyboard_visibility: - dependency: transitive - description: - name: flutter_keyboard_visibility - sha256: "98664be7be0e3ffca00de50f7f6a287ab62c763fc8c762e0a21584584a3ff4f8" - url: "https://pub.dev" - source: hosted - version: "6.0.0" flutter_keyboard_visibility_linux: dependency: transitive description: @@ -448,14 +360,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.1.1" - flutter_keyboard_visibility_web: - dependency: transitive - description: - name: flutter_keyboard_visibility_web - sha256: d3771a2e752880c79203f8d80658401d0c998e4183edca05a149f5098ce6e3d1 - url: "https://pub.dev" - source: hosted - version: "2.0.0" flutter_keyboard_visibility_windows: dependency: transitive description: @@ -644,14 +548,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.2" - html_editor_enhanced: - dependency: "direct main" - description: - name: html_editor_enhanced - sha256: "5ae6cd965cca77f7186efccc47ca353799e831b31bd71438687a56131bbcd3a5" - url: "https://pub.dev" - source: hosted - version: "2.6.0" http: dependency: "direct main" description: @@ -748,14 +644,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.2.1+1" - infinite_listview: - dependency: transitive - description: - name: infinite_listview - sha256: f6062c1720eb59be553dfa6b89813d3e8dd2f054538445aaa5edaddfa5195ce6 - url: "https://pub.dev" - source: hosted - version: "1.1.0" intl: dependency: transitive description: @@ -916,14 +804,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.2" - numberpicker: - dependency: transitive - description: - name: numberpicker - sha256: "4c129154944b0f6b133e693f8749c3f8bfb67c4d07ef9dcab48b595c22d1f156" - url: "https://pub.dev" - source: hosted - version: "2.1.2" package_config: dependency: transitive description: @@ -1084,38 +964,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" - pointer_interceptor: - dependency: transitive - description: - name: pointer_interceptor - sha256: "57210410680379aea8b1b7ed6ae0c3ad349bfd56fe845b8ea934a53344b9d523" - url: "https://pub.dev" - source: hosted - version: "0.10.1+2" - pointer_interceptor_ios: - dependency: transitive - description: - name: pointer_interceptor_ios - sha256: a6906772b3205b42c44614fcea28f818b1e5fdad73a4ca742a7bd49818d9c917 - url: "https://pub.dev" - source: hosted - version: "0.10.1" - pointer_interceptor_platform_interface: - dependency: transitive - description: - name: pointer_interceptor_platform_interface - sha256: "0597b0560e14354baeb23f8375cd612e8bd4841bf8306ecb71fcd0bb78552506" - url: "https://pub.dev" - source: hosted - version: "0.10.0+1" - pointer_interceptor_web: - dependency: transitive - description: - name: pointer_interceptor_web - sha256: "7a7087782110f8c1827170660b09f8aa893e0e9a61431dbbe2ac3fc482e8c044" - url: "https://pub.dev" - source: hosted - version: "0.10.2+1" pool: dependency: transitive description: @@ -1553,14 +1401,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.2" - visibility_detector: - dependency: transitive - description: - name: visibility_detector - sha256: dd5cc11e13494f432d15939c3aa8ae76844c42b723398643ce9addb88a5ed420 - url: "https://pub.dev" - source: hosted - version: "0.4.0+2" vm_service: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index d0711fed..123b1094 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -23,7 +23,6 @@ dependencies: path_provider: "^2.0.15" permission_handler: ^11.3.1 url_launcher: "^6.1.12" - html_editor_enhanced: "^2.5.1" uuid: ^4.5.1 html: "^0.15.4" sanitize_html: "^2.0.0" From e4e82e9cc6be8f2c41a4eeaa601d9e5ca3d831a9 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 2 Oct 2024 01:05:06 +0900 Subject: [PATCH 26/32] =?UTF-8?q?Refactor:=20Android=20=EB=B9=8C=EB=93=9C?= =?UTF-8?q?=20=EC=84=B1=EA=B3=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/android/app/build.gradle b/android/app/build.gradle index a152e182..6822b9a1 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -89,4 +89,5 @@ flutter { } dependencies { + implementation 'androidx.appcompat:appcompat:1.4.0' } \ No newline at end of file From 237cc899582e7b20e71a69f0250344b0579393a1 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 2 Oct 2024 01:09:48 +0900 Subject: [PATCH 27/32] Feat(deploy.yml): Disable deploy workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit iOS 미완성으로 인해 자동실행은 잠정중단 --- .github/workflows/deploy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index ba98411f..ed9f486b 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -2,9 +2,9 @@ name: Deploy to Play Store, App Store on: # main 브랜치에 push 연산이 일어나는 경우 - push: - branches: - - main + # push: + # branches: + # - main # 수동으로 배포를 진행해야하는 경우에 실행 workflow_dispatch: inputs: From f1290917607e12ec4d1ad773ee7f43e65a527e70 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 2 Oct 2024 01:13:30 +0900 Subject: [PATCH 28/32] =?UTF-8?q?Feat(build.yml):=20Build=20workflow=20flu?= =?UTF-8?q?tter,=20java=20=EB=B2=84=EC=A0=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4bbb2c7d..e1080139 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,8 +7,8 @@ on: branches: [dev, main] env: - FLUTTER_VERSION: "3.13" - JAVA_VERSION: "11" + FLUTTER_VERSION: "3.24" + JAVA_VERSION: "17" jobs: build-android: From 8a5641c041c2de23fcb06b978e0c61364c7d89ad Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 2 Oct 2024 01:27:47 +0900 Subject: [PATCH 29/32] =?UTF-8?q?Chore(pubspec.yaml):=20flutter=5Flints=20?= =?UTF-8?q?=ED=8C=A8=ED=82=A4=EC=A7=80=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 --- pubspec.lock | 8 ++++---- pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 282013f7..7ee9c131 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -372,10 +372,10 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c" + sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "5.0.0" flutter_localizations: dependency: transitive description: flutter @@ -720,10 +720,10 @@ packages: dependency: transitive description: name: lints - sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" + sha256: "3315600f3fb3b135be672bf4a178c55f274bebe368325ae18462c89ac1e3b413" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "5.0.0" logging: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 123b1094..48c1205f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -44,7 +44,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^4.0.0 + flutter_lints: ^5.0.0 flutter_driver: sdk: flutter test: any From 83e3a8da3177fa60bddf843d9972ff8c1915a602 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 2 Oct 2024 02:18:31 +0900 Subject: [PATCH 30/32] =?UTF-8?q?Feat(post=5Fwrite=5Fpage.dart):=20?= =?UTF-8?q?=EC=98=B5=EC=85=98=20=EC=A1=B0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .fvmrc | 4 ---- lib/pages/post_write_page.dart | 10 ++++++++++ 2 files changed, 10 insertions(+), 4 deletions(-) delete mode 100644 .fvmrc diff --git a/.fvmrc b/.fvmrc deleted file mode 100644 index 6108f14a..00000000 --- a/.fvmrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "flutter": "3.13.9", - "flavors": {} -} \ No newline at end of file diff --git a/lib/pages/post_write_page.dart b/lib/pages/post_write_page.dart index 882dbda0..0ba5fbd3 100644 --- a/lib/pages/post_write_page.dart +++ b/lib/pages/post_write_page.dart @@ -1465,6 +1465,12 @@ class _PostWritePageState extends State child: quill.QuillToolbar.simple( controller: _quillController, configurations: quill.QuillSimpleToolbarConfigurations( + // buttonOptions: quill.QuillSimpleToolbarButtonOptions( + // base: quill.QuillToolbarBaseButtonOptions( + // iconSize: 18, + // iconButtonFactor: 1.0, + // ), + // ), multiRowsDisplay: true, showUndo: false, showRedo: false, @@ -1477,8 +1483,12 @@ class _PostWritePageState extends State showSearchButton: false, showSubscript: false, showSuperscript: false, + showClipboardPaste: false, + showClipboardCopy: false, + showClipboardCut: false, toolbarIconAlignment: WrapAlignment.start, toolbarIconCrossAlignment: WrapCrossAlignment.start, + toolbarSectionSpacing: 0.5, customButtons: [ quill.QuillToolbarCustomButtonOptions( icon: const Icon(Icons.camera_alt), From e9563506302c26c8521efff480b7db428d22add3 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 2 Oct 2024 09:52:48 +0900 Subject: [PATCH 31/32] =?UTF-8?q?Refactor(post=5Fwrite=5Fpage.dart):=20con?= =?UTF-8?q?text=20mounted=20=ED=99=95=EC=9D=B8=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/post_write_page.dart | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/pages/post_write_page.dart b/lib/pages/post_write_page.dart index 0ba5fbd3..3ec99597 100644 --- a/lib/pages/post_write_page.dart +++ b/lib/pages/post_write_page.dart @@ -360,8 +360,7 @@ class _PostWritePageState extends State newChosenBoard = newBoardList.firstWhere( (board) => board.slug == widget.previousBoard!.slug, orElse: () => _defaultBoardDetailActionModel); - newSpecTopicList = [_defaultTopicModelNone] - ..addAll(newChosenBoard.topics); + newSpecTopicList = [_defaultTopicModelNone, ...newChosenBoard.topics]; // 게시판 목록 상태 업데이트(else) } else { newSpecTopicList = [_defaultTopicModelSelect]; @@ -573,14 +572,14 @@ class _PostWritePageState extends State : '/cache/${userID}/'; await removeApiData(key); debugPrint('Cache Reset!'); - if (mounted) { + if (context.mounted) { Navigator.pop(context, true); } }, onTapSave: () async { debugPrint("onTapSave invoked"); await cacheCurrentData(); - if (mounted) { + if (context.mounted) { Navigator.pop(context, true); } }, @@ -656,7 +655,7 @@ class _PostWritePageState extends State await removeApiData(key); debugPrint('Cache Reset!'); try { - if (mounted) { + if (context.mounted) { Navigator.of(context) ..pop() //dialog pop ..pop(); //PostWritePage pop @@ -668,7 +667,7 @@ class _PostWritePageState extends State onTapSave: () async { await cacheCurrentData(); try { - if (mounted) { + if (context.mounted) { Navigator.of(context) ..pop() //dialog pop ..pop(); //PostWritePage pop @@ -1807,9 +1806,9 @@ class _PostWritePageState extends State ? 'ANONYMOUS' : 'REGULAR', }; - debugPrint('manage post data : $data'); Response? response; if (isUpdate) { + debugPrint('manage post data : $data'); response = await userProvider.putApiRes( 'articles/$previousArticleId/', data: data, @@ -1818,6 +1817,7 @@ class _PostWritePageState extends State data['parent_topic'] = _chosenTopicValue!.id == -1 ? '' : _chosenTopicValue!.id; data['parent_board'] = _chosenBoardValue!.id; + debugPrint('manage post data : $data'); response = await userProvider.postApiRes( 'articles/', data: data, From 7530fcfb6edc93fad01e26151911f9b7866abd53 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Wed, 2 Oct 2024 10:13:25 +0900 Subject: [PATCH 32/32] =?UTF-8?q?Feat(user=5Fprovider.dart):=20debugPrint?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/providers/user_provider.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/providers/user_provider.dart b/lib/providers/user_provider.dart index dd109ee5..ea2d2c16 100644 --- a/lib/providers/user_provider.dart +++ b/lib/providers/user_provider.dart @@ -169,6 +169,7 @@ class UserProvider with ChangeNotifier { debugPrint(errorMessage); if (e.response != null) { //debugPrint("${e.response!.data}"); + debugPrint("${e.response!.statusCode}"); debugPrint("${e.response!.headers}"); debugPrint("${e.response!.requestOptions}"); }