Commit Graph

2418 Commits (53050b384536390b50cb6bc5d0988255de64a606)

Author SHA1 Message Date
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.
8 years ago
Greyson Parrelli 8579c30909 Styling improvements and code cleanup. 8 years ago
Greyson Parrelli 845fcf0864 Remove ability to set group conversation colors (for now). 8 years ago
Greyson Parrelli 24b062d8dd Improve the look of message bubbles. 8 years ago
Greyson Parrelli b02dda405c Use NetworkBackoffRequirement for group messages. 8 years ago
Moxie Marlinspike bc60cba2b8 Fix default SMS app intent >= N
Fixes #7964
8 years ago
Greyson Parrelli 84e2fcad54 Update UI of toggling shared contact photo. 8 years ago
Greyson Parrelli 6ce8516b93 Make contact photos optional when sharing contacts.
Previously, if you had a contact photo for a user, we'd always send it
Now you can choose whether or not it is sent.
8 years ago
Greyson Parrelli 67407ec667 Hard-code migration for full-text search. 8 years ago
b0m0x 2290549349 add Mi A1 to hardware AEC blacklist
See #7635
8 years ago
Greyson Parrelli bf07048d7b Use earlier read timestamp when syncing read status with desktop.
Previously, we'd always use the value desktop gave us. However, if we
have an earlier read time locally, we want to use that instead.
8 years ago
Greyson Parrelli 3134837d56 Remove plaintext backup import option.
We have our own secure backup solution built into the app now.
No need to support plaintext backups.
8 years ago
Greyson Parrelli c7066c0796 Cast to MmsMessageRecord in ConversationFragment#handleForwardMessage.
Was causing a crash for MMS messages.

Fixes #7951
8 years ago
Greyson Parrelli 18756aedf6 Remove the ability to save backups to the external SD card.
The directory we were previously saving backups to on the external SD
card is actually deleted upon app uninstall and/or clearing the app's
data. There's also no reliable way to write to the root of an external
SD card (that isn't comically inconvenient), so for now it's safer if we
just move back to getting the regular 'ol standard external storage
directory (which is likely internal storage, despite its name).

Fixes #7845
8 years ago
Greyson Parrelli 290b184491 Enable shared contact sending. 8 years ago
Greyson Parrelli 0d386d3c14 Fix progress bar showing for self-sends.
For self-sends, we were never marking attachments as uploaded. I made is
so that happens now, but to prevent it for showing for already-sent
messages, we also don't show controls for self-send conversations.
8 years ago
Greyson Parrelli fd6d947df3 Fix ClassCastException in ThreadDatabase.
I casted too deep. Forgot about NotificationMmsMessageRecord.
8 years ago
Greyson Parrelli 381547d668 Fix crash with formatting emails in recipient settings.
Fixes #7868
8 years ago
Greyson Parrelli f72f75ee61 Show a link for privacy policy. 8 years ago
Greyson Parrelli b39a7ac939 Add expiration time to group update requests. 8 years ago
Greyson Parrelli b5d4cac90a Send/receive expiration times for group updates.
This particularly helps with the bug where people who were newly added
to a group wouldn't receive an expiration timer until the first message
was sent.
8 years ago
Greyson Parrelli dae655fd01 Fix conversation snippet for contact shares.
Previously, contact shares would be displayed as "Media Message". Now
it'll show the same as it does in a notification, namely
"{contact-emoji} {contact-name}".
8 years ago
Greyson Parrelli 933be54035 Update scheduling of ServiceOutageDetectionJob.
Previously, we were running this job in PushSendJob#onCanceled().
However, with the new retry logic, this won't happen for 24 hours.

Instead, we now schedule the job in PushSendJob#onRetry().
8 years ago
2-4601 f1d8fd8838 Add devices to hardware AEC blacklist
- Moto G4
- Nokia 5 (TA-1053)

Alleviates #7635
8 years ago
Greyson Parrelli a50edc3d25 Keep retrying message sends for 24 hours.
Previously, we retried based on a count. Now we've added the ability to
keep retrying for a specified time, using exponential backoff to
throttle attempts.
8 years ago
Greyson Parrelli 62c42a3513 Fix disappearing message corner case.
We never properly registered the ExpirationListener, meaning we were
relying on the wait-notify loop of ExpirationManager to delete things.
This normally works, but fails when your phone goes to sleep. So I
properly registered the receiver, and then added a failsafe to re-run
the ExpirationManager if we're about to render an expired message.

Fixes #7906
8 years ago
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.
8 years ago
Greyson Parrelli 5f99470226 Allow searching for words with apostrophes.
Previously, because apostrophes were 'banned' characters, searching for
them wouldn't work. That meant you couldn't find words like "I'm". Now
we just replace the apostrophe with a space and things "just work"
because of the nature of SQLite tokenization and prefix queries.
8 years ago
Greyson Parrelli afec9e8cb0 Improve highlighting in search results.
Previously, we didn't support highlighting search results that had
tokens in the middle of the matches, which is a possibility with FTS.
Now we do more robust highlighting, as well as highlight matches in
phone numbers.
8 years ago
Greyson Parrelli 89fd7dda23 Break FTS queries into multiple prefix queries.
Previously, we made each full-text search query a single prefix query.
That means that the query "do c" would turn into "do c*". That means it
would match "do cat" but not "dog cat".

Now, we make each token a prefix query. So "do c" would turn into
"do* c*". That means it would match both "do cat" and "dog cat".
8 years ago
Greyson Parrelli 3563efc7de Update search query results when messages disappear.
Previously, if a message disappeared while looking at it in the search
results, it'd still stick around. Now they'll disappear from the results
in real-time.
8 years ago
Greyson Parrelli ea4ac9db30 Fixed issue where self-sends didn't auto download.
1) There was an issue where we wouldn't auto-download group syncs.
2) There was another issue where we didn't show the download controls
   for messages you sent yourself.

