flutter build apk --debug vert. Un visiteur part sans fermer l'écran ; le suivant trouvait le contenu du précédent. Écrit une seule fois, dans section_page_detail : il enveloppe les treize types et portait déjà les crochets initState/dispose des statistiques. L'écrire dans les écrans eux-mêmes l'aurait fait écrire treize fois. Bénéfice de bord, et ce n'est pas un détail : le retour automatique passe par le même dispose, donc il émet un sectionLeave avec sa durée réelle. Sans lui, une consultation abandonnée restait ouverte jusqu'au visiteur suivant et gonflait la durée mesurée d'autant. K8 répare donc une statistique en plus d'un écran. Listener plutôt que GestureDetector pour réarmer le minuteur : il observe les pointeurs sans entrer en concurrence avec les gestes des écrans en dessous. Une carte qu'on fait glisser ou un quiz qu'on tape ne doivent rien perdre. onPointerDown et onPointerMove, donc le défilement d'un long article compte comme une interaction. Délai dans constants.dart (kKioskIdleTimeout) plutôt qu'en dur : c'est un réglage de comportement de borne, pas une valeur d'implémentation. Non vérifié : le comportement réel après 5 minutes, qui demande un device et cinq minutes d'attente. popUntil(isFirst) suppose que l'accueil est bien la première route de la pile — à confirmer au §0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
49 lines
1.4 KiB
Dart
49 lines
1.4 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
// Colors - TO FILL WIT CORRECT COLOR
|
|
const kBackgroundColor = Color(0xFFFFFFFF);
|
|
|
|
const kMainGrey = Color(0xFF424242);
|
|
const kSecondGrey = Color(0xFF555457);
|
|
const kTestSecondColor = Color(0xFF2F4858);
|
|
const kMainRed = Color(0xFF8b0000);
|
|
const kSecondRed = Color(0xFF622727);
|
|
const kTextRed = Color(0xFFba0505);
|
|
const kGreen = Color(0xFF15bd5b);
|
|
const kBackgroundGrey = Color(0xFFb5b7b9);
|
|
const kBackgroundSecondGrey = Color(0xFF5b5b63);
|
|
|
|
const kBackgroundLight = Color(0xfff3f3f3);
|
|
|
|
const List<String> languages = ["FR", "NL", "EN", "DE", "IT", "ES", "PL", "CN", "AR", "UK"]; // hmmmm depends on config..
|
|
|
|
/// Délai sans interaction au bout duquel la borne revient à l'accueil, pour que
|
|
/// le visiteur suivant ne trouve pas le contenu du précédent.
|
|
const Duration kKioskIdleTimeout = Duration(minutes: 5);
|
|
|
|
const kTitleSize = 32.0;
|
|
const kDescriptionSize = 22.0;
|
|
|
|
const kSectionTitleDetailSize = 30.0;
|
|
const kSectionDescriptionDetailSize = 18.0;
|
|
|
|
const kMenuTitleDetailSize = 30.0;
|
|
const kMenuDescriptionDetailSize = 15.0;
|
|
|
|
// WEB
|
|
const kWebMenuTitleDetailSize = 30.0;
|
|
const kWebMenuDescriptionDetailSize = 14.0;
|
|
const kWebSectionTitleDetailSize = 30.0;
|
|
const kWebSectionDescriptionDetailSize = 15.0;
|
|
|
|
const kWebTitleSize = 30.0;
|
|
const kWebDescriptionSize = 14.0;
|
|
|
|
const kNoneInfoOrIncorrect = 35.0;
|
|
|
|
/*
|
|
const kTextStyle = TextStyle(
|
|
fontSize: 23,
|
|
color: kPrimaryColor,
|
|
fontWeight: FontWeight.w600,
|
|
);*/ |