Commit Graph

22799 Commits

Author SHA1 Message Date
Matthew Chen
04a3e4323c Respond to CR.
// FREEBIE
2017-03-21 13:00:48 -04:00
Matthew Chen
8231f79977 Don’t check content length header until we’ve received at least one byte of the attachment download.
// FREEBIE
2017-03-21 09:49:51 -04:00
Matthew Chen
2c61943537 Abort attachment downloads of excessive size.
// FREEBIE
2017-03-20 18:16:57 -04:00
Michael Kirk
49da1aea1e [SSK] Only send messages on main thread
// FREEBIE
2017-03-20 16:10:46 -04:00
Michael Kirk
d3af0d3a27 Merge pull request #135 from WhisperSystems/mkirk/fix-attachment-dispatch
Only call sendMessage on main thread.
2017-03-20 16:07:57 -04:00
Michael Kirk
29a0597b0c Only call sendMessage on main thread.
The proximate cause for this change was a failing assert in the recently
introduced call to `setBackgroundTaskIdentifier` which is synchronized
on the main thread.

But generally, to keep things simple, we prefer calling back on main
thread unless performance dictates otherwise.

// FREEBIE
2017-03-20 15:59:45 -04:00
Michael Kirk
0a150b9bb0 Merge branch 'mkirk/refactor_country_code_search' 2017-03-20 15:35:20 -04:00
Michael Kirk
da32570dc6 [SSK] remove convoluted dependency
Moved query method to PhoneNumberUtil since that's they only caller.
Moved corresponding tests to SSK

// FREEBIE
2017-03-20 15:35:09 -04:00
Michael Kirk
ca5bcaf3c2 Merge branch 'mkirk/refactor_country_code_search' 2017-03-20 15:23:01 -04:00
Michael Kirk
c8fa47d9c9 Added some tests per CR
// FREEBIE
2017-03-20 15:22:34 -04:00
Michael Kirk
d3ecbba0e8 Keep unit tests with their class files
Moved from Signal-iOS and updated to use standard XCTest macros vs. our
test-util's

// FREEBIE
2017-03-20 15:11:11 -04:00
Thomas Guillet
478b5b247a Remove convoluted dependency
of PhoneNumberUtil to ContactsManagerProtocol

Also moved tests from Signal-iOS repository here.
2017-03-20 15:11:11 -04:00
Michael Kirk
8ed10c3a9b [SSK] Don't suspend app until message sending completes.
// FREEBIE
2017-03-20 15:06:08 -04:00
Michael Kirk
55063fec63 [SSK] Serialize message sending
Most notable on shoddy networks, Signal-iOS will now make sure that
messages sent first can be delivered first.

This *does* entail that we have to wait for attachments to upload and
send before subsequent messages can be sent. Some people don't like
this, but the majority UX is improved.

// FREEBIE
2017-03-20 15:04:06 -04:00
Michael Kirk
0ecbbfaefe [SSK] backwards compatible attachment digests
// FREEBIE
2017-03-20 15:03:14 -04:00
Michael Kirk
778d3dd2bc Merge branch 'mkirk/background-sending' 2017-03-20 15:00:20 -04:00
Michael Kirk
58829e2162 ensure we don't interrupt sending by being backgrounded
// FREEBIE
2017-03-20 15:00:09 -04:00
Michael Kirk
15f5c078a1 Merge branch 'mkirk/nsoperation-sending-queue' 2017-03-20 14:57:26 -04:00
Michael Kirk
e68ee28e51 Add clarifying asserts per code review
// FREEBIE
2017-03-20 14:57:05 -04:00
Michael Kirk
db15ff5e87 Save message before sending starts.
Otherwise the message doesn't get saved until it's in the queue.
Interestingly, this could also address some of the perceived lag
mentioned in: https://github.com/WhisperSystems/Signal-iOS/pull/1850

// FREEBIE
2017-03-20 14:53:42 -04:00
Michael Kirk
df51523a84 Serialize message sending and generalized retry logic.
Previously messages could be sent out of order if (e.g.)

1. You're on a slow network
2. You send a big attachment
3. You immediately send text

Generally in this scenario, the text will be sent before the attachment.

Also, introduced a more general retry loop to retry on *any* failure
during sending.

Previously the only retry logic was around the messages API on the
Signal Server.

Now we'll also retry failures when allocating an attachment, or
uploading an attachment.

TODO: remove the now redundant retry logic in the message sender?

TODO: there is still one place where we send messages directly through
the MessageSender, rather than via the operation - when resending to a
group due to a safety number change. This is separate logic because we
were being sure to *only* resend to that one recipient. Cleaning this up
would move a lot of code around.

