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
Loading items

Target

Select target project
0 results Searching
Select Git revision
Loading items
Show changes
49 files
+ 95
752
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
+5 −121
Original line number Original line Diff line number Diff line
# Built application files
*.apk
*.aar
*.ap_
*.aab

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/
#  Uncomment the following line in case you need and you don't have the release build type files in your app
# release/

# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# IntelliJ
*.iml
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/assetWizardSettings.xml
.idea/dictionaries
.idea/libraries
# Android Studio 3 in .gitignore file.
.idea/caches
.idea/modules.xml
# Comment next line if keeping position of elements in Navigation Editor is relevant for you
.idea/navEditor.xml

# Keystore files
# Uncomment the following lines if you do not want to check your keystore files in.
#*.jks
#*.keystore

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild
.cxx/

# Google Services (e.g. APIs or Firebase)
# google-services.json

# Freeline
freeline.py
freeline/
freeline_project_description.json

# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/readme.md

# Version control
vcs.xml

# lint
lint/intermediates/
lint/generated/
lint/outputs/
lint/tmp/
# lint/reports/

# Flutter/Dart/Pub related
**/doc/api/
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
**/generated_plugin_registrant.dart
.packages
.pub-cache/
.pub/
flutter_*.png
linked_*.ds
unlinked.ds
unlinked_spec.ds

# packages file containing multi-root paths
.packages.generated

# Visual Studio Code related
.classpath
.project
.settings/
.vscode/

# Android related
**/android/**/gradle-wrapper.jar
**/android/.gradle
**/android/captures/
**/android/gradlew
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java
**/android/key.properties
*.jks

# Miscellaneous
# Miscellaneous
*.class
*.class
*.log
*.log
@@ -128,6 +8,7 @@ unlinked_spec.ds
.buildlog/
.buildlog/
.history
.history
.svn/
.svn/
migrate_working_dir/


# IntelliJ related
# IntelliJ related
*.iml
*.iml
@@ -159,4 +40,7 @@ app.*.symbols
# Obfuscation related
# Obfuscation related
app.*.map.json
app.*.map.json


.glci
# Android Studio will place build artifacts here
/android/app/debug
/android/app/profile
/android/app/release
Original line number Original line Diff line number Diff line
import 'package:hangman/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:hangman/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:hangman/ui/screens/page_about.dart';
import 'package:hangman/ui/screens/page_about.dart';
import 'package:hangman/ui/screens/page_game.dart';
import 'package:hangman/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 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:flutter/material.dart';
import 'package:hangman/data/fetch_data_helper.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';
import 'package:hangman/models/game/picked_word.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';


import 'package:hangman/data/fetch_data_helper.dart';
import 'package:hangman/models/game/game.dart';
import 'package:hangman/models/game/game.dart';
import 'package:hangman/models/game/picked_word.dart';
import 'package:hangman/models/settings/settings_game.dart';
import 'package:hangman/models/settings/settings_game.dart';
import 'package:hangman/models/settings/settings_global.dart';
import 'package:hangman/models/settings/settings_global.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:hangman/config/menu.dart';
import 'package:hangman/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:hangman/config/default_game_settings.dart';
import 'package:hangman/config/default_game_settings.dart';
import 'package:hangman/models/settings/settings_game.dart';
import 'package:hangman/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:hangman/config/default_global_settings.dart';
import 'package:hangman/config/default_global_settings.dart';
import 'package:hangman/models/settings/settings_global.dart';
import 'package:hangman/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:hangman/config/default_global_settings.dart';
import 'package:hangman/config/default_global_settings.dart';
import 'package:hangman/config/theme.dart';
import 'package:hangman/cubit/game_cubit.dart';
import 'package:hangman/cubit/game_cubit.dart';
import 'package:hangman/cubit/nav_cubit.dart';
import 'package:hangman/cubit/nav_cubit.dart';
import 'package:hangman/cubit/settings_game_cubit.dart';
import 'package:hangman/cubit/settings_game_cubit.dart';
Original line number Original line Diff line number Diff line
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';

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


typedef MovingTile = String;
typedef MovingTile = String;
typedef Player = String;
typedef Player = String;
Original line number Original line Diff line number Diff line
import 'package:hangman/utils/tools.dart';
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';


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

import 'package:hangman/config/default_game_settings.dart';
import 'package:hangman/config/default_game_settings.dart';
import 'package:hangman/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:hangman/config/default_global_settings.dart';
import 'package:hangman/config/default_global_settings.dart';
import 'package:hangman/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:hangman/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(),
          ),
        ],
      ),
    );
  }
}