Commit graph

299 commits

Author SHA1 Message Date
Michael Kirk
a5f067936c migration to fix any half-registered users
// FREEBIE
2017-07-24 13:01:43 -04:00
Matthew Chen
fdac0305cb Update analytics macros.
// FREEBIE
2017-07-21 15:04:41 -04:00
Matthew Chen
0b28285deb Fix broken tests.
// FREEBIE
2017-07-12 12:14:15 -04:00
Matthew Chen
69ba2811db Run orphan cleanup on startup.
// FREEBIE
2017-07-12 12:14:15 -04:00
Matthew Chen
d639d6557e Add owsFail free function for swift.
// FREEBIE
2017-07-11 16:20:20 -04:00
Matthew Chen
9aa54cad63 Fix missing “database upgrade” label on launch screen.
// FREEBIE
2017-07-06 15:10:47 -04:00
Michael Kirk
8e891eb357 Merge branch 'hotfix/2.13.3.0'
// FREEBIE
2017-07-06 09:33:57 -05:00
Matthew Chen
73869b1eff Fix possible cause of crash on launch.
// FREEBIE
2017-07-05 17:26:27 -04:00
Matthew Chen
7135895c1c Modify TSStorageManager to use separate shared read and write connections.
// FREEBIE
2017-07-05 17:01:28 -04:00
Michael Kirk
8abde1dff8 Non-Callkit adapter plays audio from notification when app is in
background

// FREEBIE
2017-07-05 11:53:16 -05:00
Michael Kirk
c1881c02c8 constantize file name per CR
// FREEBIE
2017-07-05 11:45:31 -05:00
Michael Kirk
9b1695f28c Play audible alert for missed call
// FREEBIE
2017-07-05 11:37:01 -05:00
Michael Kirk
89260e843f Unregistered users should have 0 badge count
// FREEBIE
2017-07-05 11:34:23 -05:00
Matthew Chen
e48d51d084 Respond to CR.
// FREEBIE
2017-06-23 14:18:17 -04:00
Matthew Chen
a462cba452 Don’t reply to “no longer verified”.
// FREEBIE
2017-06-23 13:55:21 -04:00
Matthew Chen
eff1974eeb [SSK] Reduce chattiness of logs; increase log file sizes.
// FREEBIE
2017-06-22 10:10:56 -04:00
Matthew Chen
f3f832557f Respond to CR.
// FREEBIE
2017-06-21 10:39:45 -04:00
Matthew Chen
ec077235ba Respond to CR.
// FREEBIE
2017-06-21 10:38:41 -04:00
Matthew Chen
6a5fe94d59 Improve perf of attachment stream file path upgrade.
// FREEBIE
2017-06-21 10:38:41 -04:00
Matthew Chen
0738568b94 Fix upgrade launch screen.
// FREEBIE
2017-06-20 17:48:11 -04:00
Matthew Chen
c7426f9343 Avoid crashing on startup due to database view creation.
* Substitute unread view for unseen view until unseen view is ready.
* Register as many views as possible async.
* Perform blocking, safe migrations before async registration of views.
* Add debug settings view for internal app stats.
* Show blocking overlay until async registration of database views is complete.
* Convert version migrations to use AppVersions.

