Commit graph

427 commits

Author SHA1 Message Date
Matthew Chen
9f2a2d1ee6 Don’t show “export with Signal” UI until async database view registration is complete.
// FREEBIE
2017-06-19 17:38:09 -04:00
Matthew Chen
3e38967590 Do not show database upgrade screen for unregistered users.
// FREEBIE
2017-06-16 12:07:15 -04:00
Matthew Chen
f9fcbad1aa Add a “last app completed launch” version.
// FREEBIE
2017-06-16 12:07:15 -04:00
Matthew Chen
cf3101226b Improve the upgrade screen.
// FREEBIE
2017-06-16 12:06:53 -04:00
Matthew Chen
16dd87a407 Use launch screen as root view controller while database views are loading.
// FREEBIE
2017-06-15 17:15:56 -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
3a83f93099 Tweak appearance of registration views.
// FREEBIE
2017-05-30 09:29:19 -04:00
Matthew Chen
d065c95270 Hide the socket status view when censorship circumvention is active.
// FREEBIE
2017-05-26 20:41:27 -04:00
Michael Kirk
2c7ccbe5db Make sure screen protection is applied before ending bg task
* code cleanup
* Prefer dispatch_async vs. dispatch_sync when possible

// FREEBIE
2017-05-26 09:45:51 -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
2475406258 Respond to CR.
// FREEBIE
2017-05-24 17:47:56 -04:00
Matthew Chen
4680a2465a Remove registration storyboard.
// FREEBIE
2017-05-24 17:46:32 -04:00
Michael Kirk
929ba06263 Merge branch 'hotfix/2.11.4' into mkirk/fix-push-sync-job 2017-05-10 16:56:41 -04:00
Matthew Chen
19b80d1f4b Rework the “disappearing messages” logic.
// FREEBIE
2017-05-10 15:02:16 -04:00
Matthew Chen
b2fba060d8 Fix edge case where screen protection is not removed.
// FREEBIE
2017-05-10 09:39:33 -04:00
Matthew Chen
2cffe78c22 Sync push tokens to service after every app upgrade.
// FREEBIE
2017-05-09 15:58:40 -04:00
Matthew Chen
73db16e068 Improve logging around push token sync.
// FREEBIE
2017-05-09 11:24:09 -04:00
Matthew Chen
2f3831e04b Respond to CR.
// FREEBIE
2017-05-09 10:45:20 -04:00
Matthew Chen
dd3d63623a Pull logging into SyncPushTokensJob.
// FREEBIE
2017-05-09 10:11:19 -04:00
Matthew Chen
aba29ac5ce Improve logging around SyncPushTokensJob.
// FREEBIE
2017-05-08 17:01:50 -04:00
Matthew Chen
b47337c0ba Respond to CR.
// FREEBIE
2017-05-08 14:24:32 -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
61f59067b6 Improve contact-related views.
* Add support for contacts with more than one Signal account using ContactAccount class.
* Use OWSTableViewController in contact-related views.
* Let users add non-contacts to groups.
* Improve the "new group" and "edit group" views.
* Add utility methods for displaying alerts.
* Warn users before discarding unsaved changes in "edit group" view.
* Pull out "contact view helper" to de-duplicate common logic among contact-related views.
* Pull out "group view helper" to de-duplicate common logic among group-related views.
* Pull out new base class for view used to add accounts to groups or the block list.

