Commit Graph

174 Commits

Author SHA1 Message Date
Mikunj 4657b79179 UI improvements. 2019-10-11 15:38:15 +11:00
Mikunj 13d42f542c Added public chat manager.
Replace hard coded public chat server with dynamic one.
2019-10-11 09:36:52 +11:00
Niels Andriesse c8a90ced19 Add missing event 2019-10-07 16:22:13 +11:00
Niels Andriesse 742d9bfa46 Partially implement feedback 2019-10-07 16:15:06 +11:00
Niels Andriesse 19ec4db687 Update for core changes 2019-10-07 15:30:20 +11:00
Mikunj 72059328b3 Show toast if message sending failed.
Added resetting
2019-10-02 13:15:25 +10:00
Mikunj dde4ee6e36 Merge branch 'dev' into multi-device-integration 2019-09-30 12:21:04 +10:00
Mikunj 0b49d7ae0d Fix crashing during start. 2019-09-25 15:08:01 +10:00
Mikunj Varsani d51c62ecaf Moved LokiMultiDeviceDatabase into LokiAPIDatabase. 2019-09-24 13:33:42 +10:00
Mikunj 901d627d32 Linked storage api and database. 2019-09-23 11:28:17 +10:00
Niels Andriesse c1c374407f Improve performance 2019-09-19 15:00:52 +10:00
Niels Andriesse 8a16fd2a97 Only record crashes in release mode 2019-09-18 13:56:50 +10:00
Niels Andriesse 88dbeddb04 Set LokiGroupChatAPI.isDebugMode as needed 2019-09-18 11:38:08 +10:00
Niels Andriesse 52b55652c8 Clean 2019-09-12 09:59:15 +10:00
Mikunj aa560b60a9 Stop pollers once leaving group chats. 2019-09-11 09:29:29 +10:00
Niels Andriesse 83742a0fc2 Set up Crashlytics 2019-09-06 14:00:36 +10:00
Niels Andriesse e346a45d99 Set up Mixpanel 2019-09-04 16:44:19 +10:00
Niels Andriesse 85373e7643 Implement RSS feeds 2019-08-28 14:19:08 +10:00
Niels Andriesse f6c1a3ef9c Update for core changes 2019-08-28 12:09:05 +10:00
Niels Andriesse 88403024eb Clean 2019-08-21 14:53:14 +10:00
Niels Andriesse a3cb8eb969 Re-enable group chats 2019-08-19 10:37:17 +10:00
Niels Andriesse 21fc47d7bf Prepare for release 2019-08-09 14:00:54 +10:00
Niels Andriesse eb9537f1c1 Make group chats a bit more future proof 2019-08-09 12:00:01 +10:00
Niels Andriesse 1822e87f7c Merge Signal 4.41.0 2019-08-07 16:48:54 +10:00
Niels Andriesse 9e4b70058c Actively poll public chat group if the app is in the foreground 2019-08-06 16:18:24 +10:00
Niels Andriesse 93b7472e25 WIP 2019-08-05 16:32:05 +10:00
Niels Andriesse 787b74ad1f Set up public chat as needed 2019-08-05 13:26:30 +10:00
Niels Andriesse 0ef0140b0d Update package 2019-07-24 12:30:23 +10:00
Niels Andriesse 1d2e8072a0 Fix build 2019-07-22 11:27:24 +10:00
Niels Andriesse d6cf9b573e Use Signal's job framework for background polling 2019-07-22 11:22:42 +10:00
Niels Andriesse daa1248e6c Debug session handling 2019-07-02 11:47:28 +10:00
Niels Andriesse ca370211f8 Resolve TODO 2019-06-28 16:08:27 +10:00
Niels Andriesse e7f7c3cdb2 Hook up message receiver 2019-06-25 13:51:24 +10:00
Niels Andriesse 26ba7fb387 Update for core changes 2019-06-19 14:47:42 +10:00
Niels Andriesse ab68ae2e58 Group Loki logic together in ApplicationContext 2019-06-18 13:23:58 +10:00
Mikunj 6928bfa2ae Added long polling 2019-06-18 12:49:21 +10:00
Niels Andriesse c8cc22e8fe WIP 2019-06-07 15:21:25 +10:00
Greyson Parrelli 2a644437fb Add sticker support.
No sticker packs are available for use yet, but we now have the
latent ability to send and receive.
2019-05-30 01:08:01 -04:00
Greyson Parrelli 7b4299d5da Bring back conscrypt, improve provider initialization ordering. 2019-05-02 14:32:48 -07:00
Greyson Parrelli ecea6abeb6 Temporary revert (again) to fix an avatar retrieval issue.
This reverts commit 77524ae1f2.
2019-05-01 08:25:14 -07:00
Greyson Parrelli 77524ae1f2 Revert "Temporary revert to fix an avatar retrieval issue."
This reverts commit 267bc32e23.
2019-04-30 12:51:58 -07:00
Francois Blackburn d2ece1c1f2 Add MI 5 to hardware AEC blacklist 2019-04-30 12:51:57 -07:00
Arnt Gulbrandsen 8bdc257963 Avoid hardware echo cancellation for Fairphone FP2
The issue has as been confirmed by me with the stock ROM as of November
2018, and other users have complained for almost 18 months, see
https://forum.fairphone.com/t/fnord/28849 and
https://bugtracker.fairphone.com/project/fairphone-fairphone-os-android-6/issue/77
2019-04-30 12:51:57 -07:00
Greyson Parrelli 4a3c173adb Migrated to new JobManager. 2019-04-15 10:56:26 -04:00
Greyson Parrelli 11a2ed0743 Increase reliability of locally logging crashes.
Exception logging tends to be race-y, so now we block and wait
for all logs to be written before continuing with the crash.
2019-04-10 12:53:55 -04:00
Greyson Parrelli 267bc32e23 Temporary revert to fix an avatar retrieval issue.
This reverts commit 8aa185070b.
2019-04-03 16:32:52 -04:00
Alan Evans a7aa980e58 New dynamic locale system.
- Fixes #7619
2019-03-26 17:08:05 -03:00
Moxie Marlinspike 8aa185070b Update libsignalservice to 2.13.0
- Eliminate the explicit spongycastle dependency. All access to
  primitives is done through the JCE interfaces now, which allows
  us to use a secure native-backed provider like conscrypt.

