From c75f3edf8bf3f12dfdecc0089d3691b1f7067376 Mon Sep 17 00:00:00 2001 From: Vincent Velociter Date: Tue, 12 Nov 2024 12:13:16 +0100 Subject: [PATCH] Remove eval from game result dialog Closes #1147 --- lib/src/view/game/game_result_dialog.dart | 126 ---------------------- 1 file changed, 126 deletions(-) diff --git a/lib/src/view/game/game_result_dialog.dart b/lib/src/view/game/game_result_dialog.dart index 8dc98cf67f..8883994b3f 100644 --- a/lib/src/view/game/game_result_dialog.dart +++ b/lib/src/view/game/game_result_dialog.dart @@ -1,18 +1,13 @@ import 'dart:async'; import 'dart:math'; -import 'package:collection/collection.dart'; import 'package:dartchess/dartchess.dart'; -import 'package:fast_immutable_collections/fast_immutable_collections.dart'; -import 'package:fl_chart/fl_chart.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:lichess_mobile/src/constants.dart'; import 'package:lichess_mobile/src/model/analysis/analysis_controller.dart'; -import 'package:lichess_mobile/src/model/analysis/server_analysis_service.dart'; import 'package:lichess_mobile/src/model/auth/auth_session.dart'; -import 'package:lichess_mobile/src/model/common/eval.dart'; import 'package:lichess_mobile/src/model/common/id.dart'; import 'package:lichess_mobile/src/model/game/game.dart'; import 'package:lichess_mobile/src/model/game/game_controller.dart'; @@ -23,7 +18,6 @@ import 'package:lichess_mobile/src/utils/l10n_context.dart'; import 'package:lichess_mobile/src/utils/navigation.dart'; import 'package:lichess_mobile/src/view/analysis/analysis_screen.dart'; import 'package:lichess_mobile/src/widgets/buttons.dart'; -import 'package:lichess_mobile/src/widgets/feedback.dart'; import 'package:lichess_mobile/src/widgets/pgn.dart'; import 'status_l10n.dart'; @@ -72,7 +66,6 @@ Widget _adaptiveDialog(BuildContext context, Widget content) { class _GameEndDialogState extends ConsumerState { late Timer _buttonActivationTimer; bool _activateButtons = false; - Future? _pendingAnalysisRequestFuture; @override void initState() { @@ -96,8 +89,6 @@ class _GameEndDialogState extends ConsumerState { Widget build(BuildContext context) { final ctrlProvider = gameControllerProvider(widget.id); final gameState = ref.watch(ctrlProvider).requireValue; - final session = ref.watch(authSessionProvider); - final currentGameAnalysis = ref.watch(currentAnalysisProvider); final content = Column( mainAxisSize: MainAxisSize.min, @@ -107,21 +98,6 @@ class _GameEndDialogState extends ConsumerState { padding: const EdgeInsets.only(bottom: 16.0), child: GameResult(game: gameState.game), ), - if (currentGameAnalysis == gameState.game.id) - const Padding( - padding: EdgeInsets.only(bottom: 16.0), - child: WaitingForServerAnalysis(), - ), - if (gameState.game.evals != null) - Padding( - padding: const EdgeInsets.only(bottom: 8.0), - child: _AcplChart(evals: gameState.game.evals!), - ), - if (gameState.game.white.analysis != null) - Padding( - padding: const EdgeInsets.only(bottom: 16.0), - child: PlayerSummary(game: gameState.game), - ), if (gameState.game.me?.offeringRematch == true) SecondaryButton( semanticsLabel: context.l10n.cancelRematchOffer, @@ -163,49 +139,6 @@ class _GameEndDialogState extends ConsumerState { textAlign: TextAlign.center, ), ), - if (currentGameAnalysis != gameState.game.id && - gameState.game.userAnalysable && - gameState.game.evals == null && - gameState.game.white.analysis == null) - FutureBuilder( - future: _pendingAnalysisRequestFuture, - builder: (context, snapshot) { - return SecondaryButton( - semanticsLabel: context.l10n.requestAComputerAnalysis, - onPressed: session == null - ? () { - showPlatformSnackbar( - context, - context.l10n.youNeedAnAccountToDoThat, - ); - } - : _activateButtons - ? snapshot.connectionState == ConnectionState.waiting - ? null - : () { - setState(() { - _pendingAnalysisRequestFuture = ref - .read(ctrlProvider.notifier) - .requestServerAnalysis() - .catchError((Object e) { - if (context.mounted) { - showPlatformSnackbar( - context, - e.toString(), - type: SnackBarType.error, - ); - } - }); - }); - } - : null, - child: Text( - context.l10n.requestAComputerAnalysis, - textAlign: TextAlign.center, - ), - ); - }, - ), if (gameState.game.userAnalysable) SecondaryButton( semanticsLabel: context.l10n.analysis, @@ -230,65 +163,6 @@ class _GameEndDialogState extends ConsumerState { } } -class _AcplChart extends StatelessWidget { - final IList evals; - - const _AcplChart({required this.evals}); - - @override - Widget build(BuildContext context) { - final mainLineColor = Theme.of(context).colorScheme.secondary; - final brightness = Theme.of(context).brightness; - final white = Theme.of(context).colorScheme.surfaceContainerHighest; - final black = Theme.of(context).colorScheme.outline; - // yes it looks like below/above are inverted in fl_chart - final belowLineColor = brightness == Brightness.light ? white : black; - final aboveLineColor = brightness == Brightness.light ? black : white; - final spots = evals - .mapIndexed( - (i, e) => FlSpot(i.toDouble(), e.winningChances(Side.white)), - ) - .toList(growable: false); - return AspectRatio( - aspectRatio: 2.5, - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 2.0), - child: LineChart( - LineChartData( - minY: -1.0, - maxY: 1.0, - lineTouchData: const LineTouchData(enabled: false), - lineBarsData: [ - LineChartBarData( - spots: spots, - isCurved: true, - color: mainLineColor.withValues(alpha: 0.3), - barWidth: 1, - aboveBarData: BarAreaData( - show: true, - color: aboveLineColor, - applyCutOffY: true, - ), - belowBarData: BarAreaData( - show: true, - color: belowLineColor, - applyCutOffY: true, - ), - dotData: const FlDotData( - show: false, - ), - ), - ], - gridData: const FlGridData(show: false), - borderData: FlBorderData(show: false), - titlesData: const FlTitlesData(show: false), - ), - ), - ), - ); - } -} - class ArchivedGameResultDialog extends StatelessWidget { const ArchivedGameResultDialog({required this.game, super.key});