diff options
Diffstat (limited to 'lib/playlistLoading.dart')
-rw-r--r-- | lib/playlistLoading.dart | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/lib/playlistLoading.dart b/lib/playlistLoading.dart new file mode 100644 index 0000000..e643323 --- /dev/null +++ b/lib/playlistLoading.dart @@ -0,0 +1,109 @@ +// SPDX-License-Identifier: Apache-2.0 + +import 'package:flutter/material.dart'; +import 'package:flutter/src/foundation/key.dart'; +import 'package:flutter/src/widgets/framework.dart'; +import 'package:musicplayer/musicPage.dart'; +import 'package:musicplayer/nomusic.dart'; + +import 'music_methods/controller.dart'; + +class PlaylistLoading extends StatelessWidget { + PlaylistLoading({Key? key}) : super(key: key); + + + + + @override + + MPDTalker mpdTalker = MPDTalker(); + List<Map<String, String>> playlist = []; + + + + String convertToMin(String str){ + String strforint = ''; + for(int i = 0; i<str.length;i++){ + if(str[i] == '.'){ + break; + } + strforint += str[i]; + } + int num = int.parse(strforint); + double min = num/60; + double sec = num%60; + String ans = min.toInt().toString()+'min ' + sec.toInt().toString()+'sec'; + return ans; + + } + + + Future mymethod() async{ + playlist = await mpdTalker.cmdListMap('playlistinfo'); + return playlist; + + } + Widget build(BuildContext context) { + return Scaffold( + body: FutureBuilder( + future: mymethod(), + builder: (BuildContext context, AsyncSnapshot<dynamic> snapshot) { + + if (snapshot.connectionState == ConnectionState.done) { + // If we got an error + if (snapshot.hasError) { + return Center( + child: Text( + '${snapshot.error} occurred', + style: TextStyle(fontSize: 18, color: Colors.black), + ), + ); + + // if we got our data + } else if (snapshot.hasData) { + // Extracting data from snapshot object + List<Map<String, String>> list = snapshot.data as dynamic; + + if(list.isNotEmpty){ + + mpdTalker.cmd('repeat 1'); + mpdTalker.cmd('single 0'); + mpdTalker.cmd('consume 0'); + mpdTalker.cmd('play'); + mpdTalker.cmd('pause 1'); + + + + + return MusicPageTest(list : list,); + + } + else{ + return const NoMusicFound(); + + } + + + + + + + + } else if(snapshot.data == null){ + return const NoMusicFound(); + + } + + } + return Center( + child: CircularProgressIndicator( + color: Colors.black, + ), + ); + + }, + ), + ); + + } +}
\ No newline at end of file |