Skip to content
Snippets Groups Projects
Commit c17bcc8d authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Add "about" minimal page

parent 06aa7408
No related branches found
No related tags found
1 merge request!77Resolve "Add "about" page"
Pipeline #5619 passed
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=0.1.21 app.versionName=0.1.22
app.versionCode=70 app.versionCode=71
...@@ -3,7 +3,12 @@ ...@@ -3,7 +3,12 @@
"bottom_nav_game": "Game", "bottom_nav_game": "Game",
"bottom_nav_settings": "Settings", "bottom_nav_settings": "Settings",
"bottom_nav_about": "About",
"settings_title": "Settings", "settings_title": "Settings",
"settings_label_theme": "Theme mode" "settings_label_theme": "Theme mode",
"about_title": "About",
"about_content": "Simple Sudoku Game. Easy to play, easy to enjoy.",
"about_version": "Version: {version}"
} }
...@@ -3,7 +3,12 @@ ...@@ -3,7 +3,12 @@
"bottom_nav_game": "Jeu", "bottom_nav_game": "Jeu",
"bottom_nav_settings": "Réglages", "bottom_nav_settings": "Réglages",
"bottom_nav_about": "Infos",
"settings_title": "Réglages", "settings_title": "Réglages",
"settings_label_theme": "Thème de couleurs" "settings_label_theme": "Thème de couleurs",
"about_title": "Informations",
"about_content": "Jeu de Sudoku simple, facile à jouer, facile à apprécier.",
"about_version": "Version : {version}"
} }
Add "about" minimal page.
Ajout d'une page "informations" minimale.
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:unicons/unicons.dart'; import 'package:unicons/unicons.dart';
import 'package:sudoku/ui/screens/about_page.dart';
import 'package:sudoku/ui/screens/game_page.dart'; import 'package:sudoku/ui/screens/game_page.dart';
import 'package:sudoku/ui/screens/settings_page.dart'; import 'package:sudoku/ui/screens/settings_page.dart';
...@@ -31,9 +32,17 @@ class Menu { ...@@ -31,9 +32,17 @@ class Menu {
page: SettingsPage(), page: SettingsPage(),
); );
static const indexAbout = 2;
static const menuItemAbout = MenuItem(
code: 'bottom_nav_about',
icon: Icon(UniconsLine.info_circle),
page: AboutPage(),
);
static Map<int, MenuItem> items = { static Map<int, MenuItem> items = {
indexGame: menuItemGame, indexGame: menuItemGame,
indexSettings: menuItemSettings, indexSettings: menuItemSettings,
indexAbout: menuItemAbout,
}; };
static bool isIndexAllowed(int pageIndex) { static bool isIndexAllowed(int pageIndex) {
......
...@@ -17,12 +17,12 @@ class NavCubit extends HydratedCubit<int> { ...@@ -17,12 +17,12 @@ class NavCubit extends HydratedCubit<int> {
emit(Menu.indexGame); emit(Menu.indexGame);
} }
void switchToSettingsPage() { void goToSettingsPage() {
if (state != Menu.indexSettings) { emit(Menu.indexSettings);
emit(Menu.indexSettings); }
} else {
goToGamePage(); void goToAboutPage() {
} emit(Menu.indexAbout);
} }
@override @override
......
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:sudoku/ui/widgets/header_app.dart';
class AboutPage extends StatelessWidget {
const AboutPage({super.key});
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 8),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
const SizedBox(height: 8),
const AppHeader(text: 'about_title'),
const Text('about_content').tr(),
FutureBuilder<PackageInfo>(
future: PackageInfo.fromPlatform(),
builder: (context, snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.done:
return const Text('about_version').tr(
namedArgs: {
'version': snapshot.data!.version,
},
);
default:
return const SizedBox();
}
},
),
],
),
);
}
}
...@@ -106,13 +106,24 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -106,13 +106,24 @@ class GlobalAppBar extends StatelessWidget implements PreferredSizeWidget {
// go to Settings page // go to Settings page
menuActions.add(ElevatedButton( menuActions.add(ElevatedButton(
onPressed: () { onPressed: () {
context.read<NavCubit>().switchToSettingsPage(); context.read<NavCubit>().goToSettingsPage();
}, },
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
shape: const CircleBorder(), shape: const CircleBorder(),
), ),
child: Menu.menuItemSettings.icon, child: Menu.menuItemSettings.icon,
)); ));
// go to About page
menuActions.add(ElevatedButton(
onPressed: () {
context.read<NavCubit>().goToAboutPage();
},
style: ElevatedButton.styleFrom(
shape: const CircleBorder(),
),
child: Menu.menuItemAbout.icon,
));
} else { } else {
// back to Home page // back to Home page
menuActions.add(ElevatedButton( menuActions.add(ElevatedButton(
......
...@@ -9,6 +9,14 @@ packages: ...@@ -9,6 +9,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.5.0" version: "2.5.0"
async:
dependency: transitive
description:
name: async
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev"
source: hosted
version: "2.11.0"
badges: badges:
dependency: "direct main" dependency: "direct main"
description: description:
...@@ -136,6 +144,22 @@ packages: ...@@ -136,6 +144,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.3" version: "2.2.3"
http:
dependency: transitive
description:
name: http
sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
http_parser:
dependency: transitive
description:
name: http_parser
sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
url: "https://pub.dev"
source: hosted
version: "4.0.2"
hydrated_bloc: hydrated_bloc:
dependency: "direct main" dependency: "direct main"
description: description:
...@@ -184,6 +208,22 @@ packages: ...@@ -184,6 +208,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
package_info_plus:
dependency: "direct main"
description:
name: package_info_plus
sha256: b93d8b4d624b4ea19b0a5a208b2d6eff06004bc3ce74c06040b120eeadd00ce0
url: "https://pub.dev"
source: hosted
version: "8.0.0"
package_info_plus_platform_interface:
dependency: transitive
description:
name: package_info_plus_platform_interface
sha256: f49918f3433a3146047372f9d4f1f847511f2acd5cd030e1f44fe5a50036b70e
url: "https://pub.dev"
source: hosted
version: "3.0.0"
path: path:
dependency: transitive dependency: transitive
description: description:
...@@ -325,6 +365,22 @@ packages: ...@@ -325,6 +365,22 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.99" version: "0.0.99"
source_span:
dependency: transitive
description:
name: source_span
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
url: "https://pub.dev"
source: hosted
version: "1.10.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.2.0"
synchronized: synchronized:
dependency: transitive dependency: transitive
description: description:
...@@ -333,6 +389,14 @@ packages: ...@@ -333,6 +389,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.0+1" version: "3.1.0+1"
term_glyph:
dependency: transitive
description:
name: term_glyph
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted
version: "1.2.1"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
......
...@@ -3,7 +3,7 @@ description: A sudoku game application. ...@@ -3,7 +3,7 @@ description: A sudoku game application.
publish_to: "none" publish_to: "none"
version: 0.1.21+70 version: 0.1.22+71
environment: environment:
sdk: "^3.0.0" sdk: "^3.0.0"
...@@ -18,6 +18,7 @@ dependencies: ...@@ -18,6 +18,7 @@ dependencies:
flutter_bloc: ^8.1.1 flutter_bloc: ^8.1.1
hive: ^2.2.3 hive: ^2.2.3
hydrated_bloc: ^9.0.0 hydrated_bloc: ^9.0.0
package_info_plus: ^8.0.0
path_provider: ^2.0.11 path_provider: ^2.0.11
unicons: ^2.1.1 unicons: ^2.1.1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment