diff --git a/flutter_/.flutter-plugins-dependencies b/flutter_/.flutter-plugins-dependencies
index 208f570..0d5ffa5 100644
--- a/flutter_/.flutter-plugins-dependencies
+++ b/flutter_/.flutter-plugins-dependencies
@@ -1 +1 @@
-{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"assets_audio_player","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/assets_audio_player-3.0.6/","native_build":true,"dependencies":["assets_audio_player_web"]},{"name":"assets_audio_player_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/assets_audio_player_web-3.0.6/","native_build":true,"dependencies":[]},{"name":"flutter_secure_storage","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_secure_storage-8.0.0/","native_build":true,"dependencies":[]},{"name":"flutter_sound","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_sound-8.5.0/","native_build":true,"dependencies":[]},{"name":"flutter_web_auth","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_web_auth-0.5.0/","native_build":true,"dependencies":[]},{"name":"google_sign_in_ios","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/google_sign_in_ios-5.6.1/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/path_provider_foundation-2.2.0/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.1.5/","native_build":true,"dependencies":[]}],"android":[{"name":"assets_audio_player","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/assets_audio_player-3.0.6/","native_build":true,"dependencies":["assets_audio_player_web"]},{"name":"assets_audio_player_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/assets_audio_player_web-3.0.6/","native_build":true,"dependencies":[]},{"name":"flutter_secure_storage","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_secure_storage-8.0.0/","native_build":true,"dependencies":[]},{"name":"flutter_sound","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_sound-8.5.0/","native_build":true,"dependencies":[]},{"name":"flutter_web_auth","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_web_auth-0.5.0/","native_build":true,"dependencies":[]},{"name":"google_sign_in_android","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/google_sign_in_android-6.1.8/","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/path_provider_android-2.0.24/","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/shared_preferences_android-2.0.17/","native_build":true,"dependencies":[]}],"macos":[{"name":"assets_audio_player","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/assets_audio_player-3.0.6/","native_build":true,"dependencies":["assets_audio_player_web"]},{"name":"assets_audio_player_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/assets_audio_player_web-3.0.6/","native_build":true,"dependencies":[]},{"name":"flutter_secure_storage_macos","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.0.0/","native_build":true,"dependencies":[]},{"name":"flutter_web_auth","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_web_auth-0.5.0/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/path_provider_foundation-2.2.0/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.1.5/","native_build":true,"dependencies":[]}],"linux":[{"name":"flutter_secure_storage_linux","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.1.3/","native_build":true,"dependencies":[]},{"name":"path_provider_linux","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.10/","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.1.5/","native_build":false,"dependencies":["path_provider_linux"]}],"windows":[{"name":"flutter_secure_storage_windows","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-2.0.0/","native_build":true,"dependencies":[]},{"name":"path_provider_windows","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.5/","native_build":false,"dependencies":[]},{"name":"shared_preferences_windows","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.1.5/","native_build":false,"dependencies":["path_provider_windows"]}],"web":[{"name":"assets_audio_player_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/assets_audio_player_web-3.0.6/","dependencies":[]},{"name":"flutter_secure_storage_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.1.1/","dependencies":[]},{"name":"flutter_sound_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_sound_web-8.5.0/","dependencies":[]},{"name":"flutter_web_auth","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_web_auth-0.5.0/","dependencies":[]},{"name":"google_sign_in_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/google_sign_in_web-0.10.2+1/","dependencies":[]},{"name":"shared_preferences_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/shared_preferences_web-2.0.6/","dependencies":[]}]},"dependencyGraph":[{"name":"assets_audio_player","dependencies":["path_provider","assets_audio_player_web"]},{"name":"assets_audio_player_web","dependencies":[]},{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":[]},{"name":"flutter_sound","dependencies":["path_provider","flutter_sound_web"]},{"name":"flutter_sound_web","dependencies":[]},{"name":"flutter_web_auth","dependencies":[]},{"name":"google_sign_in","dependencies":["google_sign_in_android","google_sign_in_ios","google_sign_in_web"]},{"name":"google_sign_in_android","dependencies":[]},{"name":"google_sign_in_ios","dependencies":[]},{"name":"google_sign_in_web","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]}],"date_created":"2023-03-25 22:01:38.871343","version":"3.7.8"}
\ No newline at end of file
+{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"assets_audio_player","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/assets_audio_player-3.0.6/","native_build":true,"dependencies":["assets_audio_player_web"]},{"name":"assets_audio_player_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/assets_audio_player_web-3.0.6/","native_build":true,"dependencies":[]},{"name":"flutter_secure_storage","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_secure_storage-8.0.0/","native_build":true,"dependencies":[]},{"name":"flutter_sound","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_sound-8.5.0/","native_build":true,"dependencies":[]},{"name":"flutter_web_auth","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_web_auth-0.5.0/","native_build":true,"dependencies":[]},{"name":"google_sign_in_ios","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/google_sign_in_ios-5.6.1/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/path_provider_foundation-2.2.0/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.1.5/","native_build":true,"dependencies":[]}],"android":[{"name":"assets_audio_player","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/assets_audio_player-3.0.6/","native_build":true,"dependencies":["assets_audio_player_web"]},{"name":"assets_audio_player_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/assets_audio_player_web-3.0.6/","native_build":true,"dependencies":[]},{"name":"flutter_secure_storage","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_secure_storage-8.0.0/","native_build":true,"dependencies":[]},{"name":"flutter_sound","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_sound-8.5.0/","native_build":true,"dependencies":[]},{"name":"flutter_web_auth","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_web_auth-0.5.0/","native_build":true,"dependencies":[]},{"name":"google_sign_in_android","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/google_sign_in_android-6.1.8/","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/path_provider_android-2.0.24/","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/shared_preferences_android-2.0.17/","native_build":true,"dependencies":[]}],"macos":[{"name":"assets_audio_player","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/assets_audio_player-3.0.6/","native_build":true,"dependencies":["assets_audio_player_web"]},{"name":"assets_audio_player_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/assets_audio_player_web-3.0.6/","native_build":true,"dependencies":[]},{"name":"flutter_secure_storage_macos","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.0.0/","native_build":true,"dependencies":[]},{"name":"flutter_web_auth","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_web_auth-0.5.0/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/path_provider_foundation-2.2.0/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.1.5/","native_build":true,"dependencies":[]}],"linux":[{"name":"flutter_secure_storage_linux","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.1.3/","native_build":true,"dependencies":[]},{"name":"path_provider_linux","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.10/","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.1.5/","native_build":false,"dependencies":["path_provider_linux"]}],"windows":[{"name":"flutter_secure_storage_windows","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-2.0.0/","native_build":true,"dependencies":[]},{"name":"path_provider_windows","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.5/","native_build":false,"dependencies":[]},{"name":"shared_preferences_windows","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.1.5/","native_build":false,"dependencies":["path_provider_windows"]}],"web":[{"name":"assets_audio_player_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/assets_audio_player_web-3.0.6/","dependencies":[]},{"name":"flutter_secure_storage_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.1.1/","dependencies":[]},{"name":"flutter_sound_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_sound_web-8.5.0/","dependencies":[]},{"name":"flutter_web_auth","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/flutter_web_auth-0.5.0/","dependencies":[]},{"name":"google_sign_in_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/google_sign_in_web-0.10.2+1/","dependencies":[]},{"name":"shared_preferences_web","path":"/Users/yunhyegyeong/.pub-cache/hosted/pub.dev/shared_preferences_web-2.0.6/","dependencies":[]}]},"dependencyGraph":[{"name":"assets_audio_player","dependencies":["path_provider","assets_audio_player_web"]},{"name":"assets_audio_player_web","dependencies":[]},{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":[]},{"name":"flutter_sound","dependencies":["path_provider","flutter_sound_web"]},{"name":"flutter_sound_web","dependencies":[]},{"name":"flutter_web_auth","dependencies":[]},{"name":"google_sign_in","dependencies":["google_sign_in_android","google_sign_in_ios","google_sign_in_web"]},{"name":"google_sign_in_android","dependencies":[]},{"name":"google_sign_in_ios","dependencies":[]},{"name":"google_sign_in_web","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]}],"date_created":"2023-03-30 08:58:14.824655","version":"3.7.8"}
\ No newline at end of file
diff --git a/flutter_/build/c075001b96339384a97db4862b8ab8db.cache.dill.track.dill b/flutter_/build/c075001b96339384a97db4862b8ab8db.cache.dill.track.dill
index a3aa8c7..be22739 100644
Binary files a/flutter_/build/c075001b96339384a97db4862b8ab8db.cache.dill.track.dill and b/flutter_/build/c075001b96339384a97db4862b8ab8db.cache.dill.track.dill differ
diff --git a/flutter_/build/ios/Debug-iphonesimulator/App.framework/App b/flutter_/build/ios/Debug-iphonesimulator/App.framework/App
index 98d486d..dcefa2b 100755
Binary files a/flutter_/build/ios/Debug-iphonesimulator/App.framework/App and b/flutter_/build/ios/Debug-iphonesimulator/App.framework/App differ
diff --git a/flutter_/build/ios/Debug-iphonesimulator/App.framework/_CodeSignature/CodeResources b/flutter_/build/ios/Debug-iphonesimulator/App.framework/_CodeSignature/CodeResources
index 136ab1d..e5081c7 100644
--- a/flutter_/build/ios/Debug-iphonesimulator/App.framework/_CodeSignature/CodeResources
+++ b/flutter_/build/ios/Debug-iphonesimulator/App.framework/_CodeSignature/CodeResources
@@ -54,7 +54,7 @@
flutter_assets/kernel_blob.bin
- VaFQRN0uZ9NcssyyQiS7wQvDnqA=
+ KFRX++YPup8YynmNCslU7ofqEVY=
flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
@@ -180,7 +180,7 @@
hash2
- /mrFC1+WIlU+d3yhCmfVhS+3qccKjpULSzcxGvjQVaE=
+ jpwgqJ0DxUCAAMDdsisN89DnZiFb1SkSwVWeTL8ilwM=
flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
diff --git a/flutter_/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/kernel_blob.bin b/flutter_/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/kernel_blob.bin
index a3aa8c7..be22739 100644
Binary files a/flutter_/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/kernel_blob.bin and b/flutter_/build/ios/Debug-iphonesimulator/App.framework/flutter_assets/kernel_blob.bin differ
diff --git a/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/App.framework/App b/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/App.framework/App
index 98d486d..dcefa2b 100755
Binary files a/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/App.framework/App and b/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/App.framework/App differ
diff --git a/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/App.framework/_CodeSignature/CodeResources b/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/App.framework/_CodeSignature/CodeResources
index 136ab1d..e5081c7 100644
--- a/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/App.framework/_CodeSignature/CodeResources
+++ b/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/App.framework/_CodeSignature/CodeResources
@@ -54,7 +54,7 @@
flutter_assets/kernel_blob.bin
- VaFQRN0uZ9NcssyyQiS7wQvDnqA=
+ KFRX++YPup8YynmNCslU7ofqEVY=
flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
@@ -180,7 +180,7 @@
hash2
- /mrFC1+WIlU+d3yhCmfVhS+3qccKjpULSzcxGvjQVaE=
+ jpwgqJ0DxUCAAMDdsisN89DnZiFb1SkSwVWeTL8ilwM=
flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
diff --git a/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin b/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin
index a3aa8c7..be22739 100644
Binary files a/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin and b/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin differ
diff --git a/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Runner b/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Runner
index 47370fa..5eac1e2 100755
Binary files a/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Runner and b/flutter_/build/ios/Debug-iphonesimulator/Runner.app/Runner differ
diff --git a/flutter_/build/ios/Debug-iphonesimulator/Runner.app/_CodeSignature/CodeResources b/flutter_/build/ios/Debug-iphonesimulator/Runner.app/_CodeSignature/CodeResources
index 41dc649..2660598 100644
--- a/flutter_/build/ios/Debug-iphonesimulator/Runner.app/_CodeSignature/CodeResources
+++ b/flutter_/build/ios/Debug-iphonesimulator/Runner.app/_CodeSignature/CodeResources
@@ -46,7 +46,7 @@
Frameworks/App.framework/App
- nnhEF63Q3SPn42+FRqgrLCUDpZA=
+ hHaa6Vt+tWLdRmwVVLvUPkHZB34=
Frameworks/App.framework/Info.plist
@@ -54,7 +54,7 @@
Frameworks/App.framework/_CodeSignature/CodeResources
- V3kJMViNpsWYBYul0Joe6DQaIC8=
+ MgWeds2I1Xkwnylq8BkeKuRu1nU=
Frameworks/App.framework/flutter_assets/AssetManifest.json
@@ -102,7 +102,7 @@
Frameworks/App.framework/flutter_assets/kernel_blob.bin
- VaFQRN0uZ9NcssyyQiS7wQvDnqA=
+ KFRX++YPup8YynmNCslU7ofqEVY=
Frameworks/App.framework/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
@@ -811,7 +811,7 @@
hash2
- oLFS6I75+E+HQjXVMCqVkwy6nSDvn/xsTm0Mw2BcF6w=
+ L9vDESLD4wCpnna+mbfXCh/hTr08bt3Hnsn+FMcaDUQ=
Frameworks/App.framework/Info.plist
@@ -825,7 +825,7 @@
hash2
- 9C0KNbMAD77Sj0DVfMpBSohewel16cD65gq/fY1gZl4=
+ 2nzP/zNZts5WNW9oinHFleW57VxKXfUlA2A8oumcyUc=
Frameworks/App.framework/flutter_assets/AssetManifest.json
@@ -909,7 +909,7 @@
hash2
- /mrFC1+WIlU+d3yhCmfVhS+3qccKjpULSzcxGvjQVaE=
+ jpwgqJ0DxUCAAMDdsisN89DnZiFb1SkSwVWeTL8ilwM=
Frameworks/App.framework/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
diff --git a/flutter_/build/ios/iphonesimulator/Runner.app/Frameworks/App.framework/App b/flutter_/build/ios/iphonesimulator/Runner.app/Frameworks/App.framework/App
index 98d486d..dcefa2b 100755
Binary files a/flutter_/build/ios/iphonesimulator/Runner.app/Frameworks/App.framework/App and b/flutter_/build/ios/iphonesimulator/Runner.app/Frameworks/App.framework/App differ
diff --git a/flutter_/build/ios/iphonesimulator/Runner.app/Frameworks/App.framework/_CodeSignature/CodeResources b/flutter_/build/ios/iphonesimulator/Runner.app/Frameworks/App.framework/_CodeSignature/CodeResources
index 136ab1d..e5081c7 100644
--- a/flutter_/build/ios/iphonesimulator/Runner.app/Frameworks/App.framework/_CodeSignature/CodeResources
+++ b/flutter_/build/ios/iphonesimulator/Runner.app/Frameworks/App.framework/_CodeSignature/CodeResources
@@ -54,7 +54,7 @@
flutter_assets/kernel_blob.bin
- VaFQRN0uZ9NcssyyQiS7wQvDnqA=
+ KFRX++YPup8YynmNCslU7ofqEVY=
flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
@@ -180,7 +180,7 @@
hash2
- /mrFC1+WIlU+d3yhCmfVhS+3qccKjpULSzcxGvjQVaE=
+ jpwgqJ0DxUCAAMDdsisN89DnZiFb1SkSwVWeTL8ilwM=
flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
diff --git a/flutter_/build/ios/iphonesimulator/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin b/flutter_/build/ios/iphonesimulator/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin
index a3aa8c7..be22739 100644
Binary files a/flutter_/build/ios/iphonesimulator/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin and b/flutter_/build/ios/iphonesimulator/Runner.app/Frameworks/App.framework/flutter_assets/kernel_blob.bin differ
diff --git a/flutter_/build/ios/iphonesimulator/Runner.app/Runner b/flutter_/build/ios/iphonesimulator/Runner.app/Runner
index 47370fa..5eac1e2 100755
Binary files a/flutter_/build/ios/iphonesimulator/Runner.app/Runner and b/flutter_/build/ios/iphonesimulator/Runner.app/Runner differ
diff --git a/flutter_/build/ios/iphonesimulator/Runner.app/_CodeSignature/CodeResources b/flutter_/build/ios/iphonesimulator/Runner.app/_CodeSignature/CodeResources
index 41dc649..2660598 100644
--- a/flutter_/build/ios/iphonesimulator/Runner.app/_CodeSignature/CodeResources
+++ b/flutter_/build/ios/iphonesimulator/Runner.app/_CodeSignature/CodeResources
@@ -46,7 +46,7 @@
Frameworks/App.framework/App
- nnhEF63Q3SPn42+FRqgrLCUDpZA=
+ hHaa6Vt+tWLdRmwVVLvUPkHZB34=
Frameworks/App.framework/Info.plist
@@ -54,7 +54,7 @@
Frameworks/App.framework/_CodeSignature/CodeResources
- V3kJMViNpsWYBYul0Joe6DQaIC8=
+ MgWeds2I1Xkwnylq8BkeKuRu1nU=
Frameworks/App.framework/flutter_assets/AssetManifest.json
@@ -102,7 +102,7 @@
Frameworks/App.framework/flutter_assets/kernel_blob.bin
- VaFQRN0uZ9NcssyyQiS7wQvDnqA=
+ KFRX++YPup8YynmNCslU7ofqEVY=
Frameworks/App.framework/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
@@ -811,7 +811,7 @@
hash2
- oLFS6I75+E+HQjXVMCqVkwy6nSDvn/xsTm0Mw2BcF6w=
+ L9vDESLD4wCpnna+mbfXCh/hTr08bt3Hnsn+FMcaDUQ=
Frameworks/App.framework/Info.plist
@@ -825,7 +825,7 @@
hash2
- 9C0KNbMAD77Sj0DVfMpBSohewel16cD65gq/fY1gZl4=
+ 2nzP/zNZts5WNW9oinHFleW57VxKXfUlA2A8oumcyUc=
Frameworks/App.framework/flutter_assets/AssetManifest.json
@@ -909,7 +909,7 @@
hash2
- /mrFC1+WIlU+d3yhCmfVhS+3qccKjpULSzcxGvjQVaE=
+ jpwgqJ0DxUCAAMDdsisN89DnZiFb1SkSwVWeTL8ilwM=
Frameworks/App.framework/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
diff --git a/flutter_/lib/api/login_controller.dart b/flutter_/lib/api/login_controller.dart
index 392f20e..2a5f3c3 100644
--- a/flutter_/lib/api/login_controller.dart
+++ b/flutter_/lib/api/login_controller.dart
@@ -14,7 +14,7 @@ class LoginController {
'email': user.email,
'socialId': user.id,
'nickname': user.displayName ?? user.email,
- 'profileImage' : user.photoUrl?? '',
+ 'profileImage': user.photoUrl ?? '',
};
try {
@@ -23,12 +23,13 @@ class LoginController {
'/api/members/login',
data: userInfo,
options: Options(contentType: Headers.jsonContentType),
-
);
print(response.statusCode);
-
- await storage.write(key: 'accessToken', value: response.data['result']['accessToken']);
+ await storage.write(
+ key: 'accessToken', value: response.data['result']['accessToken']);
+ print(response.data['result']['accessToken']);
+
return googleLoginResponse(token: response.data['accessToken']);
} catch (e) {
print(e);
diff --git a/flutter_/lib/models/statistic.dart b/flutter_/lib/models/statistic.dart
new file mode 100644
index 0000000..3200f92
--- /dev/null
+++ b/flutter_/lib/models/statistic.dart
@@ -0,0 +1,25 @@
+import 'dart:ffi';
+
+class Statistic {
+ String word;
+ int frequency;
+ Float ratio;
+
+ Statistic({
+ required this.word,
+ required this.frequency,
+ required this.ratio,
+ });
+
+ factory Statistic.fromJson(Map json) => Statistic(
+ word: json['word'],
+ frequency: json['frequency'],
+ ratio: json['ratio'],
+ );
+
+ Map toJson() => {
+ 'word': word,
+ 'frequency': frequency,
+ 'ratio': ratio,
+ };
+}
\ No newline at end of file
diff --git a/flutter_/lib/models/tmp_chart.dart b/flutter_/lib/models/tmp_chart.dart
index f9e9de5..e76e8d7 100644
--- a/flutter_/lib/models/tmp_chart.dart
+++ b/flutter_/lib/models/tmp_chart.dart
@@ -1,9 +1,6 @@
-class TmpChart {
- final String name;
- final num n1;
- final num n2;
- final num n3;
- final num n4;
+class Chart {
+ final String word;
+ final List ratio;
- TmpChart(this.name, this.n1, this.n2, this.n3, this.n4);
+ Chart(this.word, this.ratio);
}
\ No newline at end of file
diff --git a/flutter_/lib/repositories/tmp_chart_repository.dart b/flutter_/lib/repositories/tmp_chart_repository.dart
index 41c11e6..75e4c83 100644
--- a/flutter_/lib/repositories/tmp_chart_repository.dart
+++ b/flutter_/lib/repositories/tmp_chart_repository.dart
@@ -1,4 +1,4 @@
-import 'package:flutter_/models/tmp_chart.dart';
+/*import 'package:flutter_/models/tmp_chart.dart';
class TmpChartRepository {
@@ -10,3 +10,4 @@ class TmpChartRepository {
return _dumyTmpChart;
}
}
+*/
\ No newline at end of file
diff --git a/flutter_/lib/screens/chart_screen.dart b/flutter_/lib/screens/chart_screen.dart
index e0e8c42..460a037 100644
--- a/flutter_/lib/screens/chart_screen.dart
+++ b/flutter_/lib/screens/chart_screen.dart
@@ -1,16 +1,35 @@
import 'package:flutter/material.dart';
+import 'package:flutter_/models/statistic.dart';
import 'package:flutter_/models/tmp_chart.dart';
import 'package:flutter_/repositories/tmp_chart_repository.dart';
import 'package:syncfusion_flutter_charts/charts.dart';
// ignore: must_be_immutable
-class ChartScreen extends StatelessWidget {
- ChartScreen({super.key});
+class ChartPage extends StatefulWidget {
+ final List statistic;
- List chartData = TmpChartRepository().getTmpChart();
+ ChartPage({super.key, required this.statistic});
+ @override
+ _ChartPageState createState() => _ChartPageState();
+}
+
+class _ChartPageState extends State {
@override
Widget build(BuildContext context) {
+ List statistic = widget.statistic;
+ List ratioList = statistic.map((item) => item['ratio']).toList();
+ final List chartData = [Chart('차트', ratioList)];
+ /*
+ List statisticList = statistic.map((data) {
+ return Statistic(
+ word: data['word'],
+ frequency: data['frequency'],
+ ratio: data['ratio'],
+ );
+ }).toList();
+ */
+
return SfCartesianChart(
plotAreaBorderWidth: 0,
primaryXAxis: CategoryAxis(
@@ -20,27 +39,27 @@ class ChartScreen extends StatelessWidget {
isVisible: false,
),
series: [
- StackedBar100Series(
+ StackedBar100Series(
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(8), bottomLeft: Radius.circular(8)),
dataSource: chartData,
- xValueMapper: (TmpChart data, _) => data.name,
- yValueMapper: (TmpChart data, _) => data.n1),
- StackedBar100Series(
+ xValueMapper: (Chart data, _) => data.word,
+ yValueMapper: (Chart data, int index) => data.ratio[0]),
+ StackedBar100Series(
dataSource: chartData,
- xValueMapper: (TmpChart data, _) => data.name,
- yValueMapper: (TmpChart data, _) => data.n2),
- StackedBar100Series(
+ xValueMapper: (Chart data, _) => data.word,
+ yValueMapper: (Chart data, int index) => data.ratio[1]),
+ StackedBar100Series(
dataSource: chartData,
- xValueMapper: (TmpChart data, _) => data.name,
- yValueMapper: (TmpChart data, _) => data.n3),
- StackedBar100Series(
+ xValueMapper: (Chart data, _) => data.word,
+ yValueMapper: (Chart data, int index) => data.ratio[2]),
+ StackedBar100Series(
borderRadius: const BorderRadius.only(
topRight: Radius.circular(8),
bottomRight: Radius.circular(8)),
dataSource: chartData,
- xValueMapper: (TmpChart data, _) => data.name,
- yValueMapper: (TmpChart data, _) => data.n4),
+ xValueMapper: (Chart data, _) => data.word,
+ yValueMapper: (Chart data, _) => data.ratio[3]),
]);
}
}
diff --git a/flutter_/lib/screens/detail_screen.dart b/flutter_/lib/screens/detail_screen.dart
index 4f288a6..1378d20 100644
--- a/flutter_/lib/screens/detail_screen.dart
+++ b/flutter_/lib/screens/detail_screen.dart
@@ -1,44 +1,49 @@
-import 'dart:math';
-
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
-import 'package:flutter_/models/board.dart';
-import 'package:flutter_/models/tmp_chart.dart';
-import 'package:flutter_/repositories/board_repository.dart';
-import 'package:flutter_/repositories/tmp_chart_repository.dart';
import 'package:flutter_/screens/chart_screen.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
-
-List chartData = TmpChartRepository().getTmpChart();
+import 'package:intl/intl.dart';
class DetailPage extends StatefulWidget {
final int index;
- DetailPage(this.index);
+ DetailPage({super.key, required this.index});
+
+ @override
+ _DetailPageState createState() => _DetailPageState();
+}
+
+class _DetailPageState extends State {
+ final storage = const FlutterSecureStorage();
- List palette = const [
+ late String title;
+ late String location;
+ late String memo;
+ late String startTime;
+ late List statistic;
+
+ List palette = [
Color.fromRGBO(75, 135, 185, 1),
Color.fromRGBO(192, 108, 132, 1),
Color.fromRGBO(246, 114, 128, 1),
Color.fromRGBO(248, 177, 149, 1),
- Color.fromRGBO(116, 180, 155, 1),
- Color.fromRGBO(0, 168, 181, 1),
- Color.fromRGBO(73, 76, 162, 1),
- Color.fromRGBO(255, 205, 96, 1),
- Color.fromRGBO(255, 240, 219, 1),
- Color.fromRGBO(238, 238, 238, 1)
];
@override
- _DetailPageState createState() => _DetailPageState();
-}
-
-class _DetailPageState extends State {
- final storage = const FlutterSecureStorage();
+ void initState() {
+ super.initState();
+ _getVoice(context, widget.index);
+ }
@override
Widget build(BuildContext context) {
final int index = widget.index;
+
+ DateTime formmated = DateTime.parse(startTime); // DateTime으로 파싱
+ String date =
+ DateFormat('yyyy년 MM월 dd일').format(formmated); // DateTime으로 파싱
+ String time = DateFormat('HH시 mm분').format(formmated);
+
return Scaffold(
appBar: AppBar(),
body: Center(
@@ -46,13 +51,13 @@ class _DetailPageState extends State {
Column(mainAxisAlignment: MainAxisAlignment.center, children: [
Container(
margin: const EdgeInsets.only(bottom: 30),
- /*child: Text(
- '${board.title} 결과',
+ child: Text(
+ '$title 결과',
style: const TextStyle(
fontWeight: FontWeight.bold,
fontSize: 20,
),
- ),*/
+ ),
),
Container(
margin: const EdgeInsets.only(bottom: 30),
@@ -86,10 +91,10 @@ class _DetailPageState extends State {
fontWeight: FontWeight.bold,
fontSize: 17,
)),
- /*Text(board.location,
+ Text(location,
style: const TextStyle(
fontSize: 17,
- )),*/
+ )),
]),
),
Padding(
@@ -102,40 +107,53 @@ class _DetailPageState extends State {
fontWeight: FontWeight.bold,
fontSize: 17,
)),
- /*Text('${board.startTime}',
+ Text(date,
style: const TextStyle(
fontSize: 17,
- )),*/
+ )),
]),
),
Padding(
padding: const EdgeInsets.all(8),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: const [
- Text('시간',
+ children: [
+ const Text('시간',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 17,
)),
+ Text(time,
+ style: const TextStyle(
+ fontSize: 17,
+ )),
]),
),
- Padding(
- padding: const EdgeInsets.all(8),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- const Text('메모',
+ Expanded(
+ child: SingleChildScrollView(
+ child: Padding(
+ padding: const EdgeInsets.all(8),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ const Text(
+ '메모',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 17,
- )),
- /*Text(board.memo,
+ ),
+ ),
+ Text(
+ memo,
style: const TextStyle(
fontSize: 17,
- )),*/
- ]),
- )
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ),
],
),
),
@@ -153,7 +171,7 @@ class _DetailPageState extends State {
//child: Text(title),
child: Column(
children: [
- Center(
+ const Center(
child: Padding(
padding: EdgeInsets.only(top: 25, bottom: 10),
child: Text('나의 통계',
@@ -164,12 +182,16 @@ class _DetailPageState extends State {
)),
Container(
height: 60,
- child: ChartScreen(),
+ child: ChartPage(statistic: statistic),
+ ),
+ Column(
+ children: List.generate(statistic.length, (i) {
+ return Index(
+ color: palette[i],
+ word: statistic[i]['word'],
+ ratio: '${statistic[i]['ratio']}');
+ }).toList(),
),
- Index('${chartData.first.n1}'),
- Index('${chartData.first.n2}'),
- Index('${chartData.first.n3}'),
- Index('${chartData.first.n4}'),
],
),
),
@@ -194,13 +216,18 @@ class _DetailPageState extends State {
},
),
);
- print(response.data['result'].runtimeType);
+ print(response.data);
//List boardList = response.data['result'];
- //setState(() {
- // boards = boardList;
- //});
-
+ setState(() {
+ title = response.data['result']['title'];
+ location = response.data['result']['location'];
+ memo = response.data['result']['memo'];
+ startTime = response.data['result']['startTime'];
+ statistic = response.data['result']['statistic'];
+ statistic.sort((a, b) => b['ratio'].compareTo(a['ratio']));
+ statistic = statistic.sublist(0, 4);
+ });
} catch (e) {
print('GET Error $e');
}
@@ -208,36 +235,39 @@ class _DetailPageState extends State {
}
class Index extends StatelessWidget {
- final String txt;
- const Index(this.txt);
+ String word;
+ String ratio;
+ Color color;
+
+ Index({super.key, required this.word, required this.ratio, required this.color});
@override
Widget build(BuildContext context) {
return Container(
- margin: EdgeInsets.fromLTRB(60, 20, 50, 10),
+ margin: const EdgeInsets.fromLTRB(60, 20, 50, 10),
child: Row(
children: [
Container(
height: 22,
width: 22,
decoration: BoxDecoration(
- color: Color.fromRGBO(75, 135, 185, 1),
+ color: color,
shape: BoxShape.circle),
),
Container(
- margin: EdgeInsets.only(left: 10),
+ margin: const EdgeInsets.only(left: 10),
height: 25,
width: 200,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
- '사과',
- style: TextStyle(fontSize: 18),
+ word,
+ style: const TextStyle(fontSize: 18),
),
Text(
- '${txt}%',
- style: TextStyle(fontSize: 18),
+ '$ratio%',
+ style: const TextStyle(fontSize: 18),
),
],
)),
diff --git a/flutter_/lib/screens/generate_screen.dart b/flutter_/lib/screens/generate_screen.dart
index 1be9318..64c0f3a 100644
--- a/flutter_/lib/screens/generate_screen.dart
+++ b/flutter_/lib/screens/generate_screen.dart
@@ -61,7 +61,7 @@ class _GeneratePageState extends State {
);
}
- Widget _buildInputBox(String hintText,
+ Widget _buildInputBox(String text,
{double? height, TextEditingController? controller}) {
return Container(
margin: const EdgeInsets.fromLTRB(13, 6, 13, 6),
@@ -77,7 +77,8 @@ class _GeneratePageState extends State {
child: TextFormField(
controller: controller,
decoration: InputDecoration(
- hintText: hintText,
+ labelText: text,
+ hintText: text,
contentPadding: const EdgeInsets.symmetric(horizontal: 16),
border: InputBorder.none,
),
diff --git a/flutter_/lib/screens/list_screen.dart b/flutter_/lib/screens/list_screen.dart
index c4d09e7..a7fca87 100644
--- a/flutter_/lib/screens/list_screen.dart
+++ b/flutter_/lib/screens/list_screen.dart
@@ -1,4 +1,5 @@
import 'package:dio/dio.dart';
+import 'package:intl/intl.dart';
import 'package:flutter/material.dart';
import 'package:flutter_/screens/modify_screen.dart';
import 'package:flutter_/screens/detail_screen.dart';
@@ -30,6 +31,10 @@ class _ListPageState extends State {
padding: const EdgeInsets.all(10),
itemCount: boards.length,
itemBuilder: (context, index) {
+ DateTime startTime = DateTime.parse(boards[index]['startTime']); // DateTime으로 파싱
+ String date = DateFormat('yyyy년 MM월 dd일').format(startTime); // DateTime으로 파싱
+ String time = DateFormat('HH시 mm분').format(startTime);
+ // "yyyy년 MM월 dd일" 형식의 문자열로 변환
return Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(16),
@@ -38,9 +43,10 @@ class _ListPageState extends State {
height: 120,
child: GestureDetector(
onTap: () {
- debugPrint('The record has been tapped');
+ debugPrint('The record $index has been tapped');
Navigator.of(context).push(MaterialPageRoute(
- builder: (BuildContext context) => DetailPage(index)));
+
+ builder: (BuildContext context) => DetailPage(index: boards[index]['boardId'],)));
},
child: Row(children: [
Expanded(
@@ -71,7 +77,13 @@ class _ListPageState extends State {
),
),
Text(
- '${boards[index]['startTime']}',
+ date,
+ style: const TextStyle(
+ fontSize: 16,
+ ),
+ ),
+ Text(
+ time,
style: const TextStyle(
fontSize: 16,
),
@@ -119,7 +131,7 @@ class _ListPageState extends State {
MaterialPageRoute(
builder: (BuildContext
context) =>
- ModifyPage(index)));
+ ModifyPage(boards[index]['boardId'])));
},
child: const Text(
'수정하기',
diff --git a/flutter_/lib/screens/modify_screen.dart b/flutter_/lib/screens/modify_screen.dart
index 19591fb..87a660d 100644
--- a/flutter_/lib/screens/modify_screen.dart
+++ b/flutter_/lib/screens/modify_screen.dart
@@ -16,11 +16,23 @@ class ModifyPage extends StatefulWidget {
class _ModifyPageState extends State {
final storage = const FlutterSecureStorage();
+ String? xTitle;
+ String? xLocation;
+ String? xMemo;
+
final _titleController = TextEditingController();
final _locationController = TextEditingController();
final _memoController = TextEditingController();
+ @override
+ void initState() {
+ super.initState();
+ _getVoice(context, widget.index);
+ }
+
+ @override
void dispose() {
+ super.dispose();
_titleController.dispose();
_locationController.dispose();
_memoController.dispose();
@@ -28,7 +40,7 @@ class _ModifyPageState extends State {
@override
Widget build(BuildContext context) {
- final int index = widget.index;
+ final int index = widget.index;
return Scaffold(
appBar: AppBar(),
body: Padding(
@@ -46,11 +58,14 @@ class _ModifyPageState extends State {
),
),
const SizedBox(height: 30),
- _buildInputBox('제목', height: 60, controller: _titleController),
+ _buildInputBox('제목',
+ height: 60, controller: _titleController, x: xTitle),
const SizedBox(height: 16),
- _buildInputBox('위치', height: 60, controller: _locationController),
+ _buildInputBox('위치',
+ height: 60, controller: _locationController, x: xLocation),
const SizedBox(height: 16),
- _buildInputBox('메모', height: 100, controller: _memoController),
+ _buildInputBox('메모',
+ height: 100, controller: _memoController, x: xMemo),
const SizedBox(height: 16),
ElevatedButton(
onPressed: () {
@@ -64,8 +79,8 @@ class _ModifyPageState extends State {
);
}
- Widget _buildInputBox(String hintText,
- {double? height, TextEditingController? controller}) {
+ Widget _buildInputBox(String text,
+ {double? height, TextEditingController? controller, String? x}) {
return Container(
margin: const EdgeInsets.fromLTRB(13, 6, 13, 6),
padding: const EdgeInsets.only(top: 5),
@@ -80,7 +95,8 @@ class _ModifyPageState extends State {
child: TextFormField(
controller: controller,
decoration: InputDecoration(
- hintText: hintText,
+ labelText: text,
+ hintText: text,
contentPadding: const EdgeInsets.symmetric(horizontal: 16),
border: InputBorder.none,
),
@@ -92,12 +108,6 @@ class _ModifyPageState extends State {
void _getVoice(BuildContext context, id) async {
final accessToken = await storage.read(key: 'accessToken');
- final postBoard = PostBoard(
- title: _titleController.text,
- location: _locationController.text,
- memo: _memoController.text,
- );
-
Dio dio = Dio();
dio.options.baseUrl = 'http://34.22.70.110:9090';
dio.options.connectTimeout = const Duration(seconds: 5000);
@@ -112,16 +122,20 @@ class _ModifyPageState extends State {
'Authorization': 'Bearer $accessToken',
},
),
- data: postBoard.toJson(),
);
- Navigator.of(context).push(
- MaterialPageRoute(
- builder: (BuildContext context) => ListPage(),
- ),
- );
+ setState(() {
+ xTitle = response.data['result']['title'];
+ xLocation = response.data['result']['location'];
+ xMemo = response.data['result']['memo'];
+
+ _titleController.text = xTitle!;
+ _locationController.text = xLocation!;
+ _memoController.text = xMemo!;
+ });
+
} catch (e) {
- print('POST Error $e');
+ print('GET Error $e');
}
}
@@ -157,7 +171,7 @@ class _ModifyPageState extends State {
),
);
} catch (e) {
- print('POST Error $e');
+ print('PATCH Error $e');
}
}
}
diff --git a/flutter_/lib/screens/record_screen.dart b/flutter_/lib/screens/record_screen.dart
index a844155..6dcb5a5 100644
--- a/flutter_/lib/screens/record_screen.dart
+++ b/flutter_/lib/screens/record_screen.dart
@@ -1,5 +1,7 @@
+import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter_/screens/list_screen.dart';
+import 'package:flutter_secure_storage/flutter_secure_storage.dart';
class RecordScreen extends StatelessWidget {
@override
@@ -7,35 +9,61 @@ class RecordScreen extends StatelessWidget {
return Scaffold(
appBar: AppBar(),
body: Center(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Container(
- margin: const EdgeInsets.all(30),
- child: Image.network(
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Container(
+ margin: const EdgeInsets.all(30),
+ child: Image.network(
'https://i.pinimg.com/originals/ec/61/2c/ec612c4085582da4f5b8a7c2cc575bf9.gif',
height: 250,
width: 250),
+ ),
+ Container(
+ margin: const EdgeInsets.all(30),
+ child: const Text(
+ '녹음 중',
+ style: TextStyle(
+ fontWeight: FontWeight.bold,
+ fontSize: 20,
+ ),
),
- Container(
- margin: const EdgeInsets.all(30),
- child: const Text('녹음 중',
- style: TextStyle(
- fontWeight: FontWeight.bold,
- fontSize: 20,
- ),),
- ),
- Container(
- margin: const EdgeInsets.all(30),
- child: ElevatedButton(
- onPressed: () {
- Navigator.of(context).push(MaterialPageRoute(
- builder: (BuildContext context) => ListPage(
- )));
- },
- child: const Text('녹음 완료')),
- )
- ],
+ ),
+ Container(
+ margin: const EdgeInsets.all(30),
+ child: ElevatedButton(
+ onPressed: () {
+ _patchTime(context);
+ Navigator.of(context).push(MaterialPageRoute(
+ builder: (BuildContext context) => ListPage()));
+ },
+ child: const Text('녹음 완료')),
+ )
+ ],
)));
}
}
+
+void _patchTime(BuildContext context) async {
+ const storage = FlutterSecureStorage();
+ final accessToken = await storage.read(key: 'accessToken');
+
+ Dio dio = Dio();
+ dio.options.baseUrl = 'http://34.22.70.110:9090';
+ dio.options.connectTimeout = const Duration(seconds: 5000);
+ dio.options.receiveTimeout = const Duration(seconds: 5000);
+ //print(accessToken);
+ // POST 요청 보내기
+ try {
+ await dio.patch(
+ '/api/boards',
+ options: Options(
+ headers: {
+ 'Authorization': 'Bearer $accessToken',
+ },
+ ),
+ );
+ } catch (e) {
+ print('PATCH Error $e');
+ }
+}