1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-11-29 16:26:27 +00:00
comunicmobile/lib/models/config.dart

76 lines
1.9 KiB
Dart

import 'dart:ui';
import 'package:comunic/ui/routes/tour_route.dart';
import 'package:flutter/material.dart';
import 'package:meta/meta.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();
}