Kaidan issueshttps://invent.kde.org/network/kaidan/-/issues2019-07-10T14:39:24Zhttps://invent.kde.org/network/kaidan/-/issues/291Kaidan v0.4.02019-07-10T14:39:24ZLinus JahnKaidan v0.4.0## Before releasing
- [x] !356 (for ubuntu touch support)
- [x] Fix repo url (https://invent.kde.org/kde/kaidan/blob/master/utils/generate-license.py#L344, https://invent.kde.org/kde/kaidan/blob/master/src/qml/AboutDialog.qml#L100 )
- [x...## Before releasing
- [x] !356 (for ubuntu touch support)
- [x] Fix repo url (https://invent.kde.org/kde/kaidan/blob/master/utils/generate-license.py#L344, https://invent.kde.org/kde/kaidan/blob/master/src/qml/AboutDialog.qml#L100 )
- [x] Create a new screenshot
- [x] Update changelog
- [x] Add tag
## After releasing
- [x] Revert !356
- [x] Drop support for Qt 5.9 (or earlier): Clean up all `#if`s for old versions
- [x] Drop support for QXmpp 0.9: Remove
- [x] Temporarily drop Ubuntu Touch support until they get Qt 5.10
0.4: File Sharing2019-07-08https://invent.kde.org/network/kaidan/-/issues/240Media Sharing / File Uploads2023-02-27T15:09:17ZBhushan ShahMedia Sharing / File Uploads*Created by: LNJ2*
There are already some things done for file uploads, but here's a list of what's still missing:
- [x] XEP-0385: Stateless Inline Media Sharing (#127)
- [x] Temporarily only sending the media link
- [x] Database adapti...*Created by: LNJ2*
There are already some things done for file uploads, but here's a list of what's still missing:
- [x] XEP-0385: Stateless Inline Media Sharing (#127)
- [x] Temporarily only sending the media link
- [x] Database adaptions
- [x] Thumbnail generation (currently images only)
- [x] Create download manager
- [x] Combining everything in the back-end, create connections for QML
- [x] File selection
- [x] UI elements for images files (later we can add other stuff)
- [x] Upload animation / progress bar
- [x] thumbnails
- [x] opening in other applications
If there's something missing, edit or write a comment.0.4: File SharingBhushan ShahBhushan Shahhttps://invent.kde.org/network/kaidan/-/issues/260Switch to QXmpp (yes, really, and yes, we're switching again)2018-11-24T19:03:30ZBhushan ShahSwitch to QXmpp (yes, really, and yes, we're switching again)This is everything that is missing:
- [x] Rewrite Kaidan, ClientWorker
- [x] Rewrite RosterManager
- [x] Rewrite MessageHandler
- [x] Rewrite LogHandler
- [x] Rewrite PresenceHandler and PresenceCache (medium)
- [x] Rewrite ServiceDiscoM...This is everything that is missing:
- [x] Rewrite Kaidan, ClientWorker
- [x] Rewrite RosterManager
- [x] Rewrite MessageHandler
- [x] Rewrite LogHandler
- [x] Rewrite PresenceHandler and PresenceCache (medium)
- [x] Rewrite ServiceDiscoManager (easy)
- [x] Rewrite vCard avatar fetchment (easy)
- [x] Implement XEP-0352: Client State Indication (https://github.com/qxmpp-project/qxmpp/commit/5559ed29681d031f36e7a7d011e3ec4bec3635f5)
- [x] Implement XEP-0363: HTTP File Upload (hard)
- [x] Implement stanza extensions
- [x] Implement manager(s)
- [x] Rewrite UploadHandler (only partily, replacing gloox parts)
- [x] Use XEP-0282: Message Carbons (currently needs QXmpp master, will be in v0.9.4/v1.0.0) (easy)
- [x] Use XEP-0352: Client State Indication (currently needs QXmpp master, will be in v0.9.4/v1.0.0) (easy)
- [x] New connection error states
Still need to fix:
- [x] Fix database/roster model/message model
- [x] Received messages are not displayed?
- [ ] Reconnect problems (at least on android; probably everywhere)
- [x] VCard Avatar checksum compare isn't working -> avatars are loaded again and again0.4: File SharingBhushan ShahBhushan Shahhttps://invent.kde.org/network/kaidan/-/issues/152Move or hide the drawer grab button on the chat page2018-06-28T00:22:03ZBhushan ShahMove or hide the drawer grab button on the chat page*Created by: IlyaBizyaev*
![spectacle pe7721](https://user-images.githubusercontent.com/11175213/34071751-70f9f01a-e28c-11e7-8906-61164ddc98fa.png)
*Created by: IlyaBizyaev*
![spectacle pe7721](https://user-images.githubusercontent.com/11175213/34071751-70f9f01a-e28c-11e7-8906-61164ddc98fa.png)
0.4: File Sharinghttps://invent.kde.org/network/kaidan/-/issues/220Privacy violation: auto-accepting subscription requests2018-06-28T00:22:02ZBhushan ShahPrivacy violation: auto-accepting subscription requests*Created by: ge0rg*
Kaidan is silently and automatically accepting subscription requests. This is a violation of the user's privacy, because it leaks the user's availability status (allowing to monitor their behavior) and exposing full ...*Created by: ge0rg*
Kaidan is silently and automatically accepting subscription requests. This is a violation of the user's privacy, because it leaks the user's availability status (allowing to monitor their behavior) and exposing full JIDs, allowing to target individual clients.
As today most spam sending bots first send a subscription request and then a message, and many spam filters block messages from strangers, you are also exposing users to spam.
Server-side logs:
```
Mar 23 03:00:30 s2sin56532061a490 debug Received[s2sin]: <presence type='subscribe' to='georg@yax.im' from='redirect59926@jabber.o
zerki.net'>
Mar 23 03:00:30 s2sout56530f8819b0 debug sending: <presence type='unavailable' to='redirect59926@jabber.ozerki.net' from='georg@yax
.im'>
Mar 23 03:00:30 c2s5653115ea470 debug Received[c2s]: <presence type='subscribed' to='redirect59926@jabber.ozerki.net' from='georg@yax.im/e57cc71c-e400-4a4d-a60b-513ec9d4a880'>
```
```
georg@yax.im/e57cc71c-e400-4a4d-a60b-513ec9d4a880 is running Kaidan version 0.4.0-dev on Debian GNU/Linux buster/sid
```
Final result:
![image](https://user-images.githubusercontent.com/165635/37817729-18826b96-2e78-11e8-83ba-8854247bea3e.png)
If you want to improve the UX without exposing the user, I recommend the following:
* [XEP-0379: Pre-Authenticated Roster Subscription](https://xmpp.org/extensions/xep-0379.html)
* [XEP-0401: Easy User Onboarding](https://xmpp.org/extensions/xep-0401.html)
---
Edit by @LNJ2:
- [x] Don't automatically accept subscription requests
- [x] Ask the user for accepting the requests 0.4: File Sharinghttps://invent.kde.org/network/kaidan/-/issues/268Show error messages on log in failure (again)2018-11-24T19:01:12ZBhushan ShahShow error messages on log in failure (again)0.4: File Sharinghttps://invent.kde.org/network/kaidan/-/issues/262Scrolling on ChatPage is broken on desktop2018-11-18T18:52:32ZBhushan ShahScrolling on ChatPage is broken on desktopSomehow you can't scroll anymore on the chat page. Is this maybe related to a kirigami update? It's using the ScrollablePage.Somehow you can't scroll anymore on the chat page. Is this maybe related to a kirigami update? It's using the ScrollablePage.0.4: File Sharinghttps://invent.kde.org/network/kaidan/-/issues/263ChatPage: Messages are overlapping composing field2018-11-18T18:52:32ZBhushan ShahChatPage: Messages are overlapping composing field0.4: File SharingIlya BizyaevIlya Bizyaevhttps://invent.kde.org/network/kaidan/-/issues/163RosterPage: Mark currently selected chat2020-09-20T13:56:27ZBhushan ShahRosterPage: Mark currently selected chat*Created by: LNJ2*
http://doc.qt.io/qt-5/qml-qtquick-listview.html#isCurrentItem-attached-prop
E.g. the color should be changed.*Created by: LNJ2*
http://doc.qt.io/qt-5/qml-qtquick-listview.html#isCurrentItem-attached-prop
E.g. the color should be changed.0.4: File SharingBhushan ShahBhushan Shahhttps://invent.kde.org/network/kaidan/-/issues/153Contact delete button looks through the list item2018-06-28T00:22:03ZBhushan ShahContact delete button looks through the list item*Created by: IlyaBizyaev*
It should be deactivated when not visible*Created by: IlyaBizyaev*
It should be deactivated when not visible0.4: File Sharinghttps://invent.kde.org/network/kaidan/-/issues/159Kaidan is reading UTC timestamps as local timezone's time2018-06-28T00:22:03ZBhushan ShahKaidan is reading UTC timestamps as local timezone's time*Created by: LNJ2*
---
After multi-threading is implemented, I'll change the db to use real timestamps instead of strings (which will also save some space, especially when the db grows).*Created by: LNJ2*
---
After multi-threading is implemented, I'll change the db to use real timestamps instead of strings (which will also save some space, especially when the db grows).0.4: File Sharinghttps://invent.kde.org/network/kaidan/-/issues/228Avatars of new contacts are not loaded2018-06-28T00:22:02ZBhushan ShahAvatars of new contacts are not loaded*Created by: LNJ2*
When adding a new contact, the avatar is not loaded.*Created by: LNJ2*
When adding a new contact, the avatar is not loaded.0.4: File Sharinghttps://invent.kde.org/network/kaidan/-/issues/216No indication of invalid account credentials on connect2018-06-28T00:22:02ZBhushan ShahNo indication of invalid account credentials on connect*Created by: ge0rg*
Affected version: 0.3.2+git20180322-1 from Debian repo.
Steps to reproduce:
1. Start kaidan
2. Enter incorrect credentials
3. Press [Connect]
Expected result:
* UI indication of what went wrong
Observed ...*Created by: ge0rg*
Affected version: 0.3.2+git20180322-1 from Debian repo.
Steps to reproduce:
1. Start kaidan
2. Enter incorrect credentials
3. Press [Connect]
Expected result:
* UI indication of what went wrong
Observed reesult:
* [Connect] button changes to [Connecting...] for a moment, then back to [Connect]
* Console shows this line, among others:
`[client] Disconnected: Enums::DisconnectionReason(ConnAuthenticationFailed)`
0.4: File Sharinghttps://invent.kde.org/network/kaidan/-/issues/160Kaidan isn't answering receipt requests anymore2018-06-28T00:22:03ZBhushan ShahKaidan isn't answering receipt requests anymore*Created by: LNJ2*
*Created by: LNJ2*
0.4: File Sharinghttps://invent.kde.org/network/kaidan/-/issues/125XEP-0363: HTTP File Upload2018-09-15T14:01:54ZBhushan ShahXEP-0363: HTTP File Upload*Created by: LNJ2*
https://xmpp.org/extensions/xep-0363.html*Created by: LNJ2*
https://xmpp.org/extensions/xep-0363.html0.4: File Sharinghttps://invent.kde.org/network/kaidan/-/issues/278Settings layer can be opened multiple times on mobile2019-05-23T10:48:05ZBhushan ShahSettings layer can be opened multiple times on mobile0.4: File Sharinghttps://invent.kde.org/network/kaidan/-/issues/444Media overview for all media within a specific chat2023-08-19T08:44:06ZMelvin Keskinmelvo@olomono.deMedia overview for all media within a specific chatAn overview of all media shared within a chat should be added. The media should be opened on clicking. There should be options for deleting the media.
Three sections for an easier overview should be implemented:
1. Images
2. Videos
3. Do...An overview of all media shared within a chat should be added. The media should be opened on clicking. There should be options for deleting the media.
Three sections for an easier overview should be implemented:
1. Images
2. Videos
3. Documents and other files0.10: Groupchats (MIX)Filipe AzevedoFilipe Azevedohttps://invent.kde.org/network/kaidan/-/issues/443Server address autocomplete2023-12-10T12:28:03ZMelvin Keskinmelvo@olomono.deServer address autocompleteSuggestions for XMPP server domains should be displayed as a drop-down menu (combo box) during login, while adding contacts and joining groups.
The following sources should be combined:
* https://data.xmpp.net/providers/v1/providers-Ds.j...Suggestions for XMPP server domains should be displayed as a drop-down menu (combo box) during login, while adding contacts and joining groups.
The following sources should be combined:
* https://data.xmpp.net/providers/v1/providers-Ds.json
* Domains of contacts' servers0.10: Groupchats (MIX)Filipe AzevedoFilipe Azevedohttps://invent.kde.org/network/kaidan/-/issues/442Drafts for unsent messages2023-05-07T10:58:34ZMelvin Keskinmelvo@olomono.deDrafts for unsent messagesEntered but unsent messages should be stored in the database when a currently open chat (or the application) is closed and fetched from database once opened again for editing.Entered but unsent messages should be stored in the database when a currently open chat (or the application) is closed and fetched from database once opened again for editing.0.10: Groupchats (MIX)Filipe AzevedoFilipe Azevedohttps://invent.kde.org/network/kaidan/-/issues/413Stateless file sharing2022-10-01T00:15:03ZLinus JahnStateless file sharing[XEP-0447: Stateless file sharing](https://xmpp.org/extensions/xep-0447.html) with encryption.
QXmpp:
* [x] Parsing:
* [x] https://github.com/qxmpp-project/qxmpp/pull/447: Implement XEP-0300: Use of Cryptographic Hash Functions in X...[XEP-0447: Stateless file sharing](https://xmpp.org/extensions/xep-0447.html) with encryption.
QXmpp:
* [x] Parsing:
* [x] https://github.com/qxmpp-project/qxmpp/pull/447: Implement XEP-0300: Use of Cryptographic Hash Functions in XMPP
* [x] https://github.com/qxmpp-project/qxmpp/pull/451: Implement XEP-0264: Jingle Content Thumbnails
* [x] https://github.com/qxmpp-project/qxmpp/pull/449: Implement XEP-0446: File metadata element
* [x] https://github.com/qxmpp-project/qxmpp/pull/448: Implement XEP-0447: Stateless file sharing: File sharing element
* [x] https://github.com/qxmpp-project/qxmpp/pull/463: Implement XEP-0448: Encryption for stateless file sharing parsing
* [x] Make all source types public, because the user / Kaidan needs to be able to store them in the database.
* [x] https://github.com/qxmpp-project/qxmpp/pull/462: BitsOfBinaryData: Add fromByteArray() utility function
* [x] https://github.com/qxmpp-project/qxmpp/pull/476: Allow adding multiple oob urls and a description
* [x] https://github.com/qxmpp-project/qxmpp/pull/464: Async/Multithreaded hashing functions for file verifications
* [x] https://github.com/qxmpp-project/qxmpp/pull/452: HttpUploadManager for generic purposes
* **optional**: also output current upload speed in QXmppHttpUpload
* **optional**: support continuing partial downloads
* [x] SfsManager
* [x] https://github.com/qxmpp-project/qxmpp/pull/477
* [x] generic http upload/download
* [x] encrypted http upload/download
* [x] file encryption: https://github.com/qxmpp-project/qxmpp/pull/465
* **optional**: Use static (maybe timer bound) QMimeDatabase instead of creating a new for each task
Kaidan:
* [x] !849
* [x] improve progress reporting in qml by using QObject instead of signals
* [x] switch to FileSharingManager from QXmpp
* [x] generate file/media thumbnails using KIO
* **optional**: deduplication: check for existing downloaded files with identical hashes
Qt:
* https://codereview.qt-project.org/c/qt/qtbase/+/431863
* https://codereview.qt-project.org/c/qt/qtbase/+/431864
---
Metadata overview:
* user specified
* description
* file metadata
* filename
* file size
* last modified
* mime type
* hashes
* audio:
* length
* image:
* width, height
* thumbnail
* length
* video:
* width, height
* thumbnail
* length0.9: End-to-End Encryption (OMEMO)Linus JahnLinus Jahn2022-09-30