Commit graph

955 commits

Author SHA1 Message Date
Daniel Gultsch 02351dc0fb fixed direct invites after adhoc 2019-09-18 09:55:18 +02:00
Daniel Gultsch 4c92d1b755 cancel spinning wheel on muclumbus error 2019-09-18 09:17:47 +02:00
Daniel Gultsch d963d95e30 fixed some minor NPE 2019-09-16 14:20:15 +02:00
Daniel Gultsch ab57c59838 clear notifications when deleting account 2019-09-15 12:23:56 +02:00
Daniel Gultsch a39fff5c8e fixed 2 issues reported by new linter 2019-09-11 15:42:43 +02:00
Daniel Gultsch 8b69f8ae50 include ticker information in notification. fixes #3532 2019-09-08 17:58:15 +02:00
Daniel Gultsch 0e1c26c569 do not include link local in direct candidates 2019-09-05 13:17:45 +02:00
Daniel Gultsch c84a89924e include pgp sig and status in presence to non anon muc 2019-08-19 14:27:11 +02:00
Daniel Gultsch f11adf4c02 do not put default nick into bookmark if none has been set before 2019-08-19 13:55:52 +02:00
Daniel Gultsch 0770914edf refactored filename and extension parsing 2019-08-16 14:09:42 +02:00
Daniel Gultsch c039ffcf35 clean up logging 2019-08-14 18:44:57 +02:00
Daniel Gultsch 6e1394ab40 make config flag for leave before join 2019-08-14 12:04:27 +02:00
Daniel Gultsch b68851b719 create share button in backup done notification 2019-07-15 19:11:00 +02:00
Daniel Gultsch 7e93c1021b handle blocking and unblocking of full jids 2019-07-10 17:58:48 +02:00
Daniel Gultsch 8c526de0af disable muc push on archive instead of leave
leave can be triggered on swipe and doesn’t mean we don’t want pushes
2019-07-01 14:35:00 +02:00
Daniel Gultsch 7ec8f7952f migrate copy ond write list to synchronized hashset for pending mucs 2019-06-30 21:57:37 +02:00
Daniel Gultsch 0ecdb43be6 rate limit muc pings / joins. never run two pings at same time 2019-06-30 19:54:07 +02:00
Daniel Gultsch 49224335fc attempt to unregister when receiving push for channel no longer joined
when receiving a FCM push message for a channel the user is no longer in (this can happen when the disable command failed) an attempt will be made to explicitly unregister from the app server (which in turn will then send item-not-found on next push)
2019-06-26 17:40:12 +02:00
Daniel Gultsch 7809af9b57 implement FCM push for group chats 2019-06-25 18:15:51 +02:00
Daniel Gultsch e467fe341e implement client support for muc push
Staying connected to a MUC room hosted on a remote server can be challenging.

If a server reboots it will usually send a shut down notification to all
participants. However even if a client knows that a server was shut down it
doesn’t know when it comes up again. In some corner cases that shut down
notification might not even be delivered successfully leaving the client in a
state where it thinks it is connected but it really isn’t.

The possible work around implemented in this commit is to register the clients
full JID (user@domain.tld/Conversations.r4nd) as an App Server according to
XEP-0357 with the room. (Conversations checks for the push:0 namespace on the
room.)

After cycling through a reboot the first message send to a room will trigger
pubsub notifications to each registered full JID. This event will be used to
trigger a XEP-0410 ping and if necessary a subsequent rejoin of the MUC.

If the resource has become unavailable during down time of the MUC server the
user’s server will respond with an IQ error which in turn leads to the MUC
server disabling that push target.

Leaving a MUC will send a `disable` command. If sending that disable command
failed for some reason (network outage) and the client receives a pubsub
notification for a room it is no longer joined in it will respond with an
item-not-found IQ error which also disables subsequent pushes from the server.

