From c2a9d4ab177b628c47cefde26f16fabe3d06b3d7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr>
Date: Wed, 8 Sep 2021 15:29:42 +0200
Subject: [PATCH] Add restart game button in title bar

---
 android/gradle.properties                     |   4 +-
 assets/icons/button_restart.png               | Bin 8633 -> 8471 bytes
 .../metadata/android/en-US/changelogs/3.txt   |   1 +
 .../metadata/android/fr-FR/changelogs/3.txt   |   1 +
 icons/button_restart.svg                      |   2 +-
 lib/main.dart                                 |  83 +++++++++++-------
 lib/thinking_indicator.dart                   |   4 +-
 7 files changed, 59 insertions(+), 36 deletions(-)
 create mode 100644 fastlane/metadata/android/en-US/changelogs/3.txt
 create mode 100644 fastlane/metadata/android/fr-FR/changelogs/3.txt

diff --git a/android/gradle.properties b/android/gradle.properties
index 818e87b..db7a1ee 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,5 +1,5 @@
 org.gradle.jvmargs=-Xmx1536M
 android.useAndroidX=true
 android.enableJetifier=true
-app.versionName=0.0.2
-app.versionCode=2
+app.versionName=0.0.3
+app.versionCode=3
diff --git a/assets/icons/button_restart.png b/assets/icons/button_restart.png
index 389eabc630dcb6d973aae1b616e1783dbc414ca6..7c52b13b4e4d34bc58fea4b71ed7e0872c759bf1 100644
GIT binary patch
delta 8450
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

delta 8614
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

