summaryrefslogtreecommitdiff
path: root/lib/screens/level_selection.dart
diff options
context:
space:
mode:
Diffstat (limited to 'lib/screens/level_selection.dart')
-rw-r--r--lib/screens/level_selection.dart41
1 files changed, 20 insertions, 21 deletions
diff --git a/lib/screens/level_selection.dart b/lib/screens/level_selection.dart
index 5984e65..0987063 100644
--- a/lib/screens/level_selection.dart
+++ b/lib/screens/level_selection.dart
@@ -17,36 +17,35 @@ class LevelSelection extends StatefulWidget {
}
class _LevelSelectionState extends State<LevelSelection> {
- String? stepmaniaCoursesPath;
- List<Simfile> stepmaniaCoursesFolders = [];
- List<Simfile> stepmaniaCoursesFoldersFiltered = [];
- String searchString = '';
+ String? _stepmaniaCoursesPath;
+ List<Simfile> _stepmaniaCoursesFolders = [];
+ List<Simfile> _stepmaniaCoursesFoldersFiltered = [];
@override
void initState() {
super.initState();
- loadFolderPath();
+ _loadFolderPath();
}
/// gets folder path from persistent storage and updates state with loaded simfiles
- Future<void> loadFolderPath() async {
+ Future<void> _loadFolderPath() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
final String? stepmaniaCoursesPathSetting =
prefs.getString('stepmania_courses');
if (stepmaniaCoursesPathSetting == null) return;
List<Simfile> stepmaniaCoursesFoldersFuture =
- await listFilesAndFolders(stepmaniaCoursesPathSetting);
+ await _listFilesAndFolders(stepmaniaCoursesPathSetting);
setState(() {
- stepmaniaCoursesPath = stepmaniaCoursesPathSetting;
- stepmaniaCoursesFolders = stepmaniaCoursesFoldersFuture;
- stepmaniaCoursesFoldersFiltered = stepmaniaCoursesFoldersFuture;
+ _stepmaniaCoursesPath = stepmaniaCoursesPathSetting;
+ _stepmaniaCoursesFolders = stepmaniaCoursesFoldersFuture;
+ _stepmaniaCoursesFoldersFiltered = stepmaniaCoursesFoldersFuture;
});
}
/// open folder selection dialog and save selected folder in persistent storage
- Future<void> selectFolder() async {
+ Future<void> _selectFolder() async {
await Permission.manageExternalStorage.request();
String? selectedFolder = await FilePicker.platform.getDirectoryPath();
@@ -55,12 +54,12 @@ class _LevelSelectionState extends State<LevelSelection> {
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString('stepmania_courses', selectedFolder);
- loadFolderPath();
+ _loadFolderPath();
}
}
/// load all simfiles from a [directoryPath]
- Future<List<Simfile>> listFilesAndFolders(String directoryPath) async {
+ Future<List<Simfile>> _listFilesAndFolders(String directoryPath) async {
final directory = Directory(directoryPath);
try {
// List all files and folders in the directory
@@ -90,9 +89,9 @@ class _LevelSelectionState extends State<LevelSelection> {
}
/// filter stepmaniaCoursesFolders based on [input]
- void filterLevels(String input) {
+ void _filterLevels(String input) {
setState(() {
- stepmaniaCoursesFoldersFiltered = stepmaniaCoursesFolders
+ _stepmaniaCoursesFoldersFiltered = _stepmaniaCoursesFolders
.where((simfile) => simfile.tags["TITLE"]!
.toLowerCase()
.contains(input.toLowerCase()))
@@ -119,9 +118,9 @@ class _LevelSelectionState extends State<LevelSelection> {
],
),
body: Builder(builder: (context) {
- if (stepmaniaCoursesPath == null) {
+ if (_stepmaniaCoursesPath == null) {
return Text('Add a Directory with Stepmania Songs on \'+\'');
- } else if (stepmaniaCoursesFolders.isEmpty) {
+ } else if (_stepmaniaCoursesFolders.isEmpty) {
return Text(
'Folder empty. Add Stepmania Songs to Folder or select a different folder on \'+\'');
} else {
@@ -131,7 +130,7 @@ class _LevelSelectionState extends State<LevelSelection> {
padding:
const EdgeInsets.symmetric(horizontal: 16.0, vertical: 0.0),
child: TextField(
- onChanged: filterLevels,
+ onChanged: _filterLevels,
decoration: InputDecoration(
// icon: Icon(Icons.search),
hintText: 'Search'),
@@ -139,11 +138,11 @@ class _LevelSelectionState extends State<LevelSelection> {
),
Expanded(
child: ListView.separated(
- itemCount: stepmaniaCoursesFoldersFiltered.length,
+ itemCount: _stepmaniaCoursesFoldersFiltered.length,
separatorBuilder: (BuildContext context, int index) =>
const Divider(),
itemBuilder: (context, index) {
- Simfile simfile = stepmaniaCoursesFoldersFiltered[index];
+ Simfile simfile = _stepmaniaCoursesFoldersFiltered[index];
return LevelListEntry(simfile: simfile);
},
),
@@ -154,7 +153,7 @@ class _LevelSelectionState extends State<LevelSelection> {
}),
floatingActionButton: FloatingActionButton(
onPressed: () {
- selectFolder();
+ _selectFolder();
},
child: Icon(Icons.add)),
);