Commit graph

187 commits

Author SHA1 Message Date
Matthew Chen
0b14f87575 Improve comments about mapping consistency in conversation view.
// FREEBIE
2017-08-17 11:22:25 -04:00
Michael Kirk
e08fa4bcec Fix jolting animation after sending a message
When we send the nth message, we retain the footer for the n-1th message
until the nth message is successfully sent.

1. leave the footer on the n-1th message
2. draw the nth message with the "..." footer
3. update the nth message with the "sent" footer and hide the footer for
   the n-1th message

In the normal case this all happens very quickly, which results in some
unpleasant flicker every time you send a message.

The concession here is that we'll only print the n-1th footer if the
outgoing message *fails*. So until we implement a design more like
Android's double-check for sent/delivery, the user will not be able to
distinguish between a sent and delivered message *while* their message
is outgoing.

In my opinion the lack of jank in the normal case makes the app
supercedes this use case.

// FREEBIE
2017-08-17 11:19:46 -04:00
Matthew Chen
6c3662b944 Increase max conversation range length.
// FREEBIE
2017-08-16 17:07:18 -04:00
Matthew Chen
b2360ace6e Fix layout glitch in messages view.
// FREEBIE
2017-08-16 10:38:29 -04:00
Matthew Chen
37ce388eb6 Add “add to profile whitelist” offer.
// FREEBIE
2017-08-04 15:23:02 -04:00
Matthew Chen
282ac4bb29 Add “share profile” row to conversation settings.
// FREEBIE
2017-08-02 10:50:44 -04:00
Matthew Chen
a0eead37c7 Ensure size of message mappings range increases monotonically.
// FREEBIE
2017-07-28 17:13:35 -04:00
Matthew Chen
103a7fab36 Hide empty conversations in home view.
// FREEBIE
2017-07-27 15:39:26 -04:00
Matthew Chen
6858a1e944 Fix assert in conversation view around nil title.
// FREEBIE
2017-07-27 12:08:21 -04:00
Matthew Chen
803e91c3ce Fix assert in conversation view around nil title.
// FREEBIE
2017-07-27 12:08:21 -04:00
Matthew Chen
d80f470c2c Respond to CR.
// FREEBIE
2017-07-26 12:39:43 -04:00
Matthew Chen
2e7fe5cfd5 Rework database observation in home and message views.
// FREEBIE
2017-07-26 12:17:08 -04:00
Matthew Chen
1f1a681180 Rework database observation in home and message views.
// FREEBIE
2017-07-26 12:17:08 -04:00
Matthew Chen
f0cecfad11 Surface memory leaks by logging the deallocation of view controllers.
// FREEBIE
2017-07-26 11:59:00 -04:00
Matthew Chen
fdac0305cb Update analytics macros.
// FREEBIE
2017-07-21 15:04:41 -04:00
Matthew Chen
14621e1288 Respond to CR.
// FREEBIE
2017-07-21 14:49:24 -04:00
Matthew Chen
02c510691c Adapt number formatting to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
5edec99fd6 Adapt number formatting to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
c799e18c74 Adapt voice messages UI to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
693e74e868 Adapt conversation settings view to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
d36e60b0e9 Respond to CR.
// FREEBIE
2017-07-14 20:46:36 -04:00
Michael Kirk
a59eb25aef extract dismiss string -> CommonStrings.dismissButton
// FREEBIE
2017-07-13 17:08:41 -04:00
markus.fassbender
422336db32 fixes compiler warnings FREEBIE 2017-07-08 17:24:22 -05:00
Matthew Chen
0244e134f5 Block device from sleeping during certain activities.
// FREEBIE
2017-07-06 17:35:47 -04:00
Matthew Chen
07c8eb54b7 Prevent "scroll to button" button from blipping.
// FREEBIE
2017-07-04 11:15:21 -04:00
Michael Kirk
c6cd0bbcae Always show timestamp after unread indicator
// FREEBIE
2017-07-04 09:15:46 -04:00
Michael Kirk
bef3a56e50 DebugUI: create fake unread messages
helpful for printing unread indicator

