remotes/origin/database-api-implementation
Félix MIELCAREK 2 years ago committed by felixmielcarek
parent 338f6381cb
commit 7daeba3ff6

@ -1,4 +1,5 @@
import 'dart:async';
import 'dart:collection';
import 'dart:convert';
import 'package:dafl_project_flutter/controller/live_datas.dart';
import 'package:dafl_project_flutter/model/music.dart';
@ -11,15 +12,12 @@ import 'package:http/http.dart' as http;
import '../model/user.dart';
class Controller {
ApiSpotify _api = ApiSpotify();
final ApiSpotify _api = ApiSpotify();
late User _currentUser;
final DataBaseService _dataBaseService = DataBaseService();
final LiveDatas _datas = LiveDatas();
final LiveData _data = LiveData();
late BuildContext navigatorKey;
//
// Constructor
//
Controller() {
setSpots();
@ -27,39 +25,40 @@ class Controller {
}
//
// Methods to manage datas
// Methods to manage data
//
// Datas that can change
// Data that can change
bool getChoice() => _datas.discoveriesSortChoice;
bool getChoice() => _data.discoveriesSortChoice;
setChoice(bool c) {
_datas.discoveriesSortChoice = c;
_data.discoveriesSortChoice = c;
}
Music getCurrentMusic() => _datas.userCurrentMusic;
Music getCurrentMusic() => _data.userCurrentMusic;
setCurrentMusic() async {
_datas.userCurrentMusic =
_data.userCurrentMusic =
await getCompleteMusic(await _api.requests.getCurrentlyPlayingTrack());
}
List<Spot> getSpots() => _datas.spots;
List<Spot> getSpots() => _data.spots;
setSpots() async {
_datas.spots = await Location.sendCurrentLocation();
_data.spots = await Location.sendCurrentLocation();
}
Map<Music, DateTime> getDiscoveries() => _datas.discoveries;
LinkedHashMap<Music, DateTime> getDiscoveries() => _data.discoveries;
setDiscoveries() async {
Map<String, DateTime> tmpData = await _api.requests.getPlaylistTracks();
Map<Music, DateTime> tmpCast = {};
LinkedHashMap<String, DateTime> tmpData =
await _api.requests.getPlaylistTracks();
LinkedHashMap<Music, DateTime> tmpCast = LinkedHashMap();
tmpData.forEach((key, value) async {
tmpCast[(await getCompleteMusic(key))] = value;
});
_datas.discoveries = tmpCast;
_data.discoveries = tmpCast;
}
//Data that can not change
@ -81,8 +80,8 @@ class Controller {
}
Future<Music> getCompleteMusic(String id) async {
Map infos = await _api.requests.getTrackInfo(id);
return Music(id, infos['name'], infos['artist'], infos['cover']);
Map info = await _api.requests.getTrackInfo(id);
return Music(id, info['name'], info['artist'], info['cover']);
}
removeFromPlaylist(String id) {

Loading…
Cancel
Save