Commit graph

279 commits

Author SHA1 Message Date
Michael Kirk
eef2002224 Clean up settings (#1316)
* Remove unused (hidden) button from settings
* dynamic type for settings cells
* prefer property vs ivar access
* property attributes

// FREEBIE
2016-08-22 17:41:11 -04:00
Michael Kirk
cc2d47fbd3 Update protocol (#1315)
* Update to latest SignalServiceProtocol
* Show SignalServiceKit compiler warnings

// FREEBIE

* Update to latest signal protocol

// FREEBIE
2016-08-22 16:54:31 -04:00
Michael Kirk
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
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
147cc15105 Input toolbar fits text size (#1290)
* Set height of toolbar based on actual font height. FIXES #1282
* max height for compose field FIXES #1186

Still absent is resizing to fit draft.

// FREEBIE
2016-07-22 00:05:24 -07:00
Michael Kirk
86f06593d8 Fix "can't reattach saved GIF" (and others) (#1288)
The root of the problem is we were using the deprecated ALAssetsLibrary
framework, which couldn't find certain assets.

By using the photos framework not only are we able to find these
assets, but it also cleans up our code:
* no more copying byte buffers
* no more detecting file type

// FREEBIE
2016-07-21 17:15:34 -07:00
Brandon Cheng
583d3e82ad Alternative solution for requiring direct taps for launching media view (#1235) (#1261)
// FREEBIE
2016-07-21 10:23:39 -07:00
Ronny
e7affecc17 FIX: Leaving group should dismiss keyboard #1274 (#1278)
If we hide the input toolbar, we should hide the keyboard too

//FREEBIE
2016-07-21 08:50:41 -07:00
Ronny
0455f03615 Fixes Call Error message text should adapt size to fit localized texts (#1164) (#1178)
- adding constraints and changing properties for _callStatusLabel to
fit 3 lines of text

//FREEBIE
2016-07-21 07:53:26 -07:00
Michael Kirk
97fdabf9a2 Narrow the bubbles a bit. (#1269)
This is closer to the 2.3 version.

Seems like upstream sizing has changed since our JSQMVC upgrade. This wider size calculation makes sense if you're losing space to the avatar, but since we're not using avatars the full width bubbles can make the whole view seem a bit crowded when you have large blobs of text.

// FREEBIE
2016-07-20 13:21:20 -07:00
Michael Kirk
835021b0d3 Fix extra tall error messages by rendering timestamp (#1268)
We were ocassionally seeing extra tall error messages. This is because,
when appropriate, we were adding the space for a timestamp, but then
never actually rendering the time stamp.

So now:

- Error Messages aren't rendered too-tall
- Error Messages get a printed timestamp when appropriate

// FREEBIE
2016-07-20 11:59:18 -07:00
Michael Kirk
df63c8624d fix compiler warnings
// FREEBIE
2016-07-19 09:10:39 -07:00
Michael Kirk
e7d4763715 Must tap directly on bubble to launch fullscreen media view (#1260)
// FREEBIE
2016-07-18 18:51:40 -07:00
Michael Kirk
9db3b0db27 Consistent and efficient media Delete/Copy/Save UX
copy/save/delete is accessed via longpress for all media messages, just
like for simple text messages.

Notes
-----
We don't support saving audio attachments as it's not clear where they should go.
(I don't think users expect them to end up in their iTunes library.)

There is still no UX for "pasting" media into Signal.

Removed the now redundant (and confusing) "share" button interface.

//FREEBIE
2016-07-18 09:20:48 -07:00
Michael Kirk
db3b2d443c Use upstream corner radius
The history here is that the radius I'm removing was added in #884 after
having straight edges added in our custom fork for a while.

So, rather than override our override, I'm just reverting to the
upstream value, which is close in proximity, and closer to iMessages
radius.

// FREEBIE
2016-07-14 23:28:42 -07:00
Michael Kirk
4ccb295dbb Send button disabled color and dynamically sized
Using upstream button and change notification allows us to delete some
code.

// FREEBIE
2016-07-14 23:15:06 -07:00
Michael Kirk
f8d65ab0f5 Post JSQMVC code cleanup
* formatting
* referencing TODOS
* remove unnecessary logging

// FREEBIE
2016-07-14 23:15:06 -07:00
Michael Kirk
b7dd51438e Move colors into style class
// FREEBIE
2016-07-14 23:15:06 -07:00
Michael Kirk
1a4b38e34b Modernize init, dealloc, dicts
* Use NS_DESIGNATE_INTIALIZER to ensure we're setting all the variables we need to be in OWSCall
* no need to nil properties in dealloc on ARC
* use declarative dictionaries for legability

// FREEBIE

use declarative dictionaries for clarity
2016-07-14 23:15:06 -07:00
Michael Kirk
f7f1b6877b Remove unused call thumbnail code
// FREEBIE
2016-07-14 23:15:06 -07:00
Michael Kirk
e930574b1b rename our custom JSQ classes to OWS so it's clear what is/not our code.
This was done as part of unforking JSQMessagesViewController, but is
intentionally a separate commit so we can separate formatting changes
from code changes in git history.

* Import frameworks like:
    #import <FrameworkName/HeaderName.h>
* instead of:
    #import "HeaderName.h"

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

The unforking process was basically this:

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

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

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

* fix missized bubble when MVC did appear

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

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

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

// FREEBIE
2016-07-14 23:15:05 -07:00
Michael Kirk
d4f2c0f249 ensure picker source available to prevent crash
This is crashing on simulator, but presumable if it weren't available
for other reasons (permissions?) it would also crash.

// FREEBIE
2016-07-07 10:31:51 -07:00
Michael Kirk
a181d218cf extract and test contact searcher
// FREEBIE
2016-06-28 14:13:39 -07:00
Michael Kirk
8c6bf3cba6 prefer properties per style
// FREEBIE
2016-06-28 08:58:29 -07:00
Michael Kirk
1f31015d54 find phone number regardless of punctuation used in search.
e.g. 3235551234, 323-555-1234, 1-323-555-1234, etc. are all the same as +13235551234.

// FREEBIE
2016-06-28 08:58:29 -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
aa9908d439 Large media attachments should be compressed (#1232)
* compress non-GIF media as JPEG

There are some problems with this approach
- Potentially re-encoding files
- Lots of code in the controller

* Compress GIF > 5MB into static JPEG.

This isn't ideal, but a stopgap to prevent people from sending huge
GIFs, while also giving them *some* kind of feedback (e.g. a static jpeg
is sent rather than their being no indication to sender+recipient that
anything was attempted.)

* spell bmp correctly

// FREEBIE
2016-06-23 13:43:31 -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
7c84c4569a Only call UI modifying observers when UI is present (#1226)
* centralize observers relevant to a "visible UI"
* collocate init/teardown of observers

// FREEBIE
2016-06-17 10:45:48 -07:00
Michael Kirk
bee7c71dff Prevent freeze when swiping back twice. (#1224)
FIXES #1222

Maybe this code was a vestige of a former way we were customizing the
back button. In any case, it's no longer required for swipe-to-pop
functionality.

// FREEBIE
2016-06-16 16:42:01 -07:00
Michael Kirk
8f04f863b7 hide UI element must happen on main thread (#1220)
// FREEBIE
2016-06-15 13:39:13 -07:00
Michael Kirk
7fef6aeab2 Fix crash after deleting message (#1219)
* update to JSQMessageViewController fixes #1218
* no need for SVC to retain membership of MVC

// FREEBIE
2016-06-15 12:46:29 -07:00
Michael Kirk
d7c48578a9 Fix invite crashing without sms (#1192)
* Fixes "New Message" --> "Invite contact" exception for iPhone devices that do not support SMS messaging

* fix SMS invite on empty inbox

This code appears in two contexts - (1) in an empty inbox , where no other view
controller is presented, and (2) in compose interface where a
search controller is presented, and must first be dismissed.

* only check SMS sending ability directly, (not device model)

This is better because:
1. sometimes iPhones can't send SMS
2. Sometimes iPads/iPods can send SMS

* correct localization key

* bump build

// FREEBIE
2016-05-23 11:39:30 -07:00
Michael Kirk
9bacc3de78 Reset compose view on thread switch (#1187)
* all Signal users can send text messages, never hide texting toolbar.

//FREEBIE

* Fix composition box size when switching threads.

Partial revert of 2c83046ff6 which
introduced a shared reusable message view controller across threads.

2c83046ff6 resulted in several discovered
bugs so far (#1179, #1150, #1152, and maybe: #1146). It's pretty clear
at this point we're going against the grain of how
JSQMesageViewController is intended to be used, and since the nominal
purpose of this feature (iPad Layout) doesn't exist, we should revert to
the known good way of interacting with the MessageViewController,
creating a fresh instance per thread.

// FREEBIE
2016-05-17 09:38:49 -07:00
Michael Kirk
da6597118a Fix unable to send invite via sms (#1188)
* bump release

//FREEBIE

* fix invite over sms alert

Could not present the sms invite alert controller because we were
already presenting the UISearchController

FIXES: #1182

// FREEBIE
2016-05-16 15:52:11 -07:00
Michael Kirk
496f8117f9 Update translations (#1172)
* Update translations (4 new translations!)

*New Translations*

- Persian (fa) (100%)
- Indonesian (id) (82%)
- Macedonian (Macedonia) (mk_MK) 100%
- Shona (sn) 98%

Inluded a script to pull translations that are >=80% complete

80% is completely arbitrary, but nicely bisects the current translation
efforts which fall into buckets of "over 80%" and "under 50%."

// FREEBIE

* final tx pull before push source

//FREEBIE

* tx pull, after updating source (plus some eager beavers already pushed new translations)

iStringVerify passes

* Make "add person" label more i18n flexible

This accommodates (e.g.) Italian, which was being truncated.

// FREEBIE

* Galician localization

Moitas grazas xesusmosquera!

// FREEBIE

* i18n for Unarchive action

started leaving hints for our translators. These are currently manually
redundantly duplicated in the source/strings file, in hopes of a more
automated future with genstrings.

// FREEBIE

* include iStringsVerify check in update-translations script

and pull latest translations after including UNARCHIVE action
// FREEBIE

* i18n GROUP_MEMBERS_HEADER

//FREEBIE

* pull translations
2016-05-08 17:17:37 -07:00
Michael Kirk
7f022404d1 [UI] smaller group action menu icon, revert edit divider to neutral color (#1169)
* Group actions bar button image was too big

Added image inset to resize.

// FREEBIE

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

// FREEBIE

* Podfile.lock corollary to updating SSL in b7813bdc9a

// FREEBIE
2016-05-07 09:29:10 -07:00
Michael Kirk
5286c032ce reset "Load Earlier Messages" when switching threads (#1163)
Since we're now re-using the message controller across threads, we have
to reset some elements to their initial state when switching threads.
Missed this one.

Fixes: #1150

// FREEBIE
2016-04-26 18:57:55 -07:00
Ronny
f05429b594 Prevent skewed group image (fixes #756) (#1159)
* Prevent skewed group image (#756)

- fixes #756

//FREEBIE

* Prevent skewed group image in inbox view (#756)

- fix skewed inbox view image
- fixes #756

//FREEBIE
2016-04-22 12:34:09 -07:00
Michael Kirk
9f572881f8 * Cache cleaning uses YAP notificationsThis way we don't have to worry about cleaning the cache explicitlywhen we do destructive actions.// FREEBIE
* Cache cleaning uses YAP notifications

This way we don't have to worry about cleaning the cache explicitly
when we do destructive actions.

// FREEBIE
2016-04-18 10:07:35 -07:00
Michael Kirk
95ab3d677c must *always* be in main thread when dismissing view controller. (#1114)
Fixes intermittent crash when uploading new group photos.

// FREEBIE
2016-04-13 15:26:50 -07:00
Michael Kirk
5869fb8e06 Fix ability to attach photos from camera (#1112)
* Fix ability to attach photos from camera

Looks like this came about with the animated GIF handling. We'll only
go down the byte-comparison-mime-type-detecting code path for attaching
existing photos, since it only exists for animated GIFs.

This will also revert to properly compressing our image attachments, so
long as they are taken from the camera.

* Prevent crash when tapping broken image

It never makes sense to present a "full screen" nil image. Previously
this happened when camera-capture was broken, but could conceivably
happen for other as-of-yet unknown reasons.

// FREEBIE
2016-04-13 11:38:42 -07:00
Michael Kirk
c0bb704d2d Cache instantiated interactions (#1152)
*most* of our time when scrolling around a message view is in this
method. Doubly so when these are media items.

remove interaction from cache when it is deleted/updated

// FREEBIE
2016-04-13 10:05:09 -07:00
Michael Kirk
7d8292fd53 show alert must happen in main thread (#1119)
//freebie
2016-04-13 08:10:51 -07:00
Michael Kirk
721ed066f2 Fixes This class is not key value coding-compliant for the key "keyPath"
Since "Key Path" is the header for run time attributes, my guess is that
this was a click misfire so long ago. I'm not clear if this was ever
causing a crash or just a warning, but we don't want the noise.

Fix "Unbalanced calls to begin/end appearance transitions"

You should not segue while animations are in progress. I'm not sure if
this was causing intermittent crashes or just the warning.

//FREEBIE

Closes #1130
2016-04-08 11:35:29 +02:00
Arek Banas
72e1180e16 Removing unused didReceiveMemoryWarning methods from view controllers.
Closes #1078
2016-04-08 11:35:29 +02:00
Frederic Jacobs
4034baedb9 Adapting to renaming. 2016-04-08 09:47:41 +02:00
Michael Kirk
f44393bb74 Re-introduces the delete action.
The delete action became opt-in in JSQMessagesViewController.
Fixes #913
Closes #1104

//FREEBIE
2016-03-27 20:12:29 +02:00