From 2c279a0150811b83f8c364d305b050a6aa373cde Mon Sep 17 00:00:00 2001 From: "Alexander \"PapaTutuWawa" Date: Sun, 10 May 2026 23:14:57 +0200 Subject: [PATCH] chore: Format code --- lib/licenses.g.dart | 2 +- lib/main.dart | 4 +- lib/src/service/database.dart | 10 +++- lib/src/ui/bloc/anime_list_bloc.dart | 37 +++++++----- lib/src/ui/bloc/anime_search_bloc.dart | 62 ++++++++++---------- lib/src/ui/bloc/details_bloc.dart | 36 ++++++------ lib/src/ui/bloc/settings_bloc.dart | 61 ++++++++++---------- lib/src/ui/pages/about.dart | 10 ++-- lib/src/ui/pages/anime_list.dart | 79 +++++++++++++------------- lib/src/ui/pages/anime_search.dart | 22 +++---- lib/src/ui/pages/calendar.dart | 26 ++++----- lib/src/ui/pages/details.dart | 48 +++++++++++----- lib/src/ui/pages/settings.dart | 58 ++++++++++--------- lib/src/ui/widgets/dropdown.dart | 68 +++++++++++----------- 14 files changed, 282 insertions(+), 241 deletions(-) diff --git a/lib/licenses.g.dart b/lib/licenses.g.dart index f739683..28492ff 100644 --- a/lib/licenses.g.dart +++ b/lib/licenses.g.dart @@ -2085,7 +2085,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.''', homepage: 'https://github.com/fluttercommunity/get_it', authors: [ 'Flutter Community ', - 'Thomas Burkhart ' + 'Thomas Burkhart ', ], version: '7.2.0', license: '''MIT License diff --git a/lib/main.dart b/lib/main.dart index 2e71ea3..48a37a4 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -38,8 +38,8 @@ void main() async { // Load animes GetIt.I.get().add( - AnimesLoadedEvent(), - ); + AnimesLoadedEvent(), + ); WidgetsFlutterBinding.ensureInitialized(); await LocaleSettings.useDeviceLocale(); diff --git a/lib/src/service/database.dart b/lib/src/service/database.dart index 064349b..f81905a 100644 --- a/lib/src/service/database.dart +++ b/lib/src/service/database.dart @@ -123,7 +123,10 @@ class DatabaseService { ); } - Future incrementAnimeWatchCounter(AnimeTrackingData data, int value) async { + Future incrementAnimeWatchCounter( + AnimeTrackingData data, + int value, + ) async { final result = await _db.rawQuery( 'UPDATE $animeTable SET episodesWatched = episodesWatched + $value WHERE id = ? RETURNING *', [ @@ -171,7 +174,10 @@ class DatabaseService { ); } - Future incrementMangaReadChapters(MangaTrackingData data, int value) async { + Future incrementMangaReadChapters( + MangaTrackingData data, + int value, + ) async { final result = await _db.rawQuery( 'UPDATE $mangaTable SET episodesWatched = chaptersRead + $value WHERE id = ? RETURNING *', [ diff --git a/lib/src/ui/bloc/anime_list_bloc.dart b/lib/src/ui/bloc/anime_list_bloc.dart index 401c810..9c0086d 100644 --- a/lib/src/ui/bloc/anime_list_bloc.dart +++ b/lib/src/ui/bloc/anime_list_bloc.dart @@ -31,10 +31,12 @@ class AnimeListBloc extends Bloc { } /// Internal anime state - final List _animes = - List.empty(growable: true); - final List _mangas = - List.empty(growable: true); + final List _animes = List.empty( + growable: true, + ); + final List _mangas = List.empty( + growable: true, + ); List get unfilteredAnime => _animes; @@ -69,7 +71,7 @@ class AnimeListBloc extends Bloc { if (event.checkIfExists) { final shouldAdd = _animes.firstWhereOrNull((element) => element.id == event.data.id) == - null; + null; if (shouldAdd) { _animes.add(event.data); } @@ -96,7 +98,7 @@ class AnimeListBloc extends Bloc { if (event.checkIfExists) { final shouldAdd = _mangas.firstWhereOrNull((element) => element.id == event.data.id) == - null; + null; if (shouldAdd) { _mangas.add(event.data); } @@ -120,9 +122,12 @@ class AnimeListBloc extends Bloc { final anime = state.animes[index]; if (anime.episodesTotal != null && - anime.episodesWatched + 1 > anime.episodesTotal!) return; + anime.episodesWatched + 1 > anime.episodesTotal!) + return; - final newAnime = await GetIt.I.get().incrementAnimeWatchCounter(anime, 1); + final newAnime = await GetIt.I + .get() + .incrementAnimeWatchCounter(anime, 1); final newList = List.from(state.animes); newList[index] = newAnime; emit( @@ -142,8 +147,9 @@ class AnimeListBloc extends Bloc { final anime = state.animes[index]; if (anime.episodesWatched - 1 < 0) return; - - final newAnime = await GetIt.I.get().incrementAnimeWatchCounter(anime, -1); + final newAnime = await GetIt.I + .get() + .incrementAnimeWatchCounter(anime, -1); final newList = List.from(state.animes); newList[index] = newAnime; emit( @@ -217,9 +223,12 @@ class AnimeListBloc extends Bloc { final manga = state.mangas[index]; if (manga.chaptersTotal != null && - manga.chaptersRead + 1 > manga.chaptersTotal!) return; + manga.chaptersRead + 1 > manga.chaptersTotal!) + return; - final newManga = await GetIt.I.get().incrementMangaReadChapters(manga, 1); + final newManga = await GetIt.I + .get() + .incrementMangaReadChapters(manga, 1); final newList = List.from(state.mangas); newList[index] = newManga; emit( @@ -244,7 +253,9 @@ class AnimeListBloc extends Bloc { final manga = state.mangas[index]; if (manga.chaptersRead - 1 < 0) return; - final newManga = await GetIt.I.get().incrementMangaReadChapters(manga, -1); + final newManga = await GetIt.I + .get() + .incrementMangaReadChapters(manga, -1); final newList = List.from(state.mangas); newList[index] = newManga; emit( diff --git a/lib/src/ui/bloc/anime_search_bloc.dart b/lib/src/ui/bloc/anime_search_bloc.dart index 55a3ea3..2985429 100644 --- a/lib/src/ui/bloc/anime_search_bloc.dart +++ b/lib/src/ui/bloc/anime_search_bloc.dart @@ -36,10 +36,10 @@ class AnimeSearchBloc extends Bloc { ); GetIt.I.get().add( - PushedNamedEvent( - const NavigationDestination(animeSearchRoute), - ), - ); + PushedNamedEvent( + const NavigationDestination(animeSearchRoute), + ), + ); } Future _onQueryChanged( @@ -122,34 +122,34 @@ class AnimeSearchBloc extends Bloc { Emitter emit, ) async { GetIt.I.get().add( - state.trackingType == TrackingMediumType.anime - ? list.AnimeAddedEvent( - AnimeTrackingData( - event.result.id, - MediumTrackingState.ongoing, - event.result.title, - 0, - event.result.total, - event.result.thumbnailUrl, - event.result.isAiring, - event.result.broadcastDay, - ), - ) - : list.MangaAddedEvent( - MangaTrackingData( - event.result.id, - MediumTrackingState.ongoing, - event.result.title, - 0, - 0, - event.result.total, - event.result.thumbnailUrl, - ), - ), - ); + state.trackingType == TrackingMediumType.anime + ? list.AnimeAddedEvent( + AnimeTrackingData( + event.result.id, + MediumTrackingState.ongoing, + event.result.title, + 0, + event.result.total, + event.result.thumbnailUrl, + event.result.isAiring, + event.result.broadcastDay, + ), + ) + : list.MangaAddedEvent( + MangaTrackingData( + event.result.id, + MediumTrackingState.ongoing, + event.result.title, + 0, + 0, + event.result.total, + event.result.thumbnailUrl, + ), + ), + ); GetIt.I.get().add( - PoppedRouteEvent(), - ); + PoppedRouteEvent(), + ); } } diff --git a/lib/src/ui/bloc/details_bloc.dart b/lib/src/ui/bloc/details_bloc.dart index 87d27c5..f7a9455 100644 --- a/lib/src/ui/bloc/details_bloc.dart +++ b/lib/src/ui/bloc/details_bloc.dart @@ -34,10 +34,10 @@ class DetailsBloc extends Bloc { ); GetIt.I.get().add( - PushedNamedEvent( - const NavigationDestination(detailsRoute), - ), - ); + PushedNamedEvent( + const NavigationDestination(detailsRoute), + ), + ); } Future _onMangaRequested( @@ -52,10 +52,10 @@ class DetailsBloc extends Bloc { ); GetIt.I.get().add( - PushedNamedEvent( - const NavigationDestination(detailsRoute), - ), - ); + PushedNamedEvent( + const NavigationDestination(detailsRoute), + ), + ); } Future _onDetailsUpdated( @@ -69,13 +69,13 @@ class DetailsBloc extends Bloc { ), ); - await GetIt.I - .get() - .updateAnime(event.data as AnimeTrackingData); + await GetIt.I.get().updateAnime( + event.data as AnimeTrackingData, + ); GetIt.I.get().add( - AnimeUpdatedEvent(event.data as AnimeTrackingData), - ); + AnimeUpdatedEvent(event.data as AnimeTrackingData), + ); } else { emit( state.copyWith( @@ -83,13 +83,13 @@ class DetailsBloc extends Bloc { ), ); - await GetIt.I - .get() - .updateManga(event.data as MangaTrackingData); + await GetIt.I.get().updateManga( + event.data as MangaTrackingData, + ); GetIt.I.get().add( - MangaUpdatedEvent(event.data as MangaTrackingData), - ); + MangaUpdatedEvent(event.data as MangaTrackingData), + ); } } diff --git a/lib/src/ui/bloc/settings_bloc.dart b/lib/src/ui/bloc/settings_bloc.dart index 183fe53..1f5f6f8 100644 --- a/lib/src/ui/bloc/settings_bloc.dart +++ b/lib/src/ui/bloc/settings_bloc.dart @@ -105,8 +105,9 @@ class SettingsBloc extends Bloc { ); final title = anime.getElement('series_title')!.text; - final totalEpisodes = - int.parse(anime.getElement('series_episodes')!.text); + final totalEpisodes = int.parse( + anime.getElement('series_episodes')!.text, + ); final id = anime.getElement('series_animedb_id')!.text; print('Waiting 500ms to not hammer Jikan ($title)'); @@ -117,21 +118,21 @@ class SettingsBloc extends Bloc { // Add the anime await GetIt.I.get().addAnime( - AnimeTrackingData( - id, - malStatusToTrackingState( - anime.getElement('my_status')!.text, - ), - title, - int.parse(anime.getElement('my_watched_episodes')!.text), - // 0 means that MAL does not know - totalEpisodes == 0 ? null : totalEpisodes, - data.imageUrl, - // NOTE: When the calendar gets refreshed, this should also get cleared - true, - null, - ), - ); + AnimeTrackingData( + id, + malStatusToTrackingState( + anime.getElement('my_status')!.text, + ), + title, + int.parse(anime.getElement('my_watched_episodes')!.text), + // 0 means that MAL does not know + totalEpisodes == 0 ? null : totalEpisodes, + data.imageUrl, + // NOTE: When the calendar gets refreshed, this should also get cleared + true, + null, + ), + ); } // Hide the spinner again @@ -195,19 +196,19 @@ class SettingsBloc extends Bloc { // Add the manga await GetIt.I.get().addManga( - MangaTrackingData( - id, - malStatusToTrackingState( - manga.getElement('my_status')!.text, - ), - title, - int.parse(manga.getElement('my_read_chapters')!.text), - 0, - // 0 means that MAL does not know - totalChapters == 0 ? null : totalChapters, - data.imageUrl, - ), - ); + MangaTrackingData( + id, + malStatusToTrackingState( + manga.getElement('my_status')!.text, + ), + title, + int.parse(manga.getElement('my_read_chapters')!.text), + 0, + // 0 means that MAL does not know + totalChapters == 0 ? null : totalChapters, + data.imageUrl, + ), + ); } // Hide the spinner again diff --git a/lib/src/ui/pages/about.dart b/lib/src/ui/pages/about.dart index 1753261..55bacc4 100644 --- a/lib/src/ui/pages/about.dart +++ b/lib/src/ui/pages/about.dart @@ -11,11 +11,11 @@ class AboutPage extends StatelessWidget { }); static MaterialPageRoute get route => MaterialPageRoute( - builder: (_) => const AboutPage(), - settings: const RouteSettings( - name: aboutRoute, - ), - ); + builder: (_) => const AboutPage(), + settings: const RouteSettings( + name: aboutRoute, + ), + ); @override Widget build(BuildContext context) { diff --git a/lib/src/ui/pages/anime_list.dart b/lib/src/ui/pages/anime_list.dart index 37d2efd..24e949e 100644 --- a/lib/src/ui/pages/anime_list.dart +++ b/lib/src/ui/pages/anime_list.dart @@ -18,11 +18,11 @@ class AnimeListPage extends StatefulWidget { }); static MaterialPageRoute get route => MaterialPageRoute( - builder: (_) => const AnimeListPage(), - settings: const RouteSettings( - name: animeListRoute, - ), - ); + builder: (_) => const AnimeListPage(), + settings: const RouteSettings( + name: animeListRoute, + ), + ); @override AnimeListPageState createState() => AnimeListPageState(); @@ -107,8 +107,8 @@ class AnimeListPageState extends State { initialValue: state.animeFilterState, onSelected: (filterState) { context.read().add( - AnimeFilterChangedEvent(filterState), - ); + AnimeFilterChangedEvent(filterState), + ); }, itemBuilder: (_) => _getPopupButtonItems(TrackingMediumType.anime), ); @@ -120,8 +120,8 @@ class AnimeListPageState extends State { initialValue: state.mangaFilterState, onSelected: (filterState) { context.read().add( - MangaFilterChangedEvent(filterState), - ); + MangaFilterChangedEvent(filterState), + ); }, itemBuilder: (_) => _getPopupButtonItems(TrackingMediumType.manga), ); @@ -164,25 +164,25 @@ class AnimeListPageState extends State { return GridItem( minusCallback: () { context.read().add( - AnimeEpisodeDecrementedEvent( - anime.id, - ), - ); + AnimeEpisodeDecrementedEvent( + anime.id, + ), + ); }, plusCallback: () { context.read().add( - AnimeEpisodeIncrementedEvent( - anime.id, - ), - ); + AnimeEpisodeIncrementedEvent( + anime.id, + ), + ); }, child: AnimeCoverImage( url: anime.thumbnailUrl, hero: anime.id, onTap: () { context.read().add( - AnimeDetailsRequestedEvent(anime), - ); + AnimeDetailsRequestedEvent(anime), + ); }, extra: Align( alignment: Alignment.centerRight, @@ -214,25 +214,25 @@ class AnimeListPageState extends State { return GridItem( minusCallback: () { context.read().add( - MangaChapterDecrementedEvent( - manga.id, - ), - ); + MangaChapterDecrementedEvent( + manga.id, + ), + ); }, plusCallback: () { context.read().add( - MangaChapterIncrementedEvent( - manga.id, - ), - ); + MangaChapterIncrementedEvent( + manga.id, + ), + ); }, child: AnimeCoverImage( hero: manga.id, url: manga.thumbnailUrl, onTap: () { context.read().add( - MangaDetailsRequestedEvent(manga), - ); + MangaDetailsRequestedEvent(manga), + ); }, extra: Align( alignment: Alignment.centerRight, @@ -263,8 +263,8 @@ class AnimeListPageState extends State { child: FloatingActionButton( onPressed: () { context.read().add( - AnimeSearchRequestedEvent(state.trackingType), - ); + AnimeSearchRequestedEvent(state.trackingType), + ); }, tooltip: t.tooltips.addNewItem, child: const Icon(Icons.add), @@ -273,16 +273,17 @@ class AnimeListPageState extends State { }, ), bottomNavigationBar: BottomBar( - selectedIndex: - state.trackingType == TrackingMediumType.anime ? 0 : 1, + selectedIndex: state.trackingType == TrackingMediumType.anime + ? 0 + : 1, onTap: (int index) { context.read().add( - AnimeTrackingTypeChanged( - index == 0 - ? TrackingMediumType.anime - : TrackingMediumType.manga, - ), - ); + AnimeTrackingTypeChanged( + index == 0 + ? TrackingMediumType.anime + : TrackingMediumType.manga, + ), + ); _controller.jumpToPage(index); }, diff --git a/lib/src/ui/pages/anime_search.dart b/lib/src/ui/pages/anime_search.dart index 29c83d5..d1e9fde 100644 --- a/lib/src/ui/pages/anime_search.dart +++ b/lib/src/ui/pages/anime_search.dart @@ -12,11 +12,11 @@ class AnimeSearchPage extends StatelessWidget { }); static MaterialPageRoute get route => MaterialPageRoute( - builder: (_) => const AnimeSearchPage(), - settings: const RouteSettings( - name: animeSearchRoute, - ), - ); + builder: (_) => const AnimeSearchPage(), + settings: const RouteSettings( + name: animeSearchRoute, + ), + ); @override Widget build(BuildContext context) { @@ -41,13 +41,13 @@ class AnimeSearchPage extends StatelessWidget { ), onSubmitted: (_) { context.read().add( - SearchQuerySubmittedEvent(), - ); + SearchQuerySubmittedEvent(), + ); }, onChanged: (value) { context.read().add( - SearchQueryChangedEvent(value), - ); + SearchQueryChangedEvent(value), + ); }, ), ), @@ -66,8 +66,8 @@ class AnimeSearchPage extends StatelessWidget { return InkWell( onTap: () { context.read().add( - ResultTappedEvent(item), - ); + ResultTappedEvent(item), + ); }, child: ListItem( title: item.title, diff --git a/lib/src/ui/pages/calendar.dart b/lib/src/ui/pages/calendar.dart index 717dd55..4a5088b 100644 --- a/lib/src/ui/pages/calendar.dart +++ b/lib/src/ui/pages/calendar.dart @@ -57,11 +57,11 @@ class CalendarPage extends StatefulWidget { const CalendarPage({super.key}); static MaterialPageRoute get route => MaterialPageRoute( - builder: (_) => const CalendarPage(), - settings: const RouteSettings( - name: calendarRoute, - ), - ); + builder: (_) => const CalendarPage(), + settings: const RouteSettings( + name: calendarRoute, + ), + ); @override CalendarPageState createState() => CalendarPageState(); @@ -109,11 +109,11 @@ class CalendarPageState extends State { hero: 'calendar_${anime.id}', onTap: () { context.read().add( - AnimeDetailsRequestedEvent( - anime, - heroImagePrefix: 'calendar_', - ), - ); + AnimeDetailsRequestedEvent( + anime, + heroImagePrefix: 'calendar_', + ), + ); }, ), ); @@ -183,9 +183,9 @@ class CalendarPageState extends State { actions: [ IconButton( onPressed: () { - context - .read() - .add(RefreshPerformedEvent()); + context.read().add( + RefreshPerformedEvent(), + ); }, icon: const Icon(Icons.refresh), ), diff --git a/lib/src/ui/pages/details.dart b/lib/src/ui/pages/details.dart index 714a68c..20f6e43 100644 --- a/lib/src/ui/pages/details.dart +++ b/lib/src/ui/pages/details.dart @@ -157,7 +157,10 @@ class DetailsPage extends StatelessWidget { end: 8, ), child: Text( - t.details.details.titleJa, + t + .details + .details + .titleJa, style: Theme.of( context, @@ -173,21 +176,32 @@ class DetailsPage extends StatelessWidget { end: 8, ), child: Row( - mainAxisSize: MainAxisSize.min, + mainAxisSize: + MainAxisSize + .min, children: [ IconButton( - onPressed: () async { - await Clipboard.setData( - ClipboardData( - text: state.data!.title, - ), - ); - }, - icon: const Icon(Icons.copy), + onPressed: () async { + await Clipboard.setData( + ClipboardData( + text: state + .data! + .title, + ), + ); + }, + icon: + const Icon( + Icons + .copy, + ), ), Expanded( child: Padding( - padding: const EdgeInsetsGeometry.only(left: 8), + padding: + const EdgeInsetsGeometry.only( + left: 8, + ), child: Text( state .data! @@ -223,13 +237,17 @@ class DetailsPage extends StatelessWidget { children: [ ElevatedButton( onPressed: () async { - final url = switch (state.trackingType) { - TrackingMediumType.anime => 'https://myanimelist.net/anime/${state.data!.id}', - TrackingMediumType.manga => 'https://myanimelist.net/manga/${state.data!.id}', + final url = switch (state + .trackingType) { + TrackingMediumType.anime => + 'https://myanimelist.net/anime/${state.data!.id}', + TrackingMediumType.manga => + 'https://myanimelist.net/manga/${state.data!.id}', }; await launchUrl( Uri.parse(url), - mode: LaunchMode.externalApplication, + mode: LaunchMode + .externalApplication, ); }, child: Text(t.details.mal), diff --git a/lib/src/ui/pages/settings.dart b/lib/src/ui/pages/settings.dart index 3450ced..9359fae 100644 --- a/lib/src/ui/pages/settings.dart +++ b/lib/src/ui/pages/settings.dart @@ -11,11 +11,11 @@ class SettingsPage extends StatelessWidget { const SettingsPage({super.key}); static MaterialPageRoute get route => MaterialPageRoute( - builder: (_) => const SettingsPage(), - settings: const RouteSettings( - name: settingsRoute, - ), - ); + builder: (_) => const SettingsPage(), + settings: const RouteSettings( + name: settingsRoute, + ), + ); @override Widget build(BuildContext context) { @@ -58,11 +58,11 @@ class SettingsPage extends StatelessWidget { } GetIt.I.get().add( - AnimeListImportedEvent( - result.files.first.path!, - ImportListType.mal, - ), - ); + AnimeListImportedEvent( + result.files.first.path!, + ImportListType.mal, + ), + ); }, ), ListTile( @@ -85,30 +85,31 @@ class SettingsPage extends StatelessWidget { } GetIt.I.get().add( - MangaListImportedEvent( - result.files.first.path!, - ImportListType.mal, - ), - ); + MangaListImportedEvent( + result.files.first.path!, + ImportListType.mal, + ), + ); }, ), ListTile( title: Text(t.settings.exportData), onTap: () async { // Pick the file - final result = - await FilePicker.platform.getDirectoryPath(); + final result = await FilePicker.platform + .getDirectoryPath(); if (result == null) return; if (!(await Permission.manageExternalStorage .request()) - .isGranted) return; + .isGranted) + return; GetIt.I.get().add( - DataExportedEvent( - result, - ), - ); + DataExportedEvent( + result, + ), + ); }, ), ListTile( @@ -123,18 +124,19 @@ class SettingsPage extends StatelessWidget { context: context, builder: (_) => AlertDialog( title: Text(t.settings.importInvalidData.title), - content: - Text(t.settings.importInvalidData.content), + content: Text( + t.settings.importInvalidData.content, + ), ), ); return; } GetIt.I.get().add( - DataImportedEvent( - result.files.first.path!, - ), - ); + DataImportedEvent( + result.files.first.path!, + ), + ); }, ), ], diff --git a/lib/src/ui/widgets/dropdown.dart b/lib/src/ui/widgets/dropdown.dart index ce17a12..217ff55 100644 --- a/lib/src/ui/widgets/dropdown.dart +++ b/lib/src/ui/widgets/dropdown.dart @@ -39,8 +39,9 @@ class DropdownSelectorState extends State> { void initState() { super.initState(); - index = - widget.values.indexWhere((item) => item.value == widget.initialValue); + index = widget.values.indexWhere( + (item) => item.value == widget.initialValue, + ); } @override @@ -53,48 +54,49 @@ class DropdownSelectorState extends State> { child: InkWell( onTap: () async { final result = await showModalBottomSheet( - context: context, - clipBehavior: Clip.antiAlias, - builder: (context) => DraggableScrollableSheet( - initialChildSize: 1, - builder: (context, controller) => ListView.builder( - shrinkWrap: true, - controller: controller, - itemCount: widget.values.length, - itemBuilder: (context, index) => InkWell( - onTap: () { - Navigator.of(context).pop(widget.values[index].value); - }, - child: Padding( - padding: const EdgeInsetsGeometry.symmetric( - horizontal: 16, - vertical: 12, - ), - child: Row( - children: [ - Text( - widget.values[index].text, - style: Theme.of(context).textTheme.titleLarge, + context: context, + clipBehavior: Clip.antiAlias, + builder: (context) => DraggableScrollableSheet( + initialChildSize: 1, + builder: (context, controller) => ListView.builder( + shrinkWrap: true, + controller: controller, + itemCount: widget.values.length, + itemBuilder: (context, index) => InkWell( + onTap: () { + Navigator.of(context).pop(widget.values[index].value); + }, + child: Padding( + padding: const EdgeInsetsGeometry.symmetric( + horizontal: 16, + vertical: 12, + ), + child: Row( + children: [ + Text( + widget.values[index].text, + style: Theme.of(context).textTheme.titleLarge, + ), + if (this.index == index) + const Padding( + padding: EdgeInsets.only(left: 12), + child: Icon(Icons.check), ), - if (this.index == index) - const Padding( - padding: EdgeInsets.only(left: 12), - child: Icon(Icons.check), - ), - ], - ), + ], ), ), ), ), + ), ); if (result == null) return; if (result == widget.values[index].value) return; setState(() { - index = - widget.values.indexWhere((item) => item.value == result); + index = widget.values.indexWhere( + (item) => item.value == result, + ); }); widget.onChanged(result);