1
0
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:
2021-12-30 12:02:18 +01:00
parent 4fd8c4d613
commit bfe932c053
5 changed files with 154 additions and 1 deletions

View File

@ -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,