Fixed #7920
8 years ago
Greyson Parrelli 71a34dac5f Fix backup/import issue with expiring messages.
There was an issue where we were backing up group receipts and attachments
that were for expiring messages (which are already excluded from the backup).

This commit excludes these items from the backup, and for backups made
before this change, this commit also deletes these invalid entries at
the end of the restore process.

We also do a little database migration to cleanup any bad state that may
have been imported in the past.
8 years ago
Greyson Parrelli 61b2da9c8a Fix NPE during busy call. 8 years ago
Greyson Parrelli 3a85c966d0 Fix false-positive outage detection.
Turns out that there's some weird quasi-state when you come out of
airplane mode, that if you do an InetAdress lookup, it returns some
weird IPv6-looking garbage address. Going to retry in that scenario
instead of assuming an outage.
8 years ago
Greyson Parrelli fe4ce88439 Revert "Upgrade SQLCipher to respect a max window size."
This reverts commit dace93abb3.
8 years ago
Greyson Parrelli 542e962be9 Fixed crash when ScribbleView failed to save.
Previously, if an operation failed, we set the result to "null".
However, this was a mistake. Setting the result at all assumes success.
Instead, we need to set an exception so the ListenableFuture knows that
the operation failed.
8 years ago
Greyson Parrelli 2c17b54ef9 Show a banner in the event of a service outage.
We will now determine if there has been a service outage and render a
banner at the top of the conversation list if we detect that there has
been one.
8 years ago
Greyson Parrelli 0999359454 Improve the image editor.
A variety of improvements to the image editor, such as:

