import 'package:comunic/ui/routes/tour_route.dart'; import 'package:flutter/material.dart'; /// Application configuration model /// /// @author Pierre HUBERT const defaultColor = Color(0xFF1A237E); /// Configuration class class Config { final String apiServerName; final String apiServerUri; final bool apiServerSecure; final String clientName; // Theme customization final Color splashBackgroundColor; final Color? primaryColor; final Color? primaryColorDark; final String appName; final String? appQuickDescription; final Color? unreadConversationColor; final Color? defaultConversationColor; // Entries for the welcome tour final TourEntriesBuilder? toursEntriesBuilder; // Custom initialization final Future Function()? additionalLoading; // Custom main application route final Widget Function(BuildContext, GlobalKey)? mainRouteBuilder; const Config({ required this.apiServerName, required this.apiServerUri, required this.apiServerSecure, required this.clientName, this.splashBackgroundColor = defaultColor, this.primaryColor, this.primaryColorDark, this.appName = "Comunic", this.appQuickDescription, this.defaultConversationColor, this.unreadConversationColor, this.toursEntriesBuilder, this.additionalLoading, this.mainRouteBuilder, }) : assert(apiServerName != null), assert(apiServerUri != null), assert(apiServerSecure != null), assert(clientName != null), assert(splashBackgroundColor != null), assert(appName != null); /// Get and set static configuration static Config? _config; static Config? get() { return _config; } static void set(Config conf) { _config = conf; } } /// Get the current configuration of the application Config config() { return Config.get()!; }