// FREEBIE
2017-07-04 09:15:46 -04:00
Matthew Chen
f7c81bae9d Show the “scroll down” button if user scrolls up, even if there are no unread messages.
// FREEBIE
2017-06-22 15:08:35 -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
a039aac36d Improve UX for multiple “no longer verified” members of a group.
// FREEBIE
2017-06-21 15:01:06 -04:00
Matthew Chen
b39c4905c3 Invalid message adapter cache when app becomes visible.
// FREEBIE
2017-06-21 10:00:56 -04:00
Michael Kirk
11fa08470d [JSQ] Fix: can't dismiss keyboard after sending
// FREEBIE
2017-06-20 17:45:28 -04:00
Michael Kirk
8898f4a6d4 CR: future proof view placement if we change hierarchy
// FREEBIE
2017-06-20 17:31:47 -04:00
Michael Kirk
c70b1e9681 Make system messages deletable
// FREEBIE
2017-06-20 17:18:19 -04:00
Michael Kirk
fbba2f5dd7 colocate CollectionViewDelegate methods
// FREEBIE
2017-06-20 17:18:19 -04:00
Matthew Chen
de453b2960 Respond to CR.
// FREEBIE
2017-06-20 13:12:51 -04:00
Matthew Chen
5796bbd858 Max out the unread count at 99.
// FREEBIE
2017-06-20 13:02:25 -04:00
Michael Kirk
0419d35f12 CR: rename method
not always resized when used

// FREEBIE
2017-06-20 11:04:11 -04:00
Michael Kirk
8fc2289152 prefer becomeFirstResponder
Feels a little more reasonable than interecepting canBecomeFirstResponder

// FREEBIE
2017-06-20 11:04:11 -04:00
Michael Kirk
b4d3e8e744 Fix: tapping input obscures last messages
// FREEBIE
2017-06-20 11:04:11 -04:00
Matthew Chen
d01a52758b Respond to CR.
// FREEBIE
2017-06-19 17:41:30 -04:00
Matthew Chen
0d07e0222f Avoid stale mapping in conversation view.
// FREEBIE
2017-06-19 17:41:30 -04:00
Matthew Chen
331a1e90e3 Avoid stale mapping in conversation view.
// FREEBIE
2017-06-19 17:41:30 -04:00
Matthew Chen
f6f08891eb Avoid stale mapping in conversation view.
// FREEBIE
2017-06-19 17:41:30 -04:00
Matthew Chen
d4a6a35ee3 Avoid stale mapping in conversation view.
// FREEBIE
2017-06-19 17:41:30 -04:00
Michael Kirk
4f3278db1e Fix layout of timestamp for system messages
Incorporate topLabelSize into cell size for system messages.

We are using the term "bubble size" to describe the interaction specific
views of a collection cell. It's a crappy name, but coincides with other
usage.

// FREEBIE
2017-06-19 09:16:37 -04:00
Michael Kirk
1125e2ac99 System messsages can show timestamp
added the JSQCollectionViewCell cellTopLabel to the system message
layout

// FREEBIE
2017-06-19 09:14:52 -04:00
Matthew Chen
104a548eb2 Ensure message mapping is up-to-date when app returns from background.
// FREEBIE
2017-06-17 14:59:46 -04:00
Matthew Chen
e14b9b511d Respond to CR.
// FREEBIE
2017-06-17 14:03:44 -04:00
Matthew Chen
8649b26033 Don’t auto-scroll after “loading more messages” unless we have “more unseen messages”.
// FREEBIE
2017-06-17 13:55:50 -04:00
Matthew Chen
ab95b04e56 Respond to CR.
// FREEBIE
2017-06-17 13:47:10 -04:00
Matthew Chen
90c4ba27bf Respond to post-holiday code reviews.
// FREEBIE
2017-06-17 13:38:19 -04:00
Matthew Chen
bd440f0878 Respond to post-holiday code reviews.
// FREEBIE
2017-06-17 13:38:19 -04:00
Michael Kirk
1661e8dc34 assume contact in 1:1 thread
// FREEBIE
2017-06-16 12:34:15 -04:00
Michael Kirk
a41b10a695 ignore tap on legacy non-blocking SN change message
// FREEBIE
2017-06-16 12:34:15 -04:00
Matthew Chen
35d68c6180 Fix "writes on long-lived read connection" issue.
// FREEBIE
2017-06-16 02:16:26 -04:00
Matthew Chen
f71f33c2a6 Respond to CR.
// FREEBIE
2017-06-15 15:36:27 -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
6f1f1fac80 Improve handling of group creation failures.
// FREEBIE
2017-06-13 15:09:47 -04:00
Matthew Chen
a73c6ede60 Tweak verification UI.
* Add “tap for options” to verification banner copy.
* Add close button to banners.
* Always use shield icon for verification row in conversation settings view.
* Add action sheet to verification banner.