- New, fullscreen styling
- Smoother lines
- Better text and sticker handling
- Improved color picker with a history pallette
- New highlighter tool
8 years ago
Greyson Parrelli dace93abb3 Upgrade SQLCipher to respect a max window size.
Previously, SQLCipher's memory usage would grow indefinitely, up until
it hit the end of the cursor. We've now switched to a release where the
memory  used by the cursor can be bounded.
8 years ago
Greyson Parrelli df2c5d38b0 Don't notify new users if there is a pending SQLCipher migration.
If a user is upgrading to use the SQLCipher database (which happened
back in 4.16, so this only applies to relatively dormant users who are
just getting back into the app) and received a new "user X joind signal"
message, then it could screw up the migration. So we're just dropping
these notifications that happen in this narrow window.
8 years ago
Greyson Parrelli 79857b98b3 Fix bug with quoted reply notifications. 8 years ago
Greyson Parrelli 626e6930a5 Fix search header rendering after rotation.
The sticky header cache was keeping views across rotations, causing them
to render incorrectly afterwards. I added a method to invalidate the
header layouts after rotation.

Fixes #7890.
8 years ago
Greyson Parrelli 44f5cc9070 Annotate methods in AttachmentUtil as @WorkerThread. 8 years ago
Greyson Parrelli 30be732ae8 Don't auto-download attachments from unknown contacts. 8 years ago
Greyson Parrelli 2b45b3caa2 Fixed export and restore of FTS tables.
First, FTS index contents do not need to be exported. They will be recreated naturally.

Second, we can't export the secret FTS tables, or SQLite will think it's corrupted.
8 years ago
Greyson Parrelli b7282589de Fixed issue with backup and restore when creating new tables.
Fixes #7863
8 years ago
Greyson Parrelli 6bc7f2a5a4 Fix NPE in FTS when snippet is null. 8 years ago
Greyson Parrelli 3731e2a74a Fix jumbomoji rendering and EmojiTextView resizing.
Fixed an issue where jumbomoji were not properly being rendered
when using system emoji. Also fixed an issue where the text
content wasn't properly being recalculated when the view is
resized.

Fixes #7875
8 years ago
Greyson Parrelli f0e5aa312e Allow EmojiTextView to redraw after changing emoji setting.
Also just fixed some minor formatting issues.
8 years ago
Greyson Parrelli ceafb0d130 Reduce emoji flickering and other ellipsize woes.
1. Switch to using default text rendering if there's no emoji present in
the string.

2. Reduce redudant redraws by skipping of setText() calls for identical
strings.

Together, these two changes should reduce the vast majority of
flickering we see with EmojiTextView ellipsizing.
8 years ago
Moxie Marlinspike 70c2a863cc Correctly store backup
Fixes #7831
8 years ago
Greyson Parrelli d813275f42 Increase number of recent conversations shown when sharing.
Intended to reduce the pain of #7202.
8 years ago
Greyson Parrelli 5650a02cfb Sort search results exclusively by date.
I think I was initially lured into searching by rank because it gives
the illusion of providing the "best match". However, in practice, FTS
never gives back "bad" matches with low ranks -- all of the results it
returns will contain your query in some form (most commonly a direct
substring, but they do take some liberties if you have multiple tokens
in your queries). Given that, in general, more recent search results are
in fact more relevant, we can sort by date exclusively and get a better
ordering overall.
8 years ago
Greyson Parrelli 0503c9eea5 Prevent replies on action messages.
Fixes #7829
8 years ago
Greyson Parrelli abae419853 Flatten multiline text snippets in search results.
If a search result snippet spans two lines, we only show the first line.
For the purpose of display, we first remove all newlines in order to
make the full snippet visible.
8 years ago
Greyson Parrelli 71ccbf2a1b Secondarily sort search results by date.
This should help with getting back search results that more closely
match user intention.
8 years ago
Greyson Parrelli 92a64f59a4 Switch search to use the existing header.
Probably best to not try out any possible new design changes just yet.
Let's stick with what we have.
8 years ago
Greyson Parrelli e189fff856 Fixed some cursor-related bugs in Search. 8 years ago
Greyson Parrelli e6e8416aec Use correct recipient for message search results.
Previously, we'd always use the recipient of the message record, which
was incorrect for messages sent to groups. Now we always use the
recipient for the matching thread record.

Fixes #7823
8 years ago
Greyson Parrelli a792a6e6ae Fixed ThumbnailView sizing problems.
Glide will use the dimensions of the target ImageView as the dimensions
for the image it's loading. This caused problems in the case of
ThumbnailView, as we were constantly changing the ImageView dimensions,
meaning Glide may not have the most recent values (it may be called in
between measure calls, for instance).

