Commit Graph

137 Commits (10388c3b024ad9bc38ee960ef52d422b3245f77a)

Author SHA1 Message Date
Michael Kirk 56387f3574 demo conversation colors when selecting 7 years ago
Matthew Chen ebae75af00 Revert 'new sort id'. 7 years ago
Michael Kirk 4765ed9a06 Color picker
TODO

-[x] tap to select/deselect
-[x] initially selected
-[x] integrate into conversation settings
-[x] colorPickerDelegate
-[x] translate strings
-[] reorder colors
-[x] SheetView: add top handle

Nice to have:

-[] SheetView: interactively swipe/unswipe to dismiss?
-[] preview color in bubbles
7 years ago
Michael Kirk 79add78d51 Merge branch 'release/2.30.1' 7 years ago
Matthew Chen 5a99cd347f Pull out OWSConversationColor to its own file. 7 years ago
Matthew Chen 6715e3d1ad Respond to CR. 7 years ago
Matthew Chen b20cd57383 Rename OWSConversationColor. 7 years ago
Matthew Chen b3ad6e27dc Rework conversation message bubble colors; add "conversation colors" class. 7 years ago
Matthew Chen 26a2d568de Add "conversation color mode" enum. 7 years ago
Matthew Chen e5150267c2 Rework the conversation color constants. 7 years ago
Matthew Chen 8db4595bdc Rework group avatars to reflect conversation colors. 7 years ago
Matthew Chen 25d56b30c1 Rework group avatars to reflect conversation colors. 7 years ago
Michael Kirk df61316495 minimize diff senderTimestamp -> timestamp 7 years ago
Michael Kirk eef1368ad3 Timestamp audit step1: change signature
There is no change in functionality in this commit.

Apart from clarifying what the timestamp means (it's the timestamp of the
*sender*), this intentionally breaks all the call sites, so I could have a sane
way to thoroughly audit wherever we're passing in timestamps, to see where
we're depending on them to affect sort order.

For the sake of a cleaner diff of meaningful changes, instead of "fixing"
everything in this commit, I've just added comments and renamed signatures.
7 years ago
Matthew Chen 8910f1f65a Enable conversation colors. 7 years ago
Matthew Chen ae84528dc3 Update avatar colors; add shaded conversation color constants, modify color picker to be color-name-based, not color-based, use shaded conversation colors, remove JSQ. 7 years ago
Matthew Chen e1db60c1c0 Rework creation of singletons. 7 years ago
Michael Kirk 920a82564f Merge tag '2.29.3.3' 7 years ago
Michael Kirk 2eca462efc can view conversation settings for left group 7 years ago
Michael Kirk b6eb1476cb Leave group when blocking it 7 years ago
Michael Kirk c6de8c579c WIP: Localizations 7 years ago
Michael Kirk 236c17f65e WIP: group blocking
-[ ] UI
  -[ ] Conversation Settings
    -[x] Show switch for group
    -[ ] localize
    -[ ] migrate existing localizations? (nice to have)
    -[ ] can view conversation settings (but not edit them) in left group
    -[ ] special block copy for groups
    -[ ] special unblock copy for groups
  -[ ] Block List
    -[ ] Group Section
    -[ ] Unblock group
  -[ ] Interstitial interacting with blocked threads (e.g. thread picker)
    -[ ] BlockListUIUtils w/ thread
        -[x] Block
        -[x] Unblock
        -[ ] Replace usages where possible
        -[x] block manager
-[ ] Sync
  -[x] tentative protos
  -[ ] confirm protos w/ team
  -[ ] send new protos
-[ ] Message Processing
  -[ ] Drop messages from blocked groups
7 years ago
Matthew Chen 3a12446be8 Modify environment accessors to use our 'shared' convention. 7 years ago
Michael Kirk c7662b5a86 Step 2/2 %s/OWSAssert/OWSAssertDebug for existing previous assert semantics
Going forward, we want to prefer safer asserts, but we don't want to blindly
apply crashing asserts across the codebase
7 years ago
Matthew Chen fac7f6932f Rename TSGroupMetaMessage enum values. 7 years ago
Matthew Chen cc5a480baa Apply OWS log functions in Objective-C. 7 years ago
Matthew Chen 03829779cc Apply OWS log functions in Objective-C. 7 years ago
Matthew Chen c0d486b1f1 Apply OWS log functions in Objective-C. 7 years ago
Matthew Chen 3a50377902 Apply OWS log functions in Objective-C. 7 years ago
Matthew Chen 713606271c Rename fail macros in Obj-C. 7 years ago
Michael Kirk 7e8b2e3034 Faster conversation presentation.
There are multiple places in the codebase we present a conversation.

