Commit Graph

2842 Commits

Author SHA1 Message Date
Niels Andriesse
244d4fd899 Fix friend request accepted preview 2019-07-19 13:23:19 +10:00
Niels Andriesse
8c054a060e Block input if a friend request is pending 2019-07-19 13:15:17 +10:00
Niels Andriesse
b123948230 Exclude empty messages from conversations 2019-07-19 10:17:34 +10:00
Niels Andriesse
3a8d509c1e Further Lokify UI 2019-07-18 15:59:41 +10:00
Niels Andriesse
424998a8ee Implement restore from seed logic 2019-07-17 11:31:19 +10:00
Niels Andriesse
659d9e6a8f Implement restore from seed UI 2019-07-17 10:26:06 +10:00
Niels Andriesse
bac4b86ec3 Further Lokify settings UI 2019-07-17 09:45:20 +10:00
Niels Andriesse
ab99874ede Partially Lokify UI 2019-07-16 17:09:15 +10:00
Niels Andriesse
862288abfd Clean 2019-07-15 15:06:52 +10:00
Niels Andriesse
208ac71bfe Update for core changes 2019-07-15 13:19:58 +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
e8bece45b9 Fix missing delegate & friend request acceptance 2019-06-28 14:59:25 +10:00
Niels Andriesse
52a0b2a5e8 Clean 2019-06-28 14:07:42 +10:00
Niels Andriesse
86c765b1c2 Debug friend request logic further 2019-06-28 12:32:23 +10:00
Niels Andriesse
1a7e0562bb Debug friend request logic 2019-06-27 16:03:05 +10:00
Niels Andriesse
232faba39f Fix message delivery 2019-06-27 14:07:13 +10:00
Niels Andriesse
dd67e59807 Fix pre key usage 2019-06-26 14:31:38 +10:00
Niels Andriesse
e7f7c3cdb2 Hook up message receiver 2019-06-25 13:51:24 +10:00
Niels Andriesse
047a98ad63 Disable input bar if a friend request is pending 2019-06-25 11:48:39 +10:00
Niels Andriesse
b27dfdf6ce Fix crash 2019-06-25 09:28:37 +10:00
Niels Andriesse
169a7e609e Propagate message ID 2019-06-24 16:00:15 +10:00
Niels Andriesse
a3d23e55a1 Update for core changes 2019-06-24 14:57:53 +10:00
Niels Andriesse
1023227744 Remove unnecessary friend request status update 2019-06-24 14:26:06 +10:00
Niels Andriesse
b58fce3a68 Update for core changes & refactor 2019-06-24 14:10:09 +10:00
Niels Andriesse
d99a996d0e Finish friend request view & add message friend request status 2019-06-24 11:22:53 +10:00
Niels Andriesse
5c4ef59c0b Fix UI issue 2019-06-21 15:29:25 +10:00
Niels Andriesse
f6542b9834 Further build out friend request view 2019-06-21 14:18:38 +10:00
Niels Andriesse
7c501980fa Implement friend request view skeleton 2019-06-21 12:21:48 +10:00
Niels Andriesse
a1b6eaf3f5 Refactor 2019-06-21 10:39:05 +10:00
Niels Andriesse
bd00013f02 Hide keyboard before going to key pair screen 2019-06-20 14:25:38 +10:00
Niels Andriesse
3afd8b8b7f Fix database issues 2019-06-19 15:45:40 +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
fc4ea70621 Update for core changes 2019-06-18 10:53:03 +10:00
Niels Andriesse
21e1ece19c Model friend request status as an enum 2019-06-18 09:57:36 +10:00
Mikunj
d44081d040 Added database to map thread to loki friend request 2019-06-17 12:17:05 +10:00
Mikunj
d7bb828d67 Added database which maps sms to loki friend request. 2019-06-17 11:14:42 +10:00
Niels Andriesse
8e16bee431 Update for core changes 2019-06-12 11:41:50 +10:00
Niels Andriesse
69ecb19654 Update for core changes 2019-06-11 16:27:00 +10:00
Niels Andriesse
021bf1b33c Clean 2019-06-11 14:41:04 +10:00
Niels Andriesse
66010f4755 Fix pre key refreshing & add TODO 2019-06-11 13:41:16 +10:00
Niels Andriesse
c47be74f0d Fix crash & undo debugging setup 2019-06-11 09:46:42 +10:00
Niels Andriesse
c8cc22e8fe WIP 2019-06-07 15:21:25 +10:00
Niels Andriesse
becce74cc8 Fix messed up database layout 2019-06-07 14:19:58 +10:00
Niels Andriesse
25e0213d4b Fix blocked conversation screen 2019-06-07 13:54:50 +10:00
Niels Andriesse
f22be7262b Hook up conversation screen 2019-06-07 13:27:48 +10:00
Niels Andriesse
0349978321 Merge branch 'master' of github.com:loki-project/loki-messenger-android 2019-06-06 15:01:36 +10:00
Niels Andriesse
b4328d1aa3 Create UI path to new conversation screen 2019-06-06 15:01:06 +10:00
Mikunj
75a8123d1e Send friend request accept message back to the user. 2019-06-06 10:39:24 +10:00
Niels Andriesse
858b34306b Share actual public key 2019-06-06 10:04:43 +10:00
Niels Andriesse
32e02d1f0d Merge branch 'master' of github.com:loki-project/loki-messenger-android 2019-06-06 09:52:35 +10:00
Niels Andriesse
ed025fcc4b Disable reminders 2019-06-06 09:51:54 +10:00
Mikunj
89d5c4d0f1 Generate PreKeyBundle if we're sending a friend request. 2019-06-06 09:48:02 +10:00
Niels Andriesse
7d24ab12a2 Implement share public key button 2019-06-05 16:45:12 +10:00
Niels Andriesse
bb180ff2d5 Fix build 2019-06-05 16:30:31 +10:00
Niels Andriesse
57825d58b5 Remove unnecessary getter and setter 2019-06-05 16:24:15 +10:00
Niels Andriesse
79927be0c0 Fix name updating 2019-06-05 16:20:11 +10:00
Niels Andriesse
167e65d67d Merge branch 'master' of github.com:loki-project/loki-messenger-android 2019-06-05 16:05:24 +10:00
Niels Andriesse
e36d9e110c Add copy mnemonic button 2019-06-05 16:05:08 +10:00
Mikunj
7d33a9cc8f Always send a friend request if we're not friends.
Pass down isFriendRequest to message sender.
2019-06-05 15:53:10 +10:00
Niels Andriesse
2c35ed2177 Fix ugly spacing 2019-06-05 15:49:15 +10:00
Niels Andriesse
eae5e90814 Fix remaining registration issues 2019-06-05 15:33:31 +10:00
Niels Andriesse
3c2504418d Add missing registration logic 2019-06-05 14:56:10 +10:00
Niels Andriesse
3609517ff0 Merge branch 'master' of github.com:loki-project/loki-messenger-android 2019-06-05 13:34:18 +10:00
Niels Andriesse
1498a2e382 WIP 2019-06-05 13:33:54 +10:00
Mikunj
46af1aacbb Fix incorrect sql statement. 2019-06-05 13:24:33 +10:00
Mikunj
e2ffab9e19 Added friend request state in thread.
Added friend request receive logic.
2019-06-05 12:42:55 +10:00
Niels Andriesse
063e0967df Clean 2019-06-05 10:19:19 +10:00
Niels Andriesse
48f19a80b3 Fix build 2019-06-05 10:13:51 +10:00
Niels Andriesse
52631bcbf2 Rename LokiPreKeyBundleImpl → LokiPreKeyBundleStore 2019-06-05 10:10:33 +10:00
Niels Andriesse
eb323e119b Merge branch 'master' of github.com:loki-project/loki-messenger-android 2019-06-05 10:02:25 +10:00
Niels Andriesse
df2db90495 Fix private key serialization 2019-06-05 10:02:06 +10:00
Mikunj
a0f95c033a Pass PreKeyBundleStore into message sender. 2019-06-05 09:29:18 +10:00
Niels Andriesse
4148d598f9 Stub key pair screen 2019-06-04 16:37:45 +10:00
Mikunj
384a5ba35d Update RefreshPreKeysJob. 2019-06-04 15:00:27 +10:00
Niels Andriesse
96efb5d296 Stub account details screen 2019-06-04 14:39:28 +10:00
Niels Andriesse
b77ac07ef5 Rename getBase64Bytes(...) → getBase64EncodedData(...) 2019-06-04 14:16:09 +10:00
Niels Andriesse
3e7759fd07 Merge branch 'master' of github.com:loki-project/loki-messenger-android 2019-06-04 14:07:56 +10:00
Niels Andriesse
59889d0013 Add missing index 2019-06-04 14:05:42 +10:00
Mikunj
bdc62a9645 Added more loki databases. 2019-06-04 14:03:27 +10:00
Mikunj
bccde8baba Added more loki databases. 2019-06-04 12:12:40 +10:00
Mikunj
4f8af1b4f2 Merge branch 'master' of https://github.com/loki-project/loki-messenger-android 2019-06-04 12:09:52 +10:00
Niels Andriesse
4b1c5dfce2 Quick fix compilation issues 2019-06-04 11:45:29 +10:00
Niels Andriesse
158182baa0 Make swarm cache port specific
Last message hash value cache is intentionally not port specific so that if a snode switches to a different port the information about which messages it has stored isn't lost
2019-06-04 11:23:44 +10:00
Niels Andriesse
ab99db6059 Make received message hash values cache user specific 2019-06-04 11:07:20 +10:00
Niels Andriesse
d1e4577132 Implement LokiAPIDatabase 2019-06-04 11:05:03 +10:00
Mikunj
a337c17960 Added loki functions in PreKeyUtils. 2019-06-04 10:10:41 +10:00
Niels Andriesse
8c45a9151f Stub LokiAPIDatabase 2019-06-04 09:35:18 +10:00
Niels Andriesse
72f95dfff3 Silence Gradle warning 2019-06-03 16:25:02 +10:00
Mikunj
e19a71769f Added loki message handling. 2019-06-03 16:11:22 +10:00
Mikunj
9d4509d130 Use LokiServiceCipher when decrypting incoming message. 2019-06-03 14:02:29 +10:00
Alan Evans
5ad02f724c Enable 64-bit.
* Multiply version codes by 10 and add a code for each abi in order to generate different version codes for the play store.
2019-05-30 01:08:01 -04:00
Greyson Parrelli
77e3cc40e0 Fix message bubble sizing with link previews and quotes.
Previously, quotes could extend beyond the width of the link preview
banner image. Now quotes will be constrained to the size of the link
preview banner image.
2019-05-30 01:08:01 -04: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
Niels Andriesse
a8caa4afc5 Move MnemonicCodec to core 2019-05-29 15:49:42 +10:00
Niels Andriesse
289cc42a9e Implement MnemonicCodec 2019-05-29 14:25:19 +10:00
Alan Evans
350d1f47d3 Give conversation a standard navigate up button.
* Prevent a failing IDE preview.
2019-05-28 17:36:07 -03:00
Alan Evans
2ae42cb095 Hide local video when toggled on and off.
Fixes #8827
2019-05-28 17:36:07 -03:00
Alan Evans
dae0d30367 Do not show contact address in subtitle. 2019-05-23 16:57:50 -03:00
Alan Evans
e5f70bdbda
End RTC call on incoming PSTN call.
* Hangs up when new device call is answered.
* Ensure not on a device call when starting a Signal call.
2019-05-23 16:56:05 -03:00
Alan Evans
156fe37a60
Get SubscriptionManager by name due to ContextCompat bug for API 22.
Fixes #8826
2019-05-23 11:38:24 -03:00
Alan Evans
56848fb83d
Replace sgnl.link urls with a more readable url.
* Taken out random string, reverted to single "Let's switch".

