branch: elpa/jabber
commit a39f32bb1a2bd1d298e0f2d21866ae91538de898
Author: Thanos Apollo <[email protected]>
Commit: Thanos Apollo <[email protected]>
omemo: Make trust UI depend on core
---
lisp/jabber-chatbuffer.el | 4 ++--
lisp/jabber-omemo-trust.el | 30 ++++++++++++++----------------
lisp/jabber-omemo.el | 12 ------------
lisp/jabber.el | 1 -
tests/jabber-test-menu.el | 1 +
tests/jabber-test-omemo-trust.el | 29 -----------------------------
6 files changed, 17 insertions(+), 60 deletions(-)
diff --git a/lisp/jabber-chatbuffer.el b/lisp/jabber-chatbuffer.el
index 2dfba43121..55c9308e2f 100644
--- a/lisp/jabber-chatbuffer.el
+++ b/lisp/jabber-chatbuffer.el
@@ -117,7 +117,7 @@ previous sequence detect the mismatch and stop.")
(jc group))
(declare-function jabber-omemo--muc-participant-jids "jabber-omemo"
(group participants))
-(declare-function jabber-omemo-fingerprints "jabber-omemo" ())
+(declare-function jabber-omemo-fingerprints "jabber-omemo-trust" ())
(declare-function jabber-blocking-toggle-chat-peer "jabber-blocking" (jc))
(declare-function jabber-get-info "jabber-info" (jc to))
(declare-function jabber-roster-change "jabber-presence" (jc jid name groups))
@@ -343,7 +343,7 @@ Works for both 1:1 chat (`jabber-chatting-with') and MUC
(`jabber-group')."
(defun jabber-chat-show-fingerprints ()
"Display OMEMO fingerprints for the current chat peer."
(interactive)
- (require 'jabber-omemo)
+ (require 'jabber-omemo-trust)
(jabber-omemo-fingerprints))
(defvar jabber-backlog-number) ; jabber-db.el
diff --git a/lisp/jabber-omemo-trust.el b/lisp/jabber-omemo-trust.el
index 60b74b344a..ee7a4e4146 100644
--- a/lisp/jabber-omemo-trust.el
+++ b/lisp/jabber-omemo-trust.el
@@ -29,25 +29,10 @@
(require 'cl-lib)
(require 'jabber-util)
+(require 'jabber-omemo)
(require 'jabber-omemo-store)
(require 'keymap-popup)
-(declare-function jabber-omemo--format-fingerprint "jabber-omemo")
-(declare-function jabber-omemo--trust-label "jabber-omemo")
-(declare-function jabber-omemo--get-device-id "jabber-omemo")
-(declare-function jabber-omemo--get-store "jabber-omemo")
-(declare-function jabber-omemo-get-bundle "jabber-omemo")
-(declare-function jabber-omemo--fetch-device-list "jabber-omemo"
- (jc jid callback))
-(declare-function jabber-omemo--fetch-bundle "jabber-omemo"
- (jc jid device-id callback))
-(declare-function jabber-omemo--remove-device "jabber-omemo"
- (jc device-id &optional callback))
-(declare-function jabber-omemo--device-list-key "jabber-omemo"
- (account jid))
-(declare-function jabber-omemo--prefetch-sessions "jabber-omemo"
- (jc jid))
-
(defvar jabber-chatting-with)
(defvar jabber-buffer-connection)
(defvar jabber-omemo--device-lists)
@@ -74,6 +59,9 @@ Returns the key without the first byte, or as-is if shorter
than 2 bytes."
;;; Mode
+(eval-when-compile
+ (defvar jabber-omemo-trust-mode-map))
+
(keymap-popup-define jabber-omemo-trust-mode-map
"OMEMO trust commands."
:description #'jabber-omemo-trust--menu-description
@@ -173,6 +161,16 @@ Returns the key without the first byte, or as-is if
shorter than 2 bytes."
;;; Entry point
+(defun jabber-omemo-fingerprints ()
+ "Display OMEMO trust management for the current chat peer."
+ (interactive)
+ (unless (bound-and-true-p jabber-chatting-with)
+ (user-error "Not in a chat buffer"))
+ (jabber-omemo-show-trust jabber-buffer-connection jabber-chatting-with))
+
+(defalias 'jabber-omemo-trust-device #'jabber-omemo-fingerprints)
+(defalias 'jabber-omemo-untrust-device #'jabber-omemo-fingerprints)
+
;;;###autoload
(defun jabber-omemo-show-trust (jc jid)
"Display OMEMO trust management for JID via connection JC."
diff --git a/lisp/jabber-omemo.el b/lisp/jabber-omemo.el
index c1caa86d6b..52f3c243ae 100644
--- a/lisp/jabber-omemo.el
+++ b/lisp/jabber-omemo.el
@@ -38,7 +38,6 @@
(require 'jabber-xml)
(require 'jabber-hints)
(require 'jabber-eme)
-(require 'jabber-omemo-trust)
(require 'jabber-chat)
(require 'jabber-db)
@@ -1531,17 +1530,6 @@ Called when OMEMO is enabled in a MUC buffer."
(-1 "UNTRUSTED")
(_ (format "unknown(%d)" level))))
-(defun jabber-omemo-fingerprints ()
- "Display OMEMO trust management for the current chat peer.
-Opens a tabulated-list buffer with interactive trust controls."
- (interactive)
- (unless (bound-and-true-p jabber-chatting-with)
- (user-error "Not in a chat buffer"))
- (jabber-omemo-show-trust jabber-buffer-connection jabber-chatting-with))
-
-(defalias 'jabber-omemo-trust-device #'jabber-omemo-fingerprints)
-(defalias 'jabber-omemo-untrust-device #'jabber-omemo-fingerprints)
-
;;; Connect/disconnect hooks
(defun jabber-omemo--maybe-rotate-signed-pre-key (jc)
diff --git a/lisp/jabber.el b/lisp/jabber.el
index be6d85f7f9..2e83c878a9 100644
--- a/lisp/jabber.el
+++ b/lisp/jabber.el
@@ -191,7 +191,6 @@ One disabled account with a non-standard port:
(require 'jabber-receipts)
(require 'jabber-rtt)
(require 'jabber-vcard-avatars)
-(require 'jabber-omemo-trust)
(require 'jabber-autoaway)
(require 'jabber-time)
(require 'jabber-truncate)
diff --git a/tests/jabber-test-menu.el b/tests/jabber-test-menu.el
index 79764cca34..a009dc482b 100644
--- a/tests/jabber-test-menu.el
+++ b/tests/jabber-test-menu.el
@@ -9,6 +9,7 @@
(require 'ert)
(require 'jabber)
(require 'jabber-autoloads)
+(require 'jabber-omemo-trust)
(require 'keymap-popup)
;;; Helpers
diff --git a/tests/jabber-test-omemo-trust.el b/tests/jabber-test-omemo-trust.el
index 150eeacadd..3b30328cdd 100644
--- a/tests/jabber-test-omemo-trust.el
+++ b/tests/jabber-test-omemo-trust.el
@@ -7,35 +7,6 @@
;;; Code:
(require 'ert)
-(require 'jabber-omemo-store)
-
-;; Load the trust UI without triggering jabber-omemo's C module requirement.
-;; We mock the declare-function targets instead.
-(unless (fboundp 'jabber-omemo--format-fingerprint)
- (defun jabber-omemo--format-fingerprint (identity-key)
- "Test stub: format IDENTITY-KEY as hex pairs."
- (mapconcat (lambda (byte) (format "%02X" byte))
- identity-key " ")))
-
-(unless (fboundp 'jabber-omemo--trust-label)
- (defun jabber-omemo--trust-label (level)
- "Test stub: return label for trust LEVEL."
- (pcase level
- (0 "undecided")
- (1 "TOFU")
- (2 "verified")
- (-1 "UNTRUSTED")
- (_ (format "unknown(%d)" level)))))
-
-(unless (fboundp 'jabber-connection-bare-jid)
- (defun jabber-connection-bare-jid (_jc) "[email protected]"))
-
-(unless (fboundp 'jabber-jid-user)
- (defun jabber-jid-user (jid) (car (split-string jid "/"))))
-
-(unless (fboundp 'jabber-read-account)
- (defun jabber-read-account () 'test-jc))
-
(require 'jabber-omemo-trust)
;;; Group 1: trust label mapping