Commit Graph

450 Commits (c1879250d8e4cd205324339126534c673324da55)

Author SHA1 Message Date
Michael Kirk ae174d4a87 proper handling for multibyte characters
// FREEBIE
8 years ago
Matthew Chen cc048b3971 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen ef21c6d50c Ignore "GIF of death."
// FREEBIE
8 years ago
Matthew Chen 5fcf89dff1 Ignore "GIF of death."
// FREEBIE
8 years ago
Michael Kirk 526d5e33b9 Sync profile key to sibling devices when updating contact
// FREEBIE
8 years ago
Michael Kirk 1f3d2d1ed6 Send any profile key in contact sync
// FREEBIE
8 years ago
Michael Kirk f6720f9afa properly clear all cached avatar images
// FREEBIE
8 years ago
Matthew Chen ae1908c40c Show "share profile with group" banner.
// FREEBIE
8 years ago
Matthew Chen 14d472781f Respond to CR.
// FREEBIE
8 years ago
Matthew Chen a340c9ebdc Clean up ahead of CR.
// FREEBIE
8 years ago
Matthew Chen 4578a72ab2 Reorder where contact offers appear.
// FREEBIE
8 years ago
Matthew Chen a825fad47b Start reworking the contact offers.
// FREEBIE
8 years ago
Matthew Chen 98eb4693c5 Rework the contact offers.
// FREEBIE
8 years ago
Matthew Chen 5f2f8ec6d8 Start reworking the contact offers.
// FREEBIE
8 years ago
Matthew Chen 08347478a2 Implement alternative approach to veto-able back buttons.
// FREEBIE
8 years ago
Michael Kirk 7c386b1d1e CR: RTL, trim profile names, ensure not empty
- RTL support with localizable format strings
- Trim decrypted profile names
- more rigorous empty check

// FREEBIE
8 years ago
Matthew Chen 164bf19b47 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen d476bc286d * Add debug UI tools for clearing and logging the profile whitelist.
* Auto-add new contact threads to profile whitelist when local user sends first message to that thread.
* Ensure dynamic interactions have a non-negative timestamp even if the conversation was empty.
* Only call updateMessageMappingRangeOptions _after_ beginLongLivedReadTransaction and updating messageMappings.
* Improve documentation around how to avoid corrupt mappings in conversation view.
* Fix edge cases around large initial range sizes.
* Always treat dynamic interactions as read.
* Rebuild the “unseen” database views to remove dynamic interactions (see above).

// FREEBIE
8 years ago
Matthew Chen 90f959d0ab Respond to CR.
// FREEBIE
8 years ago
Matthew Chen cdb181eadc Sketch out profile header in app settings view.
// FREEBIE
8 years ago
Matthew Chen e01fbc247e Refine profile logic.
// FREEBIE
8 years ago
Matthew Chen 37ce388eb6 Add “add to profile whitelist” offer.
// FREEBIE
8 years ago
Michael Kirk ed4de7e8af Simplify code / pre-cache localNumber
Now that localNumber is read from a dedicated dbConnection we don't have
to worry about it blocking.

// FREEBIE
8 years ago
Matthew Chen a3b16812ec Add convenience category for YapDatabaseConnection.
// FREEBIE
8 years ago
Matthew Chen 904515994f Add more instrumentation to CallService.
// FREEBIE
8 years ago
Matthew Chen 31ab9a00da Add script to extract and gather analytics event names.
// FREEBIE
8 years ago
Michael Kirk 3f4dcecf15 ensure blocking keychange message has identityKey before proceeding
This is increasingly irrelevant due to recent safety number changes, but
legacy clients with old messages can still run into this.

FIXES: https://github.com/WhisperSystems/Signal-iOS/issues/2346

// FREEBIE
8 years ago
Matthew Chen 863fd27abe Respond to CR.
// FREEBIE
8 years ago
Michael Kirk a5f067936c migration to fix any half-registered users
// FREEBIE
8 years ago
Matthew Chen fdac0305cb Update analytics macros.
// FREEBIE
8 years ago
Matthew Chen 693e74e868 Adapt conversation settings view to RTL.
// FREEBIE
8 years ago
Michael Kirk fa42b4a45b Respect disappearing message timer from lockscreen
// FREEBIE
8 years ago
Michael Kirk a59eb25aef extract dismiss string -> CommonStrings.dismissButton
// FREEBIE
8 years ago
Michael Kirk 2067697ed4 Add comment and clearer tests per CR
// FREEBIE
8 years ago
Michael Kirk 4f1ee98489 scrub any data that slips through to logs
Similar to phone number scrubbing, we leave a short prefix of the data
to help with debugging without leaking much data.