// FREEBIE
2017-05-02 09:28:02 -04:00
Michael Kirk
48971478dd Allow importing of any file that's not a directory
// FREEBIE
2017-04-27 10:13:26 -04:00
Michael Kirk
1b61c3b0ce fix attachment-import error alert presentation
// FREEBIE
2017-04-27 10:00:41 -04:00
Matthew Chen
2cc3232c01 Fix presentation of “open with Signal” errors.
// FREEBIE
2017-04-27 09:42:30 -04:00
Matthew Chen
c08e6e0fc6 Ignore “open with Signal” if there is an ongoing call.
// FREEBIE
2017-04-27 09:39:45 -04:00
Matthew Chen
791fee347b Improve errors in the 'export with Signal' feature.
// FREEBIE
2017-04-27 09:14:41 -04:00
Matthew Chen
6e36ce97a5 Let users share imported files to a thread or contact of their choice.
// FREEBIE
2017-04-26 13:29:56 -04:00
Matthew Chen
3c7574a908 Register Signal to handle a wide variety of common document types.
// FREEBIE
2017-04-26 13:29:43 -04:00
Matthew Chen
bfd29cd994 Send contacts sync messages whenever the contacts change.
// FREEBIE
2017-04-19 10:25:33 -04:00
Michael Kirk
fa5bb7ad9d Make it easier to track local users registration ID in debug log
// FREEBIE
2017-04-14 11:08:06 -04:00
Matthew Chen
625a448901 Respond to CR.
// FREEBIE
2017-04-12 11:59:45 -04:00
Matthew Chen
effa885614 Rework socket manager.
// FREEBIE
2017-04-12 11:59:45 -04:00
Michael Kirk
398ee22f50 [SSK] rename cipher queue to sessionStoreQueue
// FREEBIE
2017-04-06 21:06:13 -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
3cb02fcd60 Improve handling of incomplete and failed attachment downloads.
// FREEBIE
2017-03-29 12:36:40 -04:00
Matthew Chen
9db33a9651 Remove RedPhone code.
// FREEBIE
2017-03-29 12:25:33 -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
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
Matthew Chen
01d2582074 Add and honor the “CallKit Privacy” setting.
// FREEBIE
2017-02-24 23:01:09 -05:00
Matthew Chen
165e5238cf Simplify the prekey check on app launch and activation.
// FREEBIE
2017-02-21 09:26:53 -05:00
Matthew Chen
2fb89ae8b4 Merge remote-tracking branch 'origin/release/2.7.1'
// FREEBIE
2017-02-17 12:40:08 -05:00
Matthew Chen
c7d08fba46 Avoid checking prekeys twice on app launch.
// FREEBIE
2017-02-14 17:42:22 -05:00
Matthew Chen
49ba0ff942 Flush logs before exiting the app.
// FREEBIE
2017-02-14 13:53:32 -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
cf828dc1cf Rework “verify code” view.
* Ensure all controls visible at all times, on all form factors, even with keyboard active.
* Improve focus (i.e. auto-focus textfield on arrival and after errors).
* Move to programmatic view creation and layout.
* Improve spacing and sizing.
* Replace “change number” button with “back” button.
* Submit code with return key.
* Improve copy for clarity.

// FREEBIE
2017-02-13 11:42:45 -05:00
Matthew Chen
97001018ae Clean up prekey logic.
// FREEBIE
2017-02-10 16:35:16 -05:00
Matthew Chen
dea37b422b Respond to CR.
// FREEBIE
2017-02-08 16:47:09 -05:00
Matthew Chen
8f6483e9b4 Fix bug in the busy logic.
// FREEBIE
2017-02-03 16:47:34 -05:00
Matthew Chen
d7138b6c83 Respond to CR.
// FREEBIE
2017-02-03 11:33:22 -05:00
Matthew Chen
660ff056e2 Modify handling of INStartVideoCallIntent and INStartAudioCallIntent if there already is an ongoing WebRTC or RedPhone call.
// FREEBIE
2017-02-03 11:32:55 -05:00
Michael Kirk
b35c20a06b Don't handle intents pre iOS10.
// FREEBIE
2017-02-01 18:56:38 -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
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
6af933c17d Merge branch 'release/2.6.13' 2017-01-24 14:40:44 -05:00
Michael Kirk
d6f2fa92a6 remove negative notification
There isn't much the user can do in response to it, and the user will
get a subsequent "new message" notification when the fallback push
triggers.

// FREEBIE
2017-01-23 20:10:59 -05:00
Michael Kirk
2355c74173 fixup condition
// FREEBIE
2017-01-23 18:27:43 -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
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
Matthew Chen
9e739433c5 Start work on video.
// FREEBIE
2017-01-23 13:41:59 -05:00
Matthew Chen
698b914049 Elaborate logging in app delegate.
// FREEBIE
2017-01-23 13:31:23 -05:00
Matthew Chen
1898b9fa19 Merge branch 'charlesmchen/fixWebsocket' into feature/webrtc 2017-01-17 18:47:34 -05:00
Matthew Chen
a023d02ae2 Respond to CR.
// FREEBIE
2017-01-17 17:10:57 -05:00
Matthew Chen
cb3f564446 Fix web socket issue.
// FREEBIE
2017-01-17 16:01:19 -05:00
Michael Kirk
f9b44c8892 Added CallService documentation
// FREEBIE
2017-01-12 09:56:08 -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
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
Thomas Guillet
97500d55ec Prevent iRate mechanism when handling local notifications 2016-12-09 15:56:58 -05:00
Michael Kirk
88d9ef987f Share dialog for Safety Numbers
// FREEBIE
2016-11-15 18:44:52 -05: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
2edd2b8f81 set launch state correctly
// 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
3e7e67e276 Async migrations framework
* nonblocking by default
* track success of each migration independently

// FREEBIE
2016-09-28 17:09:11 -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
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
9006ff604f Multi device read receipts.
All the heavy lifting is in SignalServiceKit.

// FREEBIE
2016-09-06 15:57:44 -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
1e0f0157c1 namespace ContactsManager -> OWSContactsManager
rename test class ContactManager->OWSContact_s_Manager
update docs

// FREEBIE
2016-06-28 08:58:29 -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
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
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
861e3d6266 Fixes #930 2015-11-03 00:26:48 +01:00
Frederic Jacobs
777e7e16f0 3D Touch: Quick Compose 2015-10-31 23:44:16 +01:00
Frederic Jacobs
8189e593ef Fixes glitching of inbox label when coming back from background.
The method was not called on the main thread, resulting in rendering
issues.
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
c95f190140 Require AddressBook permission.
Signal requires the AddressBook permission to use the app at the
moment. This avoids the edgecases where a user doesn’t allow access to
his address book and then tries to use the app. We’re also doing a
significantly better job at explaining why we need this permission to
the user.
2015-08-24 01:47:25 +02: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
f6c0625c2c Removing unused imported classes.
//FREEBIE
2015-07-27 16:19:08 +02:00
Mert Buran
040e4c750b Removing literals and self within block.
declaring constants instead of string literals
avoiding using self within block
removed unused method decleration from header file

Reviewed-by: @FredericJacobs
2015-07-13 13:49:43 +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
0f45294221 Reliability enhancements for notifications. 2015-05-12 22:43:32 +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
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
c6cdbea89a Fixes #761 2015-04-07 17:22:57 +02:00
Frederic Jacobs
788aa8cb4f Dropping some required permissions. Smarter microphone permission. 2015-03-23 01:34:33 +01:00
Frederic Jacobs
7a5f9f1413 Remove initialization on MIMETypeUtil 2015-03-21 19:33:58 +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
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
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
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
1d1a140d6b Addressing UI issues.
- Makes sure that status bar is white on launch.
- Dismisses keyboard before playing video.
2015-01-30 12:40:17 -10:00
Christine Corbett
f5848365f7 Deliberate handling of MIME types for video, audio, and images.
• rejects unhandled media with unsupported attachment message
• for supported media, handling of MIME type/file extension conversion in a single place
• groundwork for future handling of additional types via e.g. conversion
2015-01-29 08:30:50 -10:00
Frederic Jacobs
826b73051d Multiple constraints updates & addressing warnings.
- Icon bundles upgraded to match required sizes.
- Moving to NSAttributes instead of deprecated UIAttributes.
- Casting serialized attachmentID to NSNumber.
- Removing unused archival view from InboxTableViewCell.
- Upgrading contraints on SignalsVC for 6+ "TabBar".
- Removing deprecated "plain" properties
- Removing redundant button in FingerprintViewController.
- Addresses issues with placement of change number in signup flow
- Fixes placement bug in new group view
- Exclude unused reference.
2015-01-28 19:25:19 -10:00
Frederic Jacobs
fb0281fd61 Exclude Signal files from backup & encrypt when possible. 2015-01-27 17:18:49 -10:00
Frederic Jacobs
bcd98f90ee Closes #263 2015-01-27 15:31:54 -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
Christine Corbett
ccdc4b5d17 Redesign implementation.
Result of stashed commits by @corbett and @abolishme
2015-01-24 16:28:34 -10:00
Frederic Jacobs
7c658b2879 Enhancements in build configuration.
- Helps onboarding of new contributors because signup generates a fake
push token to register devices.
- Deleted Ad-Hoc configuration since no more HockeyApp distribution.
TestFlight uses default `AppStore release` build configuration.
2015-01-18 10:28:11 +01:00
Frederic Jacobs
14164d9855 Closes #359
//FREEBIE
2015-01-16 15:54:48 +01: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
2d850021a0 Fixing bug causing outgoing calls to be cancelled. Closes #264 2015-01-04 15:05:43 +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
dtsbourg
5ddb85b6cc Modal presentation of the setup view.
- Memory efficiency.
- Fixes issue where segues were never unwinded.
- Fixes issues on first launch where initiating a call would show the login screen again.
- Addresses issue where the signup code would not have been added properly after clicking link in SMS.

Reviewed by: @FredericJacobs
2015-01-04 11:30:24 +01:00
Frederic Jacobs
52d84ae006 LaunchScreens and Screen Security. 2015-01-04 11:30:24 +01:00
dtsbourg
e70fd6391b General: Screenshot protection (closes #216) 2015-01-04 11:30:23 +01:00
Frederic Jacobs
901640507c Removing developer-specific junk. 2015-01-04 11:30:23 +01:00
Frederic Jacobs
d4f5675a58 Supporting alert on unregistered users + bug fixes. 2015-01-04 11:30:23 +01:00
Frederic Jacobs
35a2762c5f Starting background fetching of messages. 2015-01-04 11:30:23 +01:00
Frederic Jacobs
6446c6fbe0 Socket Management 2015-01-04 11:30:23 +01:00
Frederic Jacobs
1eff2b3ad5 Rewriting outgoing pipeline with GCD. 2015-01-04 11:30:23 +01:00
Frederic Jacobs
8514836032 Integrating call and messaging buttons. 2015-01-04 11:30:23 +01:00
Frederic Jacobs
f1c92b229a Registering by tapping SMS link. 2015-01-04 11:30:22 +01:00
Frederic Jacobs
0c88202f7b Adapting to changes to SubProtocol and InboxView 2015-01-04 11:30:22 +01:00
dtsbourg
e48ea52924 ContactDetail: Fix crash on parsedPhoneNumbers 2015-01-04 11:30:21 +01:00
Frederic Jacobs
8b6ac13594 Fixes InCallViewController & contacts not displayed 2015-01-04 11:29:59 +01:00
Frederic Jacobs
c3dff810ad Registration refactoring - wip. 2015-01-04 11:29:27 +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
5091c53aa3 More advanced fixes for push notifications on iOS7 2014-10-30 18:45:14 +01:00
Frederic Jacobs
953d4d80fd Syntax fixes from #172
//FREEBIE
2014-10-06 10:05:55 +02:00
Frederic Jacobs
d05791e699 Moving away from custom HTTP stack 2014-10-06 01:28:45 +02:00
Frederic Jacobs
510831d701 Auto-layout enhancements + Submit Debug Logs 2014-10-05 19:18:18 +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
f1de95ab06 Recursively added dot syntax, translating more terms when they were encountered in the dif
FREEBIE
2014-09-12 07:21:17 +02: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
Craig Gidney
4cd30f32ed Using getter syntax for shared*, is*, and has* 2014-08-19 00:14:19 -04:00
Frederic Jacobs
1793d41b8f Merge pull request #116 from Strilanc/modern_0
Using dot syntax for count and length
2014-08-18 20:09:34 +02:00
Craig Gidney
a3b438b040 Retry build 2014-08-14 11:52:24 -04:00
Frederic Jacobs
dc4e4689e0 Checks and extra logging for login issues 2014-08-14 16:36:17 +02:00
Craig Gidney
9e36872644 Using dot syntax for count and length 2014-08-13 21:13:24 -04:00
Frederic Jacobs
c52c6c6248 Clearing notifications from notification center
Application acknowledges notifications and then clears them from
notification center.
//FREEBIE
2014-08-14 00:45:59 +02:00
Craig Gidney
1e9a3e9a46 Ran "Edit -> Refactor -> Convert to Modern Objective-C Syntax"
- dictionaryWithObject -> @{key: val}
- objectAtIndex -> a[i]
- numberWithBool/Int/etc -> @1, @(val)
- Reverted friendly fire on ProtocolBuffers
- Did not do ANY other changes (including changes to make more refactorings succeed)
//FREEBIE
2014-08-13 12:36:36 +02:00
Frederic Jacobs
619b53cb0b Screen security feature. Closes #31 2014-08-09 18:27:26 +02:00
Frederic Jacobs
aca4733ac0 Multiple fixes
- Make logging optional if desired
- HTTPS external URLs
- Clean app data when re-registering
- If registration future fails, bring back user interaction
2014-08-09 01:01:05 +02:00
Frederic Jacobs
c2d78bba12 Migration scheme 2014-08-01 19:24:26 -04:00
Frederic Jacobs
60fb869baa Closes #80 #37
- Use of new Keychain Access attribute
- Error management (notifying the user) when opening app without
required push and microphone permission
- Enforcing APNID are sent to server, retry later if not able to reach
server
2014-08-01 01:53:58 -04:00
Frederic Jacobs
3113665f08 Removing some test headers 2014-07-30 21:55:17 -04:00
Frederic Jacobs
a588f27c65 Transitioning off custom preference files 2014-07-30 02:05:36 -04:00
Frederic Jacobs
5c124c647b Using PastelogKit 2014-07-19 12:25:22 -10:00
Frederic Jacobs
675956f792 Goodbye OCTest, Hello XCTest
Some tests are still failing after the new key datastore transition.
2014-07-17 01:14:12 +02:00
Frederic Jacobs
021da47a99 Bug fixes + Keychain store 2014-07-11 00:33:51 +02:00
Frederic Jacobs
09b6fdea10 Adding more logging to address the initialization issues 2014-07-06 19:18:56 +02:00
Frederic Jacobs
e93c27e221 Additional call anonymous logging 2014-07-03 18:45:06 +02:00
Frederic Jacobs
7661740160 Localized sign up messages and gist log upload 2014-07-03 03:12:34 +02:00
Frederic Jacobs
c69747e48b Production logging & sign up error handling 2014-06-30 17:14:33 +02:00
Frederic Jacobs
a6bf143855 Cleaner Keychain storage 2014-05-07 00:33:20 +02:00
Frederic Jacobs
6373507108 initial commit 2014-05-06 19:41:08 +02:00