To solve this, we now will always override the default image dimensions
when we load an image. If no dimensions are present, we will default to
the layout_width and layout_height of the ThumbnailView.

Fixes #7810
8 years ago
Greyson Parrelli 0b1b568893 Fix notifications for replies.
Notifications for replies will no longer display as a "Media Message" if
they do not contain media. Instead, they will just contain the reply
text.

Fixes #7798
8 years ago
Greyson Parrelli 93effc8890 Disable contact sending. 8 years ago
Greyson Parrelli 5d75f11cbc Bump version to 4.20.0. 8 years ago
Greyson Parrelli 0449647cf9 Implemented full-text search.
You can now use the search bar on the conversation list to find
conversations, messages, and contacts.
8 years ago
Greyson Parrelli c0b75c2ef5 Disable shared contact sending.
Sending shared contacts isn't backwards-compatible, so we want to have a
few releases where receiving is enabled, but not sending. That way, when
we enable sending, most users should be able to properly receive the
shared contact messages.
8 years ago
Greyson Parrelli ca260a92e3 Convert vCard attachments to Shared Contacts.
When you share a vCard from an external app (like the Contacts app) into
Signal, we'll now convert it to a pretty Shared Contact message and
allow you to choose which fields of the contact you wish to send.
8 years ago
Greyson Parrelli e6c16cf28d Allow editing of contact names.
Took care to properly format CJK names.
8 years ago
Greyson Parrelli 54dbffaf30 Added ability to share contacts.
The "contact" option in the attachments tray now brings you through an
optimized contact sharing flow, allowing you to select specific fields
to share. The contact is then presented as a special message type,
allowing you to interact with the card to add the contact to your system
contacts, invite them to signal, initiate a signal message, etc.
8 years ago
Greyson Parrelli 17dbdbd0a9 Handle quote position task finishing after fragment detaches.
There's a chance that the AsyncTask that retrieves a quoted message's
position could finish after the fragment is detached, which would cause
a crash. I've changed it so if this case occurs, the result is ignored.

Also, I noticed that when searching the message table, if a quote can't
be found, we'd end up traversing the entire table. To prevent this from
taking forever on large message tables, I've limited it to searchin only
what is currently present in the adapter.

Fixes #7756
8 years ago
Greyson Parrelli ca8fecea9c Clean up camera flipping, handle having missing cameras.
Did a refactor to better organize the camera flipping code. Also, I
wanted to make sure we handle the cases where the user doesn't have two
cameras (or no cameras, for that matter). In these cases, we just don't
show the appropriate buttons.
8 years ago
Niklas Hambüchen f1c79eaebf Add button to flip camera (front vs rear). Fixes #6279 8 years ago
Moxie Marlinspike 6c1a1fb9ad Use cache directory on removable storage for backups if present
Fixes #7692
8 years ago
Moxie Marlinspike 35d158cfee Treat Permissions "not now" as a denial
Fixes #7713
8 years ago
Moxie Marlinspike a5047cb17b Fix for sender's expiring messages in group with unregistered user
Fixes #7719
8 years ago
Moxie Marlinspike 5006b36e2d Show lock notification immediately after setting is toggled
Fixes #7659
Closes #7678
8 years ago
Greyson Parrelli 102941c18c Fix QuoteView measuring when voice notes are present.
Fixes #7740
8 years ago
Greyson Parrelli 43622e603d Save replies in drafts.
Previously, quotes were not saved to drafts, meaning they would be lost
when leaving the conversation or app. Now, a QuoteId (which represents
the necessary data to restore the QuoteModel) is serialized and stored
in the DraftDatabase.

Fixes #7716
Closes #7729
8 years ago
Greyson Parrelli 6fbbc9d078 Render emoji's properly in quote bubbles.
Unfortunately, the change wasn't as simple as just switching to use our
EmojiTextView. That view only supported single-line text. I added
support for multi-line text.