#8767
2019-05-23 08:02:15 -03:00
Alan Evans
3cba8ab58a
Keep system default SIM as a fallback for when no conversation default SIM.
Fixes #8452
2019-05-22 16:59:00 -03:00
Alan Evans
88dac70087
Lint - Custom Widgets extend Appcompat Widgets. 2019-05-22 14:02:21 -03:00
Alan Evans
9445555d66
Code analysis - address @NotNull/@Nullable issues. 2019-05-22 13:51:56 -03:00
Alan Evans
7db1588578 Do not assume phone number in conversation.
Fixes #8813
2019-05-22 13:30:27 -03:00
Alan Evans
0a7970ad0c
Image Editor - Allow undoing back to the original state when exceeds the undo limit. 2019-05-22 13:28:02 -03:00
Alan Evans
10ad3fbf82 Lint - Use easily identifiable wake lock tags. 2019-05-20 13:24:34 -03:00
Alan Evans
95858898d7 Lint - avoid calling a restricted API. 2019-05-20 13:24:33 -03:00
Alan Evans
16c8cc88d7 Update visibility and icon of camera flip control in call.
Fixes #8221
2019-05-20 13:24:33 -03:00
Alan Evans
7f0c998b24
Image Editor - Further crop improvements.
* Thumb accuracy improved.
* When out of bounds from drag, try to fix by adjusting translation.
* Update undo state when listener changes.
2019-05-20 12:02:40 -03:00
Alan Evans
456ba5fa02 Image Editor - Replace minimum scale, with minimum pixel count.
- Anti alias images.
- Minimum crop ratio of 15:1 or original image ratio.
2019-05-17 19:42:12 -03:00
Alan Evans
9de420fde6 Image Editor - On flip or rotate, ensure undo button visibility is updated. 2019-05-17 19:00:10 -03:00
Alan Evans
401e3687de Image Editor - when no sticker selected, go back to mode NONE. 2019-05-17 16:22:07 -03:00
Alan Evans
6777b3e0e6
Image Editor - Undo button visibility. 2019-05-17 16:15:27 -03:00
Alan Evans
bf759711ef Image Editor - Keep image within crop bounds.
* 4% of original pixels must be visible.
* The entire crop must be within the image.
* On release, try to scale crop area and image to fit if the crop is invalid.
* Undo to last valid position if that didn't work.
* Additionally, center thumbs now do not respect aspect ratio lock.
2019-05-16 15:52:15 -07:00
Alan Evans
068ffc2167 Image Editor - Allow undoing during croping. 2019-05-16 15:52:03 -07:00
Alan Evans
95304fe001 Image Editor - Remove initial text.
- Flashing cursor.
2019-05-16 15:51:56 -07:00
Alan Evans
5b298b4a04
Resize image in attempts to get it to fit into the maxImageSize bytes.
Fixes #8803
2019-05-10 12:16:19 -03:00
Alan Evans
cb78684282
Ensure push groups cannot have isForceSmsSelection set.
Fixes #8807
2019-05-10 12:13:59 -03:00
Alan Evans
b1057d63a1 Lint.
- Check for permissions.
- Fix Welsh positional format.
- Remove UIThread restriction.
- Asynchronous method does not need to be restricted to UIThread and there is no StaticFieldLeak to suppress.
- Fix or Ignore New API errors.
- Reduce severity of some errors from L10N.
2019-05-10 11:57:43 -03:00
Alan Evans
93e6ccb9e4 Replace image editor. 2019-05-10 11:57:43 -03:00
Alan Evans
06ea000f42
Repeat count for format args of plural string.
Fixes #8724
2019-05-07 12:26:01 -03:00
Alan Evans
d1b8e77fdc
Always show the SIM on the footer of a multi-SIM device, even if one SIM is disabled. 2019-05-07 12:25:11 -03:00
Alan Evans
8cf2654c5b Show reply method SMS/Signal and respect sticky.
Fixes #8792
2019-05-06 16:45:30 -07:00
Alan Evans
18531146f7 Update the sticky EventBus message to reflect changes in microphone enabled state.
Fixes #7827
2019-05-06 16:45:30 -07:00
Jeffrey Griffin
c274c1bb28 Eliminate noisy directory feedback
We observed IOExceptions loading the Contact Discovery IAS KeyStore. We will now throw an AssertionError upon any error
creating the IAS KeyStore, matching the behaviour for creation of the TrustStore used for the main Signal Service. NB: If
this assertion is hit, the user will not even be able to refresh their contacts with the old directory service.
2019-05-06 16:45:30 -07:00
Alan Evans
42a8522e98 Manually call the onPageSelected when entering page 0.
Fixes #7610
2019-05-06 16:45:30 -07:00
Greyson Parrelli
eab23a9e66 Fixed issue where giphy results weren't loading. 2019-05-06 15:48:43 -07:00
Greyson Parrelli
59f362495a Add additional checks around link preview domains.
We never make requests to non-whitelisted domains, but there were
situations where some links would redirect to non-whitelisted domains,
which would hit a final failsafe that resulted in a crash.

