1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-10-23 23:13:22 +00:00
comunicmobile/lib/models/config.dart

68 lines
1.6 KiB
Dart
Raw Normal View History

2021-04-23 16:11:17 +00:00
import 'package:comunic/ui/routes/tour_route.dart';
2021-04-24 07:16:29 +00:00
import 'package:flutter/material.dart';
2019-04-22 17:16:26 +00:00
/// Application configuration model
///
/// @author Pierre HUBERT
2021-04-12 17:26:05 +00:00
const defaultColor = Color(0xFF1A237E);
2019-04-22 17:16:26 +00:00
/// Configuration class
class Config {
final String apiServerName;
final String apiServerUri;
final bool apiServerSecure;
2021-02-13 15:03:07 +00:00
final String clientName;
2021-04-24 07:16:29 +00:00
// Theme customization
2021-04-12 17:26:05 +00:00
final Color splashBackgroundColor;
final Color? primaryColor;
final Color? primaryColorDark;
2021-04-23 10:24:35 +00:00
final String appName;
final String? appQuickDescription;
final Color? unreadConversationColor;
final Color? defaultConversationColor;
2021-02-13 15:03:07 +00:00
2021-04-23 16:11:17 +00:00
// Entries for the welcome tour
final TourEntriesBuilder? toursEntriesBuilder;
2021-04-23 16:11:17 +00:00
2021-04-24 08:14:56 +00:00
// Custom initialization
final Future<void> Function()? additionalLoading;
2021-04-24 08:14:56 +00:00
2021-04-24 07:16:29 +00:00
// Custom main application route
final Widget Function(BuildContext, GlobalKey)? mainRouteBuilder;
2021-04-24 07:16:29 +00:00
const Config({
required this.apiServerName,
required this.apiServerUri,
required this.apiServerSecure,
required this.clientName,
2021-04-12 17:26:05 +00:00
this.splashBackgroundColor = defaultColor,
2021-04-24 06:57:20 +00:00
this.primaryColor,
this.primaryColorDark,
2021-04-23 10:24:35 +00:00
this.appName = "Comunic",
2021-04-23 10:28:50 +00:00
this.appQuickDescription,
2021-04-25 14:35:50 +00:00
this.defaultConversationColor,
2021-04-25 14:24:42 +00:00
this.unreadConversationColor,
2021-04-23 16:11:17 +00:00
this.toursEntriesBuilder,
2021-04-24 08:14:56 +00:00
this.additionalLoading,
2021-04-24 07:16:29 +00:00
this.mainRouteBuilder,
2022-03-10 19:36:55 +00:00
});
2019-04-22 17:16:26 +00:00
/// Get and set static configuration
static Config? _config;
2019-04-22 17:16:26 +00:00
static Config? get() {
2019-04-22 17:16:26 +00:00
return _config;
}
static void set(Config conf) {
_config = conf;
}
}
/// Get the current configuration of the application
Config config() {
return Config.get()!;
2019-04-22 17:16:26 +00:00
}