// FREEBIE
2017-06-15 13:44:30 -04:00
Matthew Chen
05e316381b Remove “block on safety number changes” setting in preferences.
// FREEBIE
2017-06-14 14:36:21 -04:00
Matthew Chen
bdfa435738 Allow notification sound check from any thread.
// FREEBIE
2017-06-13 13:45:07 -04:00
Matthew Chen
5e993e72c1 Throttle notification sounds.
// FREEBIE
2017-06-12 17:13:34 -04:00
Michael Kirk
c8d547a08f Only allow callback for identities that were not previously verified
// FREEBIE
2017-06-07 10:29:45 -04:00
Michael Kirk
1127553041 restore "confirm and callback" functionality
// FREEBIE
2017-06-07 10:29:01 -04:00
Matthew Chen
b6ddea9eae Sketch out OWSIdentityManager.
// FREEBIE
2017-06-07 10:18:16 -04:00
Matthew Chen
ceb210748e Sketch out OWSIdentityManager.
// FREEBIE
2017-06-07 10:18:16 -04:00
Matthew Chen
a013a7206e Rework and unify the system messages.
// FREEBIE
2017-06-06 10:15:56 -04:00
Matthew Chen
9cdf907e20 Rework and unify the system messages.
// FREEBIE
2017-06-06 10:15:56 -04:00
Matthew Chen
2cbf1e1d05 Rework and unify the system messages.
// FREEBIE
2017-06-06 10:15:56 -04:00
Michael Kirk
177800c641 only run migration once
// FREEBIE
2017-06-06 10:05:53 -04:00
Michael Kirk
130aa132a0 Reject incoming calls from an unseen changed identity
// FREEBIE
2017-06-01 12:59:34 -07:00
Matthew Chen
616041c0fb Respond to CR.
// FREEBIE
2017-05-30 09:41:28 -04:00
Matthew Chen
dd3394be1b Cache display names for accounts.
// FREEBIE
2017-05-30 09:41:28 -04:00
Michael Kirk
6d00aac046 style cleanup, no functional changes
// FREEBIE
2017-05-24 18:01:24 -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
0ec095f216 Nag users on iOS 8 to upgrade.
// FREEBIE
2017-05-18 10:09:07 -04:00
Matthew Chen
5fd93eace0 Fix missing notifications.
// FREEBIE
2017-05-17 15:45:42 -04:00
Matthew Chen
fc7dec04aa Fix missing notifications.
// FREEBIE
2017-05-17 15:45:42 -04:00
Matthew Chen
e36b5a4602 Improve group members view.
// FREEBIE
2017-04-19 11:37:27 -04:00
Matthew Chen
c8466912f0 Add muting of threads.
// FREEBIE
2017-04-19 09:57:12 -04:00
Matthew Chen
3e53605009 Improve thread safety in PushManager and NotificationsManager.
// FREEBIE
2017-04-17 16:49:09 -04:00
Matthew Chen
b7b5dbb563 Do not present local notifications if a read receipt arrives immediately after.
// FREEBIE
2017-04-12 09:46:53 -04:00
Michael Kirk
a951d11d97 [SSK] move iOSVersion to SSK
// FREEBIE
2017-04-06 21:06:13 -04:00
Matthew Chen
5ff454fd90 Fix double creation of NotificationsManager singleton.
// FREEBIE
2017-03-31 23:25:30 -04:00
Matthew Chen
8374ca149e Apply assert to ensure singletons are only created once.
// FREEBIE
2017-03-31 18:45:51 -04:00
Michael Kirk
7f239c8040 [SSK] + Enforce singleton access for MessagesManager and MessageSender
// FREEBIE
2017-03-31 10:41:46 -04:00
Michael Kirk
0b49037179 Remove some more RP related code
// FREEBIE
2017-03-30 11:00:28 -04:00
Matthew Chen
47ae6ccf76 Don't show the "no contacts" mode of new conversation view again after it has been dismissed.
// FREEBIE
2017-03-29 12:59:48 -04:00
Matthew Chen
9db33a9651 Remove RedPhone code.
// FREEBIE
2017-03-29 12:25:33 -04:00
Matthew Chen
3fcdffb919 Only enforce CallKit privacy for missed calls if CallKit is present.
// FREEBIE
2017-03-27 12:01:16 -04:00
Matthew Chen
c6a280e005 Only initiate WebRTC calls, not RedPhone calls.
// FREEBIE
2017-03-22 17:02:42 -04:00
Matthew Chen
b9b81ca8ef Honor call privacy settings in call notifications.
// FREEBIE
2017-03-22 09:41:08 -04:00
Matthew Chen
1820fdbde8 Merge remote-tracking branch 'origin/hotfix/2.8.3' 2017-03-20 12:55:05 -04:00
Matthew Chen
a226a4a1b3 Respond to CR.
// FREEBIE
2017-03-16 15:04:59 -03:00
Matthew Chen
47df77f38c Only run "enable video calling" migration if user is registered.
// FREEBIE
2017-03-16 10:59:10 -03:00
Michael Kirk
3ee1d5568c Migrate existing users to RTC calling
// FREEBIE
2017-03-14 18:59:48 -04:00
Matthew Chen
dc422f7b00 Convert "is logging enabled" methods to class methods so that they can safely be used before Environment has been initialized.
// FREEBIE
2017-03-14 17:59:36 -04:00
Matthew Chen
164db41c29 Move TSImageQuality enum.
// FREEBIE
2017-03-14 10:23:36 -03:00
Matthew Chen
15e14a9b5c Convert "is logging enabled" methods to class methods so that they can safely be used before Environment has been initialized.
// FREEBIE
2017-03-13 10:33:58 -03:00
Michael Kirk
9b2eb80392 Code review on new-features
* use page view controller
* UIPageControl instead of arrows for idiomatic swiping
* Nudge title lower
* better hit area for dismiss
* use darker blue for text
* Open privacy settings from callkit update screen
* tweak copy
* latest translations

