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

Loading…
Cancel
Save