sc4v3ng3r / flutter_audio_query

Flutter Audio Query Plugin
https://pub.dev/packages/flutter_audio_query
MIT License
52 stars 47 forks source link

SongInfo is not comparable #5

Closed dvorapa closed 4 years ago

dvorapa commented 4 years ago

Try:

Stream<List<SongInfo>> _songStream =
    Stream.fromFuture(audioQuery.getSongs());
_songStream.listen((List<SongInfo> _songList) {
  _songList.sort();
});

Error thrown in my code:

I/flutter (23594): ══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
I/flutter (23594): The following assertion was thrown while handling a gesture:
I/flutter (23594): type 'SongInfo' is not a subtype of type 'Comparable<dynamic>'
I/flutter (23594): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter (23594): more information in this error message to help you determine and fix the underlying cause.
I/flutter (23594): In either case, please report this assertion by filing a bug on GitHub:
I/flutter (23594):   https://github.com/flutter/flutter/issues/new?template=BUG.md
I/flutter (23594): When the exception was thrown, this was the stack:
I/flutter (23594): #0      ListMixin._compareAny (dart:collection/list.dart:341:31)
I/flutter (23594): #1      Sort._insertionSort (dart:_internal/sort.dart:69:36)
I/flutter (23594): #2      Sort._doSort (dart:_internal/sort.dart:58:7)
I/flutter (23594): #3      Sort.sort (dart:_internal/sort.dart:33:5)
I/flutter (23594): #4      ListMixin.sort (dart:collection/list.dart:335:10)
I/flutter (23594): #5      _PlayerState.onSet (package:stepslow/main.dart:379:15)
I/flutter (23594): #6      _PlayerState.build.<anonymous closure>.<anonymous closure> (package:stepslow/main.dart:1039:45)
I/flutter (23594): #7      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:654:14)
I/flutter (23594): #8      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:729:32)
I/flutter (23594): #9      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
I/flutter (23594): #10     TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:365:11)
I/flutter (23594): #11     TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:312:7)
I/flutter (23594): #12     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
I/flutter (23594): #13     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:222:20)
I/flutter (23594): #14     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
I/flutter (23594): #15     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
I/flutter (23594): #16     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
I/flutter (23594): #17     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
I/flutter (23594): #21     _invoke1 (dart:ui/hooks.dart:263:10)
I/flutter (23594): #22     _dispatchPointerDataPacket (dart:ui/hooks.dart:172:5)
I/flutter (23594): (elided 3 frames from package dart:async)
I/flutter (23594): Handler: "onTap"
I/flutter (23594): Recognizer:
I/flutter (23594):   TapGestureRecognizer#e9d0d
I/flutter (23594): ════════════════════════════════════════════════════════════════════════════════════════════════════

Recommended patch:

class SongInfo implements Comparable<SongInfo> {

or maybe:

class DataModel implements Comparable<DataModel> {

instead of:

class SongInfo {
dvorapa commented 4 years ago

A possible workaround until a solution would be:

_songList.sort((a, b) => a.filePath.compareTo(b.filePath));
dvorapa commented 4 years ago

Closed as solved or closed as wontfix?