diff --git a/lib/common/widgets/app_bar/app_bar.dart b/lib/common/widgets/app_bar/app_bar.dart index a6168e2..d2d2475 100644 --- a/lib/common/widgets/app_bar/app_bar.dart +++ b/lib/common/widgets/app_bar/app_bar.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:fluttercon/common/utils/constants/app_assets.dart'; @@ -96,7 +97,7 @@ class CustomAppBar extends StatelessWidget implements PreferredSizeWidget { ), ), const SizedBox(width: 8), - Text( + AutoSizeText( l10n.filter, style: Theme.of(context) .textTheme @@ -115,7 +116,7 @@ class CustomAppBar extends StatelessWidget implements PreferredSizeWidget { }, child: Padding( padding: const EdgeInsets.only(right: 16), - child: Text( + child: AutoSizeText( l10n.cancel.toUpperCase(), style: const TextStyle( color: Colors.grey, @@ -133,7 +134,7 @@ class CustomAppBar extends StatelessWidget implements PreferredSizeWidget { child: Row( children: [ const SizedBox(width: 32), - Text( + AutoSizeText( l10n.filter, style: Theme.of(context).textTheme.titleLarge?.copyWith( fontWeight: FontWeight.bold, diff --git a/lib/common/widgets/app_bar/feedback_button.dart b/lib/common/widgets/app_bar/feedback_button.dart index 3c8e067..47b517b 100644 --- a/lib/common/widgets/app_bar/feedback_button.dart +++ b/lib/common/widgets/app_bar/feedback_button.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:fluttercon/common/utils/misc.dart'; import 'package:fluttercon/common/utils/router.dart'; @@ -34,7 +35,7 @@ class FeedbackButton extends StatelessWidget { height: 12, color: colorScheme.onSurface, ), - Text( + AutoSizeText( l10n.feedback, style: Theme.of(context).textTheme.bodyMedium?.copyWith( fontSize: 12, diff --git a/lib/common/widgets/app_bar/logout_dialog.dart b/lib/common/widgets/app_bar/logout_dialog.dart index 655212e..8ffa343 100644 --- a/lib/common/widgets/app_bar/logout_dialog.dart +++ b/lib/common/widgets/app_bar/logout_dialog.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:fluttercon/common/utils/misc.dart'; @@ -35,7 +36,7 @@ class _LogOutDialogState extends State { }, child: Column( children: [ - Text( + AutoSizeText( l10n.areYouSureLogOut, style: Theme.of(context).textTheme.titleLarge?.copyWith( color: colorScheme.onSurface, @@ -44,7 +45,7 @@ class _LogOutDialogState extends State { textAlign: TextAlign.center, ), const SizedBox(height: 20), - Text( + AutoSizeText( l10n.logoutDesc, style: Theme.of(context).textTheme.bodyMedium?.copyWith( color: colorScheme.onSurface, @@ -67,7 +68,7 @@ class _LogOutDialogState extends State { child: BlocBuilder( builder: (context, state) { return state.maybeWhen( - loading: () => Text( + loading: () => AutoSizeText( l10n.logoutLoading.toUpperCase(), style: Theme.of(context).textTheme.titleMedium?.copyWith( @@ -75,7 +76,7 @@ class _LogOutDialogState extends State { fontWeight: FontWeight.bold, ), ), - orElse: () => Text( + orElse: () => AutoSizeText( l10n.confirmLogout.toUpperCase(), style: Theme.of(context).textTheme.titleMedium?.copyWith( @@ -101,7 +102,7 @@ class _LogOutDialogState extends State { borderRadius: BorderRadius.circular(8), ), ), - child: Text( + child: AutoSizeText( l10n.cancel.toUpperCase(), style: Theme.of(context).textTheme.titleMedium?.copyWith( color: colorScheme.onSurface, diff --git a/lib/common/widgets/app_bar/user_profile_icon.dart b/lib/common/widgets/app_bar/user_profile_icon.dart index 6fd7924..7a23191 100644 --- a/lib/common/widgets/app_bar/user_profile_icon.dart +++ b/lib/common/widgets/app_bar/user_profile_icon.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:fluttercon/common/repository/hive_repository.dart'; @@ -37,7 +38,7 @@ class _UserProfileIconState extends State { }, child: Padding( padding: const EdgeInsets.only(right: 16), - child: Text( + child: AutoSizeText( l10n.cancel.toUpperCase(), style: const TextStyle( color: Colors.grey, diff --git a/lib/common/widgets/personnel_widget.dart b/lib/common/widgets/personnel_widget.dart index fb8d6d5..045e939 100644 --- a/lib/common/widgets/personnel_widget.dart +++ b/lib/common/widgets/personnel_widget.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:fluttercon/common/utils/misc.dart'; @@ -59,7 +60,7 @@ class PersonnelWidget extends StatelessWidget { ), SizedBox( width: MediaQuery.sizeOf(context).width / 4.5, - child: Text( + child: AutoSizeText( name, maxLines: 1, style: TextStyle( @@ -71,7 +72,7 @@ class PersonnelWidget extends StatelessWidget { if (designation != null) SizedBox( width: MediaQuery.sizeOf(context).width / 4.5, - child: Text( + child: AutoSizeText( designation!, maxLines: 1, style: TextStyle( diff --git a/lib/common/widgets/resolved_image.dart b/lib/common/widgets/resolved_image.dart index 17446af..635eaf4 100644 --- a/lib/common/widgets/resolved_image.dart +++ b/lib/common/widgets/resolved_image.dart @@ -12,10 +12,12 @@ class ResolvedImage extends StatelessWidget { @override Widget build(BuildContext context) { + final size = MediaQuery.sizeOf(context); return imageUrl.contains('.svg') ? SvgPicture.network(imageUrl) : CachedNetworkImage( imageUrl: imageUrl, + height: size.height * .15, placeholder: (_, __) => const SizedBox( height: 150, width: double.infinity, diff --git a/lib/common/widgets/social_handle.dart b/lib/common/widgets/social_handle.dart index 76ad2bc..e4bcdb3 100644 --- a/lib/common/widgets/social_handle.dart +++ b/lib/common/widgets/social_handle.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:fluttercon/common/utils/constants/app_assets.dart'; @@ -29,7 +30,7 @@ class SocialHandleBody extends StatelessWidget { crossAxisAlignment: WrapCrossAlignment.center, alignment: WrapAlignment.spaceBetween, children: [ - Text( + AutoSizeText( twitterUrl != null ? l10n.twitterHandle : l10n.linkedin, style: TextStyle( color: colorScheme.onSurface, @@ -68,7 +69,7 @@ class SocialHandleBody extends StatelessWidget { ), const SizedBox(width: 3), Flexible( - child: Text( + child: AutoSizeText( name, maxLines: 1, overflow: TextOverflow.ellipsis, diff --git a/lib/features/about/ui/about_screen.dart b/lib/features/about/ui/about_screen.dart index 3dd0528..46ae6b4 100644 --- a/lib/features/about/ui/about_screen.dart +++ b/lib/features/about/ui/about_screen.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:fluttercon/common/utils/constants/app_assets.dart'; @@ -31,57 +32,61 @@ class _AboutScreenState extends State { return Scaffold( backgroundColor: colorScheme.surface, appBar: const CustomAppBar(selectedIndex: 3), - body: CustomScrollView( - slivers: [ - SliverToBoxAdapter(child: Image.asset(AppAssets.teamPhoto)), - const SliverToBoxAdapter(child: SizedBox(height: 16)), - SliverToBoxAdapter( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 16), - child: Text( - l10n.about, - style: Theme.of(context).textTheme.titleLarge?.copyWith( - color: colorScheme.primary, - fontWeight: FontWeight.bold, - ), + body: LayoutBuilder( + builder: (context, constraints) { + return CustomScrollView( + slivers: [ + SliverToBoxAdapter(child: Image.asset(AppAssets.teamPhoto)), + const SliverToBoxAdapter(child: SizedBox(height: 16)), + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: AutoSizeText( + l10n.about, + style: Theme.of(context).textTheme.titleLarge?.copyWith( + color: colorScheme.primary, + fontWeight: FontWeight.bold, + ), + ), + ), ), - ), - ), - const SliverToBoxAdapter(child: SizedBox(height: 16)), - SliverToBoxAdapter( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 16), - child: Text( - l10n.aboutFluttercon, - style: Theme.of(context).textTheme.bodyMedium?.copyWith( - color: colorScheme.onSurface, - ), + const SliverToBoxAdapter(child: SizedBox(height: 16)), + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: AutoSizeText( + l10n.aboutFluttercon, + style: Theme.of(context).textTheme.bodyMedium?.copyWith( + color: colorScheme.onSurface, + ), + ), + ), ), - ), - ), - const SliverToBoxAdapter(child: SizedBox(height: 16)), - SliverToBoxAdapter( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 16), - child: Text( - l10n.organisingTeam, - style: Theme.of(context).textTheme.titleLarge?.copyWith( - color: colorScheme.primary, - fontWeight: FontWeight.bold, - ), + const SliverToBoxAdapter(child: SizedBox(height: 16)), + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: AutoSizeText( + l10n.organisingTeam, + style: Theme.of(context).textTheme.titleLarge?.copyWith( + color: colorScheme.primary, + fontWeight: FontWeight.bold, + ), + ), + ), ), - ), - ), - const SliverToBoxAdapter(child: SizedBox(height: 16)), - const OrganisingTeamView(), - const SliverToBoxAdapter(child: SizedBox(height: 16)), - const SliverToBoxAdapter( - child: Padding( - padding: EdgeInsets.symmetric(horizontal: 16), - child: OrganizersCard(), - ), - ), - ], + const SliverToBoxAdapter(child: SizedBox(height: 16)), + const OrganisingTeamView(), + const SliverToBoxAdapter(child: SizedBox(height: 16)), + const SliverToBoxAdapter( + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 16), + child: OrganizersCard(), + ), + ), + ], + ); + }, ), ); } diff --git a/lib/features/about/ui/organising_team.dart b/lib/features/about/ui/organising_team.dart index 3fc2e3b..2dab493 100644 --- a/lib/features/about/ui/organising_team.dart +++ b/lib/features/about/ui/organising_team.dart @@ -22,16 +22,17 @@ class _OrganisingTeamViewState extends State { @override Widget build(BuildContext context) { + final size = MediaQuery.sizeOf(context); return BlocBuilder( builder: (context, state) => state.maybeWhen( loaded: (individualOrganisers) => SliverGrid.builder( itemCount: individualOrganisers.length, - gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 3, + gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent( + maxCrossAxisExtent: 200, crossAxisSpacing: 8, mainAxisSpacing: 8, - mainAxisExtent: 150, + mainAxisExtent: size.width > 600 ? 200 : 140, ), itemBuilder: (context, index) => PersonnelWidget( imageUrl: individualOrganisers[index].photo, diff --git a/lib/features/about/ui/organising_team_details.dart b/lib/features/about/ui/organising_team_details.dart index f155162..9157285 100644 --- a/lib/features/about/ui/organising_team_details.dart +++ b/lib/features/about/ui/organising_team_details.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; @@ -47,7 +48,7 @@ class OranisingTeamMemberDetailsPage extends StatelessWidget { onPressed: () => GoRouter.of(context).pop(), color: Colors.white, ), - Text( + AutoSizeText( l10n.organisingTeam, style: const TextStyle( color: Colors.white, @@ -91,13 +92,13 @@ class OranisingTeamMemberDetailsPage extends StatelessWidget { child: Column( children: [ const SizedBox(height: 60), - Text( + AutoSizeText( organiser.designation, style: const TextStyle( color: ThemeColors.orangeColor, ), ), - Text( + AutoSizeText( organiser.name, style: TextStyle( color: colorScheme.primary, @@ -106,7 +107,7 @@ class OranisingTeamMemberDetailsPage extends StatelessWidget { ), ), const SizedBox(height: 16), - Text( + AutoSizeText( organiser.tagline, textAlign: TextAlign.center, style: const TextStyle( @@ -117,7 +118,7 @@ class OranisingTeamMemberDetailsPage extends StatelessWidget { const SizedBox(height: 32), Align( alignment: Alignment.centerLeft, - child: Text( + child: AutoSizeText( l10n.bio, style: TextStyle( color: colorScheme.primary, @@ -129,7 +130,7 @@ class OranisingTeamMemberDetailsPage extends StatelessWidget { const SizedBox(height: 16), Align( alignment: Alignment.centerLeft, - child: Text( + child: AutoSizeText( organiser.bio, style: TextStyle( fontSize: 16, diff --git a/lib/features/auth/ui/sign_in.dart b/lib/features/auth/ui/sign_in.dart index 8d58dcb..01852ff 100644 --- a/lib/features/auth/ui/sign_in.dart +++ b/lib/features/auth/ui/sign_in.dart @@ -1,4 +1,5 @@ import 'package:auth_buttons/auth_buttons.dart'; +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:fluttercon/common/utils/constants/app_assets.dart'; @@ -23,7 +24,7 @@ class SignInScreen extends StatelessWidget { error: (message) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text(message), + content: AutoSizeText(message), ), ); }, @@ -37,7 +38,7 @@ class SignInScreen extends StatelessWidget { GoRouter.of(context).goNamed(FlutterConRouter.decisionRoute), error: (message) { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(message)), + SnackBar(content: AutoSizeText(message)), ); }, ); diff --git a/lib/features/feed/ui/feed_screen.dart b/lib/features/feed/ui/feed_screen.dart index 86985eb..c515442 100644 --- a/lib/features/feed/ui/feed_screen.dart +++ b/lib/features/feed/ui/feed_screen.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -50,7 +51,7 @@ class _FeedScreenState extends State { ), child: Column( children: [ - Text( + AutoSizeText( feed.body, style: TextStyle( fontSize: 16, @@ -109,7 +110,7 @@ class _FeedScreenState extends State { child: Row( mainAxisSize: MainAxisSize.min, children: [ - Text( + AutoSizeText( l10n.share, style: TextStyle( color: colorScheme.primary, @@ -130,7 +131,7 @@ class _FeedScreenState extends State { ), ), const Spacer(), - Text( + AutoSizeText( timeago.format(feed.createdAt), style: TextStyle( color: colorScheme.onSurface, @@ -147,7 +148,7 @@ class _FeedScreenState extends State { child: Divider(color: Color.fromARGB(50, 112, 112, 112)), ), ), - error: (message) => Text( + error: (message) => AutoSizeText( message, style: Theme.of(context).textTheme.titleMedium?.copyWith( fontWeight: FontWeight.bold, diff --git a/lib/features/feed/widgets/share_sheet.dart b/lib/features/feed/widgets/share_sheet.dart index de541a0..e0faed8 100644 --- a/lib/features/feed/widgets/share_sheet.dart +++ b/lib/features/feed/widgets/share_sheet.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -31,13 +32,13 @@ class ShareSheet extends StatelessWidget { loaded: (_) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text(l10n.postShared), + content: AutoSizeText(l10n.postShared), ), ); }, error: (message) { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(message.message)), + SnackBar(content: AutoSizeText(message.message)), ); }, ); @@ -68,7 +69,7 @@ class ShareSheet extends StatelessWidget { height: 32, ), const SizedBox(width: 8), - Text( + AutoSizeText( l10n.share, style: TextStyle( color: colorScheme.onSurface, @@ -80,7 +81,7 @@ class ShareSheet extends StatelessWidget { ), InkWell( onTap: () => Navigator.of(context).pop(), - child: Text( + child: AutoSizeText( l10n.cancel.toUpperCase(), style: const TextStyle( color: ThemeColors.greyTextColor, diff --git a/lib/features/feed/widgets/social_media_button.dart b/lib/features/feed/widgets/social_media_button.dart index 83b60cf..d52a0af 100644 --- a/lib/features/feed/widgets/social_media_button.dart +++ b/lib/features/feed/widgets/social_media_button.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:fluttercon/common/utils/misc.dart'; @@ -42,7 +43,7 @@ class SocialMediaButton extends StatelessWidget { height: 24, ), const SizedBox(width: 8), - Text( + AutoSizeText( label, style: TextStyle( color: isLightMode diff --git a/lib/features/feedback/ui/feedback_screen.dart b/lib/features/feedback/ui/feedback_screen.dart index 54db422..9131fee 100644 --- a/lib/features/feedback/ui/feedback_screen.dart +++ b/lib/features/feedback/ui/feedback_screen.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:fluttercon/common/utils/constants/app_assets.dart'; @@ -43,7 +44,7 @@ class _FeedbackScreenState extends State { const FeedbackCustomAppBar(), const SizedBox(height: 20), Center( - child: Text( + child: AutoSizeText( l10n.yourFeedback, style: Theme.of(context).textTheme.headlineLarge?.copyWith( color: colorScheme.primary, @@ -54,7 +55,7 @@ class _FeedbackScreenState extends State { ), const SizedBox(height: 20), Center( - child: Text( + child: AutoSizeText( l10n.howWasFluttercon, style: TextStyle( color: colorScheme.onSurface, @@ -123,13 +124,15 @@ class _FeedbackScreenState extends State { state.whenOrNull( loaded: (feedback, rating) { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(l10n.feedbackSubmitted)), + SnackBar( + content: AutoSizeText(l10n.feedbackSubmitted), + ), ); context.pop(); }, error: (message) { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(message)), + SnackBar(content: AutoSizeText(message)), ); }, ); @@ -161,12 +164,12 @@ class _FeedbackScreenState extends State { } else { ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text(l10n.feedbackError), + content: AutoSizeText(l10n.feedbackError), ), ); } }, - child: Text( + child: AutoSizeText( l10n.submitFeedback.toUpperCase(), style: TextStyle( color: colorScheme.surface, diff --git a/lib/features/feedback/widgets/feedback_custom_appbar.dart b/lib/features/feedback/widgets/feedback_custom_appbar.dart index 7b0e5d2..6cee54f 100644 --- a/lib/features/feedback/widgets/feedback_custom_appbar.dart +++ b/lib/features/feedback/widgets/feedback_custom_appbar.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:fluttercon/common/utils/constants/app_assets.dart'; @@ -31,7 +32,7 @@ class FeedbackCustomAppBar extends StatelessWidget { padding: const EdgeInsets.all(18), child: Row( children: [ - Text( + AutoSizeText( l10n.feedback, style: theme.textTheme.headlineMedium ?.copyWith(color: Colors.white, fontSize: 20), diff --git a/lib/features/home/ui/home_screen.dart b/lib/features/home/ui/home_screen.dart index 919d7cf..c36b47d 100644 --- a/lib/features/home/ui/home_screen.dart +++ b/lib/features/home/ui/home_screen.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:fluttercon/common/utils/constants/app_assets.dart'; import 'package:fluttercon/common/utils/misc.dart'; @@ -32,7 +33,7 @@ class _HomeScreenState extends State { const SizedBox(height: 15), Align( alignment: Alignment.centerLeft, - child: Text( + child: AutoSizeText( l10n.welcomeToFlutterCon, style: Theme.of(context).textTheme.titleMedium?.copyWith( fontWeight: FontWeight.w600, diff --git a/lib/features/home/ui/speaker_details/speaker_details.dart b/lib/features/home/ui/speaker_details/speaker_details.dart index 7627fee..15d55a1 100644 --- a/lib/features/home/ui/speaker_details/speaker_details.dart +++ b/lib/features/home/ui/speaker_details/speaker_details.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; @@ -46,7 +47,7 @@ class SpeakerDetailsPage extends StatelessWidget { onPressed: () => GoRouter.of(context).pop(), color: Colors.white, ), - Text( + AutoSizeText( l10n.speaker, style: const TextStyle( color: Colors.white, @@ -100,7 +101,7 @@ class SpeakerDetailsPage extends StatelessWidget { ), ), const SizedBox(width: 8), - Text( + AutoSizeText( l10n.speaker, style: const TextStyle( color: ThemeColors.orangeColor, @@ -108,7 +109,7 @@ class SpeakerDetailsPage extends StatelessWidget { ), ], ), - Text( + AutoSizeText( speaker.name, style: TextStyle( color: colorScheme.primary, @@ -117,7 +118,7 @@ class SpeakerDetailsPage extends StatelessWidget { ), ), const SizedBox(height: 16), - Text( + AutoSizeText( speaker.tagline ?? '', textAlign: TextAlign.center, style: const TextStyle( @@ -128,7 +129,7 @@ class SpeakerDetailsPage extends StatelessWidget { const SizedBox(height: 32), Align( alignment: Alignment.centerLeft, - child: Text( + child: AutoSizeText( l10n.bio, style: TextStyle( color: colorScheme.primary, @@ -140,7 +141,7 @@ class SpeakerDetailsPage extends StatelessWidget { const SizedBox(height: 16), Align( alignment: Alignment.centerLeft, - child: Text( + child: AutoSizeText( speaker.biography, style: TextStyle( fontSize: 16, diff --git a/lib/features/home/ui/speakers_list_screen.dart b/lib/features/home/ui/speakers_list_screen.dart index 1f35383..033c979 100644 --- a/lib/features/home/ui/speakers_list_screen.dart +++ b/lib/features/home/ui/speakers_list_screen.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:fluttercon/common/utils/misc.dart'; @@ -21,7 +22,7 @@ class SpeakerListScreen extends StatelessWidget { onPressed: () => GoRouter.of(context).pop(), color: colorScheme.onSurface, ), - title: Text( + title: AutoSizeText( l10n.speakers, style: TextStyle(color: colorScheme.onSurface), ), @@ -33,17 +34,17 @@ class SpeakerListScreen extends StatelessWidget { padding: const EdgeInsets.all(10), child: GridView.builder( itemCount: speakers.length, - gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + gridDelegate: const SliverGridDelegateWithMaxCrossAxisExtent( mainAxisSpacing: 4, crossAxisSpacing: 4, mainAxisExtent: 316, - crossAxisCount: 2, + maxCrossAxisExtent: 240, ), itemBuilder: (context, index) => SpeakerGridTile(speaker: speakers[index]), ), ), - error: (message) => Text( + error: (message) => AutoSizeText( message, style: Theme.of(context).textTheme.titleMedium?.copyWith( fontWeight: FontWeight.bold, diff --git a/lib/features/home/widgets/organizers_card.dart b/lib/features/home/widgets/organizers_card.dart index 9f7e4b0..50f9b41 100644 --- a/lib/features/home/widgets/organizers_card.dart +++ b/lib/features/home/widgets/organizers_card.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:fluttercon/common/utils/misc.dart'; @@ -28,7 +29,7 @@ class _OrganizersCardState extends State { return Container( width: double.infinity, - height: size.height / 4, + height: size.height * .3, padding: const EdgeInsets.all(10), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -37,7 +38,7 @@ class _OrganizersCardState extends State { child: Column( children: [ const Spacer(), - Text( + AutoSizeText( l10n.organisedBy, style: TextStyle( fontWeight: FontWeight.bold, @@ -58,7 +59,7 @@ class _OrganizersCardState extends State { ), ], ), - error: (message) => Text( + error: (message) => AutoSizeText( message, style: Theme.of(context).textTheme.titleMedium?.copyWith( fontWeight: FontWeight.bold, diff --git a/lib/features/home/widgets/sessions_card.dart b/lib/features/home/widgets/sessions_card.dart index a2d9f9b..3c5d952 100644 --- a/lib/features/home/widgets/sessions_card.dart +++ b/lib/features/home/widgets/sessions_card.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -31,14 +32,14 @@ class _SessionsCardState extends State { @override Widget build(BuildContext context) { final l10n = context.l10n; - final size = MediaQuery.of(context).size; + final size = MediaQuery.sizeOf(context); final (isLightMode, colorScheme) = Misc.getTheme(context); return Column( children: [ Row( children: [ - Text( + AutoSizeText( l10n.sessions, style: Theme.of(context).textTheme.titleLarge!.copyWith( color: isLightMode @@ -52,7 +53,7 @@ class _SessionsCardState extends State { onPressed: widget.switchTab, child: Row( children: [ - Text( + AutoSizeText( l10n.viewAll, style: TextStyle( color: isLightMode @@ -73,7 +74,7 @@ class _SessionsCardState extends State { const EdgeInsets.symmetric(horizontal: 16, vertical: 2), child: BlocBuilder( builder: (context, state) => state.maybeWhen( - loaded: (_, extras) => Text( + loaded: (_, extras) => AutoSizeText( '+ $extras', style: TextStyle( color: isLightMode @@ -101,12 +102,12 @@ class _SessionsCardState extends State { ), const SizedBox(height: 16), SizedBox( - height: 250, + height: size.height * .3, child: BlocBuilder( builder: (context, state) => state.maybeWhen( loaded: (sessions, _) => ListView.builder( scrollDirection: Axis.horizontal, - itemCount: sessions.take(5).length, + itemCount: sessions.take(10).length, itemBuilder: (context, index) { final session = sessions[index]; return GestureDetector( @@ -128,7 +129,9 @@ class _SessionsCardState extends State { borderRadius: BorderRadius.circular(10), child: CachedNetworkImage( imageUrl: session.sessionImage, - height: 150, + height: size.width > 600 + ? size.height * .225 + : size.height * .2, width: double.infinity, fit: BoxFit.cover, placeholder: (_, __) => const SizedBox( @@ -150,7 +153,7 @@ class _SessionsCardState extends State { const SizedBox(height: 16), Padding( padding: const EdgeInsets.symmetric(horizontal: 16), - child: Text( + child: AutoSizeText( session.title, maxLines: 2, style: TextStyle( @@ -163,7 +166,7 @@ class _SessionsCardState extends State { const SizedBox(height: 5), Padding( padding: const EdgeInsets.symmetric(horizontal: 16), - child: Text( + child: AutoSizeText( l10n.sessionTimeAndVenue( DateFormat.Hm().format( session.startDateTime, diff --git a/lib/features/home/widgets/speaker_grid_tile.dart b/lib/features/home/widgets/speaker_grid_tile.dart index 0bb32e3..7cd17c1 100644 --- a/lib/features/home/widgets/speaker_grid_tile.dart +++ b/lib/features/home/widgets/speaker_grid_tile.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:fluttercon/common/data/models/local/local_speaker.dart'; @@ -58,7 +59,7 @@ class SpeakerGridTile extends StatelessWidget { ), ), const SizedBox(height: 8), - Text( + AutoSizeText( speaker.name, maxLines: 1, style: TextStyle( @@ -68,7 +69,7 @@ class SpeakerGridTile extends StatelessWidget { textAlign: TextAlign.center, ), const Spacer(), - Text( + AutoSizeText( speaker.tagline ?? '', overflow: TextOverflow.clip, maxLines: 3, @@ -94,7 +95,7 @@ class SpeakerGridTile extends StatelessWidget { ), backgroundColor: colorScheme.surface, ), - child: Text( + child: AutoSizeText( l10n.details.toUpperCase(), style: const TextStyle( color: ThemeColors.blueGreenDroidconColor, diff --git a/lib/features/home/widgets/speaker_home_card.dart b/lib/features/home/widgets/speaker_home_card.dart index a4f8399..e8ecaa7 100644 --- a/lib/features/home/widgets/speaker_home_card.dart +++ b/lib/features/home/widgets/speaker_home_card.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:fluttercon/common/utils/misc.dart'; @@ -32,7 +33,7 @@ class _SpeakerCardState extends State { Row( mainAxisSize: MainAxisSize.min, children: [ - Text( + AutoSizeText( l10n.speakers, style: Theme.of(context).textTheme.titleLarge!.copyWith( color: isLightMode @@ -43,7 +44,7 @@ class _SpeakerCardState extends State { ), const Spacer(), TextButton.icon( - label: Text( + label: AutoSizeText( l10n.viewAll, style: TextStyle( color: @@ -63,7 +64,7 @@ class _SpeakerCardState extends State { const EdgeInsets.symmetric(horizontal: 16, vertical: 2), child: BlocBuilder( builder: (context, state) => state.maybeWhen( - loaded: (_, extras) => Text( + loaded: (_, extras) => AutoSizeText( '+ $extras', style: TextStyle( color: isLightMode @@ -91,25 +92,29 @@ class _SpeakerCardState extends State { BlocBuilder( builder: (context, state) => state.maybeWhen( loaded: (speakers, _) { - return SizedBox( - height: 150, - child: ListView.separated( - separatorBuilder: (context, index) => - const SizedBox(width: 4), - itemCount: speakers.take(5).length, - scrollDirection: Axis.horizontal, - itemBuilder: (context, index) => PersonnelWidget( - imageUrl: speakers[index].avatar, - name: speakers[index].name, - onTap: () => GoRouter.of(context).push( - FlutterConRouter.speakerDetailsRoute, - extra: speakers[index], + return LayoutBuilder( + builder: (context, constraints) { + return SizedBox( + height: constraints.maxWidth > 500 ? 250 : 150, + child: ListView.separated( + separatorBuilder: (context, index) => + const SizedBox(width: 4), + itemCount: speakers.take(5).length, + scrollDirection: Axis.horizontal, + itemBuilder: (context, index) => PersonnelWidget( + imageUrl: speakers[index].avatar, + name: speakers[index].name, + onTap: () => GoRouter.of(context).push( + FlutterConRouter.speakerDetailsRoute, + extra: speakers[index], + ), + ), ), - ), - ), + ); + }, ); }, - error: (message) => Text( + error: (message) => AutoSizeText( message, style: Theme.of(context).textTheme.titleMedium?.copyWith( fontWeight: FontWeight.bold, diff --git a/lib/features/home/widgets/sponsors_card.dart b/lib/features/home/widgets/sponsors_card.dart index 6c49308..f51619d 100644 --- a/lib/features/home/widgets/sponsors_card.dart +++ b/lib/features/home/widgets/sponsors_card.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:fluttercon/common/data/enums/sponsor_type.dart'; @@ -22,13 +23,13 @@ class _SponsorsCardState extends State { @override Widget build(BuildContext context) { - final size = MediaQuery.of(context).size; + final size = MediaQuery.sizeOf(context); final l10n = context.l10n; final (_, colorScheme) = Misc.getTheme(context); return Container( width: double.infinity, - height: size.height / 4, + height: size.height * .35, padding: const EdgeInsets.all(10), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), @@ -37,7 +38,7 @@ class _SponsorsCardState extends State { child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - Text( + AutoSizeText( l10n.sponsors, style: TextStyle( fontWeight: FontWeight.bold, @@ -56,18 +57,16 @@ class _SponsorsCardState extends State { ) .toList(); return Column( + crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - Padding( - padding: const EdgeInsets.symmetric(horizontal: 32), - child: ResolvedImage( - imageUrl: sponsors - .firstWhere( - (sponsor) => - SponsorType.fromValue(sponsor.sponsorType) == - SponsorType.platinum, - ) - .logo, - ), + ResolvedImage( + imageUrl: sponsors + .firstWhere( + (sponsor) => + SponsorType.fromValue(sponsor.sponsorType) == + SponsorType.platinum, + ) + .logo, ), const SizedBox(height: 16), SizedBox( @@ -84,10 +83,11 @@ class _SponsorsCardState extends State { ), ), ), + const SizedBox(height: 16), ], ); }, - error: (message) => Text( + error: (message) => AutoSizeText( message, style: Theme.of(context).textTheme.titleMedium?.copyWith( fontWeight: FontWeight.bold, diff --git a/lib/features/sessions/ui/session_details/session_details.dart b/lib/features/sessions/ui/session_details/session_details.dart index 3434038..c048c9c 100644 --- a/lib/features/sessions/ui/session_details/session_details.dart +++ b/lib/features/sessions/ui/session_details/session_details.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -38,7 +39,7 @@ class SessionDetailsPage extends StatelessWidget { color: colorScheme.onSurface, ), surfaceTintColor: colorScheme.surface, - title: Text( + title: AutoSizeText( l10n.sessionDetails, style: TextStyle(color: colorScheme.onSurface), ), @@ -61,7 +62,7 @@ class SessionDetailsPage extends StatelessWidget { ), ), const SizedBox(width: 8), - Text( + AutoSizeText( l10n.speaker, style: const TextStyle( color: ThemeColors.orangeColor, @@ -71,7 +72,7 @@ class SessionDetailsPage extends StatelessWidget { ), Row( children: [ - Text( + AutoSizeText( session.speakers .map((speaker) => speaker.name) .join(', '), @@ -88,7 +89,7 @@ class SessionDetailsPage extends StatelessWidget { loaded: (loaded) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text(loaded.message), + content: AutoSizeText(loaded.message), ), ); }, @@ -144,7 +145,7 @@ class SessionDetailsPage extends StatelessWidget { ], ), const SizedBox(height: 16), - Text( + AutoSizeText( session.title, style: TextStyle( fontSize: 18, @@ -153,7 +154,7 @@ class SessionDetailsPage extends StatelessWidget { ), ), const SizedBox(height: 16), - Text( + AutoSizeText( session.description, style: TextStyle( fontSize: 18, @@ -186,7 +187,7 @@ class SessionDetailsPage extends StatelessWidget { Divider(color: Colors.grey.withOpacity(.5)), const SizedBox(height: 16), if (session.rooms.isNotEmpty) - Text( + AutoSizeText( l10n.sessionFullTimeAndVenue( DateFormat.Hm().format(session.startDateTime), DateFormat.Hm().format(session.endDateTime), @@ -260,13 +261,13 @@ class SessionDetailsPage extends StatelessWidget { loaded: (_) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text(l10n.postShared), + content: AutoSizeText(l10n.postShared), ), ); }, error: (message) { ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(message.message)), + SnackBar(content: AutoSizeText(message.message)), ); }, ); @@ -300,7 +301,7 @@ class SessionDetailsPage extends StatelessWidget { height: 32, ), const SizedBox(width: 8), - Text( + AutoSizeText( l10n.share, style: TextStyle( color: colorScheme.onSurface, @@ -314,7 +315,7 @@ class SessionDetailsPage extends StatelessWidget { onTap: () => Navigator.of( context, ).pop(), - child: Text( + child: AutoSizeText( l10n.cancel.toUpperCase(), style: const TextStyle( color: ThemeColors.greyTextColor, diff --git a/lib/features/sessions/ui/sessions_screen.dart b/lib/features/sessions/ui/sessions_screen.dart index c598d7d..953ef46 100644 --- a/lib/features/sessions/ui/sessions_screen.dart +++ b/lib/features/sessions/ui/sessions_screen.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:fluttercon/common/data/enums/bookmark_status.dart'; @@ -143,7 +144,7 @@ class _SessionsScreenState extends State const Icon(Icons.star_border_rounded), ), ), - Text( + AutoSizeText( l10n.mySessions, style: const TextStyle( fontSize: 10, @@ -166,7 +167,7 @@ class _SessionsScreenState extends State SliverToBoxAdapter( child: Padding( padding: const EdgeInsets.symmetric(horizontal: 16), - child: Text( + child: AutoSizeText( _isBookmarked ? l10n.mySessions : l10n.allSessions, style: TextStyle( fontWeight: FontWeight.bold, diff --git a/lib/features/sessions/ui/widgets/compact_view_card.dart b/lib/features/sessions/ui/widgets/compact_view_card.dart index e4c1cb2..5eee961 100644 --- a/lib/features/sessions/ui/widgets/compact_view_card.dart +++ b/lib/features/sessions/ui/widgets/compact_view_card.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:fluttercon/common/data/models/local/local_session.dart'; @@ -27,7 +28,7 @@ class CompactViewCard extends StatelessWidget { elevation: 2, color: isLightMode ? colorScheme.surface : colorScheme.secondaryContainer, child: ListTile( - leading: Text.rich( + leading: AutoSizeText.rich( TextSpan( children: [ TextSpan( @@ -52,7 +53,7 @@ class CompactViewCard extends StatelessWidget { ), textAlign: TextAlign.center, ), - title: Text( + title: AutoSizeText( session.title, style: TextStyle( fontWeight: FontWeight.bold, @@ -64,7 +65,7 @@ class CompactViewCard extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ const SizedBox(height: 8), - Text( + AutoSizeText( session.description, style: TextStyle( fontSize: 16, @@ -74,7 +75,7 @@ class CompactViewCard extends StatelessWidget { ), if (session.rooms.isNotEmpty) const SizedBox(height: 8), if (session.rooms.isNotEmpty) - Text( + AutoSizeText( l10n.sessionFullTimeAndVenue( DateFormat.Hm().format( session.startDateTime, @@ -104,7 +105,7 @@ class CompactViewCard extends StatelessWidget { const SizedBox(width: 8), Flexible( flex: 8, - child: Text( + child: AutoSizeText( session.speakers .map((speaker) => speaker.name) .join(', '), @@ -123,7 +124,7 @@ class CompactViewCard extends StatelessWidget { loaded: (loaded) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text(loaded.message), + content: AutoSizeText(loaded.message), ), ); }, diff --git a/lib/features/sessions/ui/widgets/day_tab_view.dart b/lib/features/sessions/ui/widgets/day_tab_view.dart index 365e9ac..290e428 100644 --- a/lib/features/sessions/ui/widgets/day_tab_view.dart +++ b/lib/features/sessions/ui/widgets/day_tab_view.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:fluttercon/common/utils/misc.dart'; import 'package:fluttercon/core/theme/theme_colors.dart'; @@ -32,7 +33,7 @@ class DayTabView extends StatelessWidget { padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 4), child: Column( children: [ - Text( + AutoSizeText( date, style: TextStyle( fontWeight: FontWeight.bold, @@ -45,7 +46,7 @@ class DayTabView extends StatelessWidget { ), ), const SizedBox(height: 4), - Text( + AutoSizeText( l10n.day(day), style: TextStyle( fontSize: 16, diff --git a/lib/features/sessions/ui/widgets/schedule_view_card.dart b/lib/features/sessions/ui/widgets/schedule_view_card.dart index 46f7748..677a7c0 100644 --- a/lib/features/sessions/ui/widgets/schedule_view_card.dart +++ b/lib/features/sessions/ui/widgets/schedule_view_card.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; @@ -63,7 +64,7 @@ class ScheduleViewCard extends StatelessWidget { children: [ Padding( padding: const EdgeInsets.symmetric(horizontal: 16), - child: Text( + child: AutoSizeText( l10n.sessionTimeAndVenue( DateFormat.Hm().format( session.startDateTime, @@ -81,7 +82,7 @@ class ScheduleViewCard extends StatelessWidget { const SizedBox(height: 16), Padding( padding: const EdgeInsets.symmetric(horizontal: 16), - child: Text( + child: AutoSizeText( session.title, maxLines: 2, style: TextStyle( @@ -150,7 +151,7 @@ class ScheduleViewCard extends StatelessWidget { loaded: (loaded) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text(loaded.message), + content: AutoSizeText(loaded.message), ), ); }, diff --git a/pubspec.lock b/pubspec.lock index 80dfce3..de41f19 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: b1595874fbc8f7a50da90f5d8f327bb0bfd6a95dc906c390efe991540c3b54aa + sha256: "9371d13b8ee442e3bfc08a24e3a1b3742c839abbfaf5eef11b79c4b862c89bf7" url: "https://pub.dev" source: hosted - version: "1.3.40" + version: "1.3.41" analyzer: dependency: transitive description: @@ -73,6 +73,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.3" + auto_size_text: + dependency: "direct main" + description: + name: auto_size_text + sha256: "3f5261cd3fb5f2a9ab4e2fc3fba84fd9fcaac8821f20a1d4e71f557521b22599" + url: "https://pub.dev" + source: hosted + version: "3.0.0" awesome_notifications: dependency: "direct main" description: @@ -333,90 +341,90 @@ packages: dependency: "direct main" description: name: firebase_analytics - sha256: "064e5b57b0693305946b7caa6a80ed80a918f46804c247b6cd7ed9cd327df48f" + sha256: "7e032ade38dec2a92f543ba02c5f72f54ffaa095c60d2132b867eab56de3bc73" url: "https://pub.dev" source: hosted - version: "11.2.1" + version: "11.3.0" firebase_analytics_platform_interface: dependency: transitive description: name: firebase_analytics_platform_interface - sha256: d094547c9022c404b5ca39b7209607fc80e75e39d38875f050508fa4346b3e74 + sha256: b62a2444767d95067a7e36b1d6e335e0b877968574bbbfb656168c46f2e95a13 url: "https://pub.dev" source: hosted - version: "4.2.1" + version: "4.2.2" firebase_analytics_web: dependency: transitive description: name: firebase_analytics_web - sha256: "06dc023b0144c0df630a56b6262cc9e7d6069fe78148853d97614dbefb6ea923" + sha256: bad44f71f96cfca6c16c9dd4f70b85f123ddca7d5dd698977449fadf298b1782 url: "https://pub.dev" source: hosted - version: "0.5.9+1" + version: "0.5.9+2" firebase_auth: dependency: "direct main" description: name: firebase_auth - sha256: "2457ac6cbc152fa464aad3fb35f98039b0c4ab8e9bedf476672508b291bdbc3a" + sha256: "6f5792bdc208416bfdfbfe3363b78ce01667b6ebc4c5cb47cfa891f2fca45ab7" url: "https://pub.dev" source: hosted - version: "5.1.4" + version: "5.2.0" firebase_auth_platform_interface: dependency: transitive description: name: firebase_auth_platform_interface - sha256: "0408e2ed74b1afa0490a93aa041fe90d7573af7ffc59a641edc6c5b5c1b8d2a4" + sha256: "80237bb8a92bb0a5e3b40de1c8dbc80254e49ac9e3907b4b47b8e95ac3dd3fad" url: "https://pub.dev" source: hosted - version: "7.4.3" + version: "7.4.4" firebase_auth_web: dependency: transitive description: name: firebase_auth_web - sha256: "7e0c6d0fa8c5c1b2ae126a78f2d1a206a77a913f78d20f155487bf746162dccc" + sha256: "9d315491a6be65ea83511cb0e078544a309c39dd54c0ee355c51dbd6d8c03cc8" url: "https://pub.dev" source: hosted - version: "5.12.5" + version: "5.12.6" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: "3187f4f8e49968573fd7403011dca67ba95aae419bc0d8131500fae160d94f92" + sha256: "06537da27db981947fa535bb91ca120b4e9cb59cb87278dbdde718558cafc9ff" url: "https://pub.dev" source: hosted - version: "3.3.0" + version: "3.4.0" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: "3c3a1e92d6f4916c32deea79c4a7587aa0e9dbbe5889c7a16afcf005a485ee02" + sha256: f7d7180c7f99babd4b4c517754d41a09a4943a0f7a69b65c894ca5c68ba66315 url: "https://pub.dev" source: hosted - version: "5.2.0" + version: "5.2.1" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: e8d1e22de72cb21cdcfc5eed7acddab3e99cd83f3b317f54f7a96c32f25fd11e + sha256: "362e52457ed2b7b180964769c1e04d1e0ea0259fdf7025fdfedd019d4ae2bd88" url: "https://pub.dev" source: hosted - version: "2.17.4" + version: "2.17.5" firebase_crashlytics: dependency: "direct main" description: name: firebase_crashlytics - sha256: "30260e1b8ad1464b41ca4531b44ce63d752daaf2f12c92ca6cdcd82b270abecc" + sha256: "4c9872020c0d97a161362ee6af7000cfdb8666234ddc290a15252ad379bb235a" url: "https://pub.dev" source: hosted - version: "4.0.4" + version: "4.1.0" firebase_crashlytics_platform_interface: dependency: transitive description: name: firebase_crashlytics_platform_interface - sha256: a75e1826d92ea4e86e4a753c7b5d64b844a362676fa653185f1581c859186d18 + sha256: ede8a199ff03378857d3c8cbb7fa58d37c27bb5a6b75faf8415ff6925dcaae2a url: "https://pub.dev" source: hosted - version: "3.6.40" + version: "3.6.41" fixnum: dependency: transitive description: @@ -873,10 +881,10 @@ packages: dependency: transitive description: name: mime - sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" + sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a" url: "https://pub.dev" source: hosted - version: "1.0.5" + version: "1.0.6" mocktail: dependency: "direct dev" description: @@ -1262,10 +1270,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: f0c73347dfcfa5b3db8bc06e1502668265d39c08f310c29bff4e28eea9699f79 + sha256: e35a698ac302dd68e41f73250bd9517fe3ab5fa4f18fe4647a0872db61bacbab url: "https://pub.dev" source: hosted - version: "6.3.9" + version: "6.3.10" url_launcher_ios: dependency: transitive description: @@ -1452,4 +1460,4 @@ packages: version: "3.1.2" sdks: dart: ">=3.5.0 <4.0.0" - flutter: ">=3.22.0" + flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index e4eabd6..62e80d7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: fluttercon description: "A new Flutter project." publish_to: 'none' -version: 1.13.02+11302 +version: 1.14.01+11401 environment: sdk: ">=3.5.0 <4.0.0" @@ -9,16 +9,17 @@ environment: dependencies: appinio_social_share: ^0.3.2 auth_buttons: ^3.0.3 + auto_size_text: ^3.0.0 awesome_notifications: ^0.9.3+1 bloc: ^8.1.4 cached_network_image: ^3.4.0 collection: ^1.18.0 cupertino_icons: ^1.0.8 dio: ^5.6.0 - firebase_analytics: ^11.2.1 - firebase_auth: ^5.1.4 - firebase_core: ^3.3.0 - firebase_crashlytics: ^4.0.4 + firebase_analytics: ^11.3.0 + firebase_auth: ^5.2.0 + firebase_core: ^3.4.0 + firebase_crashlytics: ^4.1.0 flutter: sdk: flutter flutter_bloc: ^8.1.5