Commit Graph

609 Commits

Author SHA1 Message Date
Matthew Chen dd3394be1b Cache display names for accounts.
// FREEBIE
2017-05-30 09:41:28 -04:00
Michael Kirk 85d0d27505 [SSK] remove some redundant error notifications
// FREEBIE
2017-05-26 15:49:53 -07:00
Michael Kirk 37e0b1a004 Sending to unconfirmed idnetity presents confirmation
Rather than send/fail

// FREEBIE
2017-05-26 15:39:10 -07:00
Michael Kirk 1a03be8ae7 Fetch safety number upon entering thread
* uniform method to get recipients in group/contact thread
  * use it to clean up markAsSeenJob

// FREEBIE
2017-05-26 09:50:09 -07:00
Matthew Chen 1d792d1878 Rename audio duration and image size methods in TSAttachmentStream.
// FREEBIE
2017-05-26 11:19:45 -04:00
Michael Kirk fc37e251de [SSK] log error on failure
// FREEBIE
2017-05-25 08:38:54 -07:00
Michael Kirk 4700294c26 [SSK][SPK] Safety Number Updates
// FREEBIE
2017-05-24 18:08:46 -07:00
Michael Kirk bb25d2beb6 IdentityKeyStore changes
1) Always accept keys from incoming messages

2) Block sending only if it's a recent change, or if always
   block is enabled

// FREEBIE

// FREEBIE
2017-05-24 18:01:24 -07:00
Matthew Chen f30cd7c7fa [SSK] Remove invalid assert in socket manager.
// FREEBIE
2017-05-24 17:45:25 -04:00
Matthew Chen d8ade3288c [SSK] Cache image size and audio duration on attachments.
// FREEBIE
2017-05-24 10:02:24 -04:00
Matthew Chen b1f7cf0d62 Cache image size and audio duration on attachments.
// FREEBIE
2017-05-24 10:02:24 -04:00
Matthew Chen b0005ea932 Respond to CR.
// FREEBIE
2017-05-23 09:33:31 -04:00
Matthew Chen 2e36f41838 Add support for manually activating censorship circumvention.
// FREEBIE
2017-05-22 20:34:25 -04:00
Matthew Chen 7b70fe674a “Add to contacts” offer.
// FREEBIE
2017-05-22 18:27:11 -04:00
Matthew Chen 4223766e60 [SSK] Try the country code for the local phone number when parsing phone numbers.
// FREEBIE
2017-05-22 18:26:11 -04:00
Matthew Chen e7de25ab01 [SSK] Pin YapDatabase to v2.9.3 to avoid v.3.x.
// FREEBIE
2017-05-19 18:05:38 -04:00
Matthew Chen cab9e3d3db [SSK] Persist attachment file paths.
// FREEBIE
2017-05-19 17:35:40 -04:00
Matthew Chen e4f31b5e40 Rename attachment source filename property.
// FREEBIE
2017-05-19 17:21:31 -04:00
Michael Kirk 7e031b7306 [SSK] Show SN changes in groups, and include name
// FREEBIE
2017-05-19 17:04:11 -04:00
Michael Kirk dfd438e5f8 revert Yap update until next release
// FREEBIE
2017-05-18 10:21:41 -04:00
Michael Kirk 557488bc7d return iOS8 support in project files
// FREEBIE
2017-05-18 10:05:39 -04:00
Matthew Chen 07cc8baa60 [SSK] Honor the local calling code in select recipient view.
// FREEBIE
2017-05-18 09:53:48 -04:00
Matthew Chen 6833fb7181 [SSK] Retry push token registration.
// FREEBIE
2017-05-17 16:21:41 -04:00
Michael Kirk 72168e2881 [SSK] faster contact parsing
// FREEBIE
2017-05-15 16:38:33 -04:00
Michael Kirk 20ad9114e2 [SSK] Reduce time between editing contacts and seeing those changes in
the app

cache phone number parsing

// FREEBIE
2017-05-12 19:25:58 -04:00
Matthew Chen 09f8a20acb [SSK] Revert "Merge branch 'charlesmchen/autoMarkAsRead'"
// FREEBIE
2017-05-12 16:22:53 -04:00
Matthew Chen 625b1d0200 [SSK] Only reply to group info requester & Don’t reply to “request group info” messages from non-members of the group in question.
// FREEBIE
2017-05-12 16:12:38 -04:00
Michael Kirk da58eb18ad partial revert of previous pod update
// FREEBIE
2017-05-12 15:52:38 -04:00
Matthew Chen 67c3bca913 [SSK] Move filename property to TSAttachment.
// FREEBIE
2017-05-12 09:51:36 -04:00
Matthew Chen 96e155c75e Rework appearance of voice messages and audio attachments.
// FREEBIE
2017-05-12 09:46:54 -04:00
Matthew Chen c7777bcb13 [SSK] Show example phone numbers.
// FREEBIE
2017-05-10 16:15:15 -04:00
Matthew Chen 0adcd157da [SSK] Don’t ignore “unnamed” phone numbers.
// FREEBIE
2017-05-10 14:59:41 -04:00
Matthew Chen eb385f1e97 [SSK] Rework the “disappearing messages” logic.
// FREEBIE
2017-05-10 14:55:31 -04:00
Matthew Chen 8871331cfa [SPK] Update license.
// FREEBIE
2017-05-10 10:26:08 -04:00
Matthew Chen 387f1018f5 [SSK] Auto-rejoin groups by emitting and responding to “request group info” messages.
// FREEBIE
2017-05-10 10:06:19 -04:00
Michael Kirk e295f92943 [SSK] Safer SignedPreKey deletion policy
// FREEBIE
2017-05-09 19:09:46 -04:00
Matthew Chen d535ce3155 [SSK] Flag voice messages as such in protos.
// FREEBIE
2017-05-09 11:45:16 -04:00
Matthew Chen 560122067c [SSK] Prefer to deduce the MIME type from the file extension using lookup, not the UTI type.
[SSK] Try to deduce attachment MIME type from the file extension if possible.

// FREEBIE
2017-05-09 11:30:32 -04:00
Matthew Chen 0137e01aff Try to deduce attachment MIME type from the file extension if possible.
// FREEBIE
2017-05-09 11:29:33 -04:00
Matthew Chen bbf099894c [SSK] Fix a hotspot in the phone number parsing logic.
// FREEBIE
2017-05-05 21:07:32 -04:00
Matthew Chen 057bb76e66 [SSK] Rework handling of phone number names.
// FREEBIE
2017-05-05 21:01:51 -04:00
Matthew Chen 0c4351a908 Use SignalAccount class to sync contacts.
// FREEBIE
2017-05-05 20:57:35 -04:00
Michael Kirk 835ab3dd93 [SSK] fix some compiler warnings
// FREEBIE
2017-05-05 14:28:24 -04:00
Michael Kirk 83a089f429 [SSK] better sender logs
// FREEBIE
2017-05-04 09:48:45 -04:00
Michael Kirk b24cf29189 don't request contacts until necessary
Most commonly this will be after hitting the "compose" button

But also we'll do it in the SignalViewController once you've received a
message.

- get rid blocking contacts nag
- use Contacts framework simplifies logic
- remove dead AB code

// FREEBIE
2017-05-04 09:47:04 -04:00
Matthew Chen 931b6b4200 [SSK] Minor cleanup.
// FREEBIE
2017-05-03 18:02:59 -04:00
Matthew Chen 563ccf671e [SSK] Temporary change to improve read receipt logging.
// FREEBIE
2017-05-03 18:01:09 -04:00
Matthew Chen c2cdeb3bcd Remove SCWaveformView.
// FREEBIE
2017-05-03 17:05:27 -04:00
Michael Kirk 4b6bfa4c4c "home", "other" and "work" instead of "Unknown" phone label
// FREEBIE
2017-05-03 16:50:49 -04:00
Matthew Chen cb293f286a [SSK] Add SignalAccount class, Extract labels for phone numbers.
// FREEBIE
2017-05-02 12:40:51 -04:00
Matthew Chen 42768294ee Extract labels for phone numbers.
// FREEBIE
2017-05-02 09:28:50 -04:00
Michael Kirk e1162fa641 [SSK] Better debugging information
- explicitly log type of received message vs. just "encrypted message"
  for better call debugging
