Daniel Gultsch
35c8d31d42
update gradle and gradle plugin
2023-10-29 08:54:17 +01:00
Daniel Gultsch
e422b89df5
use aggressive reconnects for see-other-host
2023-10-29 08:54:17 +01:00
Daniel Gultsch
1732ab5cc7
add internal ping timer in case alarm manager fails
2023-10-29 08:54:17 +01:00
Daniel Gultsch
a162d72c2a
code clean up in processAccountState()
2023-10-29 08:54:17 +01:00
Daniel Gultsch
928db01ae8
do not init connection for disabled accounts
2023-10-29 08:54:16 +01:00
Daniel Gultsch
2dd8896dc2
stop service on log out when UI is not active
2023-10-29 08:54:16 +01:00
Daniel Gultsch
d1f648f2e3
code clean up in onStartCommand
2023-10-29 08:54:16 +01:00
Daniel Gultsch
69425e677c
remove soft disable flag when attempting call
2023-10-29 08:54:16 +01:00
Daniel Gultsch
f042efd550
add 'log out' button to foreground notifcation
...
this temporarily disconnects all accounts until the user opens the app again.
essentially this akin to an 'Exit' button
Users previously had the option to 'disable' accounts but this provides a
faster way to "free up resources" until the next time the app is opened.
2023-10-29 08:54:16 +01:00
Daniel Gultsch
418d6b09a0
explicitly declare foreground service type
2023-10-29 08:54:16 +01:00
Daniel Gultsch
981dc2df6d
fix RtpSessionActivity not asking for permissions
2023-10-26 09:38:24 +02:00
Daniel Gultsch
f6c9df00de
run account deletion callback on ui thread
2023-10-25 09:41:05 +02:00
Daniel Gultsch
6d519cd447
pick proper TTL for non existent DNS entries
2023-10-24 21:05:35 +02:00
Daniel Gultsch
1da9d42065
retrieve DNS response from cache
2023-10-24 19:16:47 +02:00
Daniel Gultsch
97acd16422
keep cache of DNS messages
2023-10-24 18:53:14 +02:00
Daniel Gultsch
55a77c083f
store SSLSocket after starttls to fix channel binding mechanism detection
2023-10-23 14:40:40 +02:00
Daniel Gultsch
68eb17d400
create missed call notification when device is busy
2023-10-23 11:22:00 +02:00
Daniel Gultsch
c44f4b102a
do not accept fast token w/o channel binding for channel bound login
2023-10-21 14:22:38 +02:00
Daniel Gultsch
822f3f4d22
consider going from unique or exporter to endpoint a downgrade
2023-10-21 14:21:29 +02:00
Daniel Gultsch
d1f4fbd9de
add connect timeout to DoT
2023-10-19 20:51:19 +02:00
Daniel Gultsch
71ebca40e8
add ķ as irregular unicode
2023-10-19 18:11:08 +02:00
Daniel Gultsch
063f30ded2
ignore outgoing invite
...
outgoing, mediated invites are of type=normal and can end up in MAM.
We want to ignore those if they get mirrored back to us
2023-10-18 11:50:10 +02:00
Daniel Gultsch
1b49e6b3c1
disable password edit unless unauthorized
2023-10-15 11:23:12 +02:00
Daniel Gultsch
3350ea8b5b
ensure we are in session accepted when processing content-modify
2023-10-15 08:51:15 +02:00
Daniel Gultsch
9a922ffe5d
quietly ignore mediated invites from blocked contacts
2023-10-13 17:36:12 +02:00
Daniel Gultsch
5b2444ea13
implement see-other-host stream error
2023-10-13 08:29:23 +02:00
Daniel Gultsch
a40d244bf5
remove unnecessary in resolver
2023-10-12 11:59:21 +02:00
Daniel Gultsch
788565b299
upgrade to 'both' upon accepting recvonly content-add
2023-10-11 11:38:09 +02:00
Daniel Gultsch
dbf71e5d54
handle senders modification via content-modify
...
Dino uses this to enable/disable video when a video content is already present
2023-10-10 18:47:29 +02:00
Daniel Gultsch
39194d111c
QR code scan: take disabled accounts into consideration
...
when making register or add contact decision
2023-10-10 09:36:08 +02:00
Daniel Gultsch
c53e035935
do not use JMI if any rtp capable device does not support it
2023-10-09 16:23:02 +02:00
Daniel Gultsch
8f014d5525
implement Private DNS (DoT)
...
due to limitations in the MiniDNS library this does not work when
'Validate hostname with DNSSEC' is enabled in the expert settings
2023-10-09 13:27:44 +02:00
Daniel Gultsch
d3d582759f
support omemo verification in non stub transport content modifications
...
Dino (and this is probably correct behaviour) expects a fingerprint in the
content-add message. (and not a stub transport as indicated in the examples).
however if we start to include them we also need to encrypt and verify them
properly.
2023-10-09 13:19:26 +02:00
Arne-Brün Vogelsang
1a7e75235a
Update src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java
...
just a space
2023-10-08 18:25:47 +00:00
Arne-Brün Vogelsang
77631c97a7
Update src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java
...
Add Fairphone 4 to AEC Blacklist to fix Echo problems: https://github.com/iNPUTmice/Conversations/issues/4439
2023-10-08 18:25:20 +00:00
Daniel Gultsch
1c5a1b8c71
keep order of rtp contents
2023-10-06 12:34:41 +02:00
Daniel Gultsch
541c8ba80d
modify mime type detection for shared files
...
add support for audiobooks
2023-10-06 12:34:13 +02:00
Daniel Gultsch
95aea4291e
don't attempt to figure out file path on Android 11+
...
fixes #117
2023-10-05 20:29:42 +02:00
Daniel Gultsch
601a8cb3bc
process content-modify for pending content-adds
2023-10-05 16:23:43 +02:00
Daniel Gultsch
a8241c72df
use url safe jingle session ids
...
Movim does not like slashes (/) in jingle session ids.
When proposing a session called 'wBKabx1kRIfkgNxAShip/w' Movim will
accept (proceed) a session called 'wBKabx1kRIfkgNxAShip' which the initiator of course does not know about. (Conversations will get stuck at ringing/discovering devices)
This is likely because a click on 'Reply' (accept call) in Movim opens upa pop up window where both the full jid as well as the session id are transmitted as part of the URL.
(Full jids can contain more than on slash btw)
2023-10-04 13:30:53 +02:00
Daniel Gultsch
1b5d2151d0
warn early when SDP is likely to be invalid
2023-10-04 13:07:28 +02:00
Daniel Gultsch
6bc3cad7de
apply ice-options when adding content or restarting ice
2023-10-04 10:43:45 +02:00
Daniel Gultsch
1aeae9c7f6
set local-only flag on ongoing call notification
2023-10-03 14:16:48 +02:00
Daniel Gultsch
8570c9f912
use more aggressive reconnect intervals during rtp session
2023-10-03 12:56:10 +02:00
Daniel Gultsch
fd4b8ba188
bring back ICE Renomination via negotiation
2023-10-03 12:55:44 +02:00
Daniel Gultsch
17856a47db
hold back candidates until after content-add
2023-10-02 13:54:36 +02:00
Daniel Gultsch
7e9980d997
catch illegal state exception in TrackWrapper
2023-10-02 11:48:03 +02:00
Daniel Gultsch
09993b8319
fetch local description on its own executor
2023-10-02 11:03:08 +02:00
Daniel Gultsch
0dca7f8a5a
JMI: send 'ringing' and receipts only for contacts
...
fixes #110
2023-10-01 08:05:40 +02:00
Daniel Gultsch
ac3ce93c56
fix stun url generation
2023-10-01 08:02:55 +02:00
Daniel Gultsch
c9b80254e4
add more logging to unroutable jingle messages
2023-09-30 15:56:06 +02:00
Daniel Gultsch
6660877bcf
jingle: trim media attribute values
...
Movim has trailing whitespace around some of their media attributes
<source ssrc="1892824964" xmlns="urn:xmpp:jingle:apps:rtp:ssma:0">
<parameter name="msid" value="{a98821d7-b298-4130-925a-ff6c510734c0} {f45dfc5c-2fa7-42b4-85e5-935e786b3feb} " xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"/>
<parameter name="cname" value="{63b1042b-5cb5-4411-b2a5-bdff92ae45be}" xmlns="urn:xmpp:jingle:apps:rtp:ssma:0"/>
</source>
our WebRTC doesn’t like that. We trim the value even though this seems to be a Movim bug.
2023-09-30 07:55:08 +02:00
Daniel Gultsch
86f46ece83
revert back to AAC for voice messages
...
iOS can not do opus out of the box
2023-09-29 18:42:31 +02:00
Daniel Gultsch
05c79ff29d
version bump webrtc to m117
2023-09-29 16:19:01 +02:00
Daniel Gultsch
3e9c08a4aa
include date in backup file name
...
since `account.ceb` might have previously been created by a different application
(for example f-droid and user is on play now) or copied over via the file
manager Conversations might not have permission to write over an existing file.
we include the date so we always get a new file
fixes #105
2023-09-25 10:56:24 +02:00
Daniel Gultsch
2adff4a92c
catch rare instances of foreground service not allowed to start
2023-09-25 09:22:29 +02:00
Daniel Gultsch
8ba90f266e
add explicit error message for outdated backup files
2023-09-20 17:00:04 +02:00
Daniel Gultsch
b4c3334d7e
add a few TODOs wrt tie breaks
2023-09-14 14:39:32 +02:00
Daniel Gultsch
fdd7f2926f
support 'ringing' jingle message
2023-09-14 11:22:19 +02:00
Daniel Gultsch
00ae1ca762
fix group chat shortcuts
2023-09-11 16:38:57 +02:00
Daniel Gultsch
c6501a3ad4
fix UUIDv4 calculation
2023-09-08 14:19:18 +02:00
Stephen Paul Weber
11e6cb9693
Use conversation notifications
...
Allows for per-conversation priority and sound
2023-09-07 13:08:23 +02:00
Daniel Gultsch
d5ae2f4b41
look at roomconfig_changesubject and roominfo_changesubject
...
fixes #90
2023-09-06 13:47:35 +02:00
Daniel Gultsch
1b05cbd665
use opus for voice messages on Android 10
...
recipients need at least Android 5 to play the message; however
Conversations has been Android 5+ for a while now
2023-08-20 07:59:45 +02:00
Daniel Gultsch
09f6343ced
Security: Introduce backup file format v2
...
This switches the SQL based backup format to something JSON based.
The SQL based format has always been prone to SQL injections that, for example, could delete other messages or preexisting accounts in the app. This hasn’t been a concern this far because why would anyone purposely try to restore a faulty backup? However the argument has been made that a user can be socially engineered to restore an exploited backup file.
Before version 2.12.8 a third party app could even trigger the restore process, leaving the backup password entry dialog the only hurdle.
On top of that it has been demonstrated that a backup file can be crafted in a way that puts preexisting credentials into a 'pending' message to an attacker ultimately leading to that information being leaked.
While destorying information has always been deemed an acceptable risk, leaking information is one step too far.
Starting with Conversations 2.12.9 Conversations will no longer be able to read v1 backup files. This means if you are restoring on a new device and you have a v1 backup file you must first install Conversations <= 2.12.8, restore the backup, and then upgrade to Conversations >= 2.12.9.
ceb2txt¹ has support for v2 backup files. Conceivably ceb2txt could be extended to convert between v1 and v2 file formats. (ceb2txt already recreates the database from v1 files; It is relatively straight forward to create v2 files from that database. Pull requests welcome.)
¹: https://github.com/iNPUTmice/ceb2txt/
2023-08-17 12:07:51 +02:00
Daniel Gultsch
b4a07d0093
remove channel discovery from Google Play build flavor
2023-08-08 10:39:36 +02:00
Daniel Gultsch
7a9f18f223
play tones as music when silent only on android 12+
2023-08-08 09:04:26 +02:00
Daniel Gultsch
12b34426fc
add ј to list
2023-06-29 09:56:49 +02:00
Daniel Gultsch
d588e942e6
q is not cyrillic but ԛ and х are
2023-06-29 09:45:50 +02:00
Stephen Paul Weber
4c38c480fa
Use libidn for stringprep
...
Which actually validates according to spec instead of just being lazy.
2023-06-27 16:31:01 +02:00
Daniel Gultsch
e3a121121b
UP: add custom extensions for app<->distributor interaction
...
On registration the app can pass in a 'Messenger' to get a direct response
instead of having to somehow wait for the broadcast receiver to fire.
The app name can be passed as a pending intent which allows the distributor
to validate the sender.
2023-06-26 16:09:01 +02:00
Daniel Gultsch
ca1ee4a565
process stream features after success when we inlined bind but not sm
2023-06-25 22:15:49 +02:00
Daniel Gultsch
3b26948a9d
replace libraries hosted on jcenter
2023-06-23 18:00:58 +02:00
Daniel Gultsch
6289e048b3
catch runtime exception when trying to stop tone manager
2023-06-05 10:05:59 +02:00
Daniel Gultsch
1188a89f2a
sanity check push server url
2023-05-07 14:43:13 +02:00
Daniel Gultsch
f7f34c6bdd
fix regressions after target sdk 33 update
2023-05-07 10:13:14 +02:00
Daniel Gultsch
cc16811444
rename bookmarks tab to 'group chats'
...
fixes #38
exposing bookmarks like this was a mistake that Conversations 3 will not repeat
in the meantime we rename this to group chats which might be more broadly understood
2023-05-03 08:00:40 +02:00
Daniel Gultsch
aa8e0b3c4d
remember bound stream features. fixes #45
2023-05-02 15:35:27 +02:00
Daniel Gultsch
bc00f6f629
bump target sdk to 33
2023-04-12 13:28:16 +02:00
Daniel Gultsch
1fff1a0649
add ability to remove account from server
2023-04-08 09:31:17 +02:00
Daniel Gultsch
9187739450
play dial tones on STREAM_MUSIC when phone is silent
...
when the phone is silent only the first ~three tones are played when
attempting to play out the tone over STREAM_VOICE_CALL
it’s unclear exactly why this is the case (in the past we went back and forth
between STREAM_VOICE_CALL and STREAM_MUSIC) exactly to fix issues around silent
mode.
Apparently we failed to test this past three sounds.
This commit changes the stream back to music - but not generally as this was in
the past - but only for when the phone is on silent
2023-04-03 16:00:06 +02:00
Daniel Gultsch
d38c264e7d
lock call activity in portrait mode during audio call
2023-04-03 13:38:22 +02:00
Daniel Gultsch
9456ba6f56
put timestamp in all call logs
2023-04-03 13:15:57 +02:00
Daniel Gultsch
2cb21bcb87
use static (not translated) text for Privacy policy and TOS
...
For a long time Quicksy had a privacy policy written by myself that explains
in plain English what data we store and how we use it.
https://quicksy.im/#privacy
Google doesn’t like that and prefers that we use some bullshit template that
is extremely vague, doesn’t explain anything and gives us permission to do
basically everything. (At least I think so. I don’t understand the text I
copy pasted)
Apparantly the text in the app is important as well (BARD didn’t explain
that very well when it reviewed our app) therfor we need a static text (not
allow translations)
Furthermore the data safety section on Google Play now claims we store the
users address book even though we don’t actually. But who cares; nobody reads
this and we just do this to make the machine happy. Cool!
2023-04-03 10:29:55 +02:00
Daniel Gultsch
fbf8b09fe6
point to a privacy policy that doesn’t use anchors
2023-03-06 08:06:46 +01:00
Daniel Gultsch
9715271e92
expand emoji range to cover e14
2023-03-05 20:50:06 +01:00
Daniel Gultsch
84fa529256
use setText instead of append()
2023-02-05 09:34:29 +01:00
Daniel Gultsch
41cd96e37b
UP: null check transport verification
2023-01-10 17:22:48 +01:00
Daniel Gultsch
b7c7c40b94
send directed presence to transport if endpoints are configured
2023-01-06 17:04:15 +01:00
Daniel Gultsch
0e10ae387a
periodically renew endpoints
2023-01-06 15:44:39 +01:00
Daniel Gultsch
1e0904a48d
use less entropy in SASL2 device id
2023-01-06 12:41:26 +01:00
Daniel Gultsch
4ee5c167be
do not attempt endpoint renewal when account is disabled. renew on bind
2023-01-04 20:59:08 +01:00
Daniel Gultsch
b1f95d2e39
integrate UnifiedPush distributor
2023-01-04 10:23:20 +01:00
Daniel Gultsch
1000d927a7
remove work arounds for nimbuzz.com
2023-01-01 12:20:10 +01:00
Daniel Gultsch
97d9cb7dd5
remove work arounds for slack
2023-01-01 12:05:49 +01:00
Daniel Gultsch
41da2a5957
fix client crashing on empty passwords (regression)
2022-12-30 17:14:18 +01:00
Daniel Gultsch
0cec499565
make sure we don’t dispose video source twice
2022-12-30 12:16:19 +01:00
Daniel Gultsch
a7fe3e8372
reset stanza count when enabling SM via SASL inline
2022-12-30 12:09:16 +01:00
Daniel Gultsch
01fba162f0
code clean up. use Optional to parse SM’s h attribute
2022-12-30 10:53:49 +01:00
Daniel Gultsch
f5b7fbc441
add log when we requested token but didn’t get one
2022-12-30 09:00:42 +01:00
Daniel Gultsch
13606aae60
add todo item in turn server code
2022-12-29 14:53:05 +01:00
Daniel Gultsch
ce0992036a
disable proximity sensor after switching from audio to video
2022-12-29 12:53:59 +01:00
Daniel Gultsch
909aa72b25
catch exception in getSignalingState()
2022-12-24 10:55:16 +01:00
Daniel Gultsch
36efd51a7f
fix transports/descriptions not upgraded to jingle ft
...
fixes #4429
2022-12-20 19:28:47 +01:00
Daniel Gultsch
499c4ddd0a
do not detect sm:2 as sm available
...
the 2.11.0 release removed support for enabling sm:2
unfortunatly sm:2 was still detected as "server supports stream managment"
down the line leading to resend loops.
fixes #4426
2022-12-16 08:07:46 +01:00
Daniel Gultsch
4ef4207593
show switch to video only if other party has caps
...
fixes #4421
2022-12-12 10:15:13 +01:00
Daniel Gultsch
2093aa76ad
code clean up in ContactChooserTargetService
2022-12-11 20:13:09 +01:00
Daniel Gultsch
bb52962f0d
delay candidates until after session-init/accept
2022-12-05 15:40:07 +01:00
Daniel Gultsch
2c7c44e957
null PeerConnection reference before disposing; otherwise getState() might be issued against disposed object
2022-12-01 20:46:18 +01:00
Daniel Gultsch
80d195d35e
avoid race condition when restarting ICE
2022-11-30 17:32:46 +01:00
Daniel Gultsch
c178e9ad33
add switch to video menu item to call
2022-11-28 11:39:26 +01:00
Daniel Gultsch
4e8ceadfbf
prepare JingleRtpConnection for content-adds
2022-11-28 08:59:23 +01:00
Daniel Gultsch
63501adc45
trim xmpp address after user input
2022-11-25 08:50:58 +01:00
Daniel Gultsch
f4be142e4d
add helper methods for content modification to RtpContentMap
2022-11-22 10:13:48 +01:00
Daniel Gultsch
e2f98f6bbc
ensure cc-ed proceed is equivalent to accept
2022-11-22 10:13:07 +01:00
Daniel Gultsch
9897fa3a45
rename initiateIceRestart to renegotiate to handle content adds
2022-11-21 09:10:01 +01:00
Daniel Gultsch
304205b2e3
take senders attr into account when converting to and from sdp
2022-11-20 17:00:40 +01:00
Daniel Gultsch
59ea66ca78
make sure VideoSourceWrapper is stored in property
2022-11-19 14:19:07 +01:00
Daniel Gultsch
27d8da2ab4
refactor WebRTCWrapper to allow for track adds
2022-11-19 13:03:34 +01:00
Daniel Gultsch
8fb2c11771
use plurals for missed call strings
2022-11-19 08:14:50 +01:00
Daniel Gultsch
6b9ebb3abf
remove TODO
2022-11-18 10:40:16 +01:00
Daniel Gultsch
109a20ca40
do not expect stream features after inline resume
2022-11-17 10:52:30 +01:00
Daniel Gultsch
29461edf40
process challenge only on secure connection
2022-11-17 07:48:09 +01:00
Daniel Gultsch
44bfff7e49
fall back to regular authentication if fast fails
2022-11-16 11:00:43 +01:00
Daniel Gultsch
6ececb4d2b
refactor webrtc video source + capture code
2022-11-12 13:37:56 +01:00
Daniel Gultsch
5dbd86155f
show help button only if Config.HELP is set
2022-11-10 07:55:05 +01:00
Daniel Gultsch
dac2e17133
disable quick start if fast is available but we didn’t use fast
2022-11-01 18:06:32 +01:00
Daniel Gultsch
35ee01cb28
reset fast token on login failure
2022-11-01 16:44:36 +01:00
Daniel Gultsch
a29c7c725e
modify scram mechanisms to use guava hashing
2022-10-24 13:11:30 +02:00
Daniel Gultsch
e2b9f0e77a
add support for HashedToken channel binding
2022-10-15 20:53:59 +02:00
Daniel Gultsch
24badda4c9
do quick start with HT-SHA-256-NONE
2022-10-15 18:56:31 +02:00
Daniel Gultsch
c13787873c
request fast token
2022-10-15 12:27:38 +02:00
Daniel Gultsch
3378447f60
parse hash token names
2022-10-15 00:09:29 +02:00
Daniel Gultsch
0cd416298d
ensure we only select channel binding methods available for tls version
2022-10-14 20:00:36 +02:00
Daniel Gultsch
7eb160386d
enable SM if it wasn’t enabled in bind 2
2022-10-14 13:29:59 +02:00
Daniel Gultsch
9a0c90f066
read new stream features directly after success
2022-10-14 13:13:21 +02:00
Daniel Gultsch
3d6c7bbf1c
fix display glitch in username mode
2022-10-13 09:51:56 +02:00
Daniel Gultsch
90048e92bb
use url span method to show context menu. fixes #4393
2022-10-12 18:43:05 +02:00
Daniel Gultsch
ab0ea7096e
make it easier to disable muclumbus in Config
2022-10-12 14:47:02 +02:00
Daniel Gultsch
716c804353
only run account options through int conversion. fixes #4390
2022-10-12 11:53:57 +02:00
Daniel Gultsch
d435c1f2ae
let omemoOnly config overwrite OmemoSetting
2022-10-01 11:26:52 +02:00
Daniel Gultsch
5735bca517
minor code clean up
2022-10-01 09:26:07 +02:00
Daniel Gultsch
cb775ece99
wait for DB restore before bind
2022-09-26 09:47:53 +02:00
Daniel Gultsch
3d56d01826
handle case when server loses support for quick start
2022-09-26 07:53:48 +02:00
Daniel Gultsch
717aeddb82
fix last commit. bring back option required by quicksy
2022-09-25 15:18:45 +02:00
Daniel Gultsch
32f9a58d9a
pipeline sasl2 directly after stream start
2022-09-25 14:13:04 +02:00
Daniel Gultsch
126e8ef08c
refactor sasl 2 authentication code
2022-09-24 14:58:49 +02:00
Daniel Gultsch
9f5da67539
use bind:0 namespace
2022-09-24 11:59:53 +02:00
Daniel Gultsch
5a3cca9554
use bind 2 tag and sasl 2 user-agent
2022-09-15 14:28:51 +02:00
Daniel Gultsch
bf15070fef
bump sasl2 namespace
2022-09-15 13:10:15 +02:00