summaryrefslogtreecommitdiffstats
path: root/lib/playlistLoading.dart
blob: e643323efc6f167326c0e4a109adad36b2d1796e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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,
                ),
              );
    
                 },
      ),
    );
    
  }
}