diff --git a/assets/langs/en.yaml b/assets/langs/en.yaml index 8debbe64..61f84239 100644 --- a/assets/langs/en.yaml +++ b/assets/langs/en.yaml @@ -133,6 +133,8 @@ widgets: two: "{} Notes link to this Note" few: "{} Notes link to this Note" other: "{} Notes link to this Note" + SortingOrderSelector: + title: Sorting Criteria rootFolder: Root Folder ignoredFiles: diff --git a/lib/screens/folder_view.dart b/lib/screens/folder_view.dart index 0fe51984..8bd6954f 100644 --- a/lib/screens/folder_view.dart +++ b/lib/screens/folder_view.dart @@ -19,6 +19,7 @@ import 'package:gitjournal/widgets/app_bar_menu_button.dart'; import 'package:gitjournal/widgets/app_drawer.dart'; import 'package:gitjournal/widgets/new_note_nav_bar.dart'; import 'package:gitjournal/widgets/note_search_delegate.dart'; +import 'package:gitjournal/widgets/sorting_order_selector.dart'; import 'package:gitjournal/widgets/sync_button.dart'; enum DropDownChoices { @@ -185,34 +186,11 @@ class _FolderViewState extends State { _scaffoldKey.currentState.removeCurrentSnackBar(); } - RadioListTile _buildSortingTile(SortingMode sm) { - return RadioListTile( - title: Text(sm.toPublicString()), - value: sm, - groupValue: sortedNotesFolder.sortingMode, - onChanged: (SortingMode sm) => Navigator.of(context).pop(sm), - ); - } - void _sortButtonPressed() async { var newSortingMode = await showDialog( context: context, - builder: (BuildContext context) { - var children = [ - _buildSortingTile(SortingMode.Modified), - _buildSortingTile(SortingMode.Created), - _buildSortingTile(SortingMode.Title), - _buildSortingTile(SortingMode.FileName), - ]; - - return AlertDialog( - title: const Text("Sorting Criteria"), - content: Column( - children: children, - mainAxisSize: MainAxisSize.min, - ), - ); - }, + builder: (BuildContext context) => + SortingOrderSelector(sortedNotesFolder.sortingMode), ); if (newSortingMode != null) { diff --git a/lib/widgets/sorting_order_selector.dart b/lib/widgets/sorting_order_selector.dart new file mode 100644 index 00000000..c53b5631 --- /dev/null +++ b/lib/widgets/sorting_order_selector.dart @@ -0,0 +1,41 @@ +import 'package:flutter/material.dart'; + +import 'package:easy_localization/easy_localization.dart'; + +import 'package:gitjournal/core/sorting_mode.dart'; + +class SortingOrderSelector extends StatelessWidget { + final SortingMode selectedMode; + + SortingOrderSelector(this.selectedMode); + + @override + Widget build(BuildContext context) { + var children = [ + _buildSortingTile(context, SortingMode.Modified), + _buildSortingTile(context, SortingMode.Created), + _buildSortingTile(context, SortingMode.Title), + _buildSortingTile(context, SortingMode.FileName), + ]; + + return AlertDialog( + title: Text(tr("widgets.SortingOrderSelector.title")), + content: Column( + children: children, + mainAxisSize: MainAxisSize.min, + ), + ); + } + + RadioListTile _buildSortingTile( + BuildContext context, + SortingMode sm, + ) { + return RadioListTile( + title: Text(sm.toPublicString()), + value: sm, + groupValue: selectedMode, + onChanged: (SortingMode sm) => Navigator.of(context).pop(sm), + ); + } +}