Hi @brenno.almeida
First of all, thank you so much for your incredible work on Greenline! Seeing a native QML WhatsApp client moving forward so quickly on Ubuntu Touch is amazing. The recent alpha builds with voice messages and message deletion show huge progress.
As a tester, I noticed an interesting behavior regarding the main chat list:
The app currently populates the history with every single JID (Jabber ID) available from the server's sync history. This includes old "ghost contacts" (like one-time marketplace buyers), unknown numbers, or old groups that were long deleted or left on the main device. When you click them, they just show an empty chat view.
I suspect that filtering these out isn't a quick "one-click" fix, as the underlying protocol/daemon likely dumps the raw cached stream of all historical chat channels upon connection, without the local filters that the official Android/iOS apps use.
Since you are probably busy with core features, I was thinking about some pragmatic ways to tackle this on the client/UI side whenever you find the time:
Frontend Filtering (QML Delegate): A quick visual fix could be using a filter or modifying the ChatDelegate in QML. If the model's row indicates that there is no lastMessageText (or the timestamp is null), the item's visibility could be set to false and its height to 0.
Database Query Filtering (Backend): If Greenline stores the synced chats in a local SQLite database, modifying the SQL query that populates the QML model might do the trick (e.g., SELECT * FROM chats WHERE last_message_id IS NOT NULL OR unread_count > 0).
Just wanted to share this observation and some ideas. No rush at all—the app already looks and feels great for an alpha state!
Keep up the fantastic work!