Files
pyramid/lib/utils/date_labels.dart
Bernd SteckmeisterandClaude Opus 5.5 c38e9c18b0 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]>
2026-10-07 17:21:33 +02:00

26 lines
992 B
Dart

/// 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')}';
}