Commit graph

4761 commits

Author SHA1 Message Date
Daniel Gultsch bed6b07bdd
add receipt manager and process receipt requests 2023-03-01 22:05:39 +01:00
Daniel Gultsch 870393df8e
introduce 'PepManager' to unify what pubsub service we talk to 2023-03-01 22:05:39 +01:00
Daniel Gultsch e2ea1f9437
fix device list publication. boomarks add + retract 2023-03-01 22:05:39 +01:00
Daniel Gultsch 3be56b6775
reconfigure node when precondition is not met 2023-03-01 22:05:39 +01:00
Daniel Gultsch 58b1e26367
include publish-options. prepare code for reconfiguration 2023-03-01 22:05:39 +01:00
Daniel Gultsch c077e4e8da
add PubSubManager, AvatarManager and AxolotlManager 2023-03-01 22:05:39 +01:00
Daniel Gultsch f1e1cf9653
respond to software version requests 2023-03-01 22:05:39 +01:00
Daniel Gultsch e073f22ec0
respond to disco#info queries 2023-03-01 22:05:39 +01:00
Daniel Gultsch 57d264d72e
include caps in outgoing presence 2023-03-01 22:05:39 +01:00
Daniel Gultsch 9a855a57ac
add models for Error conditions 2023-03-01 22:05:39 +01:00
Daniel Gultsch ddcab5fb58
add message carbon processing 2023-03-01 22:05:38 +01:00
Daniel Gultsch fe32526de8
parse blocking command pushes 2023-03-01 22:05:38 +01:00
Daniel Gultsch 164ac450d4
introduce CarbonsManager to enable and maintain carbon state 2023-03-01 22:05:38 +01:00
Daniel Gultsch d2794ccf32
create new models for IQ, Message & Presence 2023-03-01 22:05:38 +01:00
Daniel Gultsch f16603742f
make authentications work with null password 2023-03-01 22:05:38 +01:00
Daniel Gultsch f982885d2e
fix regression in ping strategy 2023-03-01 22:05:38 +01:00
Daniel Gultsch 8df97067bb
discover commands on domain 2023-03-01 22:05:38 +01:00
Daniel Gultsch bd343eafa0
add async variant for createAccount 2023-03-01 22:05:38 +01:00
Daniel Gultsch c31fa7ed2b
include parentNode in disco items table 2023-03-01 22:05:38 +01:00
Daniel Gultsch d25cc059c5
add AccountRepository 2023-03-01 22:05:38 +01:00
Daniel Gultsch 359ef330df
get rid of upsert in favor of update and insert
upsert seems to only work with primary keys and not other
unique constraints.
2023-03-01 22:05:38 +01:00
Daniel Gultsch de06bfb8f0
retrieve Extensions not Elements from extension map 2023-03-01 22:05:38 +01:00
Daniel Gultsch 1e6aed759b
check caps hash after retrieving them 2023-03-01 22:05:37 +01:00
Daniel Gultsch 1a09b3ed05
use empty string instead of null for 'no node' and 'no resource' 2023-03-01 22:05:37 +01:00
Daniel Gultsch 90e613f94e
fix parsing error in Legacy caps 2023-03-01 22:05:37 +01:00
Daniel Gultsch 09db9e574b
do not return NodeHash if no valid hash mech is found 2023-03-01 22:05:37 +01:00
Daniel Gultsch f5faa8fc4d
try with resources in CredentialStore 2023-03-01 22:05:37 +01:00
Daniel Gultsch bfa61d56af
use annotations processor to create extensions 2023-03-01 22:05:37 +01:00
Daniel Gultsch da65960fd1
reconnect account after adding to ConnectionPool 2023-03-01 22:05:37 +01:00
Daniel Gultsch 6983aedddc
add IDs.seed() method for random account seed 2023-03-01 22:05:37 +01:00
Daniel Gultsch 27952c00ed
flush credential store file 2023-03-01 22:05:37 +01:00
Daniel Gultsch 944c48e00b
store presence in DB 2023-03-01 22:05:37 +01:00
Daniel Gultsch 26bff8028a
check disco feature on entity 2023-03-01 22:05:37 +01:00
Daniel Gultsch 873644f528
remove XmppConnection.Features helper class in favor of DiscoManager 2023-03-01 22:05:37 +01:00
Daniel Gultsch 199a1cdc64
add code to fetch items and their infos in one go 2023-03-01 22:05:37 +01:00
Daniel Gultsch 43a82e504b
parse caps from presence 2023-03-01 22:05:37 +01:00
Daniel Gultsch a2b21d97eb
use dedicated hash object instead of byte[] for caps
this way we can store the algo alongside the object
2023-03-01 22:05:36 +01:00
Daniel Gultsch 6458c6e9f9
store disco features after fetching them 2023-03-01 22:05:36 +01:00
Daniel Gultsch 1b438117a3
add Entity Caps 2 hash calculation 2023-03-01 22:05:36 +01:00
Daniel Gultsch 78af8cbd87
migrate entity caps 1 calculation to new code 2023-03-01 22:05:36 +01:00
Daniel Gultsch 482dc8cfe9
insert disco items into db 2023-03-01 22:05:36 +01:00
Daniel Gultsch 3e9029dc8f
bump targetSdk; bump room version 2023-03-01 22:05:36 +01:00
Daniel Gultsch 38c612d35d
make name+namespace assignment in xmpp less error prone 2023-03-01 22:05:36 +01:00
Daniel Gultsch 07c1669813
introduce Manager concept to bundle functionality like roster, blocking, … 2023-03-01 22:05:36 +01:00
Daniel Gultsch 20962554a4
retrieve blocklist on bind 2023-03-01 22:05:36 +01:00
Daniel Gultsch 6b232f7a5a
fetch roster. process result 2023-03-01 22:05:36 +01:00
Daniel Gultsch 9e7bbcc272
offer alternative access to elements and children
instead of Element.findChild(name, namespace) we can now use
Element.getExtension(Extension.class) for registered extensions
2023-03-01 22:05:36 +01:00
Daniel Gultsch 49bf92f7ca
wire up MessageAckProcessor with DB 2023-03-01 22:05:35 +01:00
Daniel Gultsch 2c32f9738c
homogenize ID generation 2023-03-01 22:05:35 +01:00
Daniel Gultsch 7ee3e07946
Introduce XmppConnection v3
The various layers of the app are too intertwined to refactor them in place.

The C3 refactor is going to create a parallel architecture for all classes that
have too strong of a connection to other parts of the app.

This commit introduces XmppConnection v3 that keeps a lot of the logic of the
privous XmppConnection but cuts ties to XmppConnectionService and the very
stateful `entites.Account`. The latter is replaced by a lightweight immutable
account model.

The reconnection logic has been kept but was moved from XmppConnectionService
to a singleton ConnectionPool.
2023-03-01 22:05:35 +01:00