- Use conscrypt for our default security provider. This gives us
  fast TLS 1.2 and 1.3 support on all devices, even before they
  had platform support (like 4.4).

- Update minSdk to 18. Unfortunately the JCE interfaces for GCM
  primitives are JDK 7+ (!) only, which became supported by Android
  at 18.
2019-03-21 11:19:06 -07:00
Greyson Parrelli a122bb4899 Created new BlobProvider.
One unified place to create blobs for different lifespans.
2019-03-10 15:18:39 -07:00
Greyson Parrelli 1c23603c25 Add the Redmi Note 5 to the hardware AEC blacklist. 2019-02-14 20:19:07 -08:00
Greyson Parrelli c5114e2cb3 Updated to WebRTC M71. 2019-01-30 16:10:47 -08:00
Greyson Parrelli d482c60a98 Switch from GCM to FCM. 2019-01-30 16:10:47 -08:00
Greyson Parrelli c76081d99c Added support for link previews. 2019-01-30 16:10:43 -08:00
Greyson Parrelli 7c66c4a4f7 Updated logging. 2019-01-12 13:32:24 -08:00
Greyson Parrelli 776b0e23ae Add support for typing indicators. 2018-11-21 01:55:25 -08:00
Greyson Parrelli 2acab563d9 Support for sealed sender - Part 2 2018-10-30 08:48:08 -07:00
Moxie Marlinspike 5f31762220 Support for sealed sender - Part 1 2018-10-30 08:48:08 -07:00
Greyson Parrelli ae9c53bdf8 Ensure jobs have a Context during onAdded().
Fixes a crash.
2018-10-20 22:52:14 -07:00
Greyson Parrelli 45e0bb281f Turn MessageRetrievalService into IncomingMessageObserver.
Due to an Android P bug, we basically need to stop calling
startService() in onResume()/onPause(). That means I had to turn
MessageRetrieval service into a singlton instead of a service. I also
moved the offending KeyCachingService calls into static methods that
didn't have to start the service.
2018-10-17 13:58:47 -07:00
Greyson Parrelli 0d48f10806 Fix issue where a Job had null JobParameters. 2018-10-10 09:00:14 -07:00
Greyson Parrelli 1b736e9e04 Ensure notifications are processed after receiving GCM message.
It's unreliable to run these tasks on WorkManager, as there's no
scheduling guarantees.
2018-10-08 10:00:15 -07:00
Greyson Parrelli 07d7af6e75 Initialize WorkManager ourself.
This gives us more control over when it happens, as well as lets us set
things like the debug level. Also let's us get rid of the synchronized
block we had in Application#onCreate().
2018-10-04 09:09:04 -07:00
Greyson Parrelli 87e6aa48bb Schedule jobs with WorkManager.
Should help solve most of our pressing targetSdk=26 migration issues.
2018-10-01 12:12:50 -07:00
Greyson Parrelli dbd42c4af2 Add notification channel support.
Bucket our notifications into channels. Required to target API 26.
2018-08-13 18:38:53 -04:00
Greyson Parrelli a498176043 Switch logs to use new Log class. 2018-08-06 10:50:06 -04:00
Greyson Parrelli acb40c6133 Added new logger.
Added a new logger that persists logs for a longer duration to the
user's cache directory. Logs are encrypted. The new logs are sent
in addition to the user's logcat output.
2018-08-06 10:50:06 -04:00
floesche df9833472f Add z5 compact (E5823) to AEC blacklist
Following fixes for other models to reduce echo on callee side during Signal call. 

