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

Use ActivityParameters widgets from flutter_custom_toolbox

parent 19619c43
No related branches found
No related tags found
1 merge request!53Resolve "Use ActivityParameters widgets from flutter_custom_toolbox"
Pipeline #7044 passed
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:minehunter/config/application_config.dart';
class ParameterPainterDifficultyLevel extends CustomPainter {
const ParameterPainterDifficultyLevel({
required this.context,
required this.value,
});
final BuildContext context;
final String value;
@override
void paint(Canvas canvas, Size size) {
// force square
final double canvasSize = min(size.width, size.height);
final List<dynamic> stars = [];
switch (value) {
case ApplicationConfig.difficultyLevelValueEasy:
stars.add([0.5, 0.5]);
break;
case ApplicationConfig.difficultyLevelValueMedium:
stars.add([0.3, 0.5]);
stars.add([0.7, 0.5]);
break;
case ApplicationConfig.difficultyLevelValueHard:
stars.add([0.3, 0.3]);
stars.add([0.7, 0.3]);
stars.add([0.5, 0.7]);
break;
case ApplicationConfig.difficultyLevelValueNightmare:
stars.add([0.3, 0.3]);
stars.add([0.7, 0.3]);
stars.add([0.3, 0.7]);
stars.add([0.7, 0.7]);
break;
default:
printlog('Wrong value for level parameter value: $value');
}
final paint = Paint();
paint.strokeJoin = StrokeJoin.round;
paint.strokeWidth = 3 / 100 * canvasSize;
// Stars
final textSpan = TextSpan(
text: '⭐',
style: TextStyle(
color: Colors.black,
fontSize: canvasSize / 3,
fontWeight: FontWeight.bold,
),
);
final textPainter = TextPainter(
text: textSpan,
textDirection: TextDirection.ltr,
textAlign: TextAlign.center,
);
textPainter.layout();
for (var center in stars) {
textPainter.paint(
canvas,
Offset(
canvasSize * center[0] - textPainter.width * 0.5,
canvasSize * center[1] - textPainter.height * 0.5,
),
);
}
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return false;
}
}
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:minehunter/config/application_config.dart';
import 'package:minehunter/cubit/activity/activity_cubit.dart';
import 'package:minehunter/models/activity/cell.dart';
......@@ -90,7 +91,8 @@ class CellWidget extends StatelessWidget {
String getImageAssetName({
required Activity currentActivity,
}) {
final String skin = currentActivity.globalSettings.skin;
final String skin =
currentActivity.activitySettings.get(ApplicationConfig.parameterCodeSkin);
String imageAsset = 'assets/skins/${skin}_tile_unknown.png';
......
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:minehunter/config/application_config.dart';
import 'package:minehunter/cubit/activity/activity_cubit.dart';
import 'package:minehunter/models/activity/activity.dart';
......@@ -13,7 +14,8 @@ class ToggleGameModeButton extends StatelessWidget {
builder: (BuildContext context, ActivityState activityState) {
final Activity currentActivity = activityState.currentActivity;
final String skin = currentActivity.globalSettings.skin;
final String skin =
currentActivity.activitySettings.get(ApplicationConfig.parameterCodeSkin);
final String reportModeSuffix = currentActivity.reportMode ? 'on' : 'off';
return TextButton(
......
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:minehunter/config/application_config.dart';
import 'package:minehunter/cubit/activity/activity_cubit.dart';
import 'package:minehunter/models/activity/activity.dart';
......@@ -13,7 +14,8 @@ class GameModeIndicatorReport extends StatelessWidget {
builder: (BuildContext context, ActivityState activityState) {
final Activity currentActivity = activityState.currentActivity;
final String skin = currentActivity.globalSettings.skin;
final String skin =
currentActivity.activitySettings.get(ApplicationConfig.parameterCodeSkin);
final String reportModeSuffix = currentActivity.reportMode ? 'on' : 'off';
final Color buttonColor = currentActivity.reportMode ? Colors.amber : Colors.grey;
......
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:minehunter/config/application_config.dart';
import 'package:minehunter/cubit/activity/activity_cubit.dart';
import 'package:minehunter/models/activity/activity.dart';
......@@ -13,7 +14,8 @@ class GameModeIndicatorWalk extends StatelessWidget {
builder: (BuildContext context, ActivityState activityState) {
final Activity currentActivity = activityState.currentActivity;
final String skin = currentActivity.globalSettings.skin;
final String skin =
currentActivity.activitySettings.get(ApplicationConfig.parameterCodeSkin);
final String reportModeSuffix = currentActivity.reportMode ? 'off' : 'on';
final Color buttonColor = currentActivity.reportMode ? Colors.grey : Colors.amber;
......
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:minehunter/config/application_config.dart';
import 'package:minehunter/cubit/activity/activity_cubit.dart';
import 'package:minehunter/models/activity/activity.dart';
......@@ -16,7 +17,8 @@ class ToggleGameMode extends StatelessWidget {
builder: (BuildContext context, ActivityState activityState) {
final Activity currentActivity = activityState.currentActivity;
final String skin = currentActivity.globalSettings.skin;
final String skin =
currentActivity.activitySettings.get(ApplicationConfig.parameterCodeSkin);
final Image paddingBlock = Image(
image: AssetImage('assets/skins/${skin}_empty.png'),
......
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:minehunter/config/application_config.dart';
import 'package:minehunter/cubit/activity/activity_cubit.dart';
import 'package:minehunter/models/activity/activity.dart';
......@@ -13,7 +14,8 @@ class TopIndicator extends StatelessWidget {
builder: (BuildContext context, ActivityState activityState) {
final Activity currentActivity = activityState.currentActivity;
final String skin = currentActivity.globalSettings.skin;
final String skin =
currentActivity.activitySettings.get(ApplicationConfig.parameterCodeSkin);
final int flaggedCellsCount = currentActivity.countFlaggedCells();
final int minesCount = currentActivity.minesCount;
......
......@@ -122,11 +122,11 @@ packages:
dependency: "direct main"
description:
path: "."
ref: "0.4.0"
resolved-ref: eb9c090bd00d73324eab8737f74b3339cc24c9e8
ref: "0.5.0"
resolved-ref: b8164a50489ba981ea57d9f02e2334f09cb8c6a7
url: "https://git.harrault.fr/android/flutter-toolbox.git"
source: git
version: "0.4.0"
version: "0.5.0"
flutter_lints:
dependency: "direct dev"
description:
......
......@@ -3,7 +3,7 @@ description: A minehunter game application.
publish_to: "none"
version: 0.5.3+50
version: 0.6.0+51
environment:
sdk: "^3.0.0"
......@@ -16,7 +16,7 @@ dependencies:
flutter_custom_toolbox:
git:
url: https://git.harrault.fr/android/flutter-toolbox.git
ref: 0.4.0
ref: 0.5.0
# specific
# (none)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment