Canal VR - L'entree VR affiche VrScreen au lieu de « non configuree » : sous-onglet Configuration (AppConfigurationLinkScreen reutilise) et sous-onglet Casques (pincode d'appairage, etat, batterie, version, dernier vu). - Le dialogue de plan SuperAdmin porte aussi les canaux et les add-ons (assistant, contenu immersif). Activer un canal cree son ApplicationInstance s'il n'existe pas ; le desactiver ne supprime rien. Medias immersifs - Types Image360, Video360, Model3D : icones, libelles, extensions, apercu dans la Mediatheque et facettes. - Au depot, la pastille de type bascule Image <-> Image 360 et Video <-> Video 360 : rien dans un .jpg ne dit qu'il est equirectangulaire. Un .glb est reconnu seul. - ImageCompressor ne touche plus aux 360 ni aux GLB, sur les deux chemins d'upload : ramenee a 2560 px, une equirectangulaire devient illisible dans un casque. Scene3D - Nouveau type de section (famille des lieux) et son ecran de configuration : modele, mode objet/decor, points d'interet. - Fond immersif d'une configuration, visible si l'instance a l'add-on : le type est deduit de la ressource choisie, avec une image de repli. Client API edite a la main en miroir du backend : SectionScene3DApi, Scene3DDTO, ImmersiveBackgroundDTO, Position3D, AppType sur les devices, ResourceType etendu. Libelles FR/EN/NL. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
32 lines
1.1 KiB
Dart
32 lines
1.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:manager_api_new/api.dart';
|
|
|
|
IconData getResourceIcon(elementType) {
|
|
switch(elementType) {
|
|
case ResourceType.Image:
|
|
return Icons.image;
|
|
case ResourceType.ImageUrl:
|
|
return Icons.image_search; // art_track
|
|
case ResourceType.Audio:
|
|
return Icons.audiotrack; // art_track
|
|
case ResourceType.Video:
|
|
return Icons.slow_motion_video;
|
|
case ResourceType.VideoUrl:
|
|
return Icons.ondemand_video_sharp;
|
|
case ResourceType.Pdf:
|
|
return Icons.picture_as_pdf_outlined;
|
|
case ResourceType.Json:
|
|
return Icons.file_present_outlined;
|
|
case ResourceType.JsonUrl:
|
|
return Icons.file_present_rounded;
|
|
// Sans ces trois-là, un média immersif s'affichait avec le point
|
|
// d'exclamation du cas par défaut — ce qui se lit comme une erreur.
|
|
case ResourceType.Image360:
|
|
return Icons.panorama_photosphere;
|
|
case ResourceType.Video360:
|
|
return Icons.threesixty;
|
|
case ResourceType.Model3D:
|
|
return Icons.view_in_ar;
|
|
}
|
|
return Icons.announcement;
|
|
} |