The problem has been reported for this model for example in #6241
2018-07-18 08:53:27 -07:00
Greyson Parrelli bf692e8da3 Throttle background contact syncs to once every 6 hours.
Unfortunately, there's apps out there that trigger contact changes
very frequently. Because we listen to the system for contact
changes to tell us when to sync, that could result in us sending
an abundance of contact syncs to linked desktop instances.

This throttles contact sync requests using the following methodology:

- By default, throttle contact syncs to 6 hrs while the app is
  backgrounded.
- If a sync is throttled in the background, we set a dirty flag and
  will execute the sync the next time the app is foregrounded.
- Syncs explicitly requested by desktop are never throttled.
2018-07-17 12:06:50 -07:00
b0m0x 2290549349 add Mi A1 to hardware AEC blacklist
See #7635
2018-07-02 17:45:55 -07:00
2-4601 f1d8fd8838 Add devices to hardware AEC blacklist
- Moto G4
- Nokia 5 (TA-1053)

Alleviates #7635
2018-06-22 10:59:53 -07:00
Greyson Parrelli 42f1baaf61 Imported JobManager as a source dependency.
We have to make some changes, and it's gotten to the point where
maintaining it as a separate library is more hassle than it's worth,
especially with Google releasing WorkManager as the preferred job
scheduling library.
2018-06-22 10:59:53 -07:00
Moxie Marlinspike 2a1ce859c4 Add Moto G (5S) Plus to hardware AEC blacklist
For #7635
2018-04-19 10:58:39 -07:00
Moxie Marlinspike 24e573e537 Support for full backup/restore to sdcard 2018-03-05 16:11:49 -08:00
Moxie Marlinspike 18aa202695 Really really delay SMS processing until sqlcipher migration completes
Blocking the SMS job on the screen lock isn't enough, since then
the job races against the migration.

