Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 51-fix-distribute-seeds
  • master
  • 42-add-rule-game-ends-if-player-has-no-more-seeds
  • 43-add-rule-game-ends-if-board-contains-3-or-less-seeds
  • 45-pick-and-earn-seeds-one-by-one
  • 38-add-button-to-give-tip-for-human-player
  • 40-improve-get-move-weight-function
  • 34-allow-more-seeds-in-holes
  • 14-improve-app-metadata
  • Release_0.0.10_10
  • Release_0.0.11_11
  • Release_0.0.1_1
  • Release_0.0.2_2
  • Release_0.0.3_3
  • Release_0.0.4_4
  • Release_0.0.5_5
  • Release_0.0.6_6
  • Release_0.0.7_7
  • Release_0.0.8_8
  • Release_0.0.9_9
  • Release_0.1.0_12
  • Release_0.1.1_13
  • Release_0.2.0_14
  • Release_0.2.1_15
  • Release_0.3.0_16
  • Release_0.3.1_17
  • Release_0.3.2_18
  • Release_0.4.0_19
  • Release_0.5.0_20
  • Release_0.6.0_21
  • Release_0.7.0_22
  • Release_0.7.1_23
  • Release_0.7.2_24
  • Release_0.8.0_25
  • Release_0.8.10_35
  • Release_0.8.11_36
  • Release_0.8.12_37
  • Release_0.8.13_38
  • Release_0.8.14_39
  • Release_0.8.15_40
  • Release_0.8.1_26
  • Release_0.8.2_27
  • Release_0.8.3_28
  • Release_0.8.4_29
  • Release_0.8.5_30
  • Release_0.8.6_31
  • Release_0.8.7_32
  • Release_0.8.8_33
  • Release_0.8.9_34
49 results

Target

Select target project
  • android / org.benoitharrault.awale
1 result
Select Git revision
  • 51-fix-distribute-seeds
  • master
  • 42-add-rule-game-ends-if-player-has-no-more-seeds
  • 43-add-rule-game-ends-if-board-contains-3-or-less-seeds
  • 45-pick-and-earn-seeds-one-by-one
  • 38-add-button-to-give-tip-for-human-player
  • 40-improve-get-move-weight-function
  • 34-allow-more-seeds-in-holes
  • 14-improve-app-metadata
  • Release_0.0.10_10
  • Release_0.0.11_11
  • Release_0.0.1_1
  • Release_0.0.2_2
  • Release_0.0.3_3
  • Release_0.0.4_4
  • Release_0.0.5_5
  • Release_0.0.6_6
  • Release_0.0.7_7
  • Release_0.0.8_8
  • Release_0.0.9_9
  • Release_0.1.0_12
  • Release_0.1.1_13
  • Release_0.2.0_14
  • Release_0.2.1_15
  • Release_0.3.0_16
  • Release_0.3.1_17
  • Release_0.3.2_18
  • Release_0.4.0_19
  • Release_0.5.0_20
  • Release_0.6.0_21
  • Release_0.7.0_22
  • Release_0.7.1_23
  • Release_0.7.2_24
  • Release_0.8.0_25
  • Release_0.8.10_35
  • Release_0.8.11_36
  • Release_0.8.12_37
  • Release_0.8.13_38
  • Release_0.8.14_39
  • Release_0.8.15_40
  • Release_0.8.1_26
  • Release_0.8.2_27
  • Release_0.8.3_28
  • Release_0.8.4_29
  • Release_0.8.5_30
  • Release_0.8.6_31
  • Release_0.8.7_32
  • Release_0.8.8_33
  • Release_0.8.9_34
49 results
Show changes
50 files
+ 87
633
Compare changes
  • Side-by-side
  • Inline

Files

+3 −0
Original line number Original line Diff line number Diff line
@@ -11,5 +11,8 @@ insert_final_newline = true
[*.json]
[*.json]
indent_size = 2
indent_size = 2


[*.yaml]
indent_size = 2

[*.md]
[*.md]
trim_trailing_whitespace = false
trim_trailing_whitespace = false
+1 −0
Original line number Original line Diff line number Diff line
@@ -8,6 +8,7 @@
.buildlog/
.buildlog/
.history
.history
.svn/
.svn/
migrate_working_dir/


# IntelliJ related
# IntelliJ related
*.iml
*.iml
Original line number Original line Diff line number Diff line
import 'package:awale/utils/tools.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


