danvratil / harbour-sailslack

Unofficial Slack client for Sailfish OS
GNU General Public License v3.0
4 stars 4 forks source link

Users #25

Closed b100dian closed 3 years ago

b100dian commented 3 years ago

Lazy load of users that turn out missing when loading users.conversations. The idea is that the chat that the user was mentioned in (or direct im) is stored as a user.asyncChat json document until the user is 'resolved' with "users.info" call. Then the user + chat is inserted in the storage.

On a more concrete note, if you don't find a direct message with a user you know you can reach out, you can find a reply of him in any channel and, opening the User info page, you can start writing a direct message to him this way.

b100dian commented 3 years ago

Added one more improvement: when parsing the messages from an shared enterprise channel, you get user_profile along with messages and we can add the users directly to storage and show their display/real name in situ. (At least it works for most of the users). For those where only username is shown, you can go to User detail page and a separate request will again fill the storage for that use. Then, from the user profile page, you can start a chat with that user.

Now, if you close the app and re-open it, the mentioned chat appears with no user info (so you need async user loading) and when that is loaded, the chat is also inserted and marked as open. (This last part is the resolution for my previous comment "Actually I may more work here, the resolved users' chat do not show up..". They do, but there are resolved users with chats not open too).

I still cannot get a full list of users to talk to like in the desktop client, but at least you can now find the user on a channel and start talking to him from the User details page.

danvratil commented 3 years ago

Nice, thanks!