From dd055fb077a6feef06dc102f6366e0bd2ee7bced Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Wed, 26 Mar 2025 00:24:07 +0800 Subject: [PATCH] :lipstick: Optimization and bug fixes --- assets/translations/en-US.json | 1 + ios/Podfile.lock | 84 ++++++++++++--------------- lib/screens/account.dart | 13 ++++- lib/screens/account/profile_page.dart | 9 +-- lib/screens/post/publisher_page.dart | 18 +++++- 5 files changed, 70 insertions(+), 55 deletions(-) diff --git a/assets/translations/en-US.json b/assets/translations/en-US.json index a2ed6c0..09fb20b 100644 --- a/assets/translations/en-US.json +++ b/assets/translations/en-US.json @@ -639,6 +639,7 @@ "postQuestionUnansweredWithReward": "Unanswered Question, reward source points {}", "postQuestionAnswered": "Answered Question", "postQuestionAnswerSelect": "Select as Answer", + "postQuestionAnswerTitle": "Selected Question", "postQuestionAnswerSelected": "Answer has been selected, reward has been applied.", "postVideoUpload": "Upload Video", "realmJoin": "Join Realm", diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 1b17a49..4137513 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -189,8 +189,6 @@ PODS: - WebRTC-SDK (= 125.6422.06) - media_kit_libs_ios_video (1.0.4): - Flutter - - media_kit_native_event_loop (1.0.0): - - Flutter - media_kit_video (0.0.1): - Flutter - nanopb (3.30910.0): @@ -212,8 +210,6 @@ PODS: - receive_sharing_intent (1.8.1): - Flutter - SAMKeychain (1.5.3) - - screen_brightness_ios (0.1.0): - - Flutter - SDWebImage (5.20.1): - SDWebImage/Core (= 5.20.1) - SDWebImage/Core (5.20.1) @@ -285,14 +281,12 @@ DEPENDENCIES: - Kingfisher (~> 8.0) - livekit_client (from `.symlinks/plugins/livekit_client/ios`) - media_kit_libs_ios_video (from `.symlinks/plugins/media_kit_libs_ios_video/ios`) - - media_kit_native_event_loop (from `.symlinks/plugins/media_kit_native_event_loop/ios`) - media_kit_video (from `.symlinks/plugins/media_kit_video/ios`) - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - pasteboard (from `.symlinks/plugins/pasteboard/ios`) - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) - receive_sharing_intent (from `.symlinks/plugins/receive_sharing_intent/ios`) - - screen_brightness_ios (from `.symlinks/plugins/screen_brightness_ios/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) @@ -372,8 +366,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/livekit_client/ios" media_kit_libs_ios_video: :path: ".symlinks/plugins/media_kit_libs_ios_video/ios" - media_kit_native_event_loop: - :path: ".symlinks/plugins/media_kit_native_event_loop/ios" media_kit_video: :path: ".symlinks/plugins/media_kit_video/ios" package_info_plus: @@ -386,8 +378,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/permission_handler_apple/ios" receive_sharing_intent: :path: ".symlinks/plugins/receive_sharing_intent/ios" - screen_brightness_ios: - :path: ".symlinks/plugins/screen_brightness_ios/ios" share_plus: :path: ".symlinks/plugins/share_plus/ios" shared_preferences_foundation: @@ -409,65 +399,63 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: Alamofire: 7193b3b92c74a07f85569e1a6c4f4237291e7496 - connectivity_plus: 2a701ffec2c0ae28a48cf7540e279787e77c447d - croppy: b6199bc8d56bd2e03cc11609d1c47ad9875c1321 - device_info_plus: bf2e3232933866d73fe290f2942f2156cdd10342 + connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd + croppy: 979e8ddc254f4642bffe7d52dc7193354b27ba30 + device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 - fast_rsa: dc48fb05f26bb108863de122b2a9f5554e8e2591 - file_picker: b159e0c068aef54932bb15dc9fd1571818edaf49 - file_saver: 503e386464dbe118f630e17b4c2e1190fa0cf808 + fast_rsa: d99f8e1809a4a312fa9216d830186869b2e9eb65 + file_picker: a0560bc09d61de87f12d246fc47d2119e6ef37be + file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6 Firebase: d80354ed7f6df5f9aca55e9eb47cc4b634735eaf - firebase_analytics: e3b6782e70e32b7fa18f7cd233e3201975dd86aa - firebase_core: ac395f994af4e28f6a38b59e05a88ca57abeb874 - firebase_messaging: 7e223f4ee7ca053bf4ce43748e84a6d774ec9728 + firebase_analytics: 4e93dbe66872104d28ae9750fec1800e1fd66858 + firebase_core: 8d552814f6c01ccde5d88939fced4ec26f2f5510 + firebase_messaging: 8b96a4f09841c15a16b96973ef5c3dcfc1a064e4 FirebaseAnalytics: 4fd42def128146e24e480e89f310e3d8534ea42b FirebaseCore: 99fe0c4b44a39f37d99e6404e02009d2db5d718d FirebaseCoreInternal: df24ce5af28864660ecbd13596fc8dd3a8c34629 FirebaseInstallations: 6c963bd2a86aca0481eef4f48f5a4df783ae5917 FirebaseMessaging: 487b634ccdf6f7b7ff180fdcb2a9935490f764e8 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_app_update: 65f61da626cb111d1b24674abc4b01728d7723bc - flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 - flutter_native_splash: df59bb2e1421aa0282cb2e95618af4dcb0c56c29 - flutter_timezone: ac3da59ac941ff1c98a2e1f0293420e020120282 - flutter_udid: b2417673f287ee62817a1de3d1643f47b9f508ab - flutter_webrtc: 90260f83024b1b96d239a575ea4e3708e79344d1 - gal: 6a522c75909f1244732d4596d11d6a2f86ff37a5 + flutter_app_update: 816fdb2e30e4832a7c45e3f108d391c42ef040a9 + flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 + flutter_native_splash: c32d145d68aeda5502d5f543ee38c192065986cf + flutter_timezone: 7c838e17ffd4645d261e87037e5bebf6d38fe544 + flutter_udid: f7c3884e6ec2951efe4f9de082257fc77c4d15e9 + flutter_webrtc: 57f32415b8744e806f9c2a96ccdb60c6a627ba33 + gal: baecd024ebfd13c441269ca7404792a7152fde89 GoogleAppMeasurement: fc0817122bd4d4189164f85374e06773b9561896 GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d - home_widget: 0434835a4c9a75704264feff6be17ea40e0f0d57 - image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1 - in_app_review: a31b5257259646ea78e0e35fc914979b0031d011 + home_widget: f169fc41fd807b4d46ab6615dc44d62adbf9f64f + image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a + in_app_review: 5596fe56fab799e8edb3561c03d053363ab13457 Kingfisher: 323e5c4ec7983aaace12af655a7b51a7f88a599d - livekit_client: 170022ce5f7c8c70d7f862ac9c17e11508ad5fbc - media_kit_libs_ios_video: a5fe24bc7875ccd6378a0978c13185e1344651c1 - media_kit_native_event_loop: e6b2ab20cf0746eb1c33be961fcf79667304fa2a - media_kit_video: 5da63f157170e5bf303bf85453b7ef6971218a2e + livekit_client: 08755cabfa4da4ed455642f460cfbb39bc518070 + media_kit_libs_ios_video: 5a18affdb97d1f5d466dc79988b13eff6c5e2854 + media_kit_video: 1746e198cb697d1ffb734b1d05ec429d1fcd1474 nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 - package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4 - pasteboard: 982969ebaa7c78af3e6cc7761e8f5e77565d9ce0 - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 + package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 + pasteboard: 49088aeb6119d51f976a421db60d8e1ab079b63c + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - receive_sharing_intent: 79c848f5b045674ad60b9fea3bafea59962ad2c1 + receive_sharing_intent: 222384f00ffe7e952bbfabaa9e3967cb87e5fe00 SAMKeychain: 483e1c9f32984d50ca961e26818a534283b4cd5c - screen_brightness_ios: 715ca807df953bf676d339f11464e438143ee625 SDWebImage: 33d0f23bddeb5d209ae959153883247be6703713 - share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f - shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 - sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d + share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a + shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 sqlite3: fc1400008a9b3525f5914ed715a5d1af0b8f4983 - sqlite3_flutter_libs: 487032b9008b28de37c72a3aa66849ef3745f3e6 + sqlite3_flutter_libs: f6acaa2172e6bb3e2e70c771661905080e8ebcf2 SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 - url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe - video_compress: fce97e4fb1dfd88175aa07d2ffc8a2f297f87fbe - volume_controller: 531ddf792994285c9b17f9d8a7e4dcdd29b3eae9 - wakelock_plus: 373cfe59b235a6dd5837d0fb88791d2f13a90d56 + url_launcher_ios: 694010445543906933d732453a59da0a173ae33d + video_compress: f2133a07762889d67f0711ac831faa26f956980e + volume_controller: 3657a1f65bedb98fa41ff7dc5793537919f31b12 + wakelock_plus: 04623e3f525556020ebd4034310f20fe7fda8b49 WebRTC-SDK: 79942c006ea64f6fb48d7da8a4786dfc820bc1db - workmanager: 0afdcf5628bbde6924c21af7836fed07b42e30e6 + workmanager: 01be2de7f184bd15de93a1812936a2b7f42ef07e PODFILE CHECKSUM: 9b244e02f87527430136c8d21cbdcf1cd586b6bc diff --git a/lib/screens/account.dart b/lib/screens/account.dart index 9bc8a89..f2d0643 100644 --- a/lib/screens/account.dart +++ b/lib/screens/account.dart @@ -106,7 +106,18 @@ class _AuthorizedAccountScreen extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ - AccountImage(content: ua.user!.avatar, radius: 28), + GestureDetector( + child: AccountImage( + content: ua.user!.avatar, + radius: 28, + ), + onTap: () { + GoRouter.of(context) + .pushNamed('accountProfilePage', pathParameters: { + 'name': ua.user!.name, + }); + }, + ), _AccountStatusWidget(account: ua.user!), ], ), diff --git a/lib/screens/account/profile_page.dart b/lib/screens/account/profile_page.dart index c59747a..36c53df 100644 --- a/lib/screens/account/profile_page.dart +++ b/lib/screens/account/profile_page.dart @@ -1,3 +1,4 @@ +import 'dart:math' as math; import 'dart:ui'; import 'package:easy_localization/easy_localization.dart'; @@ -227,7 +228,7 @@ class _UserScreenState extends State late final _appBarWidth = MediaQuery.of(context).size.width; late final _appBarHeight = - (_appBarWidth * kBannerAspectRatio).roundToDouble(); + math.min((_appBarWidth * kBannerAspectRatio), 360).roundToDouble(); void _updateAppBarBlur() { if (_scrollController.offset > _appBarHeight) return; @@ -489,10 +490,10 @@ class _UserScreenState extends State ), const Gap(8), Wrap( + spacing: 4, + runSpacing: 4, children: _account!.badges - .map( - (ele) => AccountBadge(badge: ele), - ) + .map((ele) => AccountBadge(badge: ele)) .toList(), ).padding(horizontal: 8), const Gap(8), diff --git a/lib/screens/post/publisher_page.dart b/lib/screens/post/publisher_page.dart index f074e47..fdea667 100644 --- a/lib/screens/post/publisher_page.dart +++ b/lib/screens/post/publisher_page.dart @@ -38,7 +38,7 @@ class _PostPublisherScreenState extends State with SingleTickerProviderStateMixin { late final ScrollController _scrollController = ScrollController(); late final TabController _tabController = - TabController(length: 3, vsync: this); + TabController(length: 5, vsync: this); SnPublisher? _publisher; SnAccount? _account; @@ -137,7 +137,7 @@ class _PostPublisherScreenState extends State late final _appBarWidth = MediaQuery.of(context).size.width; late final _appBarHeight = - (_appBarWidth * kBannerAspectRatio).roundToDouble(); + math.min((_appBarWidth * kBannerAspectRatio), 360).roundToDouble(); void _updateAppBarBlur() { if (_scrollController.offset > _appBarHeight) return; @@ -165,6 +165,8 @@ class _PostPublisherScreenState extends State type: switch (_tabController.index) { 1 => 'story', 2 => 'article', + 3 => 'question', + 4 => 'video', _ => null, }, ); @@ -568,6 +570,18 @@ class _PostPublisherScreenState extends State color: Theme.of(context).colorScheme.onSurface, ), ), + Tab( + icon: Icon( + Symbols.help, + color: Theme.of(context).colorScheme.onSurface, + ), + ), + Tab( + icon: Icon( + Symbols.video_call, + color: Theme.of(context).colorScheme.onSurface, + ), + ), ], ), SliverToBoxAdapter(child: const Divider(height: 1)),