- debug tool to print signed prekey report

// FREEBIE
2017-05-01 10:28:54 -04:00
Matthew Chen 788ec4ce01 Respond to CR.
// FREEBIE
2017-04-26 13:27:24 -04:00
Matthew Chen 8bf4cb83a5 [SSK] Improve handling of whitespace in contacts.
// FREEBIE
2017-04-20 20:26:51 -04:00
Matthew Chen d248f6117f [SSK] Ignore oversize messages.
// FREEBIE
2017-04-20 17:37:57 -04:00
Michael Kirk b3fc16b0ba [SSK] handle synced reset-session messages
// FREEBIE
2017-04-19 19:40:21 -04:00
Michael Kirk 5bbcc23da5 [SSK] Do not retry fatal message send errors.
e.g. don't retry group sends when someone had a SN change

// FREEBIE
2017-04-19 18:54:24 -04:00
Michael Kirk d9e3e87735 New downloading progress view (#2006)
Replace previous "scary" warning-style attachment notifications with
something less alarming.

Includes file name and file type emoji when discernable.

// FREEBIE
2017-04-19 18:50:27 -04:00
Matthew Chen 67e94e2b55 [SSK] Do not try to resend unsaved outgoing messages when accepting a safety number change.
// FREEBIE
2017-04-19 18:21:09 -04:00
Matthew Chen 3c8635c352 [SSK] Add muting of threads.
// FREEBIE
2017-04-19 10:01:29 -04:00
Matthew Chen ea848f31e6 [SSK] Fix outgoing message status for messages sent from linked devices.
// FREEBIE
2017-04-19 09:53:34 -04:00
Matthew Chen dd807f676c [SSK] Rework outgoing message state & refine error handling for outgoing group messages.
// FREEBIE
2017-04-17 18:07:37 -04:00
Matthew Chen f41762c316 [SSK] Avoid lost messages.
// FREEBIE
2017-04-17 16:08:25 -04:00
Matthew Chen f9b51c01f4 [SSK] De-bounce the prekey checks.
// FREEBIE
2017-04-14 14:35:32 -04:00
Michael Kirk 0743722782 [SSK] ensure accepted SPKs are marked
// FREEBIE
2017-04-14 10:58:15 -04:00
Matthew Chen 9c6f76253a [SSK] Honor attachment filenames.
// FREEBIE
2017-04-13 16:09:51 -04:00
Matthew Chen dc3a382c23 Respond to CR.
// FREEBIE
2017-04-13 15:38:32 -04:00
Matthew Chen f38f3d8887 [SSK] Update SignalAttachment to allow arbitrary attachments.
// FREEBIE
2017-04-13 15:27:55 -04:00
Matthew Chen 33593921f6 [SSK] Rework socket manager.
// FREEBIE
2017-04-12 12:01:38 -04:00
Michael Kirk 1d9de09429 [SSK] Make sure we can return multiple recipients matches
// FREEBIE
2017-04-12 11:00:35 -04:00
Michael Kirk 5d604a796c [JSQMVC] Fixes "floating" edit menu for narrow media items
previously, edit menu was only positioned correctly for text bubbles,
and centered for media bubbles.

It wasn't that noticable for images/videos since those usually extended
to the middle of the conversation view, but with narrower media bubbles
(like arbitrary attachments) this became a bigger problem.

// FREEBIE
2017-04-12 10:24:29 -04:00
Matthew Chen 1d2e5d218d [SSK] Create block offer when non-contacts send you a message.
// FREEBIE
2017-04-12 08:42:22 -04:00
Matthew Chen 8490be6ed9 [SSK] Remove the properties related to Redphone and WebRTC support.
// FREEBIE
2017-04-11 17:39:57 -04:00
Matthew Chen 2fd8a13a3c [SSK] Improve attachment upload progress indicator.
// FREEBIE
2017-04-11 17:39:49 -04:00
Michael Kirk 2af89c9a2e [SSK][SPK] only assert dispatch in DEBUG
// FREEBIE
2017-04-07 14:20:35 -04:00
Michael Kirk 87845525b6 [SSK] serialize all read/write to sessionStore
Attempt to avoid session corruption happening due to an inconsistent
view of the session store by ensuring all access to the session store
happens on a serialized queue

// FREEBIE
2017-04-06 21:07:11 -04:00
Michael Kirk 398ee22f50 [SSK] rename cipher queue to sessionStoreQueue
// FREEBIE
2017-04-06 21:06:13 -04:00
Michael Kirk a951d11d97 [SSK] move iOSVersion to SSK
// FREEBIE
2017-04-06 21:06:13 -04:00
Michael Kirk 4494a95a62 Block list is two words. Update code/comments/constants
// FREEBIE
2017-04-05 17:37:08 -04:00
Michael Kirk f46080519e [SSK] Don't retry terminal sending failures
* Causing prekey request rate-limit when sending to someone who's
  reregistered.
* Unnecessarily printing "unregistered user" multiple times.
* etc.

// FREEBIE
2017-04-05 11:36:43 -04:00
Matthew Chen 3537518268 [SSK] Don’t block outgoing group messages.
// FREEBIE
2017-04-05 11:20:57 -04:00
Matthew Chen f604cfb553 Apply assert to ensure singletons are only created once & filter incoming messages using the blacklist.
// FREEBIE
2017-04-03 14:53:23 -04:00
Matthew Chen 5ff454fd90 Fix double creation of NotificationsManager singleton.
// FREEBIE
2017-03-31 23:25:30 -04:00
Matthew Chen d00c892158 Apply assert to ensure singletons are only created once.
// FREEBIE
2017-03-31 18:36:30 -04:00
Michael Kirk 7153994929 [SSK] [SPK] Update SignalProtocolKit and SignalServiceKit
// FREEBIE
2017-03-31 12:42:59 -04:00
Michael Kirk 7f239c8040 [SSK] + Enforce singleton access for MessagesManager and MessageSender
// FREEBIE
2017-03-31 10:41:46 -04:00
Michael Kirk 4c0242ee17 [spk] Update SignalProtocolKit
// FREEBIE
2017-03-30 13:36:05 -04:00
Matthew Chen 5138539d99 [SSK] Fix sharing of oversize text messages.
// FREEBIE
2017-03-30 11:20:45 -04:00
Matthew Chen 306895ea6d [SSK] Improve support for arbitrary attachments.
// FREEBIE
2017-03-30 09:13:48 -04:00
Matthew Chen 630fcedff0 [SSK] Accept arbitrary incoming attachments.
// FREEBIE
2017-03-29 12:59:29 -04:00
Matthew Chen 32d856ff2d [SSK] Improve handling of incomplete and failed attachment downloads.
// FREEBIE
2017-03-29 12:41:36 -04:00
Matthew Chen 5250d327e4 [SSK] Remove RedPhone code.
// FREEBIE
2017-03-29 12:36:20 -04:00
Matthew Chen faf75e25c2 [SSK] Remove RedPhone code.
// FREEBIE
2017-03-29 12:30:31 -04:00
Matthew Chen 74f939b520 Remove RedPhone code.
// FREEBIE
2017-03-29 12:26:08 -04:00
Matthew Chen 9db33a9651 Remove RedPhone code.
// FREEBIE
2017-03-29 12:25:33 -04:00
Matthew Chen 00a29dea4d [SSK] Filter out country codes properly.
// FREEBIE
2017-03-27 09:21:21 -04:00
Michael Kirk ea62e21611 [SSK] fix attachment crash on iOS9
// FREEBIE
2017-03-24 16:39:17 -04:00
Michael Kirk f29ca7851f Move PureLayout back to cocoapods for now
This introduced some unexpected crashes related to frameworks in Swift.

// FREEBIE
2017-03-23 21:48:59 -04:00
Michael Kirk 0d52a18458 Update dependencies
Also moved PureLayout to Carthage for faster incremental builds

// FREEBIE
2017-03-23 20:35:21 -04:00
Matthew Chen eb8d4388c6 [SSK] Avoid YapDatabase deadlock in OWSMessageSender.
// FREEBIE
2017-03-23 17:15:31 -04:00
Michael Kirk 6466e9f41f [SSK] Better logging for envelopes
Leave last 3 digits of recipientId when scrubbing logs.

This is in line with other Signal clients, and makes it possible to
trace interactions.

// FREEBIE
2017-03-23 17:10:26 -04:00
Matthew Chen fe18cb9a39 [SSK] Use a separate sending queue for each conversation & Fix “send to self operations never complete” issue.
// FREEBIE
2017-03-23 15:59:01 -04:00
Michael Kirk 34831ea105 [SPK][SSK] Ensure old sessions removed when identity changes
// FREEBIE
2017-03-22 22:25:23 -04:00
Matthew Chen 949a7cd9a2 [SSK] Further refinements to phone number parsing.
// FREEBIE
2017-03-22 09:56:39 -04:00
Matthew Chen 95de36d671 [SSK] Improve logging around decryption exceptions.
// FREEBIE
2017-03-22 09:55:09 -04:00
Matthew Chen 50ad6e4f62 [SSK] Update SSK pod to reflect websocket lifecycle edge cases.
// FREEBIE
2017-03-22 09:40:33 -04:00
Matthew Chen 5797cb1093 [SSK] Update SSK to reflect cancel oversize attachment downloads. 2017-03-21 13:10:14 -04:00
Michael Kirk 49da1aea1e [SSK] Only send messages on main thread
// FREEBIE
2017-03-20 16:10:46 -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 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 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 0993860376 [SSK] Update SSK pod to reflect corresponding changes.
// FREEBIE
2017-03-16 14:36:02 -03:00
Michael Kirk 99c982fbb2 change ZXing to framework for faster incremental compiles in xcode
// FREEBIE
2017-03-16 12:04:45 -04:00
Matthew Chen c68bfac71d [SSK] Update SSK pod to fix build break.
// FREEBIE
2017-03-15 18:20:52 -03:00
Matthew Chen bdc729ad29 Respond to CR.
// FREEBIE
2017-03-14 10:25:03 -03:00
Michael Kirk d8c4558c80 [SSK] Attachment digests
// FREEBIE
2017-03-13 12:37:56 -04:00
Michael Kirk 8f7e0a8a5b [SSK] Fix crash-on-launch for older installs
populating the de-duping index assumes authorId is always set for
incoming messages, but this was not always the case.

// FREEBIE
2017-03-03 15:33:28 -05:00
Matthew Chen e96692d702 Respond to CR.
// FREEBIE
2017-02-27 17:28:25 -05:00
Matthew Chen c35c118dcd Respond to CR.
// FREEBIE
2017-02-24 23:02:17 -05:00
Michael Kirk 8104ffa129 [SSK] Dedupe incoming messages by timestamp/device
// FREEBIE
2017-02-24 19:24:20 -08:00
Michael Kirk be9725c7ce [SSK] lost changes needed to fixup 'charlesmchen/webrtcByDefault'
Previous commit referenced no-longer existent SHA

// FREEBIE
2017-02-22 15:52:29 -08:00
Matthew Chen f4453eb995 Enable WebRTC-based audio and video calls by default.
// FREEBIE
2017-02-21 11:10:57 -05:00
Matthew Chen 92509169a6 [SSK] Update SSK pod to reflect release/2.7.1.
// FREEBIE
2017-02-17 12:37:28 -05:00
Matthew Chen 701b264188 [libPhoneNumber-iOS] update pod.
// FREEBIE
2017-02-16 21:01:43 -05:00
Matthew Chen 82c4ca04c7 [SPK] Release 2.7.1 and prekey cleanup.
// FREEBIE
2017-02-16 21:01:20 -05:00
Matthew Chen e27475f8a8 [SSK] Add “received at” timestamp to all TSMessages so that they may be sorted properly.
// FREEBIE
2017-02-16 21:00:55 -05:00
Matthew Chen e4c3fe378d Update Cocoapods and Carthage submodule.
// FREEBIE
2017-02-16 14:53:54 -05:00
Matthew Chen 3c3f782e7d Clean up prekey usage.
// FREEBIE
2017-02-14 13:46:08 -05:00
Matthew Chen c0f52d1de9 [SSK] Mark "attempting out" messages as "unsent" on app launch
// FREEBIE
2017-02-13 17:21:58 -05:00
Matthew Chen 21e55d3be5 Mark "attempting out" messages as "unsent" on app launch.
// FREEBIE
2017-02-13 17:16:32 -05:00
Matthew Chen fcf1d7af97 Respond to CR.
// FREEBIE
2017-02-13 16:07:33 -05:00
Matthew Chen 2b64d94bad Update SignalServiceKit pod.
// FREEBIE
2017-02-13 15:59:07 -05:00
Matthew Chen 97001018ae Clean up prekey logic.
// FREEBIE
2017-02-10 16:35:16 -05:00
Michael Kirk 2675a724ce [SSK] avoid intermittent YAP deadlock when receiving message
// FREEBIE
2017-02-08 18:36:31 -05:00
Matthew Chen e798964308 Update SignalServiceKit pod.
// FREEBIE
2017-02-08 17:22:49 -05:00
Matthew Chen 06a775b41a Improve the call status messages in conversation view.
// FREEBIE
2017-02-08 16:47:09 -05:00
Matthew Chen 8e2ac368a0 Update SignalServiceKit pod.
// FREEBIE
2017-02-08 16:45:37 -05:00
Michael Kirk 420d717580 [SSK] log when messages are marked as read locally
// FREEBIE
2017-02-08 10:39:41 -05:00
Michael Kirk c621e3a000 [SSK] Missed calls increment unread counter
Avoid deadlock by moving unrelated DB work out of transaction

// FREEBIE
2017-02-07 17:02:17 -05:00
Matthew Chen 72ef6e6007 Update SSK to reflect charlesmchen/messagesFromMeAreAlreadyAutoRead.
// FREEBIE
2017-02-06 15:48:31 -05:00
Michael Kirk 947d345837 SSK update to include latest master (which now includes CallKit)
// FREEBIE
2017-02-02 17:13:53 -05:00
Michael Kirk 7361418274 Merge remote-tracking branch 'origin/master' into feature/webrtc 2017-02-01 20:10:13 -05:00
Michael Kirk 7e825648ef Show alert when trying to call a non-signal contact from Contacts.
// FREEBIE
2017-02-01 19:22:25 -05:00
Matthew Chen 49bb3d942d Clean up ahead of PR.
// FREEBIE
2017-02-01 10:44:29 -05:00
Matthew Chen d294557bdd Rework concurrency in the signaling logic.
// FREEBIE
2017-02-01 10:24:23 -05:00
Michael Kirk feb5a9ed3a [SSK] fix crash when messaging newly unregistered
// FREEBIE
2017-01-31 12:46:22 -05:00
Michael Kirk fff061ff3f Make sure WebRTC preferences are synced *every* call
This slows the UI, but only for people who have locally opted into
WebRTC calls, and the alternative is that users are likely to have stale
settings the first time a pair of people opt-in.

// FREEBIE
2017-01-27 14:33:12 -05:00
Michael Kirk ff7ae4f81b [SSK] Disable resetting unreadable storage (#1643)
// FREEBIE
2017-01-25 16:45:50 -05:00
Michael Kirk d3e6747499 Merge remote-tracking branch 'origin/master' into feature/webrtc 2017-01-25 12:13:37 -05:00
Michael Kirk 4e72ab92c8 Prevent session corruption by using a single serial queue for encrypt and decrypt
coordinate SignalProtocol encryption/decryption on a single serial
queue. Previously message sending encrypted on the sending thread, while
message receiving decrypted on the main thread.

// FREEBIE
2017-01-25 11:00:21 -05:00
Michael Kirk a6029f2545 Merge remote-tracking branch 'origin/master' into feature/webrtc 2017-01-25 09:54:33 -05:00
Michael Kirk c2fae986f2 [SSK] better logging when we fail to get DB keys
// FREEBIE
2017-01-23 20:32:13 -05:00
Michael Kirk 9516ab1106 Bail on startup if DB password is inaccessible
Most likely this would be  because the user hasn't unlocked their device
since last restart.

This behavior existed once before, but the startup ordering is pretty
delicate. So, we're now redundantly checking in SSK in case this
delicate startup logic gets mis-ordered again.

Also fixed the AppDelegate method to check for the proper
applicationState, since it will never be "active" in didFinishLaunching.

fixes https://github.com/WhisperSystems/Signal-iOS/issues/1627

// FREEBIE
2017-01-23 17:32:02 -05:00
Michael Kirk 0e7083ed4e [SSK] remove Cuba from domain fronting
Current implementation is blocked in Cuba, plus there are reports of
Signal working w/o domain fronting anyway.

// FREEBIE
2017-01-20 18:16:11 -05:00
Matthew Chen 1898b9fa19 Merge branch 'charlesmchen/fixWebsocket' into feature/webrtc 2017-01-17 18:47:34 -05:00
Matthew Chen ec16016386 Update to reflect merged SSK branch. 2017-01-17 17:51:19 -05:00
Matthew Chen a023d02ae2 Respond to CR.
// FREEBIE
2017-01-17 17:10:57 -05:00
Matthew Chen 9c4eda54f1 Respond to CR.
// FREEBIE
2017-01-17 16:31:28 -05:00
Matthew Chen cb3f564446 Fix web socket issue.
// FREEBIE
2017-01-17 16:01:19 -05:00
Matthew Chen 773080b11b Update SSK pod to reflect merge of corresponding charlesmchen/webrtcSetting2 branch into mkirk/webrtc.
This branch updates SignalRecipient in ContactsUpdater.

// FREEBIE
2017-01-17 10:20:04 -05:00
Matthew Chen 654bdb1a85 Add WebRTC setting.
// FREEBIE
2017-01-17 10:20:04 -05:00
Matthew Chen 4a65a88512 Rework new call view.
// FREEBIE
2017-01-12 15:55:14 -05:00
Matthew Chen 26a6e391b3 Fix pod.
// FREEBIE
2017-01-12 10:13:47 -05:00
Michael Kirk a17873291b Fix up tests
// FREEBIE
2017-01-12 09:56:09 -05:00
Michael Kirk 647b2b37e9 WIP: WebRTC calling
* Ensure NotificationsManager has dependencies
    Otherwise it's easy to mess up the order of the required dependencies.
* move AccountManager into Environment, it's heavy to construct

// FREEBIE
2017-01-12 09:56:05 -05:00
Matthew Chen ee63e9116c Update to reflect changes in SSK https://github.com/WhisperSystems/SignalServiceKit/pull/85.
// FREEBIE
2017-01-11 17:36:09 -05:00
Matthew Chen 6106326b34 Update to reflect changes in SSK https://github.com/WhisperSystems/SignalServiceKit/pull/85.
// FREEBIE
2017-01-11 09:19:50 -05:00
Matthew Chen a70d5f88ba Fix build break related to SignalServiceKit pod.
// FREEBIE
2017-01-06 13:46:06 -05:00
Matthew Chen 2ce4d39f9e Respond to CR.
// FREEBIE
2017-01-06 13:28:41 -05:00
Matthew Chen 2dac6c888a Update SignalServiceKit pod.
* Fetch messages when app becomes active.
2017-01-06 13:28:41 -05:00
Michael Kirk ddba843d44 Censorship circumvention in Egypt and UAE
* domain fronting
* non-websocket message fetching

// FREEBIE
2016-12-21 10:04:23 -06:00
Michael Kirk c4baf5a625 [SSK] Avoid bricking signal if a key is temporarily unreadable
// FREEBIE
2016-12-16 14:51:00 -06:00
Michael Kirk c3a22d7da6 [SSK] Fix contact sync when no thread to self exists
fixes #1497

// FREEBIE
2016-12-16 11:31:27 -06:00
Michael Kirk 32a05dabce [SPK] Update SignalProtocolKit (AxolotlKit) (#1549)
// FREEBIE
2016-12-16 08:47:24 -06:00
Michael Kirk e2d725a041 [SSK] Ignore messages with unknown Content
Most like it would indicate a new feature that this old client doesn't
understand. Otherwise we'd print an empty bubble.

// FREEBIE
2016-12-09 09:31:07 -05:00
Michael Kirk 753c445bfc [SSK] Update libphonenumber
// FREEBIE
2016-12-04 14:01:08 -05:00
Russ Shanahan e7126f8c60 Less confusing "#" avatar for unknown Contact instead of "+"
For consistency with the Android and Desktop client behavior.

* Show a placeholder avatar when no image, initials (#1512)

  If all we know about the user is their phone number, their avatar image
  is rendered as a placeholder. Previously, it would render the first few
  characters of their phone number as if they were initials (eg. "+")

* Rename, extend OWSContactsManager methods (#1512)

  Rename from: nameStringForPhoneIdentifier
           to: displayNameForPhoneIdentifier

  Also, add:
  - (BOOL)nameExistsForPhoneIdentifier:(NSString *)identifier;

  Which reports whether there's any "name" for a contact.

* Remove unused typedefs

  These aren't used in the project anymore, and they were causing
  compiling warnings due to a lack of nullability indication.

* Resolve some OWSContactsManager nullability warnings

  Did a pass through all of the existing nullability warnings in
  OWSContactsManager. Tried to pick descriptors that best reflected the
  behavior of the methods.

// FREEBIE
2016-12-04 14:01:07 -05:00
Russ Shanahan 81e1ec4b9e Compare both first and last names when sorting (#1487)
If two names have the same last name, ensure we fall back on the
first name when sorting them.

// FREEBIE
2016-11-30 15:01:27 -05:00
Josh Schneier 896dd026d2 Remove DJWActionSheet 2016-11-29 10:20:56 -05:00
Michael Kirk f30c733ef3 Custom contact picker for invite flow
Preferred to the system contact picker because:
1. removes "group" clutter from header, unlikely to be used much.
2. can select while searching
3. fixes unified contact problem where e.g.
   If only one of your contact has a phone number, they appear disabled
   when choosing to invite via messaging, even though the other linked
   contact *does* have a phone number.
4. label users w/o email so it's clearer why they can't be selected

Also:

* Twitter share-image was too tall

// FREEBIE
2016-11-26 14:43:42 -05:00
Michael Kirk 7120ca1192 Make sure we're laying out contact cell after assigning avatar
// FREEBIE
2016-11-22 16:55:07 -05:00
Michael Kirk 0aa226f3d1 [SSK] If a new message type is introduced, ignore it
rather than printing an empty bubble.

// FREEBIE
2016-11-22 12:18:05 -05:00
Michael Kirk de7752ab20 Revert 50abf4d02d
The real problem was addressed (or, worked around) here:
1eb234e8ba

// FREEBIE
2016-11-17 18:22:02 -05:00
Michael Kirk 9b2c03793c [SSK] explicit newlines in safety numbers
// FREEBIE
2016-11-14 17:40:51 -05:00
Michael Kirk ee29fff0da [SSK] Default to blocking changed Safety Numbers
// FREEBIE
2016-11-14 14:24:03 -05:00
Michael Kirk c5be8f2d88 Don't include phone number in scannable safety number QR code
also fixes #1455

// FREEBIE
2016-11-14 09:12:24 -05:00
Michael Kirk c2aa17e362 Changed Safety numbers no longer block communication
When your partner changes their identity key (e.g. by reinstalling),
you'll see a notice alongside their message, but it will no longer
prevent the message from showing. aka "non blocking".

Existing users will be opted into the previous blocking behavior.

This is configurable for all users in Settings > Privacy.

// FREEBIE
2016-11-11 09:13:38 -05:00
Michael Kirk 28a2a4610c Fix compiler warnings.
// FREEBIE
2016-11-11 08:54:13 -05:00
Michael Kirk 368db7e553 [SSK] Only need to fetch prekey once
Plus related rate limit translations

// FREEBIE
2016-11-10 10:47:49 -05:00
Michael Kirk 23c80748e6 Hide safety numbers until you've exchanged keys
// FREEBIE
2016-11-09 13:43:07 -05:00
Michael Kirk 1912fbde72 [SSK] Send group messages as long as one recipient is found
// FREEBIE
2016-11-08 15:20:57 -05:00
Michael Kirk c401f764ef [SSK] Fix crash on messaging unregistered user
// FREEBIE
2016-11-07 19:52:05 -05:00
Michael Kirk c6a2fbff23 Tapping corrupted message opens "session reset" activity
This action was previously hidden under a secret longpress gesture in
the fingerprint view controller.

Ideally we'd never receive corrupted messages, but at the point we do,
our sessions are out of whack, and the only recovery option is to reset.
Let's help our users do that.

* Resetting session sends END_SESSION message

  Otherwise the remote side wouldn't know we reset the session and will
  send us a message on the old ratchet.

* Don't reset their identity key when resetting sender ratchet.

* Updated translations

// FREEBIE
2016-11-04 14:57:37 -04:00
Michael Kirk 1dd06a5e6c Fix registration flow / Keep push tokens in sync
* Separate registering an account from registering for push notifications
  * Allows us to complete registration without prompting user for
    notification settings.

UX Changes
----------
* Automatically keep push tokens in sync on startup.
  Push tokens *can* change, though they rarely do. It happens more often
  for people switching between appstore/beta builds.

  fixes #1174

* Show alert with registration failure
  * add secret 8-tap debug log gesture to registration flow

* Move registration to separate flow
  * don't see flash of inbox when first launching

* show useful error messages when given wrong code / no code

* remove background fetch
  We werent using it, but only relying on a side effect of it which is
  no longer necessary.

Code Changes
------------

* More registration logging.

* Install PromiseKit with carthage

  Our dependencies are not yet framework compatible, so we can't use
  cocoapods.

* Merge preferences util "category" into superclass.

  The immediate reason for this is Swift interop was assuming optional
  types were not optional, and exploding when a value was nil.

  This is clearer anyway, since we were treating it like a subclass, and
  it was the only thing using the class anyway.

* auto-genstrings now searches *.swift (and *.h, which was previously
  broken) for translateable strings.

// FREEBIE
2016-11-03 16:13:49 -04:00
Michael Kirk cc8c8d61b4 [SSK] Update to prevent session corruption
// FREEBIE
2016-11-03 14:52:14 -04:00
Michael Kirk 50abf4d02d [JSQMVC] Fix crash on delete when under load.
Hack to fix https://github.com/jessesquires/JSQMessagesViewController/issues/1885

This doesn't happen often, but is reproducible under simulated message
churn (~50 insert/update/deletes randomly spaced over 10 seconds).

During performBatchUpdates, the collectionViewLayout can call
layoutAttributesForElementsInRect which can reference the just-deleted
item's
view. (The view presumably hasn't been deleted yet, but will be by the
time
performBatchUpdates is complete).

It's opaque how layoutAttributesForElementsInRect get's it's list of
views. I
can only speculate how this works based on debugging, but it seems that
the
CollectionFlowLayout keeps an internal list of item frames, which when
crashing
still contain items corresponding to the to-be-deleted items.

In any case, it seems like a bug that JSQMVC would ever attempt to get
layoutAttributes for an item which doesn't exist in the datasource.
2016-10-31 10:38:20 -04:00
Michael Kirk eded20f1f5 [SSK] Don't send empty message to self after changing disappearing timer
previously fixed in: SSK:91fcd01632a81f2aa67d2d94b97c68d519e6881a

But got lost in a rebase after moving TSMessagesManager+sendMessage to
OWSMessageSender.

// FREEBIE
2016-10-28 15:10:31 -04:00
Michael Kirk 66f0f8cc95 [SSK] Better error messages when failing to send
// FREEBIE
2016-10-26 15:22:35 -04:00
Michael Kirk 84e5606972 [SSK] Fix disappearing messages don't become consistent after reinstall
Fixes the bug wherein:

Given the sender had disappearing messages enabled
And the receiver thinks it's disabled (this can happen due to re-install)
When we receive a disappearing message
The message does start expiring timer and disappear
But you see a notice "<sender> disabled disappearing messages"
Rather than the expected "<Sender> set disappearing messages timer to X".

// FREEBIE
2016-10-26 15:22:35 -04:00
Michael Kirk 689df1be37 Handle key change in group send
// FREEBIE
2016-10-26 15:22:35 -04:00
Michael Kirk 33f6a95520 Explain send failures for text and media messages
fixes #1231

Motivation
----------
Previously when messages failed to send, there was no reason given.
Furthermore, when media messages failed to send there was no indication
that any attempt to send the message even occurred, nor a retry
dialog.

UX Changes
----------
- Show "uploading" status for media
- Show specific error message in retry-send dialog
- Only scroll to bottom when new message is inserted
- Show specific errors when group creation fails

Code Changes
-----------
- Updated incorrect references to TSMessageAdapters which were actually
  references to OWSMessageData
- MessageSender was extracted from SSK MessagesManager
- access MessagesManager as property
- idiomatic init/properties for Env
- log contact intersections
- Move scroll-to-bottom animation to main thread.

// FREEBIE
2016-10-26 15:22:35 -04:00
Matthew Douglass 722c3a5e78 Create TSOutgoingMessage with info on group change
TSOutgoingMessage is created with details about the group changes so that we see more than just “Group Updated.”

* Customizes message for new group creation

  Replaces GROUP_UPDATED with GROUP_CREATED for a brand new group. Localized for English only.

* Updates to use fixed SignalServiceKit branch

// FREEBIE
2016-10-20 20:32:30 -04:00
Michael Kirk 802d2bfdff Revert "Create TSOutgoingMessage with info on group change"
Inadvertently stole credit for work done when squashing the commits.
Reverting and re-merging giving appropriate credit.

This reverts commit 8242c9e381.
2016-10-20 20:31:54 -04:00
Michael Kirk 8242c9e381 Create TSOutgoingMessage with info on group change
TSOutgoingMessage is created with details about the group changes so that we see more than just “Group Updated.”

* Customizes message for new group creation
  Replaces GROUP_UPDATED with GROUP_CREATED for a brand new group. Localized for English only.

* Updates to use fixed SignalServiceKit branch

// FREEBIE
2016-10-20 20:20:41 -04:00
Michael Kirk 89ee74f134 Update SSL to 1.0.2j (#1409)
// FREEBIE
2016-10-20 13:24:20 -04:00
Michael Kirk 49de772997 Fix slow reloading conversation view. (#1397)
Fix animation memory leak exacerbated every time you reload a
conversation with expiration timers.

Stop animation on cells that aren't currently being displayed. This is
relatively minor compared to the above, but still, no reason to waste
cycles.

// FREEBIE
2016-10-15 16:41:40 -04:00
Michael Kirk 50ce283582 Fix empty bubble when setting disappearing message timer in a thread to
yourself.

fixes #1393

// FREEBIE
2016-10-14 19:37:38 -04:00
Michael Kirk a04b351455 Fix set timer in group thread. (#1375)
// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk 85beb93e86 Style timer changes less alarmingly.
// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk dc95d328cb Don't expire messages until they are sent.
// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk c0f37f8123 Fix sync messages expirations in SSK
// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk ee0cce75e8 Disappearing Messages
* Per thread settings menu accessed by tapping on thread title

  This removed the toggle-phone behavior. You'll be able to see the phone
  number in the settings table view.

  This removed the "add contact" functionality, although it was already
  broken for ios>=9 (which is basically everybody).

  The group actions menu was absorbed into this screen

* Added a confirm alert to leave group (fixes #938)

* New Translation Strings
* Extend "Add People" label to fit translations.
* resolved issues with translations not fitting in group menu

* Fix the long standing type warning where TSCalls were assigned to a TSMessageAdapter.

* Can delete info messages

  Follow the JSQMVC pattern and put UIResponder-able content in the
  messageBubbleContainer. This gives us more functionality *and* allows us
  to delete some code. yay!

  It's still not yet possible to delete phone messages. =(

* Fixed some compiler warnings.

* xcode8 touching storyboard. So long xcode7!

* Fixup multiline info messages.

  We were seeing info messages like "You set disappearing message timer to
  10" instead of "You set disappearing message timer to 10 seconds."

  Admittedly this isn't a very good fix, as now one liners feel like they
  have too much padding.

   If the message is well over one line, we were wrapping properly, but
  there's a problem when the message is *just barely* two lines, the cell
  height grows, but the label still thinks it's just one line (as evinced
  by the one line appearing in the center of the label frame. The result
  being that the last word of the label is cropped.

* Disable group actions after leaving group.

// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk 11a586a835 New Fingerprint Format
Rather than verifying eachothers keys separately, you now verify the
privacy with your recipient by sharing a single composite number or
QRCode.

This is a breaking change, in coordination with Desktop and Android.

UX
--

Fingeprint is no longer in line with identity key error. Instead you
have the option of going to the full-screen safety number verification
experience.

Overhauled fingerprint design
-----------------------------

* use same modal dismiss button as elsewhere
* remove fingerprint from settings.
* quick slide in animation vs slow fade
  * existing was painfully slow
  * blur effect is better metaphor for something slide over top
  * anyway there was a rendering glitch in the end of fade where
    underlying navbar would "snap" out

Also Fixed
----------
Always provide a name string for contact

* Centralize all the nil-checking
* Fall back to "unknown contact"

allow multi-line error messages

// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk 2f33e87265 Update socket rocket to get an upstream crash fix
See:
https://github.com/facebook/SocketRocket/issues/421

Which is one of our more popular crashes, and happening more frequently
with iOS10.

// FREEBIE
2016-09-30 10:22:12 -04:00
Michael Kirk 8d2b38f027 Fix device listing
broken while refactoring db to async

// FREEBIE
2016-09-30 10:22:12 -04:00
Michael Kirk 3e7e67e276 Async migrations framework
* nonblocking by default
* track success of each migration independently

// FREEBIE
2016-09-28 17:09:11 -04:00
Michael Kirk 3b687da0ec Upgrade SSK to setup db async where possible
fixes #1358

// FREEBIE
2016-09-28 17:09:11 -04:00
Michael Kirk 2ab6955967 More logging, scrub phone numbers from file logs (#1357)
Phone number are still logged in TTY for development.

// FREEBIE
2016-09-27 21:20:58 -04:00
Michael Kirk 1433ee2655 Fix crash on boot =/ (#1349)
I botched a migration 6 months ago, which left some lingering TSRecipients serialized in our data store, laying in wait to explode the next time we enumerate every object in the database (e.g. when we add an index).

The bloom filter migration failed to remove TSRecipients in the somewhat rare event that the local user had no downloaded bloom filters. This could happen e.g. if they were low on disk space at the time of running the migration, I believe the app would remove the bloom filter cache.

// FREEBIE
2016-09-26 21:57:34 -04:00
Michael Kirk 0c4f1d41b6 Fix contact sync in SSK (#1345)
* bump version
* update translations

// FREEBIE
2016-09-23 17:32:03 -04:00
Michael Kirk 5372173c4a Fix groups breaking without avatar (#1336)
- Group updates were appearing as "unsupported attachment"
- Couldn't message in a new group unless it had attachment.

// FREEBIE
2016-09-20 19:16:05 -04:00
Michael Kirk 720b167b3b Fix multiple keychange errors (#1334)
* Don't attempt to send a message unless we've successfully built device-messages
* Only process message exception when we're done with retries.

// FREEBIE
2016-09-19 22:47:47 -04:00
Michael Kirk 7c6e9e07b8 Read receipts remove lockscreen notifications
No need to have a notification for a message you've already read on
desktop.

// FREEBIE
2016-09-17 13:51:33 -04:00
Michael Kirk f7198d5eaa Don't crash when receiving read receipts after message
// FREEBIE
2016-09-14 13:26:55 -04:00
Michael Kirk 90dab190f3 Update SSK to send useragent upon provisioning
We do this to coordinate a theme choice on the desktop

// FREEBIE
2016-09-12 14:44:27 -04:00
Michael Kirk 5200cccbe3 Update translations
* New bg (Bulgarian) localization!
* New sq (Albanian) localization!
* replace unfinished bg_BG localization with complete bg localization
* caps keys to make it easier to see missing localizations
* pull with newly pushed source keys

// FREEBIE
2016-09-09 15:17:15 -04:00
Michael Kirk a595cb9326 Desktop Integration Fixups
Work done in SSK
* remove sync data files after sync
* fix race condition with read receiptsA

Update YapDatabase

// FREEBIE
2016-09-08 17:32:28 -04:00
Michael Kirk 7c3a07960f Device manager fixes
* Avoid intermittent crash in device manager via YapDatabaseModified
* Properly align refresh text when expecting new device
* Avoid glitchy activityIndicator while polling
* Expose edit mode toggle

Much of the code changes here were in the corresponding SSK update.

// FREEBIE
2016-09-06 17:16:42 -04:00
Michael Kirk dee26e6e0a Use PNG constant
// FREEBIE
2016-09-06 15:57:44 -04:00
Michael Kirk 9006ff604f Multi device read receipts.
All the heavy lifting is in SignalServiceKit.

// FREEBIE
2016-09-06 15:57:44 -04:00
Michael Kirk 84156698c4 Provision device from QRCode.
NEEDS DESIGN - will likely have an intermediate "device manager" screen.

* extracted QRCode Scanner into re-usable ViewController

// FREEBIE
2016-09-02 12:40:21 -04:00
Michael Kirk cc2d47fbd3 Update protocol (#1315)
* Update to latest SignalServiceProtocol
* Show SignalServiceKit compiler warnings

// FREEBIE

* Update to latest signal protocol

// FREEBIE
2016-08-22 16:54:31 -04:00
Michael Kirk bff6e5613a Avoid collision with iOS10 SSKeychain framework (#1308)
FIXES #1296

Our pod SSKeychain was renamed to -> SAMKeychain to avoid collision with
the iOS10 library SSKeychain.

* log failure to write keychain (this seems to only happen on simulator)
* ensure we exit if we fail to set DB cipher key

// FREEBIE
2016-08-18 14:12:23 -04:00
Michael Kirk 006c4ba958 Update dependencies. (#1304)
* SSK update adds emoji for incoming animated GIFs

// FREEBIE
2016-08-15 10:06:51 -04:00
Michael Kirk 92b3ea5d25 Re-enable attachment cleanup migration after fixing it in SSK (#1298)
// FREEBIE
2016-08-01 10:41:10 -07:00
Michael Kirk 9f2bb5d2cc Fixes lingering interactions after removing thread (#1297)
Most of the work was done in SignalServiceKit 0.0.7, this adapts to
those changes.

Migration to clean any orphaned interactions/attachments.

- don't set new migration version until migration was successful.
- remove dead code from migrations

- rename message.attachments->message.attachmentIds
- Remove unused parameter from GroupModel
- formatting touched method/'s signatures

//FREEBIE
2016-07-31 15:25:07 -07:00
Michael Kirk 29769b4b76 Don't highlight text bubble when long pressing adjacent to text bubble (#1281)
Previously, if you tapped in the white space adjacent to the text bubble,
the bubble would highlight. No menu was show or interaction made
available. This is confusing.

It was fixed upstream, so this was as simple as:

    pod update JSQMessagesViewController

// FREEBIE
2016-07-21 10:22:16 -07:00
Michael Kirk 68b36f7074 Fix double sends in group thread when accepting keychange (#1263)
FIXES #951

// FREEBIE
2016-07-19 09:09:45 -07:00
Michael Kirk 4d320d6015 Unfork JSQMessagesViewController
Geting back on upstream fixes a couple bugs (see ##Bugfixes), and also
will make future updates easier.

The unforking process was basically this:

* move custom message types (Calls and DisplayedMessages) classes from our
  custom JSQMVC fork into Signal-iOS.
* Move any method customization into our subclass. Including
  ColletionView stuff, bubble sizing, and gesture behavior

Bug Fixes
---------
* Fix mis-sized incoming media bubbles.

Bubble size was being cached by interaction id. Which broke when
receiving an attachment. The problem is that incoming media messages
were initially the height of a "Downloading Attachment" info message.
Instead we use the mediaHash for media messages to expire the bubble
size when the media changes.

* fix missized bubble when MVC did appear

The MessagesViewController isn't sized correctly until ViewWillAppear.
This caused the first round of bubbles to be rendered incorrectly (they
assumed a larger container than they had).  I think is reflected in the
current version of the app by a reflow occurring shortly after the view
appears.

Chores
------
* bump travis to build with xcode8
* specify RQV development team for device build. required by xcode 8 beta

Cleanup
------
* Refactor messageing XIB so that elements are hangning outside of
  the views frame
* Fix compiler warning with explicit cast
* delete deprecated lineBreakmode, it's the default value anyway.

// FREEBIE
2016-07-14 23:15:05 -07:00
Michael Kirk 992dbe586a Fix crash on unknown attachment (#1249)
// FREEBIE
2016-07-07 17:13:51 -07:00
Michael Kirk 1e43e139fd Get back on upstream SocketRocket (#1241)
* Latest SocketRocket includes
  * crash fixes.
  * our new security policy management, so we don't have to
    keep rebasing to incorporate updates.

* Adapt to policy renaming in SignalServiceKit
* bump XCode version to play nice with SWIFT_NAME

// FREEBIE
2016-06-30 23:08:49 -07:00
Michael Kirk a181d218cf extract and test contact searcher
// FREEBIE
2016-06-28 14:13:39 -07:00
Michael Kirk 26f5418500 Remove distinction between TS and RP users
* Ensure we're always showing call button for non-group threads.
* search phone strings directly rather than precomputing field

// FREEBIE
2016-06-28 08:58:29 -07:00
Michael Kirk 7fef6aeab2 Fix crash after deleting message (#1219)
* update to JSQMessageViewController fixes #1218
* no need for SVC to retain membership of MVC

// FREEBIE
2016-06-15 12:46:29 -07:00
Michael Kirk 965261f465 attempt to fix intermittent SEGFAULT in SocketRocket (Maybe Fixes #1196) (#1217)
* Rebased OWS fork of SocketRocket against upstream
* Pulling in SocketRocket directly from OWS Github rather than going
  through the motions of publishing a pod that only we use.
* Bump version

// FREEBIE
2016-06-14 14:19:28 -07:00
Michael Kirk e7f3092f00 CocoaPods 1.0 update and Travis-CI compatibility (#1216)
* CocoaPods 1.0 compatibility. Thanks to @brianherman and @orta for the Podfile changes, taken from PR #1156
* Modified Travis-CI to use the newer CocoaPods 1.0 as well.
* Performance improvements to Travis-CI to reduce build time by 50%-75%

Cherry-picked and conflicts resolved by @michaelkirk
2016-06-14 11:58:56 -07:00
Michael Kirk a736e8de66 Fixes avatar not showing for single contact thread (#1202)
* requires update to SignalServiceKit
* updated Pod Dependencies
* bumped version

Fixes #1201

// FREEBIE
2016-05-26 15:49:34 -05:00
Michael Kirk 7f022404d1 [UI] smaller group action menu icon, revert edit divider to neutral color (#1169)
* Group actions bar button image was too big

Added image inset to resize.

// FREEBIE

* return blue line to neutral gray. (partial revert of 0c1a97a743)

// FREEBIE

* Podfile.lock corollary to updating SSL in b7813bdc9a

// FREEBIE
2016-05-07 09:29:10 -07:00
Michael Kirk fc494d735f Merge pull request #1140 from michaelkirk/fix-screen-protection-image
After removing launch image, we need to update screen security
2016-04-11 16:22:15 -04:00
Frederic Jacobs 4034baedb9 Adapting to renaming. 2016-04-08 09:47:41 +02:00
Frederic Jacobs 5ff06afe10 Update dependencies.
//FREEBIE
2016-04-08 09:06:11 +02:00
Frederic Jacobs 2c83046ff6 Closes #990.
- Use single MessagesViewController. Goal: Being able to reuse that UI
for SplitViewController on iPad. Prevents unnecessary deallocations and
re-allocations.
- Remove custom archiving UI for default swipe right to left archive
action, like in iOS Mail.app.
- DynamicType for main view.
- Simplify API of MessagesViewController to prevent undefined behavior.
//FREEBIE
2015-12-26 18:12:13 +01:00
Frederic Jacobs a7ec383a7b Fixes #984 Fixes #948.
A future improvement could be to store the usage data in the encrypted
database than in the NSUserDefaults that are more vulnerable to
forensics.
2015-12-24 15:40:50 +01:00
Frederic Jacobs c6d44e59e2 TextSecureKit Refactoring
- Using same clang format file for old and new files.
- Moving out all TextSecure code to allow other clients (OS X, iOS) to
  integrate easily TextSecure functionality.
- Use TextSecure API to signup.
2015-12-22 23:41:10 +01:00
Frederic Jacobs 26f9207cab Bye Bye Bloomfilters
For reasons outlined in
https://whispersystems.org/blog/contact-discovery/ , Signal will no
more use bloom filters for RedPhone contact intersection.
2015-11-29 01:14:49 +01:00
Frederic Jacobs 3d4d4123f7 Removing APNavigation as a dependency. 2015-10-31 23:43:16 +01:00
Frederic Jacobs bbde7cd2a8 iOS 9 Support
- Fixing size classes rendering bugs.
- Supporting native iOS San Francisco font.
- Quick Reply
- Settings now slide to the left as suggested in original designed
  opposed to modal.
- Simplification of restraints on many screens.
- Full-API compatiblity with iOS 9 and iOS 8 legacy support.
- Customized AddressBook Permission prompt when restrictions are
  enabled. If user installed Signal previously and already approved
  access to Contacts, don't bugg him again.
- Fixes crash in migration for users who installed Signal <2.1.3 but hadn't signed up
  yet.

- Xcode 7 / iOS 9 Travis Support
- Bitcode Support is disabled until it is better understood how exactly
  optimizations are performed. In a first time, we will split out the
  crypto code into a separate binary to make it easier to optimize the
  non-sensitive code. Blog post with more details coming.
- Partial ATS support. We are running our own Certificate Authority at
  Open Whisper Systems. Signal is doing certificate pinning to verify
  that certificates were signed by our own CA. Unfortunately Apple's App
  Transport Security requires to hand over chain verification to their
  framework with no control over the trust store. We have filed a radar
  to get ATS features with pinned certificates. In the meanwhile, ATS is
  disabled on our domain. We also followed Amazon's recommendations for
  our S3 domain we use to upload/download attachments. (#891)
- Implement a unified `AFSecurityOWSPolicy` pinning strategy accross
  libraries (AFNetworking RedPhone/TextSecure & SocketRocket).
2015-10-31 04:45:55 +01:00
Frederic Jacobs 0090030f3d Adding rating code
We’ve noticed that most people went to the App Store to leave really
bad reviews of the app and it is severely affecting our discoverability.
We will ask for a rating if we see you’ve been using the app for some
time. If you rate the app or decline to rate, that’s fine. We will
never bug you again!
2015-08-24 00:28:50 +02:00
Frederic Jacobs ada07351e1 Support for `supportsVOIP` attribute.
- Deprecates RedPhone upgrade flow.
- Adds a generic upgrade dialog.
- Upgrades dependencies.
- Reorganizes `TSStorageManager` & TSNetworkManager imports.
2015-08-23 00:00:39 +02:00
Frederic Jacobs c4bf4a8f50 Preliminary iOS9 support and upgrading to CocoaLumberjack 2.0 2015-08-14 00:19:29 +02:00
Frederic Jacobs 28dae649d1 Upgrading OpenSSL to 1.0.2d.
//FREEBIE
2015-07-13 14:12:09 +02:00
Frederic Jacobs 02560f8b2f Flagging release.
- Bump up version number.
- Fetching latest localizations.
- Upgrading libPhoneNumber and Mantle dependencies.
//FREEBIE
2015-06-24 11:06:45 +02:00
Frederic Jacobs a4014c6ad3 Upgrading AxolotlKit
Work on AxolotlKit has no BitHub so taking a contribution for this
commit.
2015-06-15 14:42:31 +02:00
Frederic Jacobs b329062e02 Open SSL 1.0.2c
//FREEBIE
2015-06-13 22:55:00 +02:00
Frederic Jacobs cd0fb8bc51 Fixing graphical glitch in tread with images. 2015-06-07 22:41:59 +02:00
Frederic Jacobs b1b936e436 Bumping up version number
- Upgrading dependencies.
- Fetching latest localizations.
2015-05-18 22:41:01 +02:00
Frederic Jacobs 0f04132b81 Bumping up version number
- Upgraded dependencies.
- Fetching latest localizations.
2015-05-12 22:43:40 +02:00
Frederic Jacobs 9652584ada Upgrading dependencies. 2015-04-28 02:15:41 +02:00
Frederic Jacobs dceb1c9976 Bump up version number, pull localizations and dependencies 2015-04-07 17:28:50 +02:00
Frederic Jacobs 82a9029c37 Fixes #713 2015-03-21 17:53:39 +01:00
Frederic Jacobs 099bea05ba OpenSSL 1.0.2a 2015-03-21 17:53:38 +01:00
Christine Corbett be6c412cd2 Navigation bar hidden upon connection completed. 2015-02-16 23:54:05 +01:00
Frederic Jacobs dfdd0a1974 Support for `remoteRegistrationId`.
1) Supporting `remoteRegistrationId` on sending messages. Now showing
warning before sending the message if key conflict exists. Fixes #574
2) Upgrading dependencies: adapting to new libPhoneNumber API.
3) Fixes race condition in database code.
4) Fixing ordering bug. Hopefully once and for good.
2015-02-16 23:49:35 +01:00
Frederic Jacobs 5e92fdbbbe Pinning upstream cert. 2015-01-30 01:33:08 -10:00
Christine Corbett aca02221be Various design and UI consistency improvements.
• updated iconography
• lines and sizing
• empty inbox and archive screen with wording
• bug fix on calling to self being enabled sometimes (doesn't crash either way, but makes little sense)
• call icons and group update icons incorporated (PR to JSQ must be merged to test; this will be two lines on the Signal-iOS side to remove if we decide not to go with icons)
• fingerprint screen working: accessible by long press from contact screen on contact title. long press on lower half of screen shreds key material after confirmation. new icons for scan and show.
• short press on contact title will show their phone number
• color updates to new palette for green, yellow and light blue
2015-01-28 12:51:34 -10:00
Christine Corbett 638dfae668 messaging view and group creation fixes:
• Create button should be btnCompose--white
• Add people to be a tableview header (ask @helveticade for creatives)
• Send button = btnSend--blue
• Attachments button = btnAttachments--blue
• message footer changes from call to message as input
• Remove more button
• Empty State update with asset and new copy
• Default group name should be 'New Group' (UI only)
• loading view
• Update tab bar items with revised PDFs
• Blue outline around avatar-less contacts
• Replace swipe left actions with btnDelete--white asset
• Replace swipe right buttons with cellBtnMoveToArchive--blue and cellBtnMoveToInbox--blue respectively
• Done icon replaced with btnSignal in settings
• Settings: Swap blue and grey for Registered Number and Change (change doesn't look like a button)
• Settings: UI Switch on should be Signal Blue.
• Disable search ui + group button while downloading contacts
• new group: Create button should be btnCompose--white
• new group: Add people to be a tableview header
2015-01-27 09:18:18 -10:00
Jack Rogers 1eef08628a Audio attachments UI 2015-01-24 16:28:35 -10:00
Christine Corbett ccdc4b5d17 Redesign implementation.
Result of stashed commits by @corbett and @abolishme
2015-01-24 16:28:34 -10:00
Frederic Jacobs bfd710a9ef Upgrading to OpenSSL 1.0.2.
//FREEBIE
2015-01-22 23:04:28 +01:00
Christine Corbett b954ff2445 Closes #261 - Signal 1.0 to 2.0 utility.
Reviewed-by: @FredericJacobs
2015-01-16 14:24:05 +01:00
Frederic Jacobs eff589af93 Closes #236
- Sublassing errors in case of expected behaviour
- When receiving a new message that was using a previously unknown
identity key, we search for any other messages that are encrypted with
the new accepted key and decrypt those too.
- Addressing some of the warnings we had before.
2015-01-04 11:30:28 +01:00
Frederic Jacobs 5cf96b2b05 Incoming call when app closed: updates contact label when available. 2015-01-04 11:30:27 +01:00
Frederic Jacobs 0266621ceb Phone calls in MessageView. 2015-01-04 11:30:27 +01:00
dtsbourg 5961c635e0 MessagesVC: Scrolls to bottom and fixes jumpiness 2015-01-04 11:30:27 +01:00
Frederic Jacobs 224cea7773 Fixing "jump" on loading MessagesViewController 2015-01-04 11:30:26 +01:00
Frederic Jacobs 80a8c39213 Debug: Logging new password creation. 2015-01-04 11:30:25 +01:00
Frederic Jacobs f67e0d13f0 Support for MITM/key change interface. 2015-01-04 11:30:25 +01:00
dtsbourg 6868e2234d Messages view fixes
- Delivered tag
- Fix tap to resend recognizer
- Error messages layout

Reviewed-by: @FredericJacobs
2015-01-04 11:30:24 +01:00
Frederic Jacobs 8435a800d4 WebSocket Public Key Pinning. 2015-01-04 11:30:24 +01:00
Frederic Jacobs 901640507c Removing developer-specific junk. 2015-01-04 11:30:23 +01:00
dtsbourg 91e0b66424 Addresses multiple UI issues.
- New Contact spacing to let user tap call/message icons
- Handeling error messages, delivery receipts, timestamps
2015-01-04 11:30:23 +01:00
dtsbourg 9b5379b3e2 Messages: Add a failed outgoing message cell 2015-01-04 11:30:23 +01:00
Frederic Jacobs 1eff2b3ad5 Rewriting outgoing pipeline with GCD. 2015-01-04 11:30:23 +01:00
dtsbourg e48ea52924 ContactDetail: Fix crash on parsedPhoneNumbers 2015-01-04 11:30:21 +01:00
Frederic Jacobs 6dd04a49fe Refactoring signup flow, storage, contacts.
- Signal preferences and keying material moved to the unified storage
- Set up for staging environment to try out the new APIs
- Changes in the push registration flow to send token to RP & TS
2015-01-04 11:29:59 +01:00
Frederic Jacobs b9907b9a32 Laying ground for signup flow refactoring 2015-01-04 11:28:38 +01:00
Frederic Jacobs 43af8c18e3 Merging UI code with some basic TextSecureKit code. 2015-01-04 11:28:38 +01:00
dtsbourg a60bc8be92 Initial Message UI 2015-01-04 11:28:38 +01:00
Frederic Jacobs 3072e85b00 Updating Pods & translations for release
//FREEBIE
2014-10-30 18:51:29 +01:00
Frederic Jacobs d05791e699 Moving away from custom HTTP stack 2014-10-06 01:28:45 +02:00
Frederic Jacobs 779e9d1b38 Multiple fixes
- Fixes inherited build settings
- New Podfile format
- Fetching updated strings
2014-10-02 00:32:39 +02:00
Frederic Jacobs cd0bda7105 iOS 8 Support
- Supporting iOS 8
- Updating translations
- Rewriting PushManager to extensively use futures
- Pick up calls directly from the lock-screen
2014-09-15 01:32:19 +02:00
Craig Gidney 5401056d31 Checked indentation, future source results, directory layout, thenTry vs then, dependencies 2014-08-20 19:43:33 -04:00
Craig Gidney ced4fc8947 Initial work to depend on external futures library instead of internal implementation
Still need to:
- Fix indentation
- Check for any FutureSource being returned instead of FutureSource.future
- Check for then: vs thenTry: mixups
- Check for main thread related issues
- Check for other exception catching issues
- Adjust directory layout
- Manual end-to-end testing
2014-08-20 08:08:32 -04:00
Frederic Jacobs 76b94c80df Updating Pods
//FREEBIE
2014-08-12 10:22:10 +02:00
Frederic Jacobs 2a0b0cbffc Updating OpenSSL
//FREEBIE
2014-08-07 09:45:43 +02:00
Frederic Jacobs 9051045b9e Fixes for Travis setup
//FREEBIE
2014-08-05 07:19:17 +02:00