mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-10-31 16:22:49 +00:00
6e810f2ffd
The RustMatrixClientFactory was using a single RustClientSessionDelegate for all the clients. The delegate keeps a reference to the last bound client only, and didReceiveAuthError does not tell which session is concerned. With several accounts, when the session of one account was revoked, the session of the last restored account was invalidated and its local data deleted instead, while the revoked session kept on syncing with an invalid token. Also the isLoggingOut flag was never reset, so any later auth error was ignored. The clients which are not associated to a stored session (temporary clients and clients used to perform a login) now use a NoOpClientSessionDelegate. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>