To prevent this, we detect bad redirects earlier and fail more
gracefully.

Fixes #8796
2019-05-06 12:25:53 -07:00
Greyson Parrelli
934a2a67bc Fix some keyboard issues in landscape. 2019-05-02 14:32:53 -07:00
Greyson Parrelli
05345b8582 Remove some unnecessary logging. 2019-05-02 14:32:53 -07:00
Greyson Parrelli
7b4299d5da Bring back conscrypt, improve provider initialization ordering. 2019-05-02 14:32:48 -07:00
Alan Evans
ec20b0e0e3
Fallback to SIM index.
#8725
2019-05-02 18:16:59 -03:00
Greyson Parrelli
bb90987e7c Fix potential crash when retrieving SIM list. 2019-05-01 08:36:24 -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
1e564b6ad1 Fix exponential backoff retry limits. 2019-04-30 12:51:58 -07:00
Alan Evans
c77daa8226 Display carrier or number if any SIM descriptions clash.
Fixes #8725
2019-04-30 12:51:58 -07:00
Alan Evans
fa35814344 Disable transport disables all matching TransportOptions.
Fixes #8744
2019-04-30 12:51:58 -07:00
Alan Evans
48efcaa785 Do not list SIMs that are not ready.
Fixes #8426
2019-04-30 12:51:58 -07:00
Greyson Parrelli
f3f6cc87d9 Request a small chunk instead of HEAD for images of unknown size. 2019-04-30 12:51:58 -07:00
Greyson Parrelli
29cdb5290b Make headers for giphy requests random sizes. 2019-04-30 12:51:58 -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
Greyson Parrelli
30ba9d7e27 Improve CDN reliability. 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
Kevin Mark
88f9ec313f Close SQL statement, preventing finalizer crashes
This will stop instances of the following from occuring in the logs
on SMS migration:

W/SQLiteCompiledSql: Releasing statement in a finalizer. Please ensure
that you explicitly call close() on your cursor: INSERT INTO sms
(address, person, date_sent, date, protocol, read, status, type,
reply_path_present,
    net.sqlcipher.database.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
        at net.sqlcipher.database.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:62)
        at net.sqlcipher.database.SQLiteProgram.<init>(SQLiteProgram.java:109)
        at net.sqlcipher.database.SQLiteStatement.<init>(SQLiteStatement.java:39)
        at net.sqlcipher.database.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1647)
        at org.thoughtcrime.securesms.database.SmsDatabase.createInsertStatement(SmsDatabase.java:767)
        at org.thoughtcrime.securesms.database.SmsMigrator.migrateConversation(SmsMigrator.java:166)
        at org.thoughtcrime.securesms.database.SmsMigrator.migrateDatabase(SmsMigrator.java:210)
        at org.thoughtcrime.securesms.service.ApplicationMigrationService$ImportRunnable.run(ApplicationMigrationService.java:159)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
        at java.lang.Thread.run(Thread.java:764)

We aren't closing Statement objects before the finalizer on those
objects runs. When the GC runs, we'll get warnings like the above
which alert us to the fact that these objects are being automatically
closed for us in the finalizer, but that this is suboptimal behavior.

