CTK 1.0.2
This commit is contained in:
@@ -13,11 +13,12 @@ import 'quiz_video_guide.dart';
|
||||
|
||||
const String _resultGuideYoutubeId = '3q7C7txH1dE';
|
||||
|
||||
// Fase 3 tem 28 perguntas no total: 5 são sinais de má oclusão já
|
||||
// instalados (queixo, boca/dentição, apinhamento, boca/dentição 2, céu da
|
||||
// boca) — as restantes 23 são fatores de risco associados. Ver o diagrama
|
||||
// de planeamento partilhado com o utilizador para o racional completo.
|
||||
const int kSignsMax = 5;
|
||||
// Fase 3 tem 29 perguntas no total: 6 são sinais de má oclusão já
|
||||
// instalados (queixo, boca/dentição, apinhamento, boca/dentição 2,
|
||||
// boca/dentição 3, céu da boca) — as restantes 23 são fatores de risco
|
||||
// associados. Ver o diagrama de planeamento partilhado com o utilizador
|
||||
// para o racional completo.
|
||||
const int kSignsMax = 6;
|
||||
const int kFactorsMax = 23;
|
||||
|
||||
/// A partir de quantos sinais/fatores presentes se recomenda avaliação.
|
||||
@@ -73,13 +74,16 @@ class _QuizResultScreenState extends State<QuizResultScreen> {
|
||||
scope.startsWith('${userId}_')) {
|
||||
final childId = scope.substring(userId.length + 1).trim();
|
||||
if (childId.isNotEmpty) {
|
||||
// Fire-and-forget: avoid blocking UI on erros de rede. Requer as
|
||||
// Aguarda a gravação (em vez de fire-and-forget) para que, ao voltar
|
||||
// à Home logo a seguir, _loadQuizResult já encontre o valor novo na
|
||||
// base de dados — caso contrário havia uma corrida em que a Home
|
||||
// consultava a tabela antes desta escrita terminar, mostrando o
|
||||
// resultado antigo até trocar de aba ou reabrir a app. Requer as
|
||||
// colunas last_signs/last_signs_max/last_factors/last_factors_max
|
||||
// na tabela children — se ainda não existirem na base de dados,
|
||||
// esta chamada falha silenciosamente e o resultado fica só local
|
||||
// (SharedPreferences, acima), tal como já acontecia antes.
|
||||
unawaited(
|
||||
supabase
|
||||
// na tabela children — se ainda não existirem, falha silenciosamente
|
||||
// e o resultado fica só local (SharedPreferences, acima).
|
||||
try {
|
||||
await supabase
|
||||
.from('children')
|
||||
.update({
|
||||
'last_signs': widget.finalScore.signs,
|
||||
@@ -87,13 +91,12 @@ class _QuizResultScreenState extends State<QuizResultScreen> {
|
||||
'last_factors': widget.finalScore.factors,
|
||||
'last_factors_max': kFactorsMax,
|
||||
})
|
||||
.eq('id', childId)
|
||||
.catchError((e) {
|
||||
debugPrint(
|
||||
'[QuizResult] Falha ao gravar score na base de dados: $e',
|
||||
);
|
||||
}),
|
||||
);
|
||||
.eq('id', childId);
|
||||
} catch (e) {
|
||||
debugPrint(
|
||||
'[QuizResult] Falha ao gravar score na base de dados: $e',
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -112,7 +115,11 @@ class _QuizResultScreenState extends State<QuizResultScreen> {
|
||||
'de leite como de permanentes).\n\nO seu propósito é '
|
||||
'identificar, prevenir ou reduzir a gravidade de maloclusões '
|
||||
'e problemas no desenvolvimento dos maxilares enquanto os '
|
||||
'ossos e dentes ainda estão em crescimento.',
|
||||
'ossos e dentes ainda estão em crescimento.\n\nEsta '
|
||||
'intervenção aproveita a fase de desenvolvimento craniofacial '
|
||||
'para influenciar o crescimento ósseo, redirecionar a '
|
||||
'mandíbula, corrigir o alinhamento dos maxilares ou criar '
|
||||
'espaço para a erupção correta dos dentes permanentes.',
|
||||
onAdvance: (context) =>
|
||||
Navigator.of(context).popUntil((r) => r.isFirst),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user