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(); }