Once Signal-Desktop implements timestamp based de-duping we could shave
that wart by having this troublesome codepath use NSOperation like
everything else.

// FREEBIE
2017-03-20 14:53:42 -04:00
Michael Kirk
d6af5028ca Fix receiving attachments from old clients
Protobuf's null-object pattern provides an empty NSData when no digest
is provided rather than nil.

// FREEBIE
2017-03-20 14:48:45 -04:00
Michael Kirk
c39a26659e Merge pull request #1860 from WhisperSystems/mkirk/intern-pastelog
Intern pastelog
2017-03-20 14:38:29 -04:00
Matthew Chen
612339670a Merge branch 'charlesmchen/messageStateIndicators' 2017-03-20 13:37:58 -04:00
Matthew Chen
97210b4073 Respond to CR.
// FREEBIE
2017-03-20 13:37:41 -04:00
Matthew Chen
bf2db32f85 Respond to CR.
// FREEBIE
2017-03-20 12:55:35 -04:00
Matthew Chen
539e665589 Respond to CR.
// FREEBIE
2017-03-20 12:55:35 -04:00
Matthew Chen
f0e7e635f2 Respond to CR.
// FREEBIE
2017-03-20 12:55:35 -04:00
Matthew Chen
9ae047a1da Add progress & disable media views while uploading attachments.
// FREEBIE
2017-03-20 12:55:35 -04:00
Matthew Chen
3dc7f2528f Align the message state indicators with the behavior on Android and desktop.
// FREEBIE
2017-03-20 12:55:35 -04:00
Matthew Chen
029ae00bb2 Align the message state indicators with the behavior on Android and desktop.
// FREEBIE
2017-03-20 12:55:35 -04:00
Matthew Chen
442546fba8 Align the message state indicators with the behavior on Android and desktop.
// FREEBIE
2017-03-20 12:55:35 -04:00
Matthew Chen
1820fdbde8 Merge remote-tracking branch 'origin/hotfix/2.8.3' 2017-03-20 12:55:05 -04:00
Michael Kirk
42975e44e8 better debug log copy
"Email Support" and "Open a Bug Report"

// FREEBIE
2017-03-17 17:41:23 -04:00
Michael Kirk
8adba61b37 intern Pastelog back into Signal.
Not worth the cocaopods/framework/project mgmt machinery for making
changes to 1 class.

// FREEBIE
2017-03-17 17:37:32 -04:00
Matthew Chen
c88f275c9a Merge branch 'charlesmchen/fixCameraAttachments' 2017-03-17 08:42:32 -03:00
Matthew Chen
b9705cfe06 Fix sending attachments from the camera.
// FREEBIE
2017-03-17 08:42:21 -03:00
Michael Kirk
1e3f0fffeb Invert logging condition. (#1855)
We don't want to log here normally, only when we detect weird strings.

// FREEBIE
2017-03-16 17:17:25 -04:00
Matthew Chen
22aa1d535b Merge branch 'feature/fixFilterCallingCodes' 2017-03-16 15:11:18 -03:00
Matthew Chen
a264d9aa9b Responding to CR.
// FREEBIE
2017-03-16 15:04:59 -03:00
Matthew Chen
a226a4a1b3 Respond to CR.
// FREEBIE
2017-03-16 15:04:59 -03:00
Matthew Chen
e5fdaa1323 Fix filtering of country codes in registration flow.
* Filtering wasn't working; it has been fixed.
* I've added support for arbitrary partial matches and matching based on country code and calling code.

// FREEBIE
2017-03-16 15:01:46 -03:00
Matthew Chen
be36d2ebf2 Merge branch 'charlesmchen/limitOutgoingMessageSize' 2017-03-16 14:44:31 -03:00
Matthew Chen
3440746173 Respond to CR.
// FREEBIE
2017-03-16 14:44:12 -03:00
Matthew Chen
e6e4290fa9 Limit size of outgoing text messages.
// FREEBIE
2017-03-16 14:43:18 -03:00
Matthew Chen
04a112aac9 Merge branch 'charlesmchen/nonUSNonContactSearch' 2017-03-16 14:42:17 -03:00
Matthew Chen
0993860376 [SSK] Update SSK pod to reflect corresponding changes.
// FREEBIE
2017-03-16 14:36:02 -03:00
Matthew Chen
82179c6d47 Respond to CR.
// FREEBIE
2017-03-16 14:34:34 -03:00
Matthew Chen
3048a0146f Fix non-contact lookup for non-US users.
// FREEBIE
2017-03-16 14:34:17 -03:00
Matthew Chen
312f398ddd Merge branch 'charlesmchen/nonUSNonContactSearch' 2017-03-16 13:53:32 -03:00