diff --git a/fastlane/metadata/android/en-US/changelogs/3.txt b/fastlane/metadata/android/en-US/changelogs/3.txt
new file mode 100644
index 0000000..3c8a935
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/3.txt
@@ -0,0 +1 @@
+Add a restart game button in title bar, improve layout
diff --git a/fastlane/metadata/android/fr-FR/changelogs/3.txt b/fastlane/metadata/android/fr-FR/changelogs/3.txt
new file mode 100644
index 0000000..96f04d6
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/3.txt
@@ -0,0 +1 @@
+Ajout d'un bouton pour recommencer la partie dans la barre de titre, amélioration de l'agencement
diff --git a/icons/button_restart.svg b/icons/button_restart.svg
index 1d18f3b..0b857a6 100644
--- a/icons/button_restart.svg
+++ b/icons/button_restart.svg
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 93.665 93.676" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x=".44662" y=".89101" width="92.772" height="91.894" ry="11.689" fill="#49a1ee" stroke="#fff" stroke-width=".238"/><switch transform="matrix(.69484 0 0 .69484 12.09 12.096)" fill="#fefeff" stroke="#105ca1" stroke-width="5.7567"><foreignObject width="1" height="1" requiredExtensions="http://ns.adobe.com/AdobeIllustrator/10.0/"/><g fill="#fefeff" stroke="#105ca1" stroke-width="5.7567"><g fill="#fefeff" stroke="#105ca1" stroke-width="5.7567"><path d="m43.3 91.8-18.3 5.5c-2.5 0.7-5.1-0.7-5.9-3.1-0.7-2.5 0.7-5.1 3.1-5.9l6.8-2c-12.4-7.3-20.8-20.8-20.8-36.3 0-17.3 10.6-32.2 25.6-38.6 3.1-1.3 6.6 1 6.6 4.3 0 1.9-1.1 3.6-2.8 4.3-11.8 5-20 16.5-20 30 0 12.2 6.8 22.9 16.8 28.4l-2.4-8.1c-0.7-2.5 0.7-5.1 3.1-5.9 2.5-0.7 5.1 0.7 5.9 3.1l5.5 18.3c0.7 2.6-0.7 5.2-3.2 6z"/><path d="m77.7 11.7-6.8 2c12.5 7.3 20.9 20.8 20.9 36.3 0 17.3-10.6 32.2-25.6 38.6-3.1 1.3-6.6-1-6.6-4.3 0-1.9 1.1-3.6 2.8-4.3 11.8-5 20-16.5 20-30 0-12.2-6.8-22.9-16.8-28.4l2.4 8.1c0.7 2.5-0.7 5.1-3.1 5.9-2.5 0.7-5.1-0.7-5.9-3.1l-5.5-18.3c-0.7-2.5 0.7-5.1 3.2-5.9l18.3-5.6c2.5-0.7 5.1 0.7 5.9 3.1 0.7 2.5-0.7 5.2-3.2 5.9z"/></g></g></switch></svg>
+<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 93.665 93.676" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x=".44662" y=".89101" width="92.772" height="91.894" ry="11.689" fill="#ee494c" stroke="#fff" stroke-width=".238"/><switch transform="matrix(.69484 0 0 .69484 12.09 12.096)" fill="#fffefe" stroke="#a11010" stroke-width="5.7567"><foreignObject width="1" height="1" requiredExtensions="http://ns.adobe.com/AdobeIllustrator/10.0/"/><g fill="#fffefe" stroke="#a11010" stroke-width="5.7567"><g fill="#fffefe" stroke="#a11010" stroke-width="5.7567"><path d="m43.3 91.8-18.3 5.5c-2.5 0.7-5.1-0.7-5.9-3.1-0.7-2.5 0.7-5.1 3.1-5.9l6.8-2c-12.4-7.3-20.8-20.8-20.8-36.3 0-17.3 10.6-32.2 25.6-38.6 3.1-1.3 6.6 1 6.6 4.3 0 1.9-1.1 3.6-2.8 4.3-11.8 5-20 16.5-20 30 0 12.2 6.8 22.9 16.8 28.4l-2.4-8.1c-0.7-2.5 0.7-5.1 3.1-5.9 2.5-0.7 5.1 0.7 5.9 3.1l5.5 18.3c0.7 2.6-0.7 5.2-3.2 6z"/><path d="m77.7 11.7-6.8 2c12.5 7.3 20.9 20.8 20.9 36.3 0 17.3-10.6 32.2-25.6 38.6-3.1 1.3-6.6-1-6.6-4.3 0-1.9 1.1-3.6 2.8-4.3 11.8-5 20-16.5 20-30 0-12.2-6.8-22.9-16.8-28.4l2.4 8.1c0.7 2.5-0.7 5.1-3.1 5.9-2.5 0.7-5.1-0.7-5.9-3.1l-5.5-18.3c-0.7-2.5 0.7-5.1 3.2-5.9l18.3-5.6c2.5-0.7 5.1 0.7 5.9 3.1 0.7 2.5-0.7 5.2-3.2 5.9z"/></g></g></switch></svg>
diff --git a/lib/main.dart b/lib/main.dart
index 75b66de..e94e129 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -5,6 +5,7 @@
 import 'dart:async';
 
 import 'package:async/async.dart';
+import 'package:flutter/material.dart';
 import 'package:flutter/services.dart' show SystemChrome, DeviceOrientation;
 import 'package:flutter/widgets.dart';
 
@@ -19,11 +20,7 @@ import 'thinking_indicator.dart';
 void main() {
   WidgetsFlutterBinding.ensureInitialized();
 
-  SystemChrome.setEnabledSystemUIOverlays([]);
-  SystemChrome.setPreferredOrientations([
-    DeviceOrientation.portraitUp,
-    DeviceOrientation.portraitDown,
-  ]);
+  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
 
   runApp(FlutterFlipApp());
 }
@@ -33,14 +30,14 @@ void main() {
 class FlutterFlipApp extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
-    return WidgetsApp(
-      color: Color(0xffffffff), // Mandatory background color.
-      onGenerateRoute: (settings) {
-        return PageRouteBuilder<dynamic>(
-          settings: settings,
-          pageBuilder: (context, animation, secondaryAnimation) => GameScreen(),
-        );
-      },
+
+    return MaterialApp(
+      debugShowCheckedModeBanner: false,
+      theme: ThemeData(
+        primaryColor: Colors.blue,
+        visualDensity: VisualDensity.adaptivePlatformDensity,
+      ),
+      home: GameScreen(),
     );
   }
 }
