diff --git a/lib/utils/comment.dart b/lib/comment/utils/comment.dart similarity index 99% rename from lib/utils/comment.dart rename to lib/comment/utils/comment.dart index 415fbea71..6386ec664 100644 --- a/lib/utils/comment.dart +++ b/lib/comment/utils/comment.dart @@ -1,11 +1,10 @@ import 'package:lemmy_api_client/v3.dart'; -import 'package:thunder/account/models/account.dart'; -import 'package:thunder/core/auth/helpers/fetch_account.dart'; -import 'package:thunder/core/models/comment_view_tree.dart'; +import 'package:thunder/utils/date_time.dart'; +import 'package:thunder/account/models/account.dart'; import 'package:thunder/core/singletons/lemmy_client.dart'; - -import 'date_time.dart'; +import 'package:thunder/core/models/comment_view_tree.dart'; +import 'package:thunder/core/auth/helpers/fetch_account.dart'; // Optimistically updates a comment CommentView optimisticallyVoteComment(CommentViewTree commentViewTree, int voteType) { diff --git a/lib/utils/navigate_comment.dart b/lib/comment/utils/navigate_comment.dart similarity index 100% rename from lib/utils/navigate_comment.dart rename to lib/comment/utils/navigate_comment.dart diff --git a/lib/community/pages/create_post_page.dart b/lib/community/pages/create_post_page.dart index 6b23c6263..d9a7b6d8e 100644 --- a/lib/community/pages/create_post_page.dart +++ b/lib/community/pages/create_post_page.dart @@ -35,7 +35,7 @@ import 'package:thunder/shared/snackbar.dart'; import 'package:thunder/utils/debounce.dart'; import 'package:thunder/utils/image.dart'; import 'package:thunder/utils/instance.dart'; -import 'package:thunder/utils/navigate_post.dart'; +import 'package:thunder/post/utils/navigate_post.dart'; class CreatePostPage extends StatefulWidget { final int? communityId; diff --git a/lib/community/utils/post_card_action_helpers.dart b/lib/community/utils/post_card_action_helpers.dart index 916c48cc3..cf752a364 100644 --- a/lib/community/utils/post_card_action_helpers.dart +++ b/lib/community/utils/post_card_action_helpers.dart @@ -23,8 +23,8 @@ import 'package:thunder/shared/snackbar.dart'; import 'package:thunder/thunder/bloc/thunder_bloc.dart'; import 'package:thunder/user/bloc/user_bloc.dart'; import 'package:thunder/utils/instance.dart'; -import 'package:thunder/utils/navigate_instance.dart'; -import 'package:thunder/utils/navigate_user.dart'; +import 'package:thunder/instance/utils/navigate_instance.dart'; +import 'package:thunder/user/utils/navigate_user.dart'; import 'package:lemmy_api_client/v3.dart'; import 'package:thunder/core/auth/bloc/auth_bloc.dart'; diff --git a/lib/community/widgets/community_sidebar.dart b/lib/community/widgets/community_sidebar.dart index 0cb3a71c6..1678bc8e0 100644 --- a/lib/community/widgets/community_sidebar.dart +++ b/lib/community/widgets/community_sidebar.dart @@ -21,7 +21,7 @@ import 'package:thunder/shared/avatars/user_avatar.dart'; import 'package:thunder/thunder/bloc/thunder_bloc.dart'; import 'package:thunder/utils/date_time.dart'; import 'package:thunder/utils/instance.dart'; -import 'package:thunder/utils/navigate_user.dart'; +import 'package:thunder/user/utils/navigate_user.dart'; const kSidebarWidthFactor = 0.8; diff --git a/lib/community/widgets/post_card.dart b/lib/community/widgets/post_card.dart index 4bfac6d9b..9683e2fda 100644 --- a/lib/community/widgets/post_card.dart +++ b/lib/community/widgets/post_card.dart @@ -14,7 +14,7 @@ import 'package:thunder/core/models/post_view_media.dart'; import 'package:thunder/feed/bloc/feed_bloc.dart'; import 'package:thunder/post/enums/post_action.dart'; import 'package:thunder/thunder/bloc/thunder_bloc.dart'; -import 'package:thunder/utils/navigate_post.dart'; +import 'package:thunder/post/utils/navigate_post.dart'; class PostCard extends StatefulWidget { final PostViewMedia postViewMedia; diff --git a/lib/community/widgets/post_card_metadata.dart b/lib/community/widgets/post_card_metadata.dart index 4e18fa768..3f7349f66 100644 --- a/lib/community/widgets/post_card_metadata.dart +++ b/lib/community/widgets/post_card_metadata.dart @@ -12,7 +12,7 @@ import 'package:thunder/shared/text/scalable_text.dart'; import 'package:thunder/thunder/bloc/thunder_bloc.dart'; import 'package:thunder/utils/date_time.dart'; import 'package:thunder/utils/instance.dart'; -import 'package:thunder/utils/navigate_user.dart'; +import 'package:thunder/user/utils/navigate_user.dart'; import 'package:thunder/utils/numbers.dart'; class PostCardMetaData extends StatelessWidget { diff --git a/lib/inbox/bloc/inbox_bloc.dart b/lib/inbox/bloc/inbox_bloc.dart index 6b7599d75..e2350531f 100644 --- a/lib/inbox/bloc/inbox_bloc.dart +++ b/lib/inbox/bloc/inbox_bloc.dart @@ -8,7 +8,7 @@ import 'package:stream_transform/stream_transform.dart'; import 'package:thunder/account/models/account.dart'; import 'package:thunder/core/auth/helpers/fetch_account.dart'; import 'package:thunder/core/singletons/lemmy_client.dart'; -import 'package:thunder/utils/comment.dart'; +import 'package:thunder/comment/utils/comment.dart'; part 'inbox_event.dart'; part 'inbox_state.dart'; diff --git a/lib/utils/navigate_instance.dart b/lib/instance/utils/navigate_instance.dart similarity index 100% rename from lib/utils/navigate_instance.dart rename to lib/instance/utils/navigate_instance.dart diff --git a/lib/main.dart b/lib/main.dart index 8905cb835..64a8eef50 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -89,8 +89,10 @@ void main() async { runApp(ThunderApp(notificationsStream: notificationsStreamController.stream)); - // Set high refresh rate after app initialization - FlutterDisplayMode.setHighRefreshRate(); + if (!kIsWeb && Platform.isAndroid) { + // Set high refresh rate after app initialization + FlutterDisplayMode.setHighRefreshRate(); + } // Register to receive BackgroundFetch events after app is terminated. if (!kIsWeb && Platform.isAndroid && (prefs.getBool(LocalSettings.enableInboxNotifications.name) ?? false)) { @@ -146,6 +148,7 @@ class ThunderApp extends StatelessWidget { if (state.status == ThemeStatus.initial) { context.read().add(ThemeChangeEvent()); } + return DynamicColorBuilder( builder: (lightColorScheme, darkColorScheme) { ThemeData theme = FlexThemeData.light(useMaterial3: true, scheme: FlexScheme.values.byName(state.selectedTheme.name)); diff --git a/lib/post/bloc/post_bloc.dart b/lib/post/bloc/post_bloc.dart index b6624d9b5..10aa62626 100644 --- a/lib/post/bloc/post_bloc.dart +++ b/lib/post/bloc/post_bloc.dart @@ -15,7 +15,7 @@ import 'package:thunder/account/models/account.dart'; import 'package:thunder/core/auth/helpers/fetch_account.dart'; import 'package:thunder/core/enums/local_settings.dart'; import 'package:thunder/core/models/post_view_media.dart'; -import 'package:thunder/utils/comment.dart'; +import 'package:thunder/comment/utils/comment.dart'; import 'package:thunder/core/models/comment_view_tree.dart'; import 'package:thunder/core/singletons/lemmy_client.dart'; import 'package:thunder/utils/constants.dart'; diff --git a/lib/post/utils/comment_action_helpers.dart b/lib/post/utils/comment_action_helpers.dart index 5e61fb682..cd858185c 100644 --- a/lib/post/utils/comment_action_helpers.dart +++ b/lib/post/utils/comment_action_helpers.dart @@ -15,8 +15,8 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:thunder/user/bloc/user_bloc.dart'; import 'package:thunder/utils/global_context.dart'; import 'package:thunder/utils/instance.dart'; -import 'package:thunder/utils/navigate_instance.dart'; -import 'package:thunder/utils/navigate_user.dart'; +import 'package:thunder/instance/utils/navigate_instance.dart'; +import 'package:thunder/user/utils/navigate_user.dart'; import '../../core/auth/bloc/auth_bloc.dart'; diff --git a/lib/utils/navigate_create_post.dart b/lib/post/utils/navigate_create_post.dart similarity index 100% rename from lib/utils/navigate_create_post.dart rename to lib/post/utils/navigate_create_post.dart diff --git a/lib/utils/navigate_post.dart b/lib/post/utils/navigate_post.dart similarity index 100% rename from lib/utils/navigate_post.dart rename to lib/post/utils/navigate_post.dart diff --git a/lib/post/widgets/post_view.dart b/lib/post/widgets/post_view.dart index bb6e7070c..b57b694a9 100644 --- a/lib/post/widgets/post_view.dart +++ b/lib/post/widgets/post_view.dart @@ -44,7 +44,7 @@ import 'package:thunder/shared/media_view.dart'; import 'package:thunder/thunder/thunder_icons.dart'; import 'package:thunder/user/utils/special_user_checks.dart'; import 'package:thunder/utils/instance.dart'; -import 'package:thunder/utils/navigate_user.dart'; +import 'package:thunder/user/utils/navigate_user.dart'; import 'package:thunder/utils/numbers.dart'; import 'package:thunder/shared/snackbar.dart'; diff --git a/lib/search/bloc/search_bloc.dart b/lib/search/bloc/search_bloc.dart index 449c835b5..77f9f3ec9 100644 --- a/lib/search/bloc/search_bloc.dart +++ b/lib/search/bloc/search_bloc.dart @@ -13,7 +13,7 @@ import 'package:thunder/core/singletons/lemmy_client.dart'; import 'package:thunder/feed/utils/community.dart'; import 'package:thunder/post/utils/post.dart'; import 'package:thunder/search/utils/search_utils.dart'; -import 'package:thunder/utils/comment.dart'; +import 'package:thunder/comment/utils/comment.dart'; import 'package:thunder/utils/global_context.dart'; import 'package:thunder/utils/instance.dart'; diff --git a/lib/search/pages/search_page.dart b/lib/search/pages/search_page.dart index 789dd707f..9e850e85d 100644 --- a/lib/search/pages/search_page.dart +++ b/lib/search/pages/search_page.dart @@ -43,7 +43,7 @@ import 'package:thunder/utils/debounce.dart'; import 'package:thunder/utils/global_context.dart'; import 'package:thunder/utils/instance.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -import 'package:thunder/utils/navigate_user.dart'; +import 'package:thunder/user/utils/navigate_user.dart'; import 'package:thunder/utils/numbers.dart'; class SearchPage extends StatefulWidget { diff --git a/lib/settings/pages/comment_appearance_settings_page.dart b/lib/settings/pages/comment_appearance_settings_page.dart index 032e89f55..e55bf8bc7 100644 --- a/lib/settings/pages/comment_appearance_settings_page.dart +++ b/lib/settings/pages/comment_appearance_settings_page.dart @@ -16,7 +16,7 @@ import 'package:thunder/settings/widgets/toggle_option.dart'; import 'package:thunder/shared/dialogs.dart'; import 'package:thunder/thunder/bloc/thunder_bloc.dart'; import 'package:thunder/utils/bottom_sheet_list_picker.dart'; -import 'package:thunder/utils/comment.dart'; +import 'package:thunder/comment/utils/comment.dart'; import 'package:thunder/utils/constants.dart'; class CommentAppearanceSettingsPage extends StatefulWidget { diff --git a/lib/shared/comment_header.dart b/lib/shared/comment_header.dart index cf37636fa..7022f2de9 100644 --- a/lib/shared/comment_header.dart +++ b/lib/shared/comment_header.dart @@ -12,7 +12,7 @@ import 'package:thunder/thunder/bloc/thunder_bloc.dart'; import 'package:thunder/thunder/thunder_icons.dart'; import 'package:thunder/user/utils/special_user_checks.dart'; import 'package:thunder/utils/instance.dart'; -import 'package:thunder/utils/navigate_user.dart'; +import 'package:thunder/user/utils/navigate_user.dart'; import 'package:thunder/utils/numbers.dart'; import '../utils/date_time.dart'; diff --git a/lib/shared/comment_reference.dart b/lib/shared/comment_reference.dart index 20264e0bb..5f1625fb2 100644 --- a/lib/shared/comment_reference.dart +++ b/lib/shared/comment_reference.dart @@ -14,7 +14,7 @@ import 'package:thunder/shared/text/scalable_text.dart'; import 'package:thunder/thunder/bloc/thunder_bloc.dart'; import 'package:thunder/utils/date_time.dart'; import 'package:thunder/utils/instance.dart'; -import 'package:thunder/utils/navigate_comment.dart'; +import 'package:thunder/comment/utils/navigate_comment.dart'; import 'package:thunder/utils/numbers.dart'; class CommentReference extends StatefulWidget { diff --git a/lib/shared/cross_posts.dart b/lib/shared/cross_posts.dart index bf221ef05..8ef98fc8c 100644 --- a/lib/shared/cross_posts.dart +++ b/lib/shared/cross_posts.dart @@ -6,8 +6,8 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:thunder/post/utils/post.dart'; import 'package:thunder/utils/instance.dart'; -import 'package:thunder/utils/navigate_create_post.dart'; -import 'package:thunder/utils/navigate_post.dart'; +import 'package:thunder/post/utils/navigate_create_post.dart'; +import 'package:thunder/post/utils/navigate_post.dart'; /// Widget which displays a post's cross-posts class CrossPosts extends StatefulWidget { diff --git a/lib/shared/hero.dart b/lib/shared/hero.dart deleted file mode 100644 index ae2bbd297..000000000 --- a/lib/shared/hero.dart +++ /dev/null @@ -1,91 +0,0 @@ -// https://github.com/fluttercandies/extended_image/blob/master/example/lib/common/widget/hero.dart - -import 'package:extended_image/extended_image.dart'; -import 'package:flutter/material.dart'; - -class HeroWidget extends StatefulWidget { - const HeroWidget({ - super.key, - required this.child, - required this.tag, - required this.slidePagekey, - this.slideType = SlideType.onlyImage, - }); - final Widget child; - final SlideType slideType; - final Object tag; - final GlobalKey slidePagekey; - @override - _HeroWidgetState createState() => _HeroWidgetState(); -} - -class _HeroWidgetState extends State { - RectTween? _rectTween; - - @override - Widget build(BuildContext context) { - return Hero( - tag: widget.tag, - createRectTween: (Rect? begin, Rect? end) { - _rectTween = RectTween(begin: begin, end: end); - return _rectTween!; - }, - flightShuttleBuilder: (BuildContext flightContext, Animation animation, HeroFlightDirection flightDirection, BuildContext fromHeroContext, BuildContext toHeroContext) { - final Hero hero = (flightDirection == HeroFlightDirection.pop ? fromHeroContext.widget : toHeroContext.widget) as Hero; - if (_rectTween == null) { - return hero; - } - - if (flightDirection == HeroFlightDirection.pop) { - final bool fixTransform = widget.slideType == SlideType.onlyImage && (widget.slidePagekey.currentState!.offset != Offset.zero || widget.slidePagekey.currentState!.scale != 1.0); - - final Widget toHeroWidget = (toHeroContext.widget as Hero).child; - return AnimatedBuilder( - animation: animation, - builder: (BuildContext buildContext, Widget? child) { - Widget animatedBuilderChild = hero.child; - - animatedBuilderChild = Stack( - clipBehavior: Clip.antiAlias, - alignment: Alignment.center, - children: [ - Opacity( - opacity: 1 - animation.value, - child: UnconstrainedBox( - child: SizedBox( - width: _rectTween!.begin!.width, - height: _rectTween!.begin!.height, - child: toHeroWidget, - ), - ), - ), - Opacity( - opacity: animation.value, - child: animatedBuilderChild, - ) - ], - ); - - if (fixTransform) { - final Tween offsetTween = Tween(begin: Offset.zero, end: widget.slidePagekey.currentState!.offset); - - final Tween scaleTween = Tween(begin: 1.0, end: widget.slidePagekey.currentState!.scale); - animatedBuilderChild = Transform.translate( - offset: offsetTween.evaluate(animation), - child: Transform.scale( - scale: scaleTween.evaluate(animation), - child: animatedBuilderChild, - ), - ); - } - - return animatedBuilderChild; - }, - ); - } - return hero.child; - }, - child: widget.child, - ); - } -} diff --git a/lib/shared/link_preview_card.dart b/lib/shared/link_preview_card.dart index ad8bf53fe..f4a7863b9 100644 --- a/lib/shared/link_preview_card.dart +++ b/lib/shared/link_preview_card.dart @@ -16,7 +16,7 @@ import 'package:thunder/core/enums/view_mode.dart'; import 'package:thunder/thunder/bloc/thunder_bloc.dart'; import 'package:thunder/utils/instance.dart'; import 'package:thunder/shared/image_preview.dart'; -import 'package:thunder/utils/navigate_user.dart'; +import 'package:thunder/user/utils/navigate_user.dart'; class LinkPreviewCard extends StatelessWidget { const LinkPreviewCard({ diff --git a/lib/thunder/pages/thunder_page.dart b/lib/thunder/pages/thunder_page.dart index 082e628b2..0919d34bc 100644 --- a/lib/thunder/pages/thunder_page.dart +++ b/lib/thunder/pages/thunder_page.dart @@ -49,11 +49,11 @@ import 'package:thunder/search/pages/search_page.dart'; import 'package:thunder/settings/pages/settings_page.dart'; import 'package:thunder/shared/error_message.dart'; import 'package:thunder/thunder/bloc/thunder_bloc.dart'; -import 'package:thunder/utils/navigate_comment.dart'; -import 'package:thunder/utils/navigate_create_post.dart'; -import 'package:thunder/utils/navigate_instance.dart'; -import 'package:thunder/utils/navigate_post.dart'; -import 'package:thunder/utils/navigate_user.dart'; +import 'package:thunder/comment/utils/navigate_comment.dart'; +import 'package:thunder/post/utils/navigate_create_post.dart'; +import 'package:thunder/instance/utils/navigate_instance.dart'; +import 'package:thunder/post/utils/navigate_post.dart'; +import 'package:thunder/user/utils/navigate_user.dart'; import 'package:thunder/utils/notifications_navigation.dart'; String? currentIntent; diff --git a/lib/user/bloc/user_bloc.dart b/lib/user/bloc/user_bloc.dart index 15192db1d..0e0658c48 100644 --- a/lib/user/bloc/user_bloc.dart +++ b/lib/user/bloc/user_bloc.dart @@ -9,7 +9,7 @@ import 'package:thunder/core/auth/helpers/fetch_account.dart'; import 'package:thunder/core/models/comment_view_tree.dart'; import 'package:thunder/core/models/post_view_media.dart'; import 'package:thunder/core/singletons/lemmy_client.dart'; -import 'package:thunder/utils/comment.dart'; +import 'package:thunder/comment/utils/comment.dart'; import 'package:thunder/utils/error_messages.dart'; import 'package:thunder/utils/global_context.dart'; import 'package:thunder/post/utils/post.dart'; diff --git a/lib/user/pages/user_settings_page.dart b/lib/user/pages/user_settings_page.dart index e1e0f155b..d63a712cc 100644 --- a/lib/user/pages/user_settings_page.dart +++ b/lib/user/pages/user_settings_page.dart @@ -22,8 +22,8 @@ import 'package:thunder/user/bloc/user_settings_bloc.dart'; import 'package:thunder/user/widgets/user_indicator.dart'; import 'package:thunder/utils/instance.dart'; import 'package:thunder/utils/links.dart'; -import 'package:thunder/utils/navigate_instance.dart'; -import 'package:thunder/utils/navigate_user.dart'; +import 'package:thunder/instance/utils/navigate_instance.dart'; +import 'package:thunder/user/utils/navigate_user.dart'; class UserSettingsPage extends StatefulWidget { const UserSettingsPage({super.key}); diff --git a/lib/utils/navigate_user.dart b/lib/user/utils/navigate_user.dart similarity index 100% rename from lib/utils/navigate_user.dart rename to lib/user/utils/navigate_user.dart diff --git a/lib/utils/links.dart b/lib/utils/links.dart index f41e2c324..a3593c834 100644 --- a/lib/utils/links.dart +++ b/lib/utils/links.dart @@ -23,9 +23,9 @@ import 'package:thunder/feed/utils/utils.dart'; import 'package:thunder/feed/view/feed_page.dart'; import 'package:thunder/post/utils/post.dart'; import 'package:thunder/utils/instance.dart'; -import 'package:thunder/utils/navigate_comment.dart'; -import 'package:thunder/utils/navigate_post.dart'; -import 'package:thunder/utils/navigate_user.dart'; +import 'package:thunder/comment/utils/navigate_comment.dart'; +import 'package:thunder/post/utils/navigate_post.dart'; +import 'package:thunder/user/utils/navigate_user.dart'; class LinkInfo { String? imageURL;