import 'dart:convert'; import 'dart:typed_data'; import 'package:manager_app/Components/audio_player.dart'; import 'package:manager_app/Components/loading_common.dart'; import 'package:manager_app/Models/managerContext.dart'; import 'package:manager_app/app_context.dart'; import 'package:manager_app/constants.dart'; import 'package:manager_api_new/api.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; getElementForResource(dynamic resourceDTO, AppContext appContext) { switch(resourceDTO.type) { case ResourceType.Image: return Image.network( resourceDTO.url, fit:BoxFit.fill, loadingBuilder: (BuildContext context, Widget child, ImageChunkEvent? loadingProgress) { if (loadingProgress == null) { return child; } return Center( child: CircularProgressIndicator( color: kPrimaryColor, value: loadingProgress.expectedTotalBytes != null ? loadingProgress.cumulativeBytesLoaded / loadingProgress.expectedTotalBytes! : null, ), ); }, ); break; case ResourceType.ImageUrl: return Image.network( resourceDTO.url, fit:BoxFit.fill, loadingBuilder: (BuildContext context, Widget child, ImageChunkEvent? loadingProgress) { if (loadingProgress == null) { return child; } return Center( child: CircularProgressIndicator( color: kPrimaryColor, value: loadingProgress.expectedTotalBytes != null ? loadingProgress.cumulativeBytesLoaded / loadingProgress.expectedTotalBytes! : null, ), ); }, ); break; case ResourceType.Audio: return AudioPlayerFloatingContainer(audioBytes: null, resourceURl: resourceDTO.url, isAuto: true); /*return FutureBuilder( future: getAudio(resourceDTO.url, appContext), builder: (context, AsyncSnapshot snapshot) { Size size = MediaQuery.of(context).size; if (snapshot.connectionState == ConnectionState.done) { var audioBytes; if(snapshot.data != null) { print("snapshot.data"); print(snapshot.data); audioBytes = snapshot.data; //this.player.playBytes(audiobytes); } return AudioPlayerFloatingContainer(audioBytes: audioBytes, resourceURl: resourceDTO.url, isAuto: true); } else if (snapshot.connectionState == ConnectionState.none) { return Text("No data"); } else { return Center( child: Container( //height: size.height * 0.2, width: size.width * 0.2, child: LoadingCommon() ) ); } } );*/ //return Text("Fichier audio - aucune visualisation possible"); case ResourceType.Video: return Text("Vidéo locale - aucune visualisation possible"); case ResourceType.VideoUrl: return Text(resourceDTO.url); case ResourceType.Pdf: return Text("Fichier pdf - aucune visualisation possible"); case ResourceType.Json: return Text("Fichier json - aucune visualisation possible"); } } /*Future getAudio(String resourceId, AppContext appContext) async { try { ManagerAppContext managerAppContext = appContext.getContext() as ManagerAppContext; var url = managerAppContext.host! + "/api/Resource/" + resourceId; // TO TEST TODO UPDATE ROUTE var test2 = await http.readBytes(Uri.parse(url)); final base64Str = base64.encode(test2); Uint8List base64String = base64Decode(base64Str); // LOAD DATA return base64String; } catch (e) { print(e); print("IN CATCH"); return null; } }*/