class DefaultGameSettings {
class DefaultGameSettings {
  // available game parameters codes
  // available game parameters codes
Original line number Original line Diff line number Diff line
import 'package:awale/utils/tools.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


class DefaultGlobalSettings {
class DefaultGlobalSettings {
  // available global parameters codes
  // available global parameters codes
Original line number Original line Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:unicons/unicons.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/ui/screens/page_about.dart';
import 'package:awale/ui/screens/page_about.dart';
import 'package:awale/ui/screens/page_game.dart';
import 'package:awale/ui/screens/page_game.dart';

lib/config/theme.dart

deleted100644 → 0
+0 −190
Original line number Original line Diff line number Diff line
import 'package:flutter/material.dart';

/// Colors from Tailwind CSS (v3.0) - June 2022
///
/// https://tailwindcss.com/docs/customizing-colors

const int _primaryColor = 0xFF6366F1;
const MaterialColor primarySwatch = MaterialColor(_primaryColor, <int, Color>{
  50: Color(0xFFEEF2FF), // indigo-50
  100: Color(0xFFE0E7FF), // indigo-100
  200: Color(0xFFC7D2FE), // indigo-200
  300: Color(0xFFA5B4FC), // indigo-300
  400: Color(0xFF818CF8), // indigo-400
  500: Color(_primaryColor), // indigo-500
  600: Color(0xFF4F46E5), // indigo-600
  700: Color(0xFF4338CA), // indigo-700
  800: Color(0xFF3730A3), // indigo-800
  900: Color(0xFF312E81), // indigo-900
});

const int _textColor = 0xFF64748B;
const MaterialColor textSwatch = MaterialColor(_textColor, <int, Color>{
  50: Color(0xFFF8FAFC), // slate-50
  100: Color(0xFFF1F5F9), // slate-100
  200: Color(0xFFE2E8F0), // slate-200
  300: Color(0xFFCBD5E1), // slate-300
  400: Color(0xFF94A3B8), // slate-400
  500: Color(_textColor), // slate-500
  600: Color(0xFF475569), // slate-600
  700: Color(0xFF334155), // slate-700
  800: Color(0xFF1E293B), // slate-800
  900: Color(0xFF0F172A), // slate-900
});

const Color errorColor = Color(0xFFDC2626); // red-600

final ColorScheme lightColorScheme = ColorScheme.light(
  primary: primarySwatch.shade500,
  secondary: primarySwatch.shade500,
  onSecondary: Colors.white,
  error: errorColor,
  onSurface: textSwatch.shade500,
  surface: textSwatch.shade50,
  surfaceContainerHighest: Colors.white,
  shadow: textSwatch.shade900.withOpacity(.1),
);

final ColorScheme darkColorScheme = ColorScheme.dark(
  primary: primarySwatch.shade500,
  secondary: primarySwatch.shade500,
  onSecondary: Colors.white,
  error: errorColor,
  onSurface: textSwatch.shade300,
  surface: const Color(0xFF262630),
  surfaceContainerHighest: const Color(0xFF282832),
  shadow: textSwatch.shade900.withOpacity(.2),
);

final ThemeData lightTheme = ThemeData(
  colorScheme: lightColorScheme,
  fontFamily: 'Nunito',
  textTheme: TextTheme(
    displayLarge: TextStyle(
      color: textSwatch.shade700,
      fontFamily: 'Nunito',
    ),
    displayMedium: TextStyle(
      color: textSwatch.shade600,
      fontFamily: 'Nunito',
    ),
    displaySmall: TextStyle(
      color: textSwatch.shade500,
      fontFamily: 'Nunito',
    ),
    headlineLarge: TextStyle(
      color: textSwatch.shade700,
      fontFamily: 'Nunito',
    ),
    headlineMedium: TextStyle(
      color: textSwatch.shade600,
      fontFamily: 'Nunito',
    ),
    headlineSmall: TextStyle(
      color: textSwatch.shade500,
      fontFamily: 'Nunito',
    ),
    titleLarge: TextStyle(
      color: textSwatch.shade700,
      fontFamily: 'Nunito',
    ),
    titleMedium: TextStyle(
      color: textSwatch.shade600,
      fontFamily: 'Nunito',
    ),
    titleSmall: TextStyle(
      color: textSwatch.shade500,
      fontFamily: 'Nunito',
    ),
    bodyLarge: TextStyle(
      color: textSwatch.shade700,
      fontFamily: 'Nunito',
    ),
    bodyMedium: TextStyle(
      color: textSwatch.shade600,
      fontFamily: 'Nunito',
    ),
    bodySmall: TextStyle(
      color: textSwatch.shade500,
      fontFamily: 'Nunito',
    ),
    labelLarge: TextStyle(
      color: textSwatch.shade700,
      fontFamily: 'Nunito',
    ),
    labelMedium: TextStyle(
      color: textSwatch.shade600,
      fontFamily: 'Nunito',
    ),
    labelSmall: TextStyle(
      color: textSwatch.shade500,
      fontFamily: 'Nunito',
    ),
  ),
);

final ThemeData darkTheme = lightTheme.copyWith(
  colorScheme: darkColorScheme,
  textTheme: TextTheme(
    displayLarge: TextStyle(
      color: textSwatch.shade200,
      fontFamily: 'Nunito',
    ),
    displayMedium: TextStyle(
      color: textSwatch.shade300,
      fontFamily: 'Nunito',
    ),
    displaySmall: TextStyle(
      color: textSwatch.shade400,
      fontFamily: 'Nunito',
    ),
    headlineLarge: TextStyle(
      color: textSwatch.shade200,
      fontFamily: 'Nunito',
    ),
    headlineMedium: TextStyle(
      color: textSwatch.shade300,
      fontFamily: 'Nunito',
    ),
    headlineSmall: TextStyle(
      color: textSwatch.shade400,
      fontFamily: 'Nunito',
    ),
    titleLarge: TextStyle(
      color: textSwatch.shade200,
      fontFamily: 'Nunito',
    ),
    titleMedium: TextStyle(
      color: textSwatch.shade300,
      fontFamily: 'Nunito',
    ),
    titleSmall: TextStyle(
      color: textSwatch.shade400,
      fontFamily: 'Nunito',
    ),
    bodyLarge: TextStyle(
      color: textSwatch.shade200,
      fontFamily: 'Nunito',
    ),
    bodyMedium: TextStyle(
      color: textSwatch.shade300,
      fontFamily: 'Nunito',
    ),
    bodySmall: TextStyle(
      color: textSwatch.shade400,
      fontFamily: 'Nunito',
    ),
    labelLarge: TextStyle(
      color: textSwatch.shade200,
      fontFamily: 'Nunito',
    ),
    labelMedium: TextStyle(
      color: textSwatch.shade300,
      fontFamily: 'Nunito',
    ),
    labelSmall: TextStyle(
      color: textSwatch.shade400,
      fontFamily: 'Nunito',
    ),
  ),
);
Original line number Original line Diff line number Diff line
import 'dart:async';
import 'dart:async';


import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/models/game/game.dart';
import 'package:awale/models/game/game.dart';
import 'package:awale/models/settings/settings_game.dart';
import 'package:awale/models/settings/settings_game.dart';
import 'package:awale/models/settings/settings_global.dart';
import 'package:awale/models/settings/settings_global.dart';
import 'package:awale/robot/robot_player.dart';
import 'package:awale/robot/robot_player.dart';
import 'package:awale/utils/tools.dart';


part 'game_state.dart';
part 'game_state.dart';


Original line number Original line Diff line number Diff line
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/config/menu.dart';
import 'package:awale/config/menu.dart';


Original line number Original line Diff line number Diff line
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/config/default_game_settings.dart';
import 'package:awale/config/default_game_settings.dart';
import 'package:awale/models/settings/settings_game.dart';
import 'package:awale/models/settings/settings_game.dart';
Original line number Original line Diff line number Diff line
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/config/default_global_settings.dart';
import 'package:awale/config/default_global_settings.dart';
import 'package:awale/models/settings/settings_global.dart';
import 'package:awale/models/settings/settings_global.dart';
Original line number Original line Diff line number Diff line
import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


part 'theme_state.dart';
part 'theme_state.dart';


+1 −6
Original line number Original line Diff line number Diff line
import 'dart:io';
import 'dart:io';


import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:hive/hive.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:path_provider/path_provider.dart';


import 'package:awale/config/default_global_settings.dart';
import 'package:awale/config/default_global_settings.dart';
import 'package:awale/config/theme.dart';
import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/cubit/nav_cubit.dart';
import 'package:awale/cubit/nav_cubit.dart';
import 'package:awale/cubit/settings_game_cubit.dart';
import 'package:awale/cubit/settings_game_cubit.dart';
Original line number Original line Diff line number Diff line
import 'package:awale/utils/tools.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


typedef BoardCells = List<int>;
typedef BoardCells = List<int>;


Original line number Original line Diff line number Diff line
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';

import 'package:awale/config/default_game_settings.dart';
import 'package:awale/config/default_game_settings.dart';
import 'package:awale/models/game/board.dart';
import 'package:awale/models/game/board.dart';
import 'package:awale/models/settings/settings_game.dart';
import 'package:awale/models/settings/settings_game.dart';
import 'package:awale/models/settings/settings_global.dart';
import 'package:awale/models/settings/settings_global.dart';
import 'package:awale/utils/tools.dart';


class Game {
class Game {
  Game({
  Game({
Original line number Original line Diff line number Diff line
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';

import 'package:awale/config/default_game_settings.dart';
import 'package:awale/config/default_game_settings.dart';
import 'package:awale/utils/tools.dart';


class GameSettings {
class GameSettings {
  final String gameMode;
  final String gameMode;
Original line number Original line Diff line number Diff line
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';

import 'package:awale/config/default_global_settings.dart';
import 'package:awale/config/default_global_settings.dart';
import 'package:awale/utils/tools.dart';


class GlobalSettings {
class GlobalSettings {
  String skin;
  String skin;

lib/ui/helpers/app_titles.dart

deleted100644 → 0
+0 −32
Original line number Original line Diff line number Diff line
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';

class AppHeader extends StatelessWidget {
  const AppHeader({super.key, required this.text});

  final String text;

  @override
  Widget build(BuildContext context) {
    return Text(
      tr(text),
      textAlign: TextAlign.start,
      style: Theme.of(context).textTheme.headlineMedium!.apply(fontWeightDelta: 2),
    );
  }
}

class AppTitle extends StatelessWidget {
  const AppTitle({super.key, required this.text});

  final String text;

  @override
  Widget build(BuildContext context) {
    return Text(
      tr(text),
      textAlign: TextAlign.start,
      style: Theme.of(context).textTheme.titleLarge!.apply(fontWeightDelta: 2),
    );
  }
}
+0 −51
Original line number Original line Diff line number Diff line
import 'package:flutter/material.dart';

import 'package:awale/utils/color_extensions.dart';

class OutlinedText extends StatelessWidget {
  const OutlinedText({
    super.key,
    required this.text,
    required this.fontSize,
    required this.textColor,
    this.outlineColor,
  });

  final String text;
  final double fontSize;
  final Color textColor;
  final Color? outlineColor;

  @override
  Widget build(BuildContext context) {
    final double delta = fontSize / 30;

    return Text(
      text,
      style: TextStyle(
        inherit: true,
        fontSize: fontSize,
        fontWeight: FontWeight.w600,
        color: textColor,
        shadows: [
          Shadow(
            offset: Offset(-delta, -delta),
            color: outlineColor ?? textColor.darken(),
          ),
          Shadow(
            offset: Offset(delta, -delta),
            color: outlineColor ?? textColor.darken(),
          ),
          Shadow(
            offset: Offset(delta, delta),
            color: outlineColor ?? textColor.darken(),
          ),
          Shadow(
            offset: Offset(-delta, delta),
            color: outlineColor ?? textColor.darken(),
          ),
        ],
      ),
    );
  }
}

lib/ui/helpers/styled_button.dart

deleted100644 → 0
+0 −210
Original line number Original line Diff line number Diff line
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart';

import 'package:awale/utils/color_extensions.dart';

class StyledButton extends StatelessWidget {
  const StyledButton({
    super.key,
    required this.color,
    required this.onPressed,
    this.onLongPress,
    required this.child,
  });

  final Color color;
  final VoidCallback? onPressed;
  final VoidCallback? onLongPress;
  final Widget child;

  factory StyledButton.text({
    Key? key,
    required VoidCallback? onPressed,
    VoidCallback? onLongPress,
    required String caption,
    required Color color,
  }) {
    final Widget captionWidget = AutoSizeText(
      caption,
      maxLines: 1,
      style: TextStyle(
        inherit: true,
        fontWeight: FontWeight.w900,
        color: color.darken(60),
        shadows: [
          Shadow(
            blurRadius: 5.0,
            color: color.lighten(60),
            offset: const Offset(2, 2),
          ),
          Shadow(
            blurRadius: 5.0,
            color: color.lighten(60),
            offset: const Offset(2, -2),
          ),
          Shadow(
            blurRadius: 5.0,
            color: color.lighten(60),
            offset: const Offset(-2, 2),
          ),
          Shadow(
            blurRadius: 5.0,
            color: color.lighten(60),
            offset: const Offset(-2, -2),
          ),
        ],
      ),
    );

    return StyledButton(
      color: color,
      onPressed: onPressed,
      onLongPress: onLongPress,
      child: captionWidget,
    );
  }

  factory StyledButton.icon({
    Key? key,
    required VoidCallback? onPressed,
    VoidCallback? onLongPress,
    required Icon icon,
    required Color color,
    required double iconSize,
  }) {
    return StyledButton(
      color: color,
      onPressed: onPressed,
      onLongPress: onLongPress,
      child: Icon(
        icon.icon,
        color: icon.color ?? color.darken(60),
        size: iconSize,
        shadows: [
          Shadow(
            blurRadius: 5.0,
            color: color.lighten(60),
            offset: const Offset(2, 2),
          ),
          Shadow(
            blurRadius: 5.0,
            color: color.lighten(60),
            offset: const Offset(2, -2),
          ),
          Shadow(
            blurRadius: 5.0,
            color: color.lighten(60),
            offset: const Offset(-2, 2),
          ),
          Shadow(
            blurRadius: 5.0,
            color: color.lighten(60),
            offset: const Offset(-2, -2),
          ),
        ],
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    const double borderWidth = 4;
    final Color borderColor = color.darken(40);
    const double borderRadius = 10;

    return Container(
      margin: const EdgeInsets.all(2),
      padding: const EdgeInsets.all(2),
      decoration: BoxDecoration(
        color: color,
        border: Border.all(
          color: borderColor,
          width: borderWidth,
        ),
        borderRadius: BorderRadius.circular(borderRadius),
      ),
      child: CustomPaint(
        painter: StyledButtonPainter(
          baseColor: color,
        ),
        child: MaterialButton(
          onPressed: onPressed,
          onLongPress: onLongPress,
          padding: const EdgeInsets.all(8),
          materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
          minWidth: 40,
          child: child,
        ),
      ),
    );
  }
}

class StyledButtonPainter extends CustomPainter {
  StyledButtonPainter({
    required this.baseColor,
  });

  final Color baseColor;

  @override
  void paint(Canvas canvas, Size size) {
    final Color lightColor = baseColor.lighten(20);
    final Color darkColor = baseColor.darken(20);

    final Paint paint = Paint()..style = PaintingStyle.fill;

    const double cornerRadius = 6;

    Path topPath = Path()
      ..moveTo(cornerRadius, 0)
      ..lineTo(size.width - cornerRadius, 0)
      ..arcToPoint(
        Offset(size.width, cornerRadius),
        radius: const Radius.circular(cornerRadius),
      )
      ..lineTo(size.width, size.height * .35)
      ..quadraticBezierTo(
        size.width * .4,
        size.height * .1,
        0,
        size.height * .3,
      )
      ..lineTo(0, cornerRadius)
      ..arcToPoint(
        const Offset(cornerRadius, 0),
        radius: const Radius.circular(cornerRadius),
      );

    Path bottomPath = Path()
      ..moveTo(cornerRadius, size.height)
      ..lineTo(size.width - cornerRadius, size.height)
      ..arcToPoint(
        Offset(size.width, size.height - cornerRadius),
        radius: const Radius.circular(cornerRadius),
        clockwise: false,
      )
      ..lineTo(size.width, size.height * .7)
      ..quadraticBezierTo(
        size.width * .6,
        size.height * .9,
        0,
        size.height * .7,
      )
      ..lineTo(0, size.height - cornerRadius)
      ..arcToPoint(
        Offset(cornerRadius, size.height),
        radius: const Radius.circular(cornerRadius),
        clockwise: false,
      );

    paint.color = lightColor;
    canvas.drawPath(topPath, paint);

    paint.color = darkColor;
    canvas.drawPath(bottomPath, paint);
  }

  @override
  bool shouldRepaint(CustomPainter oldDelegate) => false;
}
Original line number Original line Diff line number Diff line
import 'package:awale/ui/widgets/game/game_player.dart';
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/models/game/game.dart';
import 'package:awale/models/game/game.dart';
import 'package:awale/ui/widgets/game/game_board.dart';
import 'package:awale/ui/widgets/game/game_board.dart';
import 'package:awale/ui/widgets/game/game_end.dart';
import 'package:awale/ui/widgets/game/game_end.dart';
import 'package:awale/ui/widgets/game/game_player.dart';


class GameLayout extends StatelessWidget {
class GameLayout extends StatelessWidget {
  const GameLayout({super.key});
  const GameLayout({super.key});
Original line number Original line Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/config/default_game_settings.dart';
import 'package:awale/config/default_game_settings.dart';
import 'package:awale/config/default_global_settings.dart';
import 'package:awale/config/default_global_settings.dart';
Original line number Original line Diff line number Diff line
import 'dart:math';
import 'dart:math';


import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/models/settings/settings_game.dart';
import 'package:awale/models/settings/settings_game.dart';
import 'package:awale/models/settings/settings_global.dart';
import 'package:awale/models/settings/settings_global.dart';
import 'package:awale/utils/tools.dart';


class ParameterPainter extends CustomPainter {
class ParameterPainter extends CustomPainter {
  const ParameterPainter({
  const ParameterPainter({
Original line number Original line Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/config/default_game_settings.dart';
import 'package:awale/config/default_game_settings.dart';
import 'package:awale/models/settings/settings_game.dart';
import 'package:awale/models/settings/settings_game.dart';
import 'package:awale/models/settings/settings_global.dart';
import 'package:awale/models/settings/settings_global.dart';
import 'package:awale/ui/helpers/styled_button.dart';
import 'package:awale/utils/tools.dart';


class ParameterWidget extends StatelessWidget {
class ParameterWidget extends StatelessWidget {
  const ParameterWidget({
  const ParameterWidget({
Original line number Original line Diff line number Diff line
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';

import 'package:awale/ui/helpers/app_titles.dart';


class PageAbout extends StatelessWidget {
class PageAbout extends StatelessWidget {
  const PageAbout({super.key});
  const PageAbout({super.key});
Original line number Original line Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/models/game/game.dart';
import 'package:awale/models/game/game.dart';
Original line number Original line Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/ui/helpers/app_titles.dart';
import 'package:awale/ui/settings/settings_form.dart';
import 'package:awale/ui/settings/settings_form.dart';


class PageSettings extends StatelessWidget {
class PageSettings extends StatelessWidget {
Original line number Original line Diff line number Diff line
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:unicons/unicons.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/ui/settings/theme_card.dart';
import 'package:awale/ui/settings/theme_card.dart';


Original line number Original line Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/cubit/theme_cubit.dart';
import 'package:awale/cubit/theme_cubit.dart';


Original line number Original line Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/config/menu.dart';
import 'package:awale/config/menu.dart';
import 'package:awale/cubit/nav_cubit.dart';
import 'package:awale/cubit/nav_cubit.dart';
Original line number Original line Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/ui/helpers/styled_button.dart';


class DeleteSavedGameButton extends StatelessWidget {
class DeleteSavedGameButton extends StatelessWidget {
  const DeleteSavedGameButton({super.key});
  const DeleteSavedGameButton({super.key});
Original line number Original line Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/ui/helpers/styled_button.dart';


class QuitGameButton extends StatelessWidget {
class QuitGameButton extends StatelessWidget {
  const QuitGameButton({super.key});
  const QuitGameButton({super.key});
Original line number Original line Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/cubit/settings_game_cubit.dart';
import 'package:awale/cubit/settings_game_cubit.dart';
import 'package:awale/cubit/settings_global_cubit.dart';
import 'package:awale/cubit/settings_global_cubit.dart';
import 'package:awale/ui/helpers/styled_button.dart';


class StartNewGameButton extends StatelessWidget {
class StartNewGameButton extends StatelessWidget {
  const StartNewGameButton({super.key});
  const StartNewGameButton({super.key});
Original line number Original line Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/ui/helpers/styled_button.dart';


class ResumeSavedGameButton extends StatelessWidget {
class ResumeSavedGameButton extends StatelessWidget {
  const ResumeSavedGameButton({super.key});
  const ResumeSavedGameButton({super.key});
Original line number Original line Diff line number Diff line
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/cubit/game_cubit.dart';
import 'package:awale/ui/widgets/game/game_house.dart';
import 'package:awale/ui/widgets/game/game_house.dart';