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
Daniel Gultsch
495f79921d
store full sasl mechanism (not just priority)
2022-09-15 12:22:05 +02:00
Daniel Gultsch
82efb6f1db
code clean up
2022-09-14 17:51:22 +02:00
Stephen Paul Weber
9ae0475413
Show the name of the sender in search results ( #4379 )
...
Just like a MUC, search results lack the context to be sure who sent a message,
so show the name in the result item.
2022-09-14 17:13:17 +02:00
Daniel Gultsch
c1abca35da
copy bookmarks before passing them to other parts of the app for read
...
closes #4381
2022-09-14 12:49:18 +02:00
Daniel Gultsch
d0efe6eae2
bump recording wait for write to 8s
2022-09-14 12:27:02 +02:00
Daniel Gultsch
6e53ab3694
allow invite only when muc is online. fixes #4218
2022-09-10 12:36:35 +02:00
Daniel Gultsch
82316d13b0
use weak reference to activity when using threads
...
fixes #4366
2022-09-09 19:06:45 +02:00
Daniel Gultsch
a95d0fa8d3
use resolveActivityInfo to display nagivate to button
...
resolveActivity on the other hand only finds apps that are category_default
fixes #4375
2022-09-09 16:55:50 +02:00
Daniel Gultsch
f7996a6c3c
catch illegal state exception when copying file
2022-09-07 16:29:51 +02:00
Daniel Gultsch
ecbfe33e8d
support end-point channel binding as last choice option
2022-09-07 12:08:50 +02:00
Daniel Gultsch
018e0d9edf
add (inactive) channel binding end-point code
2022-09-07 11:08:54 +02:00
Daniel Gultsch
d4ec1eaf38
refactor processFailure and processChallange into methods
2022-09-07 10:31:11 +02:00
Daniel Gultsch
e8bce17940
add scram-sha256 and 512 in their plus variants
2022-09-06 17:39:58 +02:00
Daniel Gultsch
789d1dc225
support tls-unique for TLSv1.2
2022-09-06 17:01:57 +02:00
Daniel Gultsch
6d3d9dfe26
support channel binding with tls-exporter
2022-09-06 16:43:51 +02:00
Daniel Gultsch
5da9f5b3a3
refactor ScramMechanism to support PLUS
2022-09-06 16:28:28 +02:00
Daniel Gultsch
b78acb6fca
extract channel binding types via XEP-0440
2022-09-06 14:53:12 +02:00
Daniel Gultsch
a210568a9c
refactor SASL choice into factory; remove unused TagWriter
2022-09-06 09:25:23 +02:00
Millesimus
562ffd2003
preserve new lines when quoting. fixes #3876
2022-09-05 12:19:17 +02:00
Daniel Gultsch
22f4129262
increase quoting depth to 2
2022-09-05 12:17:13 +02:00
Daniel Gultsch
eee14a822a
add todos
2022-09-05 11:07:25 +02:00
Daniel Gultsch
e0bd1d168c
do not attempt resume when already in smacks session
2022-09-04 09:28:00 +02:00
Daniel Gultsch
052c58f377
rudimentary bind 2 implementation
2022-09-03 20:17:29 +02:00
Daniel Gultsch
e204457c31
show toast warning about unavailable calls when using tor
...
closes #4103
2022-09-03 15:51:15 +02:00
Daniel Gultsch
eb49a7f5e5
fix crash in buggy connection manager. fixes #4368
2022-09-03 12:33:27 +02:00
Daniel Gultsch
00dd9a8058
remove support for sm:2
2022-09-03 12:16:06 +02:00
Daniel Gultsch
cb1d7c69a1
remove comment
2022-09-03 11:05:27 +02:00
Daniel Gultsch
4f92ba880b
process authorization id in case full jid changes
2022-08-30 09:31:06 +02:00
Daniel Gultsch
3fac7d4992
fix very rare NPE (race condition)
2022-08-30 08:21:32 +02:00
Daniel Gultsch
8f76084a43
add sm-failed processing
2022-08-29 19:44:39 +02:00
Daniel Gultsch
7ea4f64ce4
code clean up for resumed processing
2022-08-29 19:30:03 +02:00
Daniel Gultsch
f6ab3dd068
support resume via sasl 2.0
2022-08-29 19:22:25 +02:00
Daniel Gultsch
928a16d31d
abort on 'continue' - no client support
2022-08-29 18:53:34 +02:00
Daniel Gultsch
6202cbe26b
minor code clean up for tag and element
2022-08-29 18:40:49 +02:00
Daniel Gultsch
5fc8ff899a
support logging in via SASL 2
2022-08-29 17:09:52 +02:00
Daniel Gultsch
a717917b3d
explicitly search for namespaces when processing stream features
2022-08-29 15:09:53 +02:00
Daniel Gultsch
b792563fad
use non-custom missed called
2022-08-29 14:04:33 +02:00
Daniel Gultsch
f8b9e15634
fixups for missed call notifications
2022-08-29 13:01:20 +02:00
Dmitry Markin
a6b88ba9e9
Add missed call notifications
...
Co-authored-by: Daniel Gultsch <daniel@gultsch.de>
2022-08-29 12:41:35 +02:00
Daniel Gultsch
e439c223ee
add overflow menu action to delete own avatar
2022-08-25 19:22:40 +02:00
Daniel Gultsch
ddd08bfe5f
issue self ping + rejoin on muc status code 333
2022-08-25 17:12:39 +02:00
Daniel Gultsch
e8736d5f1b
bump guava library
2022-08-22 11:29:04 +02:00
Daniel Gultsch
8111460913
minor code clean up
2022-08-22 10:01:15 +02:00
Stephen Paul Weber
56a6b17e7e
Use the same mechanism for link copying and linkification ( #4357 )
...
Prevents copying something different from what was linked, such as in the
message "fine.gif https://example.com "
2022-08-22 09:50:26 +02:00
Daniel Gultsch
41d98da17d
set immutable flags for backup notifications
2022-08-12 11:02:22 +02:00
Daniel Gultsch
4fbe2deffc
skip empty uris on attach
2022-08-12 10:22:45 +02:00
Daniel Gultsch
7cc96e704e
do not retrieve media attributes from encrypted files
...
fixes #4353
2022-08-12 09:58:35 +02:00
Daniel Gultsch
150f8313a0
make launch conversation and launch tor pending intents immutable
2022-08-11 14:31:27 +02:00
Daniel Gultsch
fe3433e427
do not accept empty credentials as ice-restart
2022-08-10 09:11:09 +02:00
Daniel Gultsch
508e1ac1bd
add immutable flag to pending alarm intents
2022-08-09 19:43:10 +02:00
Licaon_Kter
cc80a2a758
Fix typo
2022-08-09 17:27:50 +02:00
Daniel Gultsch
b3a3f2b930
try to detect if a container contains video or audio
...
fixes #4321
2022-08-09 09:40:04 +02:00
Daniel Gultsch
5aeed63844
request bluetooth connect permission
...
fixes #4338
2022-08-08 21:08:32 +02:00
Daniel Gultsch
52ff6f446c
add permission checks to appRTCBluetoothManager
2022-08-05 10:56:19 +02:00
Daniel Gultsch
50ba165746
bump targetSdk to 32
2022-08-05 10:52:00 +02:00
Daniel Gultsch
d41020ccf3
ignore race condition after reject from notification
...
fixes #4351
fixes #4261
2022-08-05 10:46:15 +02:00
Daniel Gultsch
67f021426b
remove null bytes from strings before creating sql statements in backup
2022-08-04 11:31:58 +02:00
Daniel Gultsch
62a379862e
jingle rtp: improve logging and error reporting
2022-08-01 10:14:49 +02:00
Daniel Gultsch
8027b3be24
parse pep events only from bare jid
2022-07-22 10:39:18 +02:00
Daniel Gultsch
dd30951dfb
every device is 21+ now
2022-07-22 10:14:01 +02:00
Daniel Gultsch
abfe1f1dbd
do not show toast when activity is gone. fixes #4335
2022-07-09 14:46:51 +02:00
Daniel Gultsch
e455ed4f1a
fix orbot detection
2022-07-09 14:46:51 +02:00
Licaon_Kter
4985105711
Here too
...
...but why was that function created elsewhere if here you just compare this?
2022-07-09 09:21:46 +02:00