// FREEBIE
2017-03-02 22:09:33 -05:00
Michael Kirk
b371e627c4 one-time carousel of changes
// FREEBIE
2017-03-02 14:37:50 -05:00
Matthew Chen
012dd3d192 Add “nag” to call settings view that prods the user to change their privacy settings after calls.
// FREEBIE
2017-02-27 17:19:36 -05:00
Matthew Chen
a20a21867e Respond to CR.
// FREEBIE
2017-02-24 23:02:17 -05:00
Matthew Chen
065d383c15 Add and honor the “CallKit Privacy” setting.
// FREEBIE
2017-02-24 23:01:09 -05:00
Michael Kirk
4b8a5f8ccb TURN-only option, and for unknown caller
Now, by default, we only use TURN for incoming calls from unknown
contacts. We will potentially directly connect for outgoing calls and
for incoming calls from known contacts.

Optionally, the user can disable direct connection altogether, at the
cost of some call quality.

// FREEBIE
2017-02-24 11:21:52 -08:00
Matthew Chen
f4453eb995 Enable WebRTC-based audio and video calls by default.
// FREEBIE
2017-02-21 11:10:57 -05:00
Michael Kirk
e5c6d0db9a fix potential deadlock
// FREEBIE
2017-02-20 18:01:27 -05:00
Matthew Chen
49ba0ff942 Flush logs before exiting the app.
// FREEBIE
2017-02-14 13:53:32 -05:00
Matthew Chen
3c3f782e7d Clean up prekey usage.
// FREEBIE
2017-02-14 13:46:08 -05:00
Michael Kirk
2a9aa4c852 users can opt out of CallKit
// FREEBIE
2017-02-02 19:09:37 -05:00
Michael Kirk
08425853cf re-use shared call strings
// FREEBIE
2017-02-02 17:42:23 -05:00
Michael Kirk
a339f52564 Only touch mutable dict only main thread
* and make nonatomic since we're only assigning it in init

// FREEBIE
2017-02-02 17:29:49 -05:00
Michael Kirk
17b89f44aa share global callUIAdapter, outboundCallInitiator
// FREEBIE
2017-02-01 18:56:38 -05:00
Michael Kirk
bbfd9ba74d Place Signal/Redphone calls from system contacts
// FREEBIE
2017-02-01 18:56:37 -05:00
Michael Kirk
a6029f2545 Merge remote-tracking branch 'origin/master' into feature/webrtc 2017-01-25 09:54:33 -05:00
Michael Kirk
a89bde933d Respect silent-switch pre-CallKit
8 Cases considered:

(Silent Switch toggled vs. Silent Switch not-toggled)
x (App in Foreground vs. App in Background)
x (CallKit vs. NonCallKit)

CallKit already does the "right thing"

// FREEBIE
2017-01-24 12:57:02 -05:00
Michael Kirk
907e122d62 Migrate legacy db stored logging preferences to NSUserDefaults
This is part of making sure we can log *before* the DB is initialized.

// FREEBIE
2017-01-23 20:10:58 -05:00
Michael Kirk
870fb960a2 Start logging earlier in app setup.
Because logging-preference was previously stored on the storageManager
this meant we couldn't possible log anything related to the init'ing the
storage manager.

TODO: migrate old logging preference to use the new NSUserDefaults
setting

// FREEBIE
2017-01-23 18:25:59 -05:00
Matthew Chen
654bdb1a85 Add WebRTC setting.
// FREEBIE
2017-01-17 10:20:04 -05:00
Matthew Chen
98e087a47f Fix font lookup on iOS before 8.2.
// FREEBIE
2017-01-12 10:14:35 -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
6106326b34 Update to reflect changes in SSK https://github.com/WhisperSystems/SignalServiceKit/pull/85.
// FREEBIE
2017-01-11 09:19:50 -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
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
eb995cb389 revert to tracking longform build
We use this to determine which legacy migrations to run.