We used to have some very conservative machinery around how this was done, for
fear of failing to present the call view controller, which would have left a
hidden call in the background. We've since addressed that concern more
thoroughly via the separate calling UIWindow.

As such, the remaining presentation machinery is overly complex and inflexible
for what we need.

Sometimes we want to animate-push the conversation. (tap on home, tap on "send message" in contact card/group members)
Sometimes we want to dismiss a modal, to reveal the conversation behind it (contact picker, group creation)
Sometimes we want to present the conversation with no animation (becoming active from a notification)

We also want to ensure that we're never pushing more than one conversation view
controller, which was previously a problem since we were "pushing" a newly
constructed VC in response to these myriad actions. It turned out there were
certain code paths that caused multiple actions to be fired in rapid succession
which pushed multiple ConversationVC's.

The built-in method: `setViewControllers:animated` easily ensures we only have
one ConversationVC on the stack, while being composable enough to faciliate the
various more efficient animations we desire.

The only thing lost with the complex methods is that the naive
`presentViewController:` can fail, e.g. if another view is already presented.
E.g. if an alert appears *just* before the user taps compose, the contact
picker will fail to present.

Since we no longer depend on this for presenting the CallViewController, this
isn't catostrophic, and in fact, arguable preferable, since we want the user to
read and dismiss any alert explicitly.

// FREEBIE
7 years ago
Matthew Chen a76d488e8b Fix QA issues in theme. 7 years ago
Michael Kirk c05700fd98 Log in OWSFail
step 1: rename OWSFail->OWSFailNoProdLog
step 2: rename OWSProdLogAndFail->OWSFail
step 3: Convert OWSFailNoProdLog->OWSFail where we want logging
step 4: Rename OWSCFail->OWSCFailNoProdLog
step 5: Rename OWSProdLogAndCFail -> OWSCFail
step 6: Convert OWSCFailNoProdLog -> OWSCFail where we want logging
7 years ago
Matthew Chen 2c9c028504 Clean up. 7 years ago
Matthew Chen 6dfe36f9b5 Respond to CR. 7 years ago
Matthew Chen 931562de33 Refine theme. 7 years ago
Matthew Chen ce4fdd5135 Refine theme. 7 years ago
Matthew Chen 579e88bdc2 Improve nullability handling for SignalAccount. 7 years ago
Michael Kirk 11db859e6b adapt to changes since RI 7 years ago
Michael Kirk 6e1c1a681b Merge tag '2.28.0.12' 7 years ago
Michael Kirk 1d4ead080b fix color behind navbar 7 years ago
Matthew Chen 25a98554b7 Intern JSQMessagesViewController. 7 years ago
Matthew Chen 48975eaac8 Respond to CR. 7 years ago
Matthew Chen b2b95597cc Refine views. 7 years ago
Matthew Chen 8862f9a531 Refine views. 7 years ago
Matthew Chen 9f9e0965d5 Refine table views. 7 years ago
Michael Kirk 9e348f2a27 update ubsan 7 years ago
Michael Kirk ef9a0880ae Fix analyzer warnings 7 years ago
Michael Kirk a6a09f4d9f fix squashed cells on ios9/10
must specify rowHeight automatic

Furthermore, we can't mix static and automatic sizing within a single tableView
7 years ago
Michael Kirk 8da47b64d9 clarify different methods
These method names were too similar to existing methods in PureLayout, which
have slightly different behavior.

ows_autoPinToSuperviewEdges uses left/right, whereas PureLayouts uses
leading/trailing

