Commit Graph

609 Commits

Author SHA1 Message Date
Mikunj
fd2dc678ea Show custom message on no session message.
Made a no session message an update message.
2019-12-05 15:40:55 +11:00
Mikunj
ba93fdd649 Only show one session reset prompt at a time 2019-12-05 13:18:33 +11:00
ryanzhao
66d87533d3 add cache for Addresses and Messages.
make multiple insertion into one transaction.
2019-12-04 11:28:12 +11:00
Mikunj
06f75859fa Removed custom profile avatar url table since signal already has an existing one.
Clean
2019-11-27 13:17:31 +11:00
ryanzhao
5a4b619c9d try to store avatar url locally 2019-11-27 13:17:31 +11:00
Mikunj
76ce008063 forgot to use lokiv4 in previous code 2019-11-21 15:37:19 +11:00
Mikunj
c3bda57ac1 Show name and short id in linked device screen. 2019-11-20 15:47:28 +11:00
Mikunj
0f5db5aa33 Hook up signal device linking view. 2019-11-20 11:20:45 +11:00
Mikunj
cf8ed65f4e Merge branch 'dev' into disable-permissions 2019-11-18 13:06:00 +11:00
Mikunj
f6b039ee77 Disabled unused permissions 2019-10-31 16:09:29 +11:00
Mikunj
7ff7c36e27 Cleanup code. 2019-10-30 09:59:11 +11:00
Mikunj
9ea2a6c8e4 More fixes for friend request UI for multi device.
Remove old FR pending states on new incoming friend request.
Always update the last friend request message state and not a new message.
2019-10-29 11:27:08 +11:00
Mikunj
21e529c6c9 Forward messages from secondary devices to primary device. 2019-10-23 15:31:58 +11:00
Mikunj
8d6094ecd6 Fix crash when viewing media 2019-10-18 15:16:41 +11:00
Mikunj
fd9f1b712f Get attachment logic to work. 2019-10-18 12:47:44 +11:00
Mikunj
c6f5adb447 Update attachments to use url. 2019-10-17 12:03:08 +11:00
Niels Andriesse
cbad885586 Add missing display name update & message fetch 2019-10-15 16:06:38 +11:00
Niels Andriesse
4a613df52d Clean 2019-10-15 14:32:23 +11:00
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
Mikunj
8b92932b6d Added database functionality. 2019-10-10 11:03:51 +11:00
Niels Andriesse
742d9bfa46 Partially implement feedback 2019-10-07 16:15:06 +11: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
Mikunj
ff65d4e342 Added Database. 2019-09-19 12:52:37 +10:00
Niels Andriesse
96dadbaaa8 Handle media message friend requests 2019-09-18 17:33:34 +10:00
Niels Andriesse
cc7f93688f Fix message ordering 2019-09-18 14:43:02 +10:00
Niels Andriesse
bdb950373a Partially implement GIFs 2019-09-16 16:11:07 +10:00
Niels Andriesse
b67efcf2ab Implement moderator tags 2019-09-12 16:42:52 +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
Mikunj
842be4378a Show correct names on public chats. 2019-09-09 13:01:54 +10:00
Niels Andriesse
f4bcb285af Integrate group chat moderation API 2019-09-02 16:42:08 +10:00
Niels Andriesse
7273eb2774 Switch to new group chat message deletion endpoint 2019-08-30 17:08:46 +10:00
Niels Andriesse
f6c1a3ef9c Update for core changes 2019-08-28 12:09:05 +10:00
Niels Andriesse
1ce8268445 Add missing database migration 2019-08-26 15:58:31 +10:00
Niels Andriesse
0c4ea32269 Debug 2019-08-26 15:32:02 +10:00
Niels Andriesse
a3a3c379e0 Clean 2019-08-23 16:57:26 +10:00
Mikunj
51646c98c8 Added database to store public chat tokens. 2019-08-23 16:09:05 +10:00
Niels Andriesse
eb9537f1c1 Make group chats a bit more future proof 2019-08-09 12:00:01 +10:00
Niels Andriesse
04aa7db499 Use alternative approach for group message sending 2019-08-08 17:24:00 +10:00
Niels Andriesse
5936c16c47 Debug merge issues 2019-08-08 11:29:40 +10:00
Niels Andriesse
1822e87f7c Merge Signal 4.41.0 2019-08-07 16:48:54 +10:00
Niels Andriesse
7598830a1b Fix quote messages & friend request handling 2019-07-24 15:05:39 +10:00
Niels Andriesse
0ef0140b0d Update package 2019-07-24 12:30:23 +10:00
Mikunj
61622fbd3d Session reset handling. 2019-07-22 09:38:12 +10:00
Niels Andriesse
956f20fc0e Use display name 2019-07-19 15:02:47 +10:00
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
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
1a7e0562bb Debug friend request logic 2019-06-27 16:03:05 +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
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
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
bb180ff2d5 Fix build 2019-06-05 16:30:31 +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
Mikunj
e2ffab9e19 Added friend request state in thread.
Added friend request receive logic.
2019-06-05 12:42:55 +10:00
Mikunj
384a5ba35d Update RefreshPreKeysJob. 2019-06-04 15:00:27 +10:00
Niels Andriesse
b77ac07ef5 Rename getBase64Bytes(...) → getBase64EncodedData(...) 2019-06-04 14:16:09 +10:00
Mikunj
bdc62a9645 Added more loki databases. 2019-06-04 14:03:27 +10:00
Niels Andriesse
d1e4577132 Implement LokiAPIDatabase 2019-06-04 11:05:03 +10:00
Niels Andriesse
8c45a9151f Stub LokiAPIDatabase 2019-06-04 09:35:18 +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
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
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
Greyson Parrelli
5977e9141d Wrap transactions in try-finally. 2019-04-28 11:42:02 -07:00
Greyson Parrelli
4a3c173adb Migrated to new JobManager. 2019-04-15 10:56:26 -04:00
Alan Evans
9c40de5bf1 Save the SMS setting on a per-conversation basis. 2019-04-15 10:13:35 -04:00
Greyson Parrelli
8caaf057e8 Remove unnecessary pre-19 code branches.
Now that our minSdk is 19, we can remove a lot of old code paths that
only ran pre-19.
2019-03-21 11:19:06 -07:00
Moxie Marlinspike
a52c295a38 Simplify access to SecureRandom
This shouldn't matter at all, but it's more "correct," and shows
my age less.
2019-03-21 11:19:06 -07:00
Greyson Parrelli
64cf032181 Updated media send UI. 2019-03-18 15:09:56 -07:00
Alan Evans
e0c11998c3
Make DisplayRecord take context as argument, so locale is more likely to be correct. 2019-03-13 18:28:16 -03:00
Greyson Parrelli
a4ce77cbcc Remove unused method. 2019-03-12 11:29:59 -03:00
Greyson Parrelli
55699e27bc Added ability to receive long messages.
Send support is in here too. We'll enable it in a future release after
enough people have updated.
2019-03-01 14:15:08 -08:00
Greyson Parrelli
b962751c96 Fix possible IllegalArgumentException during a database migration. 2019-02-15 19:33:16 -08:00
Greyson Parrelli
c2a86fcc74 Sync self-sends to desktop.
Updated UI to show self-conversations as "Note to Self".
2019-02-14 20:19:07 -08:00
Greyson Parrelli
d42c9b5dbc Ensure the group shortstring in the action bar is up-to-date.
There were situations where adding/removing members from a group
would update the group member list, but the short string (the little
text listing the first couple members of the group) wouldn't be updated
until you left the screen and came back.
2019-02-14 20:19:06 -08:00
Greyson Parrelli
9f04c28bfd Implemented conversation search.
You can now search for messages within a specific conversation.
2019-02-14 20:19:01 -08:00
Greyson Parrelli
90a37852cc Hide quoted attachments from All Media and media rails.
Fixes #8009
2019-01-30 16:34:10 -08:00
Greyson Parrelli
c76081d99c Added support for link previews. 2019-01-30 16:10:43 -08:00
Greyson Parrelli
1502b0ae3e Add processing rules for partial US and BR phone numbers. 2019-01-15 11:57:42 -08:00
Greyson Parrelli
6fa7eca60b Implement new media send flow.
Update our media send flow to allow users to send multiple images/videos
at once. This change includes:

- New in-app media picker flow.
- Ability to caption images and videos.
- Image editing tools are made more prominent in the flow.
- Some fixes to the image editing tools.
2019-01-14 11:25:06 -08:00
Greyson Parrelli
19d5ba5c0e Upload attachments in a separate job. 2019-01-13 19:25:40 -08:00
Greyson Parrelli
7bda952ee5 Fix crash when DeviceName is shorter than 4 characters. 2019-01-13 07:26:16 -08:00
Greyson Parrelli
c6f3a66cad Support encrypted linked device names. 2019-01-12 13:32:24 -08:00
Greyson Parrelli
bfdad2f47c Updated logging. 2018-12-06 12:43:45 -08:00
Greyson Parrelli
187d7b3e3a Fix the caption database migration. 2018-11-26 11:50:55 -08:00
Greyson Parrelli
47a10a0288 Added support for multi-image receive. 2018-11-21 01:55:30 -08:00