summaryrefslogtreecommitdiffstats
path: root/lib/loadingPage.dart
blob: 7d5c1af803e161ddc367cba09e6d781fba26e124 (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
// SPDX-License-Identifier: Apache-2.0

import 'package:flutter/material.dart';

import 'package:flutter_riverpod/flutter_riverpod.dart';


import 'package:musicplayer/music_methods/controller.dart';
import 'package:musicplayer/nomusic.dart';
import 'package:musicplayer/playlistLoading.dart';
import 'package:musicplayer/socketProblem.dart';


class loadingPage extends ConsumerStatefulWidget {
  const loadingPage({Key? key}) : super(key: key);

  @override
  _loadingPageState createState() => _loadingPageState();
}

class _loadingPageState extends ConsumerState<loadingPage> {

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
  }

  MPDTalker mpdTalker = MPDTalker();
  List<Map<String, String>> list = [];

  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{
    list = await mpdTalker.cmdListMap('listall');
    return list;

  }

  @override
  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 const SocketProblem();
           
          // if we got our data
        } else if (snapshot.hasData) {
          // Extracting data from snapshot object
          List list = snapshot.data as dynamic;
          
          if(list.isNotEmpty){
            mpdTalker.cmdStr('clear');
          for(int i =0; i<list.length;i++){

            String addsong = list[i]['file'];
            
            mpdTalker.cmdStr('add "$addsong"');

          }
          return PlaylistLoading();

          }
          else{
          return NoMusicFound();
          }
        
        } else if(snapshot.data == null){
          return NoMusicFound();
    
        }
        
      }
      return const Center(
                child: CircularProgressIndicator(
                  color: Colors.black,
                ),
              );
    
                 },
      ),
    );
      

    
  }
}