Also, soften the "your device is too old" behavior to just exit, rather
than blow away the users installation. Ouch!

* bump version

// FREEBIE
2016-11-14 13:34:39 -05:00
Michael Kirk
fbcf5fbf07 Properly assign global contacts updater to environment
broken in 33f6a95520

// FREEBIE
2016-11-13 12:39:08 -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
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
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
Michael Kirk
64f4eb73c5 Allow autogenstrings to find all strings
* Inline #define strings, so genstrings can find them
* Make all strings single line so they don't get truncated by auto-genstrings
* Properly quote LHS in strings file

// FREEBIE
2016-10-20 13:27:38 -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
3e7e67e276 Async migrations framework
* nonblocking by default
* track success of each migration independently

// 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
e56d41edc7 Otherwise we'll never run future migrations. (#1314)
// FREEBIE
2016-08-21 14:15:50 -04:00
Michael Kirk
9a86ca76ce screen security is enabled by default
// FREEBIE
2016-08-15 10:07:14 -04:00
Michael Kirk
58548c68cc code cleanup
- refactor screen protection code for clarity
- remove unused settings cell class
- remove unused preferences

// FREEBIE
2016-08-15 10:07:14 -04:00
Michael Kirk
6120bd9e8e Orphan-data cleanup no longer causes timeout (#1303)
On older devices with lots of data, the orphan data cleaner can time
out. Here we're trading certainty that the migration completed for
confidence that the boot process doesn't time out.

// FREEBIE
2016-08-15 08:06:34 -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
000a5941f4 Delete attachment cleanup migration.
After running locally, I noticed many old threads missing old
attachments. I'll do some further investigation.

// FREEBIE
2016-08-01 08:21:32 -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
f899cff128 Fix in-app audio
- sound is set by passing in reference
- don't access properties in constructor
- distinguish multiple variables with same name

// FREEBIE
2016-07-19 09:12:18 -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
1e0f0157c1 namespace ContactsManager -> OWSContactsManager
rename test class ContactManager->OWSContact_s_Manager
update docs

// FREEBIE
2016-06-28 08:58:29 -07:00
Michael Kirk
76352bf471 Code Cleanup (#1229)
* remove unused Signal-Bridging-Header
* move Adapters out of ViewControllers directory
* remove unimplemented method from header
* Fix unused variable warning.
* Move SignalsViewControllers out of UITests directory.
* remove executable bit from source files

// FREEBIE
2016-06-17 15:41:41 -07:00
Michael Kirk
752b0fecab Bloom filter migration: check for file before deleting (#1147)
- Extracted migration method
- added some logging

// FREEBIE
2016-04-18 11:17:08 -07:00
Frederic Jacobs
4034baedb9 Adapting to renaming. 2016-04-08 09:47:41 +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
1b02e186f8 Fixes #146 #147. 2015-12-24 18:52:18 +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
3acc47d6ad Fixes #832 2015-12-23 00:11:03 +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
0ad55853f2 Adding staging environment. 2015-10-31 05:00:05 +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
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
f6c0625c2c Removing unused imported classes.
//FREEBIE
2015-07-27 16:19:08 +02:00
Frederic Jacobs
07abcaf7da Register extra keying material at registration. 2015-07-14 21:55:25 +02:00
Frederic Jacobs
4c96ea1c91 Fixes crash on launch for unregistered users who updated. 2015-06-19 13:11:08 +02:00
Frederic Jacobs
57f86008d1 UX and Notifications fixes
- Removes large confusing UX bar and related assets. Replaced with UISwitch.
- Enhanced user experience for missed calls.
- Fixes issue where missed call would appear as incoming call in call log.
- Fixing issues where PushKit handler not called on launch.
2015-06-07 22:38:28 +02:00
Frederic Jacobs
1550c61216 Addressing issues with background decryption.
- Simplifying background timeout strategy for reliabilty.
- Adding Notifications settings.
- Dropping support for VOIP Push < 8.2 because buggy.
2015-05-06 12:36:40 +02:00
Frederic Jacobs
9652584ada Upgrading dependencies. 2015-04-28 02:15:41 +02:00
Frederic Jacobs
e47e9759e9 Fixing leaky caches. 2015-04-28 02:15:41 +02:00
Frederic Jacobs
13448bdb2d Notifications enhancements.
- Tap to reply to a message.
- Badges application with the number of unread messages.
- Pick up a phone call from lock screen, or decline it.
- Settings for notification sounds while app in foreground and text displayed on local notifications.
2015-04-28 02:15:37 +02:00
Frederic Jacobs
788aa8cb4f Dropping some required permissions. Smarter microphone permission. 2015-03-23 01:34:33 +01:00
Frederic Jacobs
9c611fad79 Fixes #725 2015-03-21 17:53:38 +01:00
Frederic Jacobs
b6ef5f0b7f Bloomfilter moves to Cache folder
The bloom filter is not user generated content so Apple is not going to
let us store it into the Documents folder. Moving it to the Cache
folder.
2015-03-12 00:46:31 +01:00
Frederic Jacobs
daac2c0db3 Fixes #566
This fixes the issue with duplicate numbers in group chats. This is just a "fix" for 2.0.1 but the group code is still pretty messy and should be refactored for 2.1
2015-02-28 23:28:50 +01:00
Frederic Jacobs
212f0d4350 Fixes #611 2015-02-26 01:20:44 +01:00
Frederic Jacobs
d4e7096e83 Fixes #609
- Also addresses a typo where the cipher key was checked to exist twice.
2015-02-21 14:50:14 +01:00
Frederic Jacobs
24616735e5 Fixing issue when migration closed and re-opened. 2015-02-21 12:11:49 +01:00
Frederic Jacobs
311a758d27 Preparing release
- Incrementing build number
- Fetching latest translations
- Pod lock
2015-02-21 12:11:49 +01:00
Frederic Jacobs
3ade708040 Fixes based on corbett and abolishme's feedback 2015-02-21 12:10:28 +01:00
Frederic Jacobs
9872bed428 Addressing some storage related fixes.
- Tested on jailbroken phone that correct files are getting encrypted
- Fixes #557
- Stores image file extension
- Addresses issue with deletion of debug logs
- Preventing user to browse in app if not registered with TS server
2015-02-20 22:59:38 +01:00
Christine Corbett
1ede61f272 Localizing the TextSecure component of Signal. 2015-02-20 19:31:44 +01:00
Christine Corbett
d70a9403b6 Empty states.
- With the exception of the first launch states, none of the empty states should include any artwork
- First Launch Inbox State should read: Start your first Signal conversation! Tap on the + button.
- Empty Inbox State should read Done. Done. Done. Tip: add a conversation as a reminder!
- First Launch Archive State [should read][first-launch-archive] Save conversations for reference. You can swipe conversations into your Archive from the Inbox
- Empty Archive State should read Squeaky Freaking Clean. None. Zero. Zilch. Nada.
2015-02-16 23:53:25 +01:00
Christine Corbett
a6976bac18 Migrations from 1.0.x and 2.0 beta. 2015-01-31 01:22:18 -10:00
Christine Corbett
b7d65ce921 Designing the empty state during contact refresh. 2015-01-30 22:30:01 -10:00
Frederic Jacobs
fb0281fd61 Exclude Signal files from backup & encrypt when possible. 2015-01-27 17:18:49 -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
9e8ba91304 Settings refactoring.
- Renames GroupModel to TSGroupModel for TextSecureKit consistency.
- Refactors the settings into categories (joint work with @dtsbourg)
- Removes settings and logic for background push.
2015-01-16 15:28:41 +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
bf8f2bb263 Closes #270 #271 #273 2015-01-05 16:31:00 +01:00
Frederic Jacobs
0266621ceb Phone calls in MessageView. 2015-01-04 11:30:27 +01:00
Frederic Jacobs
a93b111458 Groups: Name of leaving user + outgoing message layout. 2015-01-04 11:30:27 +01:00
Christine Corbett
e58f9bf966 Groups: Update messages, avatars and bug fixes 2015-01-04 11:30:27 +01:00
Frederic Jacobs
402df72306 Attachments handling
- Sends image rotated
- If message is delete, delete the attachment db object and file
- Delete attachment from detail view
2015-01-04 11:30:26 +01:00