Note: We 0410-ping before a join to avoid unnecessary full joins which can be
quite costly. Further client side optimazations will also surpress pings when
a ping is already in flight to further save traffic.
2019-06-24 18:16:06 +02:00
Daniel Gultsch 17c8bf3452 attempt to keep messages waiting until muc is connected 2019-06-18 18:09:44 +02:00
Daniel Gultsch 6862b60c3f self ping (xep-0410) after receiving invite to muc 2019-06-18 13:20:24 +02:00
Daniel Gultsch 1cfba86aff don’t crash when attempting to publish bookmarks while offline 2019-06-16 18:05:06 +02:00
Daniel Gultsch 2fbd9e6744 MessageStyle notifications replace car extender 2019-06-16 16:02:22 +02:00
ialokim 15791b732c fix export error for non-unicode numbers (#3444) 2019-04-28 10:46:49 +00:00
Daniel Gultsch b2ea91909b introduced type private_file_message to handle attachments in PMs. fixes #3372 2019-04-27 11:46:43 +02:00
Daniel Gultsch 6704db21fb added Tor support to channel search 2019-04-25 21:10:50 +02:00
Daniel Gultsch ff84ee6964 cache channel search results 2019-04-24 13:25:54 +02:00
Daniel Gultsch 2fa687b8ae refactor muc search to use http 2019-04-22 13:00:45 +02:00
Daniel Gultsch a0f88aa9b4 implement channel discovery over jabber.search.network 2019-04-22 10:42:21 +02:00
Daniel Gultsch 39bc067405 execute some dismiss error notification and reset error in background 2019-04-17 12:49:36 +02:00
Daniel Gultsch 46596e8652 fix backup creation for older installations
if your Conversations installation is older than December 2016 (version 1.15.0) the backup would
include historic data that a current installation is not able to read on restore.
This commits excludes that data from the backup.
If you had problems importing the backup you need to create a new backup after this patch
2019-03-07 09:08:37 +01:00
Daniel Gultsch a29a5fd491 copy intent extras in eventreceiver 2019-02-27 14:16:26 +01:00
Daniel Gultsch 3fabb52293 after switching from forced foreground to foreground notification needs update 2019-02-16 11:58:16 +01:00
Daniel Gultsch 5f543e8314 show notification when backup is done 2019-02-15 13:17:49 +01:00
Daniel Gultsch ad64058d25 hide lock icon in channels; modify muc user context 2019-02-07 13:18:42 +01:00
Daniel Gultsch 32ef3755e2 show different room settings for channels and groups 2019-02-06 18:29:07 +01:00
Daniel Gultsch 2b913f367d provide the same fab submenu for both tabs. rename tab to bookmark 2019-02-06 14:45:51 +01:00
Daniel Gultsch e0965a2bf2 remove warning messages for kick after ban failing. on modern servers ban is enough to also kick 2019-01-28 10:52:35 +01:00
Daniel Gultsch 0898783309 schedule another ping 30s after connectivity_change 2019-01-27 20:54:45 +01:00
Daniel Gultsch b9c4309a28 refactored group chat members into seperate screen 2019-01-25 17:58:23 +01:00
Daniel Gultsch 7f170276a9 refactored avatar workers into single class 2019-01-25 10:07:02 +01:00
Daniel Gultsch 8fbe445c99 scan all files in case some files were previously marked as deleted by accident 2019-01-24 15:03:58 +01:00
Daniel Gultsch a32bb652f7 always show number of connected accounts in foreground notification. fixes #3352 2019-01-23 17:07:14 +01:00
Daniel Gultsch 18982174ce ask for permissions before opening restore backup. use insert or ignore for messages 2019-01-23 11:20:36 +01:00
Daniel Gultsch c9fc40dfe5 WIP backup & restore 2019-01-22 19:25:45 +01:00
Daniel Gultsch 477f2d34f3 use clear top flag in shortcut intent 2019-01-18 12:28:35 +01:00
Daniel Gultsch a53774bc6d resend presence to muc avatar update. fixes #3175 2019-01-17 17:55:47 +01:00
Daniel Gultsch caf5fcad88 fixed enabled accounts check in onCreate 2019-01-13 22:18:32 +01:00
Daniel Gultsch 526c2637c1 provide Set as Profile intent. fixes #2594 2019-01-13 15:28:24 +01:00
Daniel Gultsch 004411cf51 force foreground service during onCreate()
creating / upgrading the database and reading accounts can be expensive
and will otherwise trigger an AN
2019-01-13 11:27:16 +01:00
Daniel Gultsch d02fd73af8 explicitly start service (instead of just bind) service from contact chooser 2019-01-13 09:42:44 +01:00
Daniel Gultsch 918b3223b3 stop file watching when service has been destroyed 2019-01-12 10:21:21 +01:00
Daniel Gultsch 9efb3c6dc6 synchronize around notification update from corrected messages 2019-01-12 08:55:46 +01:00
Daniel Gultsch 6ecf6f1149 make contact chooser (direct sharing) smart about sharing text in groups when http is not available 2019-01-11 17:45:18 +01:00
Daniel Gultsch 8124b24479 maintain order of conversations in share with dialog 2019-01-11 17:19:54 +01:00
Daniel Gultsch 7cabb2c377 check if encrypted pgp file get deleted 2019-01-10 21:24:24 +01:00
Daniel Gultsch 52afcac230 mark deleted files in database and not query them when querying for media 2019-01-10 14:52:27 +01:00
Daniel Gultsch 25856992d1 remove deprecated instanceIdService 2019-01-09 17:37:52 +01:00
Daniel Gultsch a15c50a15f added avatar to 'me' in notifications 2019-01-09 16:26:20 +01:00
Daniel Gultsch 96e3546904 put images into MessageStyle notifications 2019-01-09 12:47:09 +01:00
Daniel Gultsch c4539b8583 use bitmap instead of URI for avatars in notification. fixes #3310 2019-01-09 09:03:33 +01:00
Daniel Gultsch 136d1e1905 added work around to create 'actions' from nova launcher
fixes #3331
2019-01-05 10:31:13 +01:00
Daniel Gultsch b9952f27fd archive destoryed mucs when registering that bookmark has been removed 2019-01-03 14:07:03 +01:00
Daniel Gultsch 9d849f540f Merge branch 'implement_room_destruction' of https://github.com/area-42/Conversations into bookmarks 2019-01-03 13:27:24 +01:00
Christoph Scholz 77b42ba9ca remove bookmark after a room is destroyed 2019-01-02 18:07:21 +01:00
Christoph Scholz 52e1a0c708 implement room destruction 2019-01-02 18:06:38 +01:00
Daniel Gultsch 835c89328d use person in message style notification 2019-01-02 15:29:31 +01:00
Daniel Gultsch cfab0dbe1b introduced 'original' as video quality and do not ignorer error 2019-01-02 10:03:33 +01:00
Daniel Gultsch 3eaa48fa46 added epub and azw mime types. try to resolve application/octet-stream by file extension instead. added preview icons for ebooks 2018-12-22 13:02:45 +01:00
Daniel Gultsch 76b78be2f2 synchronize join/leaves with bookmarks 2018-12-15 17:44:23 +01:00
Daniel Gultsch b4cd31520d display last not first message in notification. closes #3265 fixes #3264 2018-12-15 17:44:05 +01:00
Daniel Gultsch acea062abc fixed dead lock when sending pgp messages from quick reply. fixes #3246 2018-12-13 19:29:16 +01:00
Daniel Gultsch 8f27a177b0 try to guess inital location in ShareLocation based on sim card 2018-12-11 17:25:59 +01:00
Daniel Gultsch ae9bfe1643 limit video transcoding to api >= 18 and other api 16 fixes 2018-12-10 13:58:05 +01:00
Daniel Gultsch 1a1bfb3246 show warning snackbar before joining anon-non-private room. fixes #3306 2018-12-09 18:25:11 +01:00
Daniel Gultsch 7219f42ad2 check mam preference for mam:2 namespace and purge offline only if set 2018-12-05 19:11:40 +01:00
Daniel Gultsch f1e1c4a78d keep track of previously edited ids 2018-12-01 15:52:44 +01:00
Daniel Gultsch 6381f8a7f7 fixed cache cleaning of muc avatars, fixes #3296 2018-11-29 19:27:18 +01:00
Daniel Gultsch d53143ab34 change audio attributes for notification channel
This may help on platforms that make a difference between ringtone volume and notification volume
2018-11-27 10:41:19 +01:00
Daniel Gultsch 1de385dcb9 set access model to open when publishing avatar. fixes #3291 2018-11-25 20:58:48 +01:00
Daniel Gultsch 65c9dd71c7 prefer server side avatar on quicksy and address book avatar on conversations 2018-11-22 13:03:13 +01:00
Daniel Gultsch 61ac804f93 catch a few run time exceptions related to androids life cycle mgmt 2018-11-22 10:06:56 +01:00
Daniel Gultsch 23cc305720 refactor quite hours to make them time zone indepentent. fixes #2565 2018-11-21 18:14:02 +01:00
Daniel Gultsch cf18bd08fc provide option to reject subscription request when long pressing 'allow' 2018-11-18 10:34:14 +01:00
Daniel Gultsch e7d1555763 use startForegroundService compat from push message receiver 2018-11-17 12:57:36 +01:00
Daniel Gultsch ab43a4bcf9 use display name to generate own avatar 2018-11-11 10:13:45 +01:00
Daniel Gultsch 4c88fce3b8 do not update foreground notification on error if it wasn’t enabled 2018-11-11 09:54:52 +01:00
Daniel Gultsch 306e12b24e fixed race condition that prevented bookmark nick to be used 2018-11-10 17:33:24 +01:00
Daniel Gultsch 5012ff3545 added interface to edit nick 2018-11-09 17:47:36 +01:00
Daniel Gultsch aca4ba981f fixed caching key not being calculated properly 2018-11-08 20:52:57 +01:00
Daniel Gultsch e450626d5c add suggested contacts to roster on first message 2018-11-08 12:20:46 +01:00
Daniel Gultsch 5be43e36e4 always do contact sync in background 2018-11-07 15:44:39 +01:00
Daniel Gultsch 8a67f31368 display spinning wheel + swipe to refresh for quicksy 2018-11-07 13:42:01 +01:00
Daniel Gultsch fe90c6f846 suggest sync on login + hard code api server 2018-11-06 09:13:43 +01:00
Daniel Gultsch f0d5dc583d use inContactList() instead inRoster() in the proper places 2018-11-03 16:32:08 +01:00
Daniel Gultsch 19e13115d3 added count down latch to await account connect before going into publish profile activity 2018-10-31 13:33:55 +01:00
Daniel Gultsch 1bcbd257c3 refresh contacts when opening StartConversationsActivity 2018-10-31 13:33:55 +01:00
Daniel Gultsch 2dee53587b basic phone number sync 2018-10-31 13:33:55 +01:00
Daniel Gultsch 87cc53b8b5 renamed build flavors 2018-10-31 13:33:55 +01:00
Daniel Gultsch a49a5790c7 refactored phone contact loading in preperation for sync 2018-10-31 13:33:55 +01:00
Daniel Gultsch 4df0cc3657 do not offer tor or extended connection settings for quicksy 2018-10-31 13:33:55 +01:00
Daniel Gultsch 3b31133606 do not show up navigation when opening edit account from notification 2018-10-31 13:33:55 +01:00
Daniel Gultsch f7addc5d89 suggest quicksy.im when user enters e164 in enter jid dialog 2018-10-31 13:33:55 +01:00
Daniel Gultsch 954acb377e WIP QuickConversationsService 2018-10-31 13:33:55 +01:00
Daniel Gultsch a420cb5886 refactored some ManageAccount, WelcomeActivity and a few other things into 'full' flavor 2018-10-31 13:33:55 +01:00
Daniel Gultsch 03cd176c27 refined nick matching patter. word boundry (\b) doesn’t match on words ending in a boundry
fixes #3249
2018-10-25 15:33:37 +02:00
Daniel Gultsch dd1d1858d0 fixed cache cleaning cleaning all confercenes instead of where contact is. closes #3229 2018-10-12 16:13:37 +02:00
Daniel Gultsch 409bf3c0cb use bouncycastle provider up to api 27
apparently using conscrypt on Android below version 7? throws an exception when using 16 byte IVs.
so we now use BC when ever possible (excluding api 28)

we don’t know why Conscrypt behaves differently on various android versions
2018-10-11 04:36:37 +02:00
Licaon_Kter 58c6dbbbbe Lower foreground service notification priority (#3223)
...so no useless icon is shown on the status bar on Android 7 and older (as it was up to 2.2.9)
2018-10-11 02:44:17 +02:00
Daniel Gultsch 57fe153ef1 make 'cancelled' work for jingle ft 2018-10-08 10:31:41 +02:00
Daniel Gultsch 3dceb9d3ad refactor video qualtiy selector; less technical descriptions; code cleanup 2018-10-07 13:09:13 +02:00
Daniel Gultsch 84f7aeaea0 Merge branch 'video-selector' of https://github.com/licaon-kter/Conversations into licaon-kter-video-selector 2018-10-07 09:51:14 +02:00
licaon-kter a6fef8101b Fix selector, limit formats to 360 & 720 per CTS 2018-10-07 04:25:16 +03:00
Daniel Gultsch 521bb7846c catch exception if Conscrypt could not be initialized and use tls 1.2 2018-10-06 19:33:38 +02:00
licaon-kter fcccf545ba Add video compression selector 2018-10-06 17:15:32 +03:00
Daniel Gultsch 0e3be466ad fixed regression introduce in earlier commit. don’t use conscrypt on older devices 2018-10-04 19:21:23 +02:00
Daniel Gultsch 657b1cae9d use fab.hide() and fab.show() - this will animate the process 2018-10-04 16:46:35 +02:00
Daniel Gultsch f608fb349a refactored file encryption to give access to inner stream
Conscrypt on some plattforms doesn’t like when we close the CipherInputStream. Therefor we refactor the api to give us access to the inner stream so we can close that independently.
2018-10-03 18:14:45 +02:00
Daniel Gultsch 9ca636589c remove more legacy otr decryption code 2018-10-03 12:50:54 +02:00
Daniel Gultsch 98d3d91a8e create notification channel for quite hours. fixes #3212 2018-10-02 20:25:03 +02:00
Daniel Gultsch 1cbb60d7ed removed unused code (otr jingle encrypted file transfer) 2018-09-30 13:48:11 +02:00
Daniel Gultsch bb6b647af8 use stronger video compression (lower bitrate & lower resolution) 2018-09-28 18:38:54 +02:00
Daniel Gultsch 23b641a6ad fixed notification sounds for Android 6 2018-09-24 19:47:11 +02:00
Daniel Gultsch 2d206122a5 use conscrypt api to set sni and alpn 2018-09-23 11:20:23 +02:00
Daniel Gultsch 70845c5e95 do not compress/resize images with strange aspect ratios. fixes #3188 2018-09-22 16:51:00 +02:00
Daniel Gultsch 6637d7056e use conscrypt as security provider to provide tls 1.3 and modern cyphers on old androids 2018-09-21 16:33:07 +02:00
Daniel Gultsch 1985f6bdec store avatars received over muc presence in contact 2018-09-21 12:27:58 +02:00
Daniel Gultsch 5be64de7be catch conversations.im invite urls directly in fragment 2018-09-18 17:15:52 +02:00
Daniel Gultsch 6ede6c7f85 behave nicely (no foreground service by default) if app is built with targetSdk <26 2018-09-18 11:33:18 +02:00
Daniel Gultsch bd128335d3 do not show media overview in contact/conference details when missing storage permission 2018-09-17 21:24:25 +02:00
Daniel Gultsch 09eca8478e use javax api instead of BC for file decryption 2018-09-17 17:47:51 +02:00
Daniel Gultsch 3624d11824 create notification channel for export service 2018-09-16 14:40:28 +02:00
Daniel Gultsch febd9cc3e0 fixed regression that would not dismiss video encoding notification 2018-09-16 10:07:33 +02:00
Daniel Gultsch 7a0c53aa71 introduce media browser activity 2018-09-15 21:10:17 +02:00
Daniel Gultsch 06972ec95c show conversation media in contact/conference details 2018-09-15 19:38:45 +02:00
Daniel Gultsch 724f86f054 made foreground service logging more meaninful 2018-09-13 18:47:57 +02:00
Daniel Gultsch 943f11e1f6 share with uses new preview mechanism 2018-09-12 17:21:32 +02:00
Daniel Gultsch 7bde04877a avoid duplicate notifcation sounds 2018-09-09 21:34:41 +02:00
Daniel Gultsch be4c6bc2ca speed up DNS
run queries in parallel
decrease timeout
do not fall back to google
2018-09-08 11:30:20 +02:00
Daniel Gultsch accc378c4b hasInternetConnection() will always return true if type=ethernet 2018-09-06 23:18:06 +02:00
Daniel Gultsch eadd0c5f7a listen for Android 6 DND events 2018-09-06 23:17:37 +02:00
Daniel Gultsch ac7f0032af properly clear file adding notification if forground service channel is disabled 2018-09-06 22:05:15 +02:00
Daniel Gultsch 39b86de698 removed global notifications switch 2018-09-06 16:56:31 +02:00
Daniel Gultsch d86f4ce3a6 load contacts and start observer after giving permissions 2018-09-06 15:55:54 +02:00
Daniel Gultsch 816f5b6d22 make channel for video compression 2018-09-06 15:37:31 +02:00
Daniel Gultsch 5675f65d6d use adaptive launcher icon :-/ 2018-09-05 22:24:58 +02:00
Daniel Gultsch 676d31f606 initial work toward api 26+
* introduce notification channels
* always use foreground service on 26+
2018-09-05 21:37:12 +02:00
Daniel Gultsch 06f37b0d2b AudioPlayer: disable screen and switch to earpiece when holding phone to ear
Based of initial worked by @harshitbansal05
2018-09-01 18:23:07 +02:00
Daniel Gultsch cbea85c4dd special treatment for presence errors known to be mucs 2018-08-28 15:04:55 +02:00