1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-06-20 00:35:17 +00:00

Start to build report dialog

This commit is contained in:
2022-03-18 17:54:19 +01:00
parent 512b058d34
commit 80a1c4e0c4
8 changed files with 274 additions and 79 deletions

View File

@ -0,0 +1,8 @@
import 'package:comunic/enums/report_target_type.dart';
class ReportTarget {
final ReportTargetType type;
final int targetId;
const ReportTarget(this.type, this.targetId);
}

View File

@ -1,4 +1,5 @@
import 'package:comunic/utils/date_utils.dart';
import 'package:comunic/utils/intl_utils.dart';
import 'package:version/version.dart';
/// Server static configuration
@ -137,6 +138,23 @@ class Banner {
bool get visible => enabled && (expire == null || expire! > time());
}
class ReportCause {
final String id;
final Map<String, String> label;
const ReportCause({required this.id, required this.label});
String get localeLabel =>
label.containsKey(shortLang) ? label[shortLang]! : label["en"]!;
}
class ReportPolicy {
final List<ReportCause> causes;
final int maxCommentLength;
const ReportPolicy({required this.causes, required this.maxCommentLength});
}
class ServerConfig {
final Version minSupportedMobileVersion;
final String termsURL;
@ -150,6 +168,7 @@ class ServerConfig {
final ServerDataConservationPolicy dataConservationPolicy;
final ConversationsPolicy conversationsPolicy;
final AccountInformationPolicy accountInformationPolicy;
final ReportPolicy? reportPolicy;
const ServerConfig({
required this.minSupportedMobileVersion,
@ -164,5 +183,8 @@ class ServerConfig {
required this.dataConservationPolicy,
required this.conversationsPolicy,
required this.accountInformationPolicy,
required this.reportPolicy,
});
bool get isReportingEnabled => this.reportPolicy != null;
}