// FREEBIE
2017-06-12 15:52:38 -04:00
Matthew Chen
935244843e Tweak verification UI.
* Add “tap for options” to verification banner copy.
* Add close button to banners.
* Always use shield icon for verification row in conversation settings view.
* Add action sheet to verification banner.

// FREEBIE
2017-06-12 15:51:21 -04:00
Matthew Chen
c18a670d6b Don’t update expiration for messages twice.
// FREEBIE
2017-06-12 13:28:29 -04:00
Matthew Chen
027cd8cb34 Rework how messages are marked read.
// FREEBIE
2017-06-12 11:52:21 -04:00
Matthew Chen
7da28bd5dc Multiple refinements around verification.
* Check for identity key before presenting fingerprint view.
* Show verification state in a separate subtitle in conversation view.
* Let users verify from group members view.

// FREEBIE
2017-06-09 16:58:00 -04:00
Matthew Chen
11ca51c95f Show verification state banner. Show verification state in conversation settings view.
// FREEBIE
2017-06-09 16:21:59 -04:00
Matthew Chen
471e307ecc Use checkmark to indicate verification status in conversation view header subtitle, fingerprint view, and in conversation settings row icon.
// FREEBIE
2017-06-09 13:12:33 -04:00
Matthew Chen
051b005582 Move QR code scanning to a separate view.
// FREEBIE
2017-06-09 07:48:48 -04:00
Matthew Chen
58ebebc97f Move QR code scanning to a separate view.
// FREEBIE
2017-06-09 07:48:48 -04:00
Matthew Chen
fe0ddb53d2 Clean up ahead of PR.
// FREEBIE
2017-06-08 15:34:54 -04:00
Matthew Chen
3508feaec3 Convert FingerprintViewController to programmatic layout.
// FREEBIE
2017-06-08 14:55:26 -04:00
Matthew Chen
bc63a72c25 Add verification state change messages.
// FREEBIE
2017-06-08 10:44:23 -04:00
Michael Kirk
75bab75dc8 Show no redundant error when failing to send due to changed identity
The old "blocking" style SN alerts are deprecated. We maintain the
functionality to decrypt incoming messages from legacy SN alerts so that
users have time to recover their undecrypted messages.

// FREEBIE
2017-06-08 10:34:45 -04:00
Michael Kirk
f7468acad2 Properly dismiss file view after proceeding with share to no-longer
verified identity

// FREEBIE
2017-06-07 22:31:52 -04:00
Michael Kirk
4e995b76f3 Don't try to share file to untrusted identity
There's a problem with this approach - specifically we need to dismiss
the external file share view controller eventually.

But more generally, because SN can present a view controller, it's kind
success/retry handling is contextual to it's presenting view controller.

So, probably the thing to do is duplicate this logic at it's various
presentation contexts.

// FREEBIE
2017-06-07 22:31:52 -04:00
Michael Kirk
146031e4d5 update copy / remove some unused "unseen" tracking
// FREEBIE
2017-06-07 10:19:09 -04:00
Matthew Chen
b6ddea9eae Sketch out OWSIdentityManager.
// FREEBIE
2017-06-07 10:18:16 -04:00
Matthew Chen
15074cdb8f Clean up system message cells, make them tappable, etc.
// FREEBIE
2017-06-06 10:26:06 -04:00
Matthew Chen
2d76f2beb9 Respond to CR.
// FREEBIE
2017-06-06 10:15:56 -04:00
Matthew Chen
eb53958aeb Clean up ahead of PR.
// FREEBIE
2017-06-06 10:15:56 -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
Matthew Chen
74209561cc Clean up ahead of PR.
// FREEBIE
2017-06-05 16:27:53 -04:00
Matthew Chen
dab8ddb37d Rework appearance of the unread indicator.
// FREEBIE
2017-06-05 16:25:25 -04:00
Matthew Chen
165de573c5 Fix edge cases in the unseen indicator.
// FREEBIE
2017-06-05 16:21:26 -04:00
Matthew Chen
84d5ee8e47 Clean up ahead of PR.
// FREEBIE
2017-06-05 16:21:26 -04:00
Matthew Chen
a69c6cce4e Decompose MessagesViewController, add “scroll to bottom button”, improve scrolling behavior.
// FREEBIE
2017-06-05 16:21:26 -04:00