Fixes #7390
2018-02-26 14:02:12 -08:00
Moxie Marlinspike 59092e2ec0 No need for an encrypted serializer any longer 2018-02-01 18:33:12 -08:00
Moxie Marlinspike a798f97aa3 Update to webrtc M64 2017-12-21 16:37:07 -08:00
Moxie Marlinspike 17dd681dc8 Run all AsyncTasks on thread pool executor
Should Fix #7002
2017-10-23 13:03:32 -07:00
Moxie Marlinspike e452862813 Catch unsatisfied link error on start if webrtc so isn't found
// FREEBIE
2017-07-21 16:29:03 -07:00
Moxie Marlinspike 72afb33c1b Add Moto G5 to hardware AEC blacklist
For #6241
// FREEBIE
2017-07-21 16:03:31 -07:00
Moxie Marlinspike 82b5b35d3b Eliminate MediaNetworkRequirement style attachment job handling
// FREEBIE
2017-07-21 15:59:27 -07:00
Moxie Marlinspike 2c4c0f1349 Archive sessions and generate new registration id on re-register
Fixes #6703
// FREEBIE
2017-07-05 13:13:53 -07:00
Moxie Marlinspike 1c8077a7fe Switch from a hardware AEC whitelist back to a blacklist
Disabling OpenSL ES seems to make the hardware AEC "work" on
devices where it was previously causing problems.

Using the WebRTC-based software AEC *without* OpenSL ES seems to
be causing new problems.

Fixes #6737
Related #6432
Related #6241
// FREEBIE
2017-06-19 09:22:07 -07:00
Moxie Marlinspike 3fd5e58bd5 Disable OpenSL ES by default
Fixes #6432
// FREEBIE
2017-05-09 11:03:32 -07:00
Moxie Marlinspike 2e8250f25e Add LG G3 to OpenSLES blacklist
// FREEBIE
2017-04-27 11:38:49 -07:00
Moxie Marlinspike 4d889a45e2 Blacklist Nexus 5 from OpenSL ES
Fixes #6432
// FREEBIE
2017-04-26 10:26:32 -07:00
Moxie Marlinspike 51f27631ef Switch from hardware AEC blacklist to whitelist
Related #6241
// FREEBIE
2017-04-12 15:12:13 -07:00
Simon b0b1cdef35 Add Redmi Note 4 to HARDWARE_AEC_BLACKLIST
See #6241
Closes #6516
// FRЕЕBIЕ
2017-04-10 14:31:45 -07:00
Moxie Marlinspike 6b7174bb35 Add OnePlus One to AEC blacklist
// FREEBIE
2017-04-10 09:29:46 -07:00
Paride Legovini c97fa0d3d1 Blacklist OnePlus X from hardware AEC
Closes #6465
// FREEBIE
2017-03-31 16:54:22 -07:00
Moxie Marlinspike 01d66087aa Blacklist Nexus 6 from hardware AEC
Remove all blacklisting from library

// FREEBIE
2017-03-23 16:18:07 -07:00
Moxie Marlinspike e0e932df02 Add Samsung Galaxy S7 and Sony Xperia SP to AEC blacklist
Related #6241
// FREEBIE
2017-03-23 16:18:07 -07:00
Moxie Marlinspike 3ca653627d Add LG G3 to hardware AEC blacklist
Helps #6241
// FREEBIE
2017-03-23 16:18:07 -07:00
Moxie Marlinspike f4acaad407 Add Pixel, S5, Redmi Note 3, and Xiaomi Mi4 to AEC blacklist
Make these application-level changes

Helps #6241
// FREEBIE
2017-03-23 16:18:07 -07:00
Moxie Marlinspike 0d11b3dd26 Lets limit GCM refresh to every 6hrs, and only retry once
// FREEBIE
2017-03-17 10:40:34 -07:00
Moxie Marlinspike 94964474b2 So long redphone
// FREEBIE
2017-03-14 13:24:24 -07:00
Moxie Marlinspike 1e02d70052 Make webrtc calling default
// FREEBIE
2017-03-06 12:10:26 -08:00
Moxie Marlinspike b110c8a2cb Reregister GCM on every app start
Fixes #5531
// FREEBIE
2017-03-06 11:50:51 -08:00
Moxie Marlinspike 9b8719e2d5 Support for website distribution build with auto-updating APK
// FREEBIE
2017-02-27 23:53:36 -08:00
Moxie Marlinspike e25d31ceb6 Disable webrtc calling for Gingerbread users
Fixes #6220
// FREEBIE
2017-02-13 22:55:06 -08:00
Moxie Marlinspike ea0945d406 Beta support for webrtc video and voice calling
// FREEBIE
2017-02-01 13:55:52 -08:00