mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 00:05:16 +00:00
Start to display banner
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
import 'package:comunic/utils/date_utils.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:version/version.dart';
|
||||
|
||||
@ -132,6 +133,42 @@ class AccountInformationPolicy {
|
||||
assert(maxLocationLength != null);
|
||||
}
|
||||
|
||||
enum BannerNature { Information, Warning, Success }
|
||||
|
||||
extension BannerNatureExt on BannerNature {
|
||||
static BannerNature fromStr(String s) {
|
||||
switch (s) {
|
||||
case "information":
|
||||
return BannerNature.Information;
|
||||
case "success":
|
||||
return BannerNature.Success;
|
||||
case "warning":
|
||||
default:
|
||||
return BannerNature.Warning;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Banner {
|
||||
final bool enabled;
|
||||
final int expire;
|
||||
final BannerNature nature;
|
||||
final Map<String, String> message;
|
||||
final String link;
|
||||
|
||||
const Banner({
|
||||
@required this.enabled,
|
||||
@required this.expire,
|
||||
@required this.nature,
|
||||
@required this.message,
|
||||
@required this.link,
|
||||
}) : assert(enabled != null),
|
||||
assert(nature != null),
|
||||
assert(message != null);
|
||||
|
||||
bool get visible => enabled && (expire == null || expire > time());
|
||||
}
|
||||
|
||||
class ServerConfig {
|
||||
final Version minSupportedMobileVersion;
|
||||
final String termsURL;
|
||||
@ -139,6 +176,7 @@ class ServerConfig {
|
||||
final String contactEmail;
|
||||
final String playStoreURL;
|
||||
final String androidDirectDownloadURL;
|
||||
final Banner banner;
|
||||
final NotificationsPolicy notificationsPolicy;
|
||||
final PasswordPolicy passwordPolicy;
|
||||
final ServerDataConservationPolicy dataConservationPolicy;
|
||||
@ -152,6 +190,7 @@ class ServerConfig {
|
||||
@required this.contactEmail,
|
||||
@required this.playStoreURL,
|
||||
@required this.androidDirectDownloadURL,
|
||||
@required this.banner,
|
||||
@required this.notificationsPolicy,
|
||||
@required this.passwordPolicy,
|
||||
@required this.dataConservationPolicy,
|
||||
|
Reference in New Issue
Block a user