Fixes #7704.
8 years ago
Greyson Parrelli cbe394025d Fix reply-to colors in dark mode to increase contrast.
Fixes #7705
8 years ago
Nicholas Rizzio e6f76159b0 Export "creating backup" string
Closes #7656
8 years ago
Henning Dodenhof e0603abdd3 Use FileProvider for update file handling
Fixes #7654
Closes #7658
8 years ago
Moxie Marlinspike 2a1ce859c4 Add Moto G (5S) Plus to hardware AEC blacklist
For #7635
8 years ago
Moxie Marlinspike 8452fc6c58 Correctly avoid displaying about category in groups
Fixes #7702
8 years ago
Moxie Marlinspike 2ac0179d65 Handle odd sized buffers on backup import decrypt
Fixes #7701
8 years ago
Greyson Parrelli fa99e8f0d0 Updated reply-to UI.
All UI components are now properly styled and functioning according to
spec.
8 years ago
Moxie Marlinspike d567534609 replies 8 years ago
Moxie Marlinspike 8bec5a96f5 Make delivery receipts work correctly on CDMA networks
Fixes #7646
8 years ago
Moxie Marlinspike d8a6fcf979 Retain latest 2 instead of latest 5 backups
Fixes #7650
8 years ago
Moxie Marlinspike 2c405d1769 Delete raw contacts that are marked for deletion
Fixes #7628
8 years ago
Moxie Marlinspike 821957137a Check for context liveness to prevent NPE
Fixes #7633
8 years ago
Greyson Parrelli b8fbc91f33 Only show copy if text is selected, remove newlines from copied text.
We now check if _any_ text is selected when doing a batch selection
to determine if we should show the copy option. Also, previously it
was putting in empty lines for messages that don't have any text. I
changed it so empty messages have no effect on the text that is copied.

Fixes #7472
8 years ago
FeuRenard 404610fbcd Pass correct address from media overview to preview
Fixes #7384
Closes #7387
8 years ago
Moxie Marlinspike 3f3d7f549b Make an attempt to store/retrieve backups from removable storage
Fixes #7521
8 years ago
Moxie Marlinspike 7dd8baba5a Add permission callback to preference fragment 8 years ago
Moxie Marlinspike eb0af13887 Fix location URL encoding
Fixes #7604
8 years ago
Moxie Marlinspike 72310ed3c6 Group member dialog tap takes you to recipient preference
Fixes #7463
8 years ago
Moxie Marlinspike e86a9ce7eb Add phone number and direct dial to recipient preferences 8 years ago
Moxie Marlinspike 0b0853a223 Clear cache on update 8 years ago
Moxie Marlinspike ccc3ff4aac Fix for Glide image caching issue
Fixes #7630
8 years ago
Moxie Marlinspike ca471b1408 Explicitly remove messages.db journal
Fixes #7636
8 years ago
Moxie Marlinspike 3bceb0d8ec Delete old message DB 8 years ago
Moxie Marlinspike 0753ff85ed Default snippet type to 0 if it's null
Fixes #7551
8 years ago
Moxie Marlinspike b9f99f9941 Manually calculate length of attachments if they're super old
Fixes #7560
8 years ago
Moxie Marlinspike 2c82b3610d Mark DB current after backup upgrade process
Fixes #7596
8 years ago
Greyson Parrelli 18039bc3f4 Show groups when searching for contacts.
Currently, if you're searching for a contact to start a conversation
with or send a share to (via the Android sharing system), groups do not
appear. With this change, groups will now appear when searching, located
under their own  heading.

Fixes #7202.
Closes #7577
8 years ago
Greyson Parrelli a573ab7c76 Setup alternate domain front.
In preparation for Google shutting down domain fronting.