ows_autoPinToSuperviewMargins uses our own constraint adding logic, which
behaves differently in some cases.
7 years ago
Matthew Chen 4d3707a16e Apply "disappearing messages disabled" icon. 7 years ago
Matthew Chen 9494023107 Update disappearing messages icon. 7 years ago
Michael Kirk f0175c0b6f feature gate color syncing
// FREEBIE
7 years ago
Michael Kirk 3530bf4fe0 sync configuration off main thread 7 years ago
Michael Kirk 8a43435dfc avoid deadlock 7 years ago
Michael Kirk 61cb19ef6b trigger sync when colors updates 7 years ago
Matthew Chen db27acf61b Tweak colors flag. 7 years ago
Michael Kirk cfd18bf3f8 smaller swatch icon 7 years ago
Michael Kirk 104e63ded9 remove appearance juggling 7 years ago
Michael Kirk 16df4f589e conversation colors
// FREEBIE
7 years ago
Matthew Chen 2ecbf1bb65 Fix 'contact cell vs. message details layout' issue. 7 years ago
Matthew Chen d3d9d2e64c Don't cache CNContact. 7 years ago
Matthew Chen 83f11ad79b Don't cache CNContact. 7 years ago
Matthew Chen 647d80d79d Unify the cell and avatar sizes. 7 years ago
Matthew Chen dd49c6225f Auto-size contact cells everywhere. 7 years ago
Michael Kirk 0a17246737 Don't use group name in message.
// FREEBIE
7 years ago
Michael Kirk 95b1dced18 add: messages in Book Club will disappear in 1 minute
Show different message when joining group with disappearing messages
7 years ago
Michael Kirk 0cf751d34f Newly added group members should have expire time
Send expire timer with group info updates and in group updates that add a user.
7 years ago
Michael Kirk 29d08545e2 Use OWSNavigationController instead of UINavigationController
- [ ] document picker
- [ ] camera picker
- [ ] image picker
- [ ] restore "confirm to go back" behavior (interactive pop gesture?)

// FREEBIE
8 years ago
Michael Kirk 33eb4c38cd Centralize translucency configuration
// FREEBIE
8 years ago
Matthew Chen 2edabdbba4 Sort group members. 8 years ago
Matthew Chen 91d54360ba Add contact view. 8 years ago
Matthew Chen fa9a4c808a Simplify usage of contacts framework. 8 years ago
Matthew Chen 21ab670fc9 Clean up ahead of PR. 8 years ago
Matthew Chen c3345a4c4e Scale home view cells to reflect dynamic type size. 8 years ago
Matthew Chen 8c1362b807 Fix small text usage. 8 years ago
Matthew Chen ade2ee7216 Use dynamic type everywhere in conversation view. 8 years ago
Matthew Chen 9085609087 Fix interaction initializers and tests. 8 years ago
Michael Kirk 86553b62f9 keyboard pinning vs iPhoneX 8 years ago
Michael Kirk 6f1608f44b Conventional naming for out custom PureLayout methods.
This moves methods more in line with PureLayout conventions.

- Methods always specify if they pin to an edge vs margin

- `margin` is a reserved word which should only refer to layout margins.
  i.e. do not use it to refer to "inset" and "offset".

// FREEBIE
8 years ago
Matthew Chen 8e4f2ca0ed Rework proto schema changes for quoted replies.
Sketch out model changes for quoted replies.

Sketch out quoted reply input preview.

Send quoted messages protos.

Update models to reflect quoted messages.

Rework interaction initializers.

Rework interaction initializers.

Add debug UI methods for generating quoted reply variations.

Add debug UI methods for generating quoted reply variations.
8 years ago
Michael Kirk 00b5316976 Don't show the "All Media" button when viewing the slider from the
gallery via settings.

In this context it makes more sense for the user to hit the "dismiss"
button to get "back" to "All Media"

// FREEBIE
8 years ago
Michael Kirk 770ce1440e ConversationSettings must retain the gallery view
// FREEBIE
8 years ago
Michael Kirk ae8dbeb8dd Access Media Gallery from conversation settings
// FREEBIE
8 years ago
Michael Kirk f733c07d07 comment cleanup
// FREEBIE
8 years ago
Michael Kirk 985af76d0b WIP: All Media view
TODO

- [ ] label video/gif
- [ ] reasonable load perf
- [ ] reasonable scroll perf
- [ ] select / delete
- [ ] cancel share action from media details returns signal style

NICE TO HAVE

- [ ] fancy in/out animation from All Media <-> tiles
- [ ] label video thumbnail with duration stamp
- [ ] Other perf?
- [ ] dbModified?
- [ ] select / send
- [ ] darken section header a shade once it's "active"

DONE

- [x] tap to refocus on new media
- [x] generate test data
- [x] section headers
- [x] equal spacing around cells

// FREEBIE

WIP WIP extract datasouce to GalleryViewController

- [x] swipe through is broken
- [x] present animation
- [x] dismiss animation

// FREEBIE
8 years ago
Matthew Chen b296cfb893 Sketch out incremental backup manager and settings view. 8 years ago