Implement settings
Some checks failed
Build Docker and Deploy / Build Docker Container (push) Successful in 51s
Build Docker and Deploy / Run Unit-Tests (push) Failing after 11m17s
Build Docker and Deploy / Deploy to Server (push) Has been skipped

This commit is contained in:
2025-04-19 01:49:28 +02:00
parent 5417796f3f
commit b91ddc172d
33 changed files with 912 additions and 127 deletions

View File

@@ -6,7 +6,7 @@ import 'package:simplecloudnotifier/models/channel.dart';
import 'package:simplecloudnotifier/models/scn_message.dart';
import 'package:simplecloudnotifier/pages/message_list/message_filter_chiplet.dart';
import 'package:simplecloudnotifier/pages/message_view/message_view.dart';
import 'package:simplecloudnotifier/settings/app_settings.dart';
import 'package:simplecloudnotifier/state/app_settings.dart';
import 'package:simplecloudnotifier/state/app_bar_state.dart';
import 'package:simplecloudnotifier/state/app_events.dart';
import 'package:simplecloudnotifier/state/application_log.dart';

View File

@@ -2,15 +2,14 @@ import 'dart:math';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import 'package:simplecloudnotifier/models/channel.dart';
import 'package:simplecloudnotifier/models/scn_message.dart';
import 'package:intl/intl.dart';
import 'package:simplecloudnotifier/state/app_settings.dart';
import 'package:simplecloudnotifier/utils/ui.dart';
class MessageListItem extends StatelessWidget {
static final _dateFormat = DateFormat('yyyy-MM-dd HH:mm'); //TODO setting
static final _lineCount = 3; //TODO setting
const MessageListItem({
required this.message,
required this.allChannels,
@@ -32,6 +31,9 @@ class MessageListItem extends StatelessWidget {
}
Card buildWithoutChannel(BuildContext context) {
final dateFormat = context.select<AppSettings, AppSettingsDateFormat>((v) => v.dateFormat).dateFormat();
final previewLineCount = context.select<AppSettings, int>((v) => v.messagePreviewLength);
return Card.filled(
margin: EdgeInsets.fromLTRB(0, 4, 0, 4),
shape: BeveledRectangleBorder(borderRadius: BorderRadius.circular(0)),
@@ -57,7 +59,7 @@ class MessageListItem extends StatelessWidget {
),
),
Text(
_dateFormat.format(DateTime.parse(message.timestamp).toLocal()),
dateFormat.format(DateTime.parse(message.timestamp).toLocal()),
style: const TextStyle(fontWeight: FontWeight.normal, fontSize: 11),
overflow: TextOverflow.clip,
maxLines: 1,
@@ -70,10 +72,10 @@ class MessageListItem extends StatelessWidget {
children: [
Expanded(
child: Text(
processContent(message.content),
processContent(message.content, previewLineCount),
style: TextStyle(color: Theme.of(context).textTheme.bodyLarge?.color?.withAlpha(160)),
overflow: TextOverflow.ellipsis,
maxLines: _lineCount,
maxLines: previewLineCount,
),
),
if (message.priority == 2) SizedBox(width: 4),
@@ -90,6 +92,9 @@ class MessageListItem extends StatelessWidget {
}
Card buildWithChannel(BuildContext context) {
final dateFormat = context.select<AppSettings, AppSettingsDateFormat>((v) => v.dateFormat).dateFormat();
final previewLineCount = context.select<AppSettings, int>((v) => v.messagePreviewLength);
return Card.filled(
margin: EdgeInsets.fromLTRB(0, 4, 0, 4),
shape: BeveledRectangleBorder(borderRadius: BorderRadius.circular(0)),
@@ -113,7 +118,7 @@ class MessageListItem extends StatelessWidget {
),
Expanded(child: SizedBox()),
Text(
_dateFormat.format(DateTime.parse(message.timestamp).toLocal()),
dateFormat.format(DateTime.parse(message.timestamp).toLocal()),
style: const TextStyle(fontWeight: FontWeight.normal, fontSize: 11),
overflow: TextOverflow.clip,
maxLines: 1,
@@ -132,10 +137,10 @@ class MessageListItem extends StatelessWidget {
children: [
Expanded(
child: Text(
processContent(message.content),
processContent(message.content, previewLineCount),
style: TextStyle(color: Theme.of(context).textTheme.bodyLarge?.color?.withAlpha(160)),
overflow: TextOverflow.ellipsis,
maxLines: _lineCount,
maxLines: previewLineCount,
),
),
if (message.priority == 2) SizedBox(width: 4),
@@ -151,7 +156,7 @@ class MessageListItem extends StatelessWidget {
);
}
String processContent(String? v) {
String processContent(String? v, int lineCount) {
if (v == null) {
return '';
}
@@ -161,7 +166,7 @@ class MessageListItem extends StatelessWidget {
return '';
}
return lines.sublist(0, min(_lineCount, lines.length)).join("\n").trim();
return lines.sublist(0, min(lineCount, lines.length)).join("\n").trim();
}
String processTitle(String? v) {