@@ -149,7 +146,7 @@ class _GameScreenState extends State<GameScreen> {
     return Container(
       padding: const EdgeInsets.symmetric(
         vertical: 3.0,
-        horizontal: 30.0,
+        horizontal: 25.0,
       ),
       decoration: (model.player == player)
           ? Styling.activePlayerIndicator
@@ -157,8 +154,8 @@ class _GameScreenState extends State<GameScreen> {
       child: Row(
         children: <Widget>[
           SizedBox(
-            width: 30.0,
-            height: 30.0,
+            width: 25.0,
+            height: 25.0,
             child: Image(
               image: AssetImage(assetImageName),
               fit: BoxFit.fill,
@@ -171,7 +168,7 @@ class _GameScreenState extends State<GameScreen> {
             scoreText,
             textAlign: TextAlign.center,
             style: TextStyle(
-              fontSize: 50.0,
+              fontSize: 35.0,
               color: Color(0xff000000),
             ),
           ),
@@ -282,6 +279,7 @@ class _GameScreenState extends State<GameScreen> {
         children: [
           TableRow(
             children: [
+              Column(children: [ decorationImage ]),
               Column(children: [ decorationImage ]),
               Column(children: [
                 GestureDetector(
@@ -294,6 +292,7 @@ class _GameScreenState extends State<GameScreen> {
                 )
               ]),
               Column(children: [ decorationImage ]),
+              Column(children: [ decorationImage ]),
             ],
           ),
         ]
@@ -303,20 +302,42 @@ class _GameScreenState extends State<GameScreen> {
 
   // Builds out the Widget tree using the most recent GameModel from the stream.
   Widget _buildWidgets(BuildContext context, GameModel model) {
-    return Container(
-      padding: EdgeInsets.only(top: 30.0, left: 15.0, right: 15.0),
-      decoration: Styling.mainWidgetDecoration,
-      child: SafeArea(
-        child: Column(
-          children: [
-            _buildScoreBoxes(model),
-            SizedBox(height: 10),
-            _buildGameBoardDisplay(context, model),
-            SizedBox(height: 10),
-            _buildThinkingIndicator(model),
-            SizedBox(height: 30),
-            if (model.gameIsOver) _buildEndGameWidget(model),
-          ],
+    return Scaffold(
+      appBar: AppBar(
+        actions: [
+          FlatButton(
+            child: Container(
+              decoration: BoxDecoration(
+                borderRadius: BorderRadius.circular(4),
+                border: Border.all(
+                  color: Colors.blue,
+                  width: 4,
+                ),
+              ),
+              margin: EdgeInsets.all(8),
+              child: Image(
+                image: AssetImage('assets/icons/button_restart.png'),
+                fit: BoxFit.fill
+              ),
+            ),
+            onPressed: () => _restartController.add(GameModel(board: GameBoard())),
+          )
+        ],
+      ),
+      body: Container(
+        padding: EdgeInsets.only(top: 5.0, left: 5.0, right: 5.0),
+        decoration: Styling.mainWidgetDecoration,
+        child: SafeArea(
+          child: Column(
+            children: [
+              _buildScoreBoxes(model),
+              SizedBox(height: 5),
+              _buildGameBoardDisplay(context, model),
+              SizedBox(height: 5),
+              _buildThinkingIndicator(model),
+              if (model.gameIsOver) _buildEndGameWidget(model),
+            ],
+          ),
         ),
       ),
     );
diff --git a/lib/thinking_indicator.dart b/lib/thinking_indicator.dart
index ad34780..ed62cc3 100644
--- a/lib/thinking_indicator.dart
+++ b/lib/thinking_indicator.dart
@@ -41,8 +41,8 @@ class _ThinkingIndicatorState
       child: SizedBox(
         height: widget.height,
         child: Opacity(
-          opacity: _opacityTween!.evaluate(animation!),
-          child: _opacityTween!.evaluate(animation!) != 0
+          opacity: _opacityTween!.evaluate(animation),
+          child: _opacityTween!.evaluate(animation) != 0
               ? _AnimatedCircles(
                   color: widget.color,
                   height: widget.height,
-- 
GitLab