Commit Graph

4220 Commits (0bac70606968d238907271dd531b23af0058ce07)
 

Author SHA1 Message Date
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
5 years ago
Greyson Parrelli 6c44437c6f Bump version to 4.39.2 5 years ago
Greyson Parrelli fed8ae68e9 Updated language translations. 5 years ago
Greyson Parrelli 934a2a67bc Fix some keyboard issues in landscape. 5 years ago
Greyson Parrelli 05345b8582 Remove some unnecessary logging. 5 years ago
Greyson Parrelli cef5de2be4 Removed unnecessary WorkManager relic. 5 years ago
Greyson Parrelli 7b4299d5da Bring back conscrypt, improve provider initialization ordering. 5 years ago
Alan Evans ec20b0e0e3
Fallback to SIM index.
#8725
5 years ago
Greyson Parrelli ff1531b836 Bump version to 4.39.1 5 years ago
Greyson Parrelli 1675c8a79a Updated language translations. 5 years ago
Greyson Parrelli bb90987e7c Fix potential crash when retrieving SIM list. 5 years ago
Greyson Parrelli ecea6abeb6 Temporary revert (again) to fix an avatar retrieval issue.
This reverts commit 77524ae1f2.
5 years ago
Greyson Parrelli 4a2f3136c6 Bump version to 4.39.0 5 years ago
Greyson Parrelli d12b02fac5 Updated language translations. 5 years ago
Greyson Parrelli 1e564b6ad1 Fix exponential backoff retry limits. 5 years ago
Alan Evans c77daa8226 Display carrier or number if any SIM descriptions clash.
Fixes #8725
5 years ago
Alan Evans fa35814344 Disable transport disables all matching TransportOptions.
Fixes #8744
5 years ago
Alan Evans 48efcaa785 Do not list SIMs that are not ready.
Fixes #8426
5 years ago
Greyson Parrelli f3f6cc87d9 Request a small chunk instead of HEAD for images of unknown size. 5 years ago
Greyson Parrelli 29cdb5290b Make headers for giphy requests random sizes. 5 years ago
Greyson Parrelli 77524ae1f2 Revert "Temporary revert to fix an avatar retrieval issue."
This reverts commit 267bc32e23.
5 years ago
Greyson Parrelli 30ba9d7e27 Improve CDN reliability. 5 years ago
Alan Evans 9652fd2844 Update MMS configs. 5 years ago
Francois Blackburn d2ece1c1f2 Add MI 5 to hardware AEC blacklist 5 years ago
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
5 years ago
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.
5 years ago
Michael Walker 8ad5126408 Add pinterest domain and asset domains for link preview support 5 years ago
Greyson Parrelli 1e27847015 Update link preview meta tag regex. 5 years ago
Greyson Parrelli e67eca77ff Prevent landscape text editing from taking over the screen.
It used to be that we let Android do the default behavior of
full-screening the EditText when in landscape, but honestly I
don't know who prefers that. So I've turned it off.

Fixes #8769
5 years ago
Greyson Parrelli ba46a9d81a Bump version to 4.38.3 5 years ago
Greyson Parrelli 49cccc6927 Update job logging. 5 years ago
Greyson Parrelli 5977e9141d Wrap transactions in try-finally. 5 years ago
Greyson Parrelli c0982293bf Fix bug where sticky SMS setting wasn't respected.
Fixes #8783
5 years ago
Kee Jefferys 705e120472
Merge pull request #1 from loki-project/KeeJef-patch-1
Update issue templates
5 years ago
Kee Jefferys d7cb754877 Update issue templates 5 years ago
Greyson Parrelli ae6ef62160 Bump version to 4.38.2 5 years ago
Greyson Parrelli d95b08d4fd Updated language translations. 5 years ago
Greyson Parrelli 128da6db04 Fix crash in backup restore related to sqlite_sequence.
The new JobManager stuff created a table that had an
auto-incrementing ID, which was incorrectly being backed
up and restored, causing a crash. Now we skip it on both
import and export.
5 years ago
Greyson Parrelli 2701607810 Reduce the possible number of unique jobs to avoid crash.
Some devices have a limit of 100 unique JobScheduler jobs.
Previously we allowed up to 1,000. Given that we just need
_some_ job running, I lowered the limit to 75 to give us
some head room.
5 years ago
Greyson Parrelli 4055fe183b Bump version to 4.38.1 5 years ago
Greyson Parrelli 1c47812877 Fix crash when migrating read receipt jobs.
Fixes #8764
5 years ago
Greyson Parrelli 060bed8559 Bump version to 4.38.0 5 years ago
Greyson Parrelli 4a3c173adb Migrated to new JobManager. 5 years ago
Greyson Parrelli 8cf3ba424a Trim long text before displaying if necessary.
Fixes #8759
5 years ago
Alan Evans 9c40de5bf1 Save the SMS setting on a per-conversation basis. 5 years ago
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.
5 years ago
Alan Evans 01a9931d92
Do not use background threads for download UI events. 5 years ago
Greyson Parrelli 38bcc6c293 Long text detail view now respects text size preference.
Fixes #8747
5 years ago
Greyson Parrelli bceb9b4972 Fixed quotes not being cleared when forwarding.
Fixes #8748
Fixes #7935
5 years ago
Alan Evans ecdc285378
Fix unresponsive button on image send with text in landscape.
Fixes #8575
Closes #8638

Co-authored-by: Jakub Gregorek <jg@inthemeadow.net>
5 years ago