// FREEBIE
8 years ago
Matthew Chen c9355630c7 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen d639d6557e Add owsFail free function for swift.
// FREEBIE
8 years ago
Michael Kirk f681712ea0 Code Cleanup
- make some logging clearer
- remove noisy unhelpful logging
- clearer method names

// FREEBIE
8 years ago
Matthew Chen e3f2583b4a Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 0244e134f5 Block device from sleeping during certain activities.
// FREEBIE
8 years ago
Matthew Chen 9e5447f1d4 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen b400c0a327 Don’t show app upgrade nag unless we are at rest in home view or registration view.
// FREEBIE
8 years ago
Matthew Chen 944cd7beef Show app update nag on launch if necessary.
// FREEBIE
8 years ago
Michael Kirk a933fbf215 sync verifications with contact syncing
// FREEBIE
8 years ago
Matthew Chen d01a52758b Respond to CR.
// FREEBIE
8 years ago
Matthew Chen d4a6a35ee3 Avoid stale mapping in conversation view.
// FREEBIE
8 years ago
Matthew Chen e14b9b511d Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 8649b26033 Don’t auto-scroll after “loading more messages” unless we have “more unseen messages”.
// FREEBIE
8 years ago
Matthew Chen 3c28f15dbd Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 75ccff0e4f Improve debug tools for creating “fake” and “tiny attachment” messages.
// FREEBIE
8 years ago
Matthew Chen f71f33c2a6 Respond to CR.
// FREEBIE
8 years ago
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
8 years ago
Matthew Chen b18e7cde34 Don’t show offers in conversation with self.
// FREEBIE
8 years ago
Matthew Chen 575d631123 Reduce number of database views.
// FREEBIE.
8 years ago
Matthew Chen 11ca51c95f Show verification state banner. Show verification state in conversation settings view.
// FREEBIE
8 years ago
Matthew Chen 5264602106 Move QR code scanning to a separate view.
// FREEBIE
8 years ago
Matthew Chen 58ebebc97f Move QR code scanning to a separate view.
// FREEBIE
8 years ago
Matthew Chen 1ef9ba0659 Clea up usage of fail macro.
// FREEBIE
8 years ago
Matthew Chen 90cdb6fcc6 Only show unread indicator if there is more than one message in the thread.
// FREEBIE
8 years ago
Matthew Chen b5f5599774 Fix edge cases in the unseen indicator.
// FREEBIE
8 years ago
Matthew Chen 22fc69bbb4 Decompose MessagesViewController, add “scroll to bottom button”, improve scrolling behavior.
// FREEBIE
8 years ago
Matthew Chen f49309bf66 Add incoming and outgoing message database views.
// FREEBIE
8 years ago
Matthew Chen 76df8431a8 Reset the unread indicator state if possible while app is in the background.
* Clean up timer usage.

// FREEBIE
8 years ago
Michael Kirk c55f7044a6 Use avatar view in group views
// FREEBIE
8 years ago
Matthew Chen 746d131a89 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 02df277d19 Respond to CR.
* Add [TSInteraction compareForSorting].
* Add a separate database view for safety number changes.

// FREEBIE
8 years ago
Matthew Chen 19390abc41 Refine the unseen indicators.
* Fix sizing of the unread indicator cells.
* Fix conflicts between paging and “load window” of conversation view and unseen indicator.
* Modify unseen indicator to indicate whether there are more unseen messages and safety number changes.
* Fix conflicts between modifying the “load window” size and updating the dynamic interactions.
* Clear the “bubble size calculator” cache whenever the view changes size.
* Improve the scrolling behavior around “load more messages”.
* Improve management of “load window” size.
* Fix issues around caching of bubble sizes.

