Nachrichten - Rework
Die alte Nachrichten ( - Beta-Version) PR will ich nicht für immer zum vergammeln hier lassen, somit wird es jetzt gemacht.
Main TODOs im Code:
- [x] App Bar stylen
- [x] Nachrichten Builder neustrukturieren, ist gerade sehr unnötig bloated
- [x] Lanis-Style Formatting für Nachrichten
- [x] Bubble und Author Header richtig gestyled
- [x] Nachrichten mit Halten kopieren
- [x] DateHeader stylen
- [x] Rich Text Editor, da Nachrichten eher wie eine schlechtere Version von E-Mails benutzt wird.
- ich muss ihn noch weiter testen ob er stabil genug ist
- [x] Konversations Erstell Prozess anpassen
- Also Erstell-Dialog, direkt zum Rich Text Editor schicken, ...
- [x] MessageState Style
- [x] Optimieren, aufräumen, ...
- [x] Translations
Andere issues:
- [x] Bubblegröße an die Gerätebreite anpassen.
- [x] Wenn man eine Nachricht sendet wird immer nur mit
MessageState.firstgesendet - [x] Snackbar bei unerfolgreichen senden.
- [x] Keine Auswahl an Nachrichtentypen wenn das nicht erlaubt wurde
- [x] Eigene Datenklassen statt
dynamicbeim Fetcher - [x] Dispose()?
- [x] Teilnehmer sehen
Potenzielle Performance issues:
- [x] MessageBuilder zu einem Stateful Widget umwandeln, damit z. B. SetState-Calls nicht alles rebuilden
- [x] Jedesmal BubbleStyle, BubbleStructure und FormatStyle auszurechnen ist nicht effizent, aber sollte fast gar keine Performance fressen. Trotzdem sollte man es vorher z. B. beim globalen Theme-Init speichern.
- Hab es jetzt nur bei BubbleStyle gemacht, weil da bringt es glaube auch was.
- ~LinkedList anstatt eines Arrays?~
- ~Wenn man eine neue Nachricht sendet muss man immer den voherigen Item überprüfen, also ich weiß ob es dann so viel bringt.~ Bringt nix mehr
- ~Zur Impeller-Engine wechseln, mache wahrscheinlich ein eigenes Issue dazu.~
UI/UX wird bisschen komplexer weil man müsste eine halbwegs gute Messaging-UI bauen. Villt. gibt es schon Packages für sowas
flutter_chat_ui sieht sehr solide aus. Das Example ist wirklich einfach und soweit ich das sehe, kann man über textMessageBuilder auch eigene sachen sehr gut einbauen (hier vor allem markup)
Ich denke es wäre hier super hilfreich, wenn anstelle von dynamic eigene klassen für alles erstellt werden. Das hat mir bei den substituzions sehr geholfen und ist sehr viel cleaner.
Ja das ist eine gute Idee
Das ist schon sehr groß geworden. 1.000 Zeilen an neuen Code.
Ich glaube das ist jetzt endlich ready. Ich hoffe ich habe nichts vergessen.
overview.dart ist jetzt halt bissl messy (war schon davor), aber das wird mal wann anders aufgeräumt.
Ich brauche vlt ne weile mit dem durchschauen ^^
Habe gerade wegen bewerbungen bissel was am hut. Drängt ja aber auch nicht wegen ferien
I wanted to do the overview thing later in a separate PR where I also rework it but I'll look into it.
The scroll to bottom FAB doesn't show itself directly, only if I scrolled down; I'll look into that. Maybe starting at the bottom is better and then you have a button which brings you to the top or the chat is reversed (nah that would be weird)?
Und soll ich jetzt Englisch oder Deutsch hier auf Github benutzen, weil irgendwie wird das immer herumgeswitcht.
So now the UI needs to be adjusted bc the dialogues were just put in a Scaffold without really changing them and exceptions.
I think it's ready. After that the overview needs to be cleaned and maybe then I can do experimental ideas like a dashboard?