feat: UI-Umbau - weiches Dunkel, Schriftgroessen-Regler, Sprechblasen umschaltbar, Einstellungen als Vollbild
Bernds Entscheidungen 2026-10-07: - theme.dart: ThemeVariant (Dunkel = neues weiches Dunkelgrau als Standard, Schwarz = bisheriges Fast-Schwarz, Hell) mit PyramidPalette; Nebentexte kontrastreicher. Alte Einstellung theme_dark wird uebernommen (dunkel -> weiches Dunkel). Fest verdrahtete Dunkelfarben im Profil-Popup und GIF-Picker folgen jetzt dem Farbmodus. - appearance.dart: Schriftgroesse = Pyramid-Regler x Systemeinstellung (Handy-Standard 115 %, PC 100 %), MessageStyle Automatisch/Sprechblasen/ Liste, gemeinsame isMobileLayout-Regel. - message_bubbles.dart: Sprechblasen-Darstellung (eigene rechts in Akzentfarbe, Gruppen mit Name + Avatar, Bilder ohne Blase in voller Groesse); Listen-Darstellung unveraendert, Weiche in MessageGroup. - Formatierte Nachrichten (u. a. Antworten) nutzten RichText ohne Schriftskalierung -> erschienen kleiner; jetzt Text.rich. - Einstellungen auf dem Handy als ganze Seite, Schalter unter dem Text. - UI-Durchlauf um Liste/Hell/Gruppe/Einstellungen erweitert; Tests fuer Theme-Varianten, Uebernahme alter Werte, Schriftfaktor, Darstellung. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
a1d64ec813
commit
c5f10901e6
@@ -203,8 +203,44 @@ void main() {
|
||||
);
|
||||
await room.sendTextEvent('Und noch eine letzte Nachricht 👋');
|
||||
|
||||
// Eigene Nachrichten (aus Sicht von pyramidtest1 = rechts).
|
||||
final myDm = c1.getRoomById(roomId)!;
|
||||
await myDm.sendTextEvent('Danke, sieht gut aus!');
|
||||
await myDm.sendTextEvent(
|
||||
'Und eine etwas längere eigene Antwort, damit man sieht, wie '
|
||||
'Sprechblasen umbrechen, wenn der Text über mehrere Zeilen geht.',
|
||||
);
|
||||
|
||||
// Gruppenraum (Name + Avatar je Absender in der Sprechblasen-Ansicht).
|
||||
const groupName = 'UI-Test Gruppe';
|
||||
Room? group;
|
||||
for (final r in c2.rooms) {
|
||||
if (r.membership == Membership.join && r.name == groupName) {
|
||||
group = r;
|
||||
}
|
||||
}
|
||||
if (group == null) {
|
||||
final groupId = await c2.createRoom(
|
||||
name: groupName,
|
||||
preset: CreateRoomPreset.privateChat,
|
||||
invite: [c1.userID!],
|
||||
);
|
||||
await c2
|
||||
.waitForRoomInSync(groupId, join: true)
|
||||
.timeout(const Duration(seconds: 60));
|
||||
group = c2.getRoomById(groupId)!;
|
||||
await c1.oneShotSync().timeout(const Duration(seconds: 60));
|
||||
await c1.getRoomById(groupId)?.join();
|
||||
await c1
|
||||
.waitForRoomInSync(groupId, join: true)
|
||||
.timeout(const Duration(seconds: 60));
|
||||
}
|
||||
await group.sendTextEvent('Hallo zusammen! Wer ist am Samstag dabei?');
|
||||
await group.sendTextEvent('Ich bringe Kuchen mit.');
|
||||
await c1.getRoomById(group.id)!.sendTextEvent('Ich komme gern!');
|
||||
|
||||
// ignore: avoid_print
|
||||
print('UI-Testraum bereit: $roomId');
|
||||
print('UI-Testraum bereit: $roomId, Gruppe: ${group.id}');
|
||||
} finally {
|
||||
await _logout(c1);
|
||||
await _logout(c2);
|
||||
|
||||
Reference in New Issue
Block a user