feat: Handy-Chatliste als Messenger-Kachel (Vorschau, Uhrzeit, Ungelesen) + deutsche Beschriftungen
- rooms_mobile_tile.dart: auf dem Handy grosser Avatar, Name + Uhrzeit der letzten Nachricht, Vorschau (gleiche Texte wie Push: Medien-Labels, Antwort-Zitat entfernt; "Du:" bzw. Absender in Gruppen), Ungelesen-Zaehler. PC behaelt die kompakte Liste, Voice-Kanaele ihre Darstellung. - utils/date_labels.dart: chatListTime (heute Uhrzeit, Gestern, Wochentag, Datum; sicher an Zeitumstellungs-Tagen) + 5 Tests. - Sichtbare englische Texte eingedeutscht (Chats durchsuchen, Direktnachrichten, Raeume, Nachricht..., Mitglieder, Suchen, ...). Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
c5f10901e6
commit
c38e9c18b0
@@ -0,0 +1,25 @@
|
||||
/// Kurze Datums-/Zeitangaben für Listen (deutsch).
|
||||
library;
|
||||
|
||||
/// Zeit in der Chatliste: heute „14:05“, gestern „Gestern“, diese Woche der
|
||||
/// Wochentag, sonst das Datum.
|
||||
String chatListTime(DateTime t, {DateTime? now}) {
|
||||
final n = now ?? DateTime.now();
|
||||
final today = DateTime(n.year, n.month, n.day);
|
||||
final day = DateTime(t.year, t.month, t.day);
|
||||
// Über Stunden runden: an Zeitumstellungs-Tagen hat ein Tag 23/25 Stunden,
|
||||
// inDays würde dann „gestern“ als „heute“ zählen.
|
||||
final diff = (today.difference(day).inHours / 24).round();
|
||||
if (diff <= 0) {
|
||||
return '${t.hour.toString().padLeft(2, '0')}:'
|
||||
'${t.minute.toString().padLeft(2, '0')}';
|
||||
}
|
||||
if (diff == 1) return 'Gestern';
|
||||
if (diff < 7) {
|
||||
const days = ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So'];
|
||||
return days[t.weekday - 1];
|
||||
}
|
||||
return '${t.day.toString().padLeft(2, '0')}.'
|
||||
'${t.month.toString().padLeft(2, '0')}.'
|
||||
'${(t.year % 100).toString().padLeft(2, '0')}';
|
||||
}
|
||||
Reference in New Issue
Block a user