feat: Improve feedback during OMEMO session Initiation
After typing `/omemo start` a user was not informed of what exactly happens. Profanity is fetching the device list and the key bundle for each device. This happens asynchronously. It could be that it takes some time and the user already starts typing a message, believing OMEMO is working. Now we print: * Initiating OMEMO session.. * Fetching device list and key bundles * OMEMO session ready So the user understands much better the current situation.
This commit is contained in:
@@ -8479,6 +8479,7 @@ cmd_omemo_start(ProfWin* window, const char* const command, gchar** args)
|
||||
}
|
||||
|
||||
accounts_add_omemo_state(session_get_account_name(), chatwin->barejid, TRUE);
|
||||
win_println((ProfWin*)chatwin, THEME_DEFAULT, "!", "Initiating OMEMO session with %s...", chatwin->barejid);
|
||||
omemo_start_session(chatwin->barejid);
|
||||
chatwin->is_omemo = TRUE;
|
||||
} else if (window->type == WIN_MUC) {
|
||||
@@ -8493,6 +8494,7 @@ cmd_omemo_start(ProfWin* window, const char* const command, gchar** args)
|
||||
if (muc_anonymity_type(mucwin->roomjid) == MUC_ANONYMITY_TYPE_NONANONYMOUS
|
||||
&& muc_member_type(mucwin->roomjid) == MUC_MEMBER_TYPE_MEMBERS_ONLY) {
|
||||
accounts_add_omemo_state(session_get_account_name(), mucwin->roomjid, TRUE);
|
||||
win_println((ProfWin*)mucwin, THEME_DEFAULT, "!", "Initiating OMEMO session in %s...", mucwin->roomjid);
|
||||
omemo_start_muc_sessions(mucwin->roomjid);
|
||||
mucwin->is_omemo = TRUE;
|
||||
} else {
|
||||
|
||||
@@ -729,8 +729,30 @@ omemo_start_device_session(const char* const jid, uint32_t device_id,
|
||||
}
|
||||
|
||||
log_debug("[OMEMO] create session with %s device %d", jid, device_id);
|
||||
if (omemo_ctx.notifying) {
|
||||
ProfChatWin* chatwin = wins_get_chat(jid);
|
||||
if (chatwin) {
|
||||
win_println((ProfWin*)chatwin, THEME_DEFAULT, "!", "OMEMO session with %s (device %u) ready.", jid, device_id);
|
||||
} else {
|
||||
ProfMucWin* mucwin = wins_get_muc(jid);
|
||||
if (mucwin) {
|
||||
win_println((ProfWin*)mucwin, THEME_DEFAULT, "!", "OMEMO session with %s (device %u) ready.", jid, device_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log_debug("[OMEMO] session with %s device %d exists", jid, device_id);
|
||||
if (omemo_ctx.notifying) {
|
||||
ProfChatWin* chatwin = wins_get_chat(jid);
|
||||
if (chatwin) {
|
||||
win_println((ProfWin*)chatwin, THEME_DEFAULT, "!", "OMEMO session with %s (device %u) already exists.", jid, device_id);
|
||||
} else {
|
||||
ProfMucWin* mucwin = wins_get_muc(jid);
|
||||
if (mucwin) {
|
||||
win_println((ProfWin*)mucwin, THEME_DEFAULT, "!", "OMEMO session with %s (device %u) already exists.", jid, device_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
|
||||
Reference in New Issue
Block a user