manager-app/lib/Components/fetch_resource_icon.dart
Thomas Fransolet c8947880ba Ecran VR, section Scene3D et medias immersifs
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>
2026-09-13 16:54:13 +02:00

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;
}