If we leave too many Statement (or Cursor) objects to be closed in
their finalizers, when the GC runs, it'll take longer than 10 seconds
to close them all and Android will kill the app. This 10 second limit
is hardcoded and we can only try to avoid it. A crash will look like:

java.util.concurrent.TimeoutException: net.sqlcipher.database.SQLiteCompiledSql.finalize() timed out after 10 seconds
    at java.lang.Object.wait(Native Method)
    at java.lang.Thread.parkFor$(Thread.java:1220)
    at sun.misc.Unsafe.park(Unsafe.java:299)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:810)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:844)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1173)
    at java.util.concurrent.locks.ReentrantLock$FairSync.lock(ReentrantLock.java:196)
    at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:257)
    at net.sqlcipher.database.SQLiteDatabase.lock(SQLiteDatabase.java:553)
    at net.sqlcipher.database.SQLiteCompiledSql.releaseSqlStatement(SQLiteCompiledSql.java:106)
    at net.sqlcipher.database.SQLiteCompiledSql.finalize(SQLiteCompiledSql.java:152)
    at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:202)
    at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:185)
    at java.lang.Thread.run(Thread.java:818)

I was able to replicate the above crash consistently on a
Samsung Galaxy S7 edge when importing well over 100k SMS messages.
But as soon as I attached a debugger the crash did not persist. I
assume this is because of some VM-level interactions between the two
and did not investigate further after fixing it.

I do not have access to the stack trace for issue #7953 but this
could potentially resolve it. The crash is identical to that in #7477
but this patch is for SMS migration not restoring from a backup. I
was not able to replicate the crash on restoring a >100k message
backup.
2019-04-30 12:51:57 -07:00
Michael Walker
8ad5126408 Add pinterest domain and asset domains for link preview support 2019-04-30 12:51:57 -07:00