Closes #7584
8 years ago
Greyson Parrelli ea374735e1 Render images in a conversation true-to-size.
Previously, we were always rendering images as squares. Instead of doing
that, we now render them as close to true-to-size as possible (within
reasonable min/max width/height boundaries).
8 years ago
Moxie Marlinspike 9f8b4cf892 Populate incoming attachments with width and height from message 8 years ago
Moxie Marlinspike 3c30db7edf No longer generate image thumbnails manually
Delete manually calculated image thumbnails
8 years ago
Moxie Marlinspike 95d76638dc Simple encrypted glide disk cache 8 years ago
Greyson Parrelli 7e1e666172 Strip EXIF metadata from all JPEG images.
Strip all EXIF metadata from all JPEGs by re-encoding the JPEG. This
will keep all of the necessary visual effects of the tags (by encoding
them directly in the image data) while stripped the EXIF tags
themselves.
8 years ago
Greyson Parrelli 10e5b24cfd Allow batch deletion of media.
It is now possible to batch-delete media in the "media overview" screen.
You can long press to enter multi-select mode. Then a delete button
appears on the menu bar. After pressing delete, you will get a
confirmation, and if the user confirms, the items will delete while a
progres dialog shows.
8 years ago
Greyson Parrelli 0c768a24e4 Allow deletion of media through preview.
When viewing a media in the media preview, you can delete it by pressing
a delete button on the action bar. It will then ask you to confirm your
choice. If you confirm, it will delete the attachment from the database
and from disk. If it was the only attachment for that message, the
message itself will also be deleted.
8 years ago
Moxie Marlinspike d6610f0dd0 Add profile avatars to backup
Fixes #7450
8 years ago
Moxie Marlinspike 261296e41b Don't crash direct share service if avatar photo is missing
Fixes #7541
8 years ago
FeuRenard 9c0129c4b0 Allow skipping registration PIN intervals on success
Closes #7517
Closes #7518
8 years ago
Moxie Marlinspike b168e14985 Move salt outside the loop 8 years ago
Moxie Marlinspike 73233c01ba Fix backup NPE
Fixes #7526
8 years ago
Moxie Marlinspike 90006e81db Add salt to backup header 8 years ago
Greyson Parrelli f544b7d7b4 Reduce image stutter by using subsampling more often.
Fixes #7208.
8 years ago
Moxie Marlinspike 41d06fc8c2 Simplify reminder interval lookup
Fixes #7513
8 years ago
Moxie Marlinspike aff65abe91 Hide keyboard after backup passphrase entered
Fixes #7508
8 years ago
Moxie Marlinspike 64afce5f66 Switch to parameterized statements for backup
Fixes #7507
8 years ago
Moxie Marlinspike 6b5da7f8cf Disable registration lock reminders for <=KK devices
Fixes #7500
8 years ago
Moxie Marlinspike 43d7e99a50 Don't offer backup restore on reregistration
Fixes #7502
8 years ago
平民·寻梦(Pingmin Fenlly Liu) cc288d1e43 Just update to the new repo path "github.com/signalapp"
Closes #7469
8 years ago
junitas 7f7aab044c Escape single quotes in SQLite entries for message backups
Fixes #7491
Closes #7497
8 years ago
Moxie Marlinspike c8dd62cecf Make it possible to set a zero value for screen lock timeout
Fixes #7485
8 years ago
Moxie Marlinspike 11ce4ee807 Actually increment event count 8 years ago
Moxie Marlinspike 40d14698b8 Fix NPE introduced by #6886 8 years ago
Moxie Marlinspike 34ed55d3ac Post backup progress event for every item
Fixes #7483
8 years ago
Moxie Marlinspike 954b2f22f6 Don't immediately prompt for registration lock pin after reregistration
Fixes #7484
8 years ago
Moxie Marlinspike b39820dcb6 Clarify Registration Lock reminder
Fixes #7484
8 years ago
Moxie Marlinspike 1a24885110 Fix issue "home button" issue with screen lock
Fixes #7475
8 years ago
Moxie Marlinspike 29fcce23b1 Prevent double screen lock intent from firing
Fixes #7475
8 years ago
Moxie Marlinspike a2d04f4806 Prevent us from sql injecting ourselves on backup/restore
Fixes #7478
8 years ago
Andy Staudacher 61a7062030 Remove obsolete workaround for DE/FI/SK shortcodes
libphonenumber supports these since December 2015 / January 2016.
Most of these changes went into libphonenumber-7.2.2 (Dec 15, 2015),
the last changes related to this into libphonenumber-7.2.4 (Jan 28, 2016).
This was about adding EU-wide helplines 116xxx (http://ec.europa.eu/digital-agenda/en/116-helplines).
See: https://github.com/googlei18n/libphonenumber/blob/master/java/release_notes.txt

Closes #6130
8 years ago
Sam Lanning 69f180a5ec Fix some potential integer overflows for expiration time
In a number of locations in the code, there were conversions of message
expiration times from seconds to milliseconds, and then assigned to `long`
contexts. However these conversions were being done as integer multiplication
rather than long multiplication, meaning that there was a potential for
overflows.

Specifically, the maximum value that could be represented before overflowing
was (2^31 / 1000 / 60 / 60 / 24) days = 24.8 days (< 1 month). Luckily the
current allowed timeouts are all less than that value, but this fix would
remove the artificial restriction, effectively allowing values of 1000x greater
(68 years), at least for android.

Related #5775
Closes #7338
8 years ago
Andrew Gaul 10c1ee70e8 Make some inner classes static
Closes #7370
8 years ago
FeuRenard 0efda2df91 Make toast after saving attachment translatable
Closes #7374
8 years ago
art1fa 4bdb2acd29 Batch selection mode improvements
Simplified and now the same for conversation and conversation list.

Added also some styling.

Closes #7410
8 years ago
FeuRenard 527e39eee8 Don't save white space drafts
Fixes #7308
Closes #7383
8 years ago
Marek Sebera 694a5de2c3 Send m-notifyresp-ind (NotifyRespInd) for retrieved MMS on Lollipop API 8 years ago
junitas 4b5d7bbfa4 Ignore swipe events for ConversationListItemInboxZero
Fixes #7423
8 years ago
Moxie Marlinspike 110d33ddf8 Support for Registration Lock PINs 8 years ago
Moxie Marlinspike d28dc670ea Migrate to Android fingerprints and auth for Signal screen lock 8 years ago
Moxie Marlinspike 3970a30e14 Add chunk IV to chunk MAC 8 years ago
Moxie Marlinspike 24e573e537 Support for full backup/restore to sdcard 8 years ago
Moxie Marlinspike 9f6b761d98 Migrate sessions into database 8 years ago
Moxie Marlinspike 9f3c04dfb5 Migrate prekeys into database 8 years ago
Moxie Marlinspike 6239508b39 Clean file names for belt and suspenders 8 years ago
Moxie Marlinspike 71c7ef5b5e Support for custom call ringtone selection and per-chat ringtones 8 years ago
Moxie Marlinspike bebdbe2aaa Remove master secret requirement from SMS received job
Fixes #7444
8 years ago
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
8 years ago
Moxie Marlinspike a0a9e412b4 Correctly lock screen when locked from conversation list
Fixes #7441
8 years ago
Moxie Marlinspike 028c6edd8a Manually calculate attachment offsets
The CipherInputStream skip() method is pretty non-functional

Fixes #7438
8 years ago
Moxie Marlinspike 7318236286 Delay processing SMS messages until after sqlcipher migration
When screen lock passphrase is enabled

Fixes #7390
8 years ago
Moxie Marlinspike 0bbe83f8f2 Don't copy column to sqlcipher db if it doesn't exist there
Fixes #7386
8 years ago
Moxie Marlinspike 2b651ee323 Prevent NPE in #7375 8 years ago
Moxie Marlinspike 9d5d43cf3a Wait to process messages until after migration when screenlocked
Fixes #7390
8 years ago
Moxie Marlinspike 93ca2ad8cf Fix new conversation activity crash 8 years ago
Moxie Marlinspike 3633d805c8 More MasterSecret cleanup 8 years ago
Moxie Marlinspike 59092e2ec0 No need for an encrypted serializer any longer 8 years ago
Moxie Marlinspike e6a069af6d Remove unnecessary body model 8 years ago
Moxie Marlinspike 23aee53c7d Add determinte progress and foreground service for sqlcipher migration 8 years ago
Moxie Marlinspike bdd4b456c4 Have stream generate random value 8 years ago
Moxie Marlinspike 7b353a94d8 Trigger DB schema change on application DB update Activity 8 years ago
Moxie Marlinspike 5496f5baac Deprecate encrypted storage DB types 8 years ago
Moxie Marlinspike f36b296e2e Migrate from SQLite and ciphertext blobs to SQLCipher + KeyStore 8 years ago
Moxie Marlinspike 799b9c2074 Adjust media preview viewpager swipe direction for rtl 8 years ago
Moxie Marlinspike 14644077e7 Change media preview swipe direction based on entry point
Fixes #7354
8 years ago
Moxie Marlinspike 24e6605024 Reverse media order in ViewPager
Fixes #7354
8 years ago
Moxie Marlinspike bc64230a65 Switch to HackyViewPager for media preview
Fixes #7344
Fixes #7335
8 years ago
Moxie Marlinspike 763fa0dd21 Catch exception on image decoding error in notification 8 years ago
Moxie Marlinspike e60715587f Update service lib to 2.7.0 8 years ago
Moxie Marlinspike 95ebae5d5f Support onStop/onStart media display in the correct position
Fixes #7330
Fixes #7329
8 years ago
Moxie Marlinspike fe02b3f8d3 Catch exception from misconfigured MMSC
Fixes #7339
8 years ago
Moxie Marlinspike 94e2b9e66e Make video player in media player control a view stub 8 years ago
Moxie Marlinspike b307980d8c Perform a contact sync with every directory refresh 8 years ago
Moxie Marlinspike 8bba45f396 Add swipe gestures to media view
Fixes #2355
Closes #6632
8 years ago
Moxie Marlinspike 34424a9b3e Fix crash when signal messages disabled in group conversation
Fixes #6419
Closes #6803
8 years ago
Moxie Marlinspike a798f97aa3 Update to webrtc M64 8 years ago
Moxie Marlinspike 6dcec7c2c5 Fix service calls that won't foreground 8 years ago
Moxie Marlinspike 512dc19471 Fix dynamic permissions problem for MMS messages 8 years ago
Moxie Marlinspike 425d6b8adf Fix crash for dynamic permissions + background directory load 8 years ago
Moxie Marlinspike 4acedd2a4b Fix notification ringtone problems
Default ringtone was often showing up as a call tone

Silent wasn't working correctly globally
8 years ago
Moxie Marlinspike d782d3006b Per-recipient ringtones can't be file based 8 years ago
Moxie Marlinspike 9c77ffc2a4 The webrtc busy state could be idle, but system dialer connected 8 years ago
Moxie Marlinspike 0ec1ae4ed3 Request needed permissions for thread search 8 years ago
Moxie Marlinspike f22186e6f4 Debounce call screen answer button
Fixes #7274
8 years ago
Moxie Marlinspike 4de14a5dc1 Only use startForegroundService for initial service construction 8 years ago
Moxie Marlinspike f72e35bf42 Fix typo that requests SMS permission for media/group message
Fixes #7271
8 years ago
Moxie Marlinspike 303b98b7c2 Register and unregister receiver with same context
Fixes #7267
8 years ago
Moxie Marlinspike d5215b3593 Avoid potentially unregistering bluetooth twice 8 years ago
Moxie Marlinspike f315b1db80 Make save attachment task toast location instead of snackbar 8 years ago
Moxie Marlinspike f100137e0f Synchronize and copy Recipient.getParticipants 8 years ago
Moxie Marlinspike 37092eee01 Externalize strings 8 years ago
Moxie Marlinspike 261d187567 Don't perform multi-device contact update without contact perms 8 years ago
Moxie Marlinspike b58c87a56b Only notify when address is in contacts 8 years ago