// FREEBIE
8 years ago
Matthew Chen ada4880dc3 Add a database view for dynamic interactions.
// FREEBIE
8 years ago
Matthew Chen d28467aac6 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen df2ee6ba55 “Add to contacts” offer.
// FREEBIE
8 years ago
Matthew Chen bc63389d23 “Add to contacts” offer.
// FREEBIE
8 years ago
Matthew Chen 7b70fe674a “Add to contacts” offer.
// FREEBIE
8 years ago
Matthew Chen 14ebc58d52 Revise scrolling behavior of messages view.
// FREEBIE
8 years ago
Matthew Chen db07ea8a8e Persist attachment file paths.
// FREEBIE
8 years ago
Matthew Chen 16549bee1f Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen ac458cc7ad Add unread indicator.
// FREEBIE
8 years ago
Matthew Chen ea34cec0d9 Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen 96e155c75e Rework appearance of voice messages and audio attachments.
// FREEBIE
8 years ago
Matthew Chen 19b80d1f4b Rework the “disappearing messages” logic.
// FREEBIE
8 years ago
Michael Kirk 073c0d6639 Add/Edit contacts in group list
* properly populate phone fields
* Fix appearence for CNContactViewController
* "Add Contact" vs "Show Contact"

// FREEBIE
8 years ago
Matthew Chen e85aa045e1 Flag voice messages as such in protos.
// FREEBIE
8 years ago
Matthew Chen ad3a1a671a Merge remote-tracking branch 'origin/hotfix/2.11.3' 8 years ago
Michael Kirk a58a71f8f4 no contacts banner -> system settings 8 years ago
Matthew Chen 3f7d23e043 Fix two hotspots in contact parsing and contact syncing.
// FREEBIE
8 years ago
Matthew Chen 0c4351a908 Use SignalAccount class to sync contacts.
// FREEBIE
8 years ago
Michael Kirk d7c7fff679 Fix some compiler warnings
* explicit optional usage in strings
* remove some unused StringUtil code
* swiftlint affected files
* more concise optional casting (and avoid a `!`)

Compiler warnings: 343 -> 318

(Actually most of these are in external libs, but 115 remain in Signal/SSK)

// FREEBIE
8 years ago
Michael Kirk 2ec893d315 Ensure we're retaining all promises to completion
// FREEBIE
8 years ago
Michael Kirk a056c1e052 Check for signalContact vs. AB setup.
Same intent as previous check but more to the point, and doesn't
require tracking additional state.

// FREEBIE
8 years ago
Matthew Chen 4bc98dba58 Rework the scaling and cropping of group avatars.
// FREEBIE
8 years ago
Matthew Chen 26f69b0063 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen ad11c50c1b Reworking observation of Contact and SignalAccount changes.
// FREEBIE
8 years ago
Matthew Chen 994aec0d86 Add SignalAccount class.
// FREEBIE
8 years ago
Matthew Chen 6801963a1b Add SignalAccount class.
// FREEBIE
8 years ago
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
8 years ago
Michael Kirk a1eef6fde5 Remove invalid assert in case of legitimately stacking unicode
This assert was being falsely triggered by legitimate unicode.

The current state of affairs (unchanged by this PR) is that all
diacriticals will be stripped from a message that also contains e.g. 3
flags in a sequence.

// FREEBIE
8 years ago
Michael Kirk 26b94bf94b Always send a filename
// FREEBIE
8 years ago
Matthew Chen 89de686809 Fix the “navigation titles are black after sharing” issue.
// FREEBIE
8 years ago
Matthew Chen a4709c9218 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen eb23252c6c Fix timer retain cycle.
// FREEBIE
8 years ago
Matthew Chen a29809e672 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen bfd29cd994 Send contacts sync messages whenever the contacts change.
// FREEBIE
8 years ago
Matthew Chen c8466912f0 Add muting of threads.
// FREEBIE
8 years ago
Matthew Chen e025b86e75 Rework outgoing message state.
// FREEBIE
8 years ago
Matthew Chen 0018d0040b Honor attachment filenames.
// FREEBIE
8 years ago
Matthew Chen 55706e9bb9 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 878704cb12 Create block offer when non-contacts send you a message.
// FREEBIE
8 years ago
Michael Kirk a951d11d97 [SSK] move iOSVersion to SSK
// FREEBIE
8 years ago
Matthew Chen 8374ca149e Apply assert to ensure singletons are only created once.
// FREEBIE
8 years ago
Michael Kirk 0b49037179 Remove some more RP related code
// FREEBIE
8 years ago
Matthew Chen 77a775bbce Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 6b8d4ea7ae Sketch out debug UI.
// FREEBIE
8 years ago
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
8 years ago
Michael Kirk cebfc479f8 Fixup acf3a6e syntax
// FREEBIE
8 years ago
Michael Kirk ab2bfb3a67 Fix spacing of custom back button
...and use it (only) in Messages VC

Otherwise we'd have to do lots of manual handling of
interactivePopGesture

// FREEBIE
8 years ago
Michael Kirk d76d04b8e8 Fixup 4814edf3d3
// FREEBIE
8 years ago
Michael Kirk 0b81523597 Clearer logging and added an assert per CR
// FREEBIE
8 years ago
Michael Kirk 6036e20079 Filter high diacritical text, regardless of length
// FREEBIE
8 years ago
Michael Kirk c39a26659e Merge pull request #1860 from WhisperSystems/mkirk/intern-pastelog
Intern pastelog
8 years ago
Matthew Chen 442546fba8 Align the message state indicators with the behavior on Android and desktop.
// FREEBIE
8 years ago
Michael Kirk 42975e44e8 better debug log copy
"Email Support" and "Open a Bug Report"

// FREEBIE
8 years ago
Michael Kirk 8adba61b37 intern Pastelog back into Signal.
Not worth the cocaopods/framework/project mgmt machinery for making
changes to 1 class.

// FREEBIE
8 years ago
Michael Kirk 1e3f0fffeb Invert logging condition. (#1855)
We don't want to log here normally, only when we detect weird strings.

// FREEBIE
8 years ago
Kamal Nath Narayanan 153d4addb9 requestAccessForMediaType completionHandler to be called in UI thread. This leads to inconsistent behaviour once the permission is given 8 years ago
Michael Kirk 3e651fb8df filter undisplayable text
// FREEBIE
8 years ago
Matthew Chen a4093a5f7f Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 3c3f782e7d Clean up prekey usage.
// FREEBIE
8 years ago
Michael Kirk b2091431dc Fix retain cycle
// FREEBIE
8 years ago
Michael Kirk 87ed662116 Persist AudioService if CallViewController is dismissed
...in response to CR, move the AudioService off of the CallViewController

Adopt multiple observer pattern vs. a singular delegate. Doing so
required implementing some machinery to address the ARC (see:
Weak.swift)

// FREEBIE
8 years ago
Matthew Chen 98e087a47f Fix font lookup on iOS before 8.2.
// FREEBIE
8 years ago
Matthew Chen 740aa643be Add method to flush logs.
// FREEBIE
8 years ago
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
8 years ago
Michael Kirk 495628834c Bump up launch screen logo size on iPhone6 and larger
The previous launch screen was initially built on iphone5, but we never
scaled the logo to have the same proportions on iphone6 and larger
screens. Now it's scaled proportional to the screen width.

// FREEBIE
9 years ago
Thomas Guillet 97500d55ec Prevent iRate mechanism when handling local notifications 9 years ago
Josh Schneier 896dd026d2 Remove DJWActionSheet 9 years ago
Michael Kirk 06ca3c9290 Mail and Message invite flow
* Spruce up compose contact-picker
- Fix random sorting for contacts missing first or last name
- Add Avatar to contact picker
- de-dupe contacts

Better copy for INVALID_MESSAGE error.

// FREEBIE
9 years ago
Michael Kirk 88d9ef987f Share dialog for Safety Numbers
// FREEBIE
9 years ago
Michael Kirk b8fc4001ec Camera permission fixup
- remove unknown segue, otherwise couldn't compile project
- translated english strings
- added translation comments
- reused existing "dismiss" string
- deselected row after dismissing permissions alert in linked devices
  screen

// FREEBIE
9 years ago
Jarosław Pawlak c152c1c83a asking for camera permissions #1363 9 years ago
Michael Kirk 21d37a92e5 Fix crash on nil image.
The only case I've actuall seen this is when a download is removed from
the file system, outside of Signal.

// FREEBIE
9 years ago
Michael Kirk 62f9606bf5 Merge branch 'mkirk/fix-registration-without-background-modes#1329'
// FREEBIE
9 years ago
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
9 years ago
Matthew Douglass baf0ea96d6 Fixes [UIDevice isiPhoneVersionSixOrMore]
Improves the detection logic for iPhone 6 and above (uses interface idiom and the pixel width of the screen). This fixes detection on the iPhone 7 which was previously broken because it’s model number wasn’t include.

Also removes a number of category methods that weren’t being used in the codebase and were equally incomplete.

// FREEBIE
9 years ago
Michael Kirk 94a23021f8 Size error messages correctly.
* calculate size of info message using the info message font.
* offset by the info message header

There were instances of lines getting cropped, or an extra line being
added. The previous, more conservative, solution was to just make every
bubble too big, but it looked terrible.

// FREEBIE
9 years ago
Michael Kirk b95112356c iOS 8 Fixups
* ContactsUI framework is not available on ios<9.
  And it never was, so this framework should not be "required".

* Fix conversation settings title font on ios8

* Fix fingerprint not displaying on ios8

* ios8 safety number indented on third line.

* Fix glitchy table cell animation (not ios8 specific)

  The defaut slide-under animation only looks good if you're using a
  standard table cell height, but our duration slider is taller than the
  rest of the table's cells.

  Plus add a little bottom padding to the slider cell

// FREEBIE
9 years ago
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
9 years ago
Michael Kirk 2ab6955967 More logging, scrub phone numbers from file logs (#1357)
Phone number are still logged in TTY for development.

// FREEBIE
9 years ago
Michael Kirk 4ccb295dbb Send button disabled color and dynamically sized
Using upstream button and change notification allows us to delete some
code.

// FREEBIE
9 years ago
Michael Kirk 199ce49265 Fix smooshed launch image on iphone 6 by using storyboard instead of static launch image
This is recommended practice for iphone6/+ for iOS>=8

> Although it’s best to use a launch file for iPhone 6 and iPhone 6
> Plus, you can instead supply static launch images if necessary. If you
> need to create static launch images for these devices, use the
> following sizes:

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html

Fixes #1136
Closes #1137
9 years ago
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
10 years ago
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.
10 years ago
Mahyar McDonald 0c1a97a743 Some nits & add corner rounding to the message text box.
Closes #884
10 years ago
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.
10 years ago
Michael Okner 37b582beda Adding support for animated gifs
Implemented using corbett's suggestion in issue #525. Uses
Flipboard/FLAnimatedImage in an AttachmentAdapter. Detects gifs using
new Animated category in MIMETypeUtil.

Backwards compatible with previous versions of Signal on iOS for both
sending and receiving Gifs, though they are sent/received in older
versions as UIImage and won't animate. Gifs also animate on both ends of
conversations with TextSecure users on Android.

//FREEBIE
10 years ago
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.
10 years ago
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).
10 years ago
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!
10 years ago
Frederic Jacobs c4bf4a8f50 Preliminary iOS9 support and upgrading to CocoaLumberjack 2.0 10 years ago
Frederic Jacobs f6c0625c2c Removing unused imported classes.
//FREEBIE
10 years ago
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.
10 years ago
Rainer Killinger d12c5b308e Fixes #680
Hour format was set to static “h:mm a” leading to localization issues.
Current locale will now be respected in every formatting.
Adjusted the decision when to label the message with a date from
“more then 24 hours ago” to “not today”.
10 years ago
Frederic Jacobs 7a5f9f1413 Remove initialization on MIMETypeUtil 10 years ago
Dirk-Willem van Gulik a1d0b6b1ad Lets user select country by country code.
Allow the entry of the country dial code to also pre-select/filter
the list of options. Useful for countries way down the list, or
countries that tend to be spelled in widely different ways.

Closes #662
10 years ago
Frederic Jacobs ee62cbdf23 Fixes #404
Support for drafts. Unsent messages are saved in case you want to send them later on and were interrupted while redacting them.
10 years ago
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
10 years ago
Christine Corbett 667cc983e9 Closes #589 - Enhancements conversation view.
- Call button should be removed from compose bar (when no text is in the input, or ever).
- Attachment options should be Choose from Library..., or Take Photo or Video
- Call button should move to right side of nav bar, and be solid white.
- Send button in compose bar should be the word Send.
- Attachment icon should be paperclip
10 years ago
Christine Corbett 70248837e7 New avatar placeholders.
- avatar colors implemented
- removed grey border on default group avatars and avatars with images
10 years ago
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.
10 years ago
Frederic Jacobs b80f99b8ac Cleanup iconography & fixes #582 10 years ago
Christine Corbett 3f81385c21 Resetting status bar to white. 10 years ago
Christine Corbett 797492fc13 Various enhancements to the groups.
- new avatar and updated avatar functional
- rounded corners in place, both in new/update group view and in inbox
- removed the appearance of the ability to delete members from a group.
- centering group menu in UIToolbar
10 years ago
Christine Corbett f0ac231b7f Setting status bars to white as completion of all modal presentations. 10 years ago
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
10 years ago
Christine Corbett ccdc4b5d17 Redesign implementation.
Result of stashed commits by @corbett and @abolishme
10 years ago
dtsbourg ee07490d3e MessagesVC: Paging and fix scrolling bug.
Reviewed-by: @FredericJacobs
11 years ago
Christine Corbett 4c0dbeb981 Group avatar fixes
- Resizes group avatars
- Fixing bug causing group avatar to be sent as attachment

Reviewed-by: @FredericJacobs
11 years ago
Christine Corbett e58f9bf966 Groups: Update messages, avatars and bug fixes 11 years ago
Frederic Jacobs 402df72306 Attachments handling
- Sends image rotated
- If message is delete, delete the attachment db object and file
- Delete attachment from detail view
11 years ago
dtsbourg f8db90014d Attachements: Fixing UI issues 11 years ago
dtsbourg 32f1cb3755 Archive/Inbox: Unread layout and other enhancements
- Add lastAction indicator for errors and info in TSThreadViews
- Enable unarchiving and deletion from archive.
- Unread message layout
11 years ago
Frederic Jacobs 8435a800d4 WebSocket Public Key Pinning. 11 years ago
Frederic Jacobs 6446c6fbe0 Socket Management 11 years ago
Frederic Jacobs 1eff2b3ad5 Rewriting outgoing pipeline with GCD. 11 years ago
dtsbourg 84e12a39c9 ContactDetail: Link notes 11 years ago
dtsbourg a60bc8be92 Initial Message UI 11 years ago
Ben Sandofsky f65d552f6d Prefix NSArray categories.
Begin process of prefixing categories on Foundation and UIKit. This
follows Cocoa best practices. This makes sense given the number of third
party libraries the project incorporates, which may include their own
colliding category method names.

Use OWS prefix on classes that may be used across apps.
11 years ago
Craig Gidney a060bea69d Found a method to parse NSUInteger exactly and precisely //FREEBIE 11 years ago
Craig Gidney f1de95ab06 Recursively added dot syntax, translating more terms when they were encountered in the dif
FREEBIE
11 years ago
Craig Gidney baaef78323 Using dot syntax for local*, all*, full*, first*, last*, to*, encodedAs*, copy*
FREEBIE
11 years ago
Craig Gidney 03ce3635cb Improved the phone number editing during registration
- Fixed a crash where an offset wrapped around when deleting the opening bracket
- Backspacing now skips over formatting characters
- Cursor position is maintained more accurately when reformatting
- Added a few utility methods
- Also fixed a test not having "test" as a prefix, causing it not to run
//FREEBIE
11 years ago
Craig Gidney 5401056d31 Checked indentation, future source results, directory layout, thenTry vs then, dependencies 11 years ago
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
11 years ago
Craig Gidney 4cd30f32ed Using getter syntax for shared*, is*, and has* 11 years ago
Craig Gidney 9e36872644 Using dot syntax for count and length 11 years ago
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
11 years ago
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
11 years ago
Frederic Jacobs 17571b6c54 Closes #52 11 years ago
Frederic Jacobs 9465423c72 Transitioning off custom preference files 11 years ago
Frederic Jacobs 44bd921db2 Changes for arm64 and Clang redefined-types 11 years ago
Frederic Jacobs e93c27e221 Additional call anonymous logging 11 years ago
Frederic Jacobs 6373507108 initial commit 11 years ago