diff options
Diffstat (limited to 'lib/screens')
| -rw-r--r-- | lib/screens/level.dart | 68 | ||||
| -rw-r--r-- | lib/screens/level_selection.dart | 41 | 
2 files changed, 54 insertions, 55 deletions
| diff --git a/lib/screens/level.dart b/lib/screens/level.dart index a22c237..000c43c 100644 --- a/lib/screens/level.dart +++ b/lib/screens/level.dart @@ -20,7 +20,7 @@ class Level extends StatefulWidget {  }  class _LevelState extends State<Level> with SingleTickerProviderStateMixin { -  final player = AudioPlayer(); +  final _player = AudioPlayer();    bool _isPlaying = true;    Duration? _duration;    Duration? _position; @@ -30,11 +30,11 @@ class _LevelState extends State<Level> with SingleTickerProviderStateMixin {    StreamSubscription? _buttonSubscription;    final FocusNode _focusNode = FocusNode(); -  InputDirection inputDirection = InputDirection(); +  final InputDirection _inputDirection = InputDirection(); -  String hitOrMissMessage = 'Play!'; +  String _hitOrMissMessage = 'Play!'; -  List<Note> notes = []; +  final List<Note> _notes = [];    late AnimationController _animationController;    late Animation<double> _animation; @@ -62,12 +62,12 @@ class _LevelState extends State<Level> with SingleTickerProviderStateMixin {      _animationController.forward();      // Use initial values from player -    player.getDuration().then( +    _player.getDuration().then(            (value) => setState(() {              _duration = value;            }),          ); -    player.getCurrentPosition().then( +    _player.getCurrentPosition().then(            (value) => setState(() {              _position = value;            }), @@ -75,24 +75,24 @@ class _LevelState extends State<Level> with SingleTickerProviderStateMixin {      // listen for new values from player      _durationSubscription = -        player.onDurationChanged.listen((Duration duration) { +        _player.onDurationChanged.listen((Duration duration) {        setState(() => _duration = duration);      });      _positionSubscription = -        player.onPositionChanged.listen((Duration position) { +        _player.onPositionChanged.listen((Duration position) {        setState(() => _position = position); -      for (final note in notes) { +      for (final note in _notes) {          _noteHitCheck(note, position);        }      });      // go to GameOverStats when level finishes -    player.onPlayerComplete.listen((void _) { +    _player.onPlayerComplete.listen((void _) {        Route route = MaterialPageRoute(            builder: (context) => GameOverStats(                  simfile: widget.simfile, -                notes: notes, +                notes: _notes,                ));        Navigator.pushReplacement(context, route);      }); @@ -112,10 +112,10 @@ class _LevelState extends State<Level> with SingleTickerProviderStateMixin {        if (arrowIndex < 0 || arrowIndex > 3) {          return;        } -      notes.add(Note(time: time, direction: ArrowDirection.values[arrowIndex])); +      _notes.add(Note(time: time, direction: ArrowDirection.values[arrowIndex]));      }); -    player.play(DeviceFileSource(widget.simfile.audioPath!)); +    _player.play(DeviceFileSource(widget.simfile.audioPath!));    }    @override @@ -124,19 +124,19 @@ class _LevelState extends State<Level> with SingleTickerProviderStateMixin {      _durationSubscription?.cancel();      _positionSubscription?.cancel();      _buttonSubscription?.cancel(); -    player.dispose(); +    _player.dispose();      super.dispose();    }    /// toggle between pause and resume    void _pauseResume() {      if (_isPlaying) { -      player.pause(); +      _player.pause();        setState(() {          _isPlaying = false;        });      } else { -      player.resume(); +      _player.resume();        setState(() {          _isPlaying = true;        }); @@ -155,25 +155,25 @@ class _LevelState extends State<Level> with SingleTickerProviderStateMixin {        // combine keyboard and esense input        InputDirection esenseDirection =            ESenseInput.instance.getInputDirection(note.direction); -      inputDirection.up |= esenseDirection.up; -      inputDirection.down |= esenseDirection.down; -      inputDirection.left |= esenseDirection.left; -      inputDirection.right |= esenseDirection.right; +      _inputDirection.up |= esenseDirection.up; +      _inputDirection.down |= esenseDirection.down; +      _inputDirection.left |= esenseDirection.left; +      _inputDirection.right |= esenseDirection.right;        // check if input matches arrow direction        bool keypressCorrect = false;        switch (note.direction) {          case ArrowDirection.up: -          keypressCorrect = inputDirection.up; +          keypressCorrect = _inputDirection.up;            break;          case ArrowDirection.down: -          keypressCorrect = inputDirection.down; +          keypressCorrect = _inputDirection.down;            break;          case ArrowDirection.right: -          keypressCorrect = inputDirection.right; +          keypressCorrect = _inputDirection.right;            break;          case ArrowDirection.left: -          keypressCorrect = inputDirection.left; +          keypressCorrect = _inputDirection.left;            break;        }        if (keypressCorrect) { @@ -181,9 +181,9 @@ class _LevelState extends State<Level> with SingleTickerProviderStateMixin {          note.wasHit = true;          _animationController.reset();          _animationController.forward(); -        inputDirection.reset(); +        _inputDirection.reset();          setState(() { -          hitOrMissMessage = 'Great!'; +          _hitOrMissMessage = 'Great!';          });        }      } else if (note.position < -0.5 * 1.0 / 60.0) { @@ -191,9 +191,9 @@ class _LevelState extends State<Level> with SingleTickerProviderStateMixin {        note.wasHit = false;        _animationController.reset();        _animationController.forward(); -      inputDirection.reset(); +      _inputDirection.reset();        setState(() { -        hitOrMissMessage = 'Missed'; +        _hitOrMissMessage = 'Missed';        });      }    } @@ -210,16 +210,16 @@ class _LevelState extends State<Level> with SingleTickerProviderStateMixin {      }      switch (event.logicalKey) {        case LogicalKeyboardKey.arrowUp: -        inputDirection.up = isDown; +        _inputDirection.up = isDown;          break;        case LogicalKeyboardKey.arrowDown: -        inputDirection.down = isDown; +        _inputDirection.down = isDown;          break;        case LogicalKeyboardKey.arrowLeft: -        inputDirection.left = isDown; +        _inputDirection.left = isDown;          break;        case LogicalKeyboardKey.arrowRight: -        inputDirection.right = isDown; +        _inputDirection.right = isDown;          break;      }    } @@ -254,7 +254,7 @@ class _LevelState extends State<Level> with SingleTickerProviderStateMixin {                  )),            ),            body: Stack(children: [ -            Arrows(notes: notes), +            Arrows(notes: _notes),              Positioned(                top: 50,                width: MediaQuery.of(context).size.width, @@ -262,7 +262,7 @@ class _LevelState extends State<Level> with SingleTickerProviderStateMixin {                child: FadeTransition(                  opacity: _animation,                  child: Text( -                  hitOrMissMessage, +                  _hitOrMissMessage,                    textScaler: TextScaler.linear(4),                    textAlign: TextAlign.center,                  ), 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)),      ); | 
