Skip to content
Snippets Groups Projects
settings_global.dart 906 B
Newer Older
import 'package:flutter_custom_toolbox/flutter_toolbox.dart';

import 'package:reversi/config/default_global_settings.dart';

class GlobalSettings {
  String skin;

  GlobalSettings({
    required this.skin,
  });

  static String getSkinValueFromUnsafe(String skin) {
    if (DefaultGlobalSettings.allowedSkinValues.contains(skin)) {
      return skin;
    }

    return DefaultGlobalSettings.defaultSkinValue;
  }

  factory GlobalSettings.createDefault() {
    return GlobalSettings(
      skin: DefaultGlobalSettings.defaultSkinValue,
    );
  }

  void dump() {
    printlog('$GlobalSettings:');
    printlog('  ${DefaultGlobalSettings.parameterCodeSkin}: $skin');
    printlog('');
  }

  @override
  String toString() {
    return '$GlobalSettings(${toJson()})';
  }

  Map<String, dynamic>? toJson() {
    return <String, dynamic>{
      DefaultGlobalSettings.parameterCodeSkin: skin,
    };
  }
}