mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-11-29 08:16:28 +00:00
73 lines
1.8 KiB
Dart
73 lines
1.8 KiB
Dart
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<void> 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();
|
|
}
|