Commit Graph

2525 Commits (12b916ad36a2c8b8984510635cbb44f956535886)

Author SHA1 Message Date
Michael Kirk 3d9cd4f4ed CR: comments and code clarity 7 years ago
Michael Kirk cb9aa6304c find -E . -type f -regex ".*\.(m|h)" -exec sed -i "" -e "s/try_/throws_/" {} \; 7 years ago
Michael Kirk 3a6aafc454 Swift Exception wrap NSData+keyVersionByte 7 years ago
Matthew Chen 5535abd01b Update "sealed sender" blog post URL. 7 years ago
Matthew Chen 9fa16cc66f Fix small bug in the re-registration flow. 7 years ago
Michael Kirk b0a6d18576 leave proximity enabled as long as CallViewController exists 7 years ago
Michael Kirk 5632bd2d83 Use reference counting to disable proximity monitoring after audio message
Multiple overlapping activities require proximity monitoring (namely,
CallViewController and listening to audio messages).

These activities can overlap arbitrarily, so we use a reference counting
strategy to keep proximity monitoring on as long as one of these activities is
active.
7 years ago
Michael Kirk 3560f3be5c Durable send operation
TODO
-[x] respect order of queue
-[x] replacements
  -[x] those w/o completion handler
  -[x] basic send+log operation persists
  -[x] send+ui completion
  -[x] share extension
  -[x] update state jobs
-[x] App Lifecyle
  -[x] settable
  -[x] Mark as ready on startup
  -[x] Fail appropriate jobs on startup

NICE TO HAVE
-[x] concurrent per senders
-[ ] longer retry (e.g. 24hrs)
-[ ] App Lifecyle
  -[x] retry failed jobs on startup?
  -[ ] reachability

DONE
-[x] basic passing test
-[x] datamodel
-[x] queue/classes
7 years ago
Michael Kirk e20df022c8 always show footer for in-progress sending 7 years ago
Matthew Chen 25ed886e72 Update home and group cells' dependencies. 7 years ago
Matthew Chen 28f37a7a34 Update contacts cells' dependencies. 7 years ago
Matthew Chen 81d6b60ad5 Fix icon layout in privacy settings. 7 years ago
Michael Kirk ce9ca1bdaa audio player type 7 years ago
Michael Kirk 3b4188f34b hoist audio session singleton to Environment 7 years ago
Michael Kirk 3d022adf4e WIP: audio activities 7 years ago
Matthew Chen 55ab6c39d4 Rework UD settings. 7 years ago
Matthew Chen f765c6c1bb Update UD settings copy. 7 years ago
Matthew Chen d656ae1017 Fix edge cases around UD v. linked devices. 7 years ago
Matthew Chen 94c7b72361 Only send "sent message transcript" sync messages using UD. 7 years ago
Matthew Chen 99d0495ec7 Respond to CR. 7 years ago
Matthew Chen bbcbbafaab Sync local profile key after rotating it. 7 years ago
Matthew Chen 693b3e13a9 Revert "Sync local profile key after rotating it."
This reverts commit ddbd20e706.
7 years ago
Matthew Chen ddbd20e706 Sync local profile key after rotating it. 7 years ago
Matthew Chen a9b4b06c8f Retain code verification promise. 7 years ago
Matthew Chen 275414cbda Respond to CR. 7 years ago
Matthew Chen 7c1f1882d8 Sync "show UD indicators" setting. 7 years ago
Matthew Chen 8830f0a594 Clean up ahead of PR. 7 years ago
Matthew Chen 0b4ed1175d Create AppEnvironment. 7 years ago
Matthew Chen d7e52367ff Create AppEnvironment. 7 years ago
Michael Kirk d6a6024f37 Update PromiseKit 7 years ago
Michael Kirk 92e8b117f5 fixup debug contacts 7 years ago
Matthew Chen f1d93d4472 Merge remote-tracking branch 'origin/release/2.30.2' 7 years ago
Michael Kirk 43884af191 remove redundant "failed to download" method 7 years ago
Michael Kirk efe07e1ddb Secret sender icon in message details 7 years ago
Michael Kirk 4435d16f9c dark theme toggle in app settings 7 years ago
Matthew Chen c907721a18 Rotate profile key if blocklist intersects profile whitelist. 7 years ago
Michael Kirk 1544f8db46 Optionally show UD status in message details 7 years ago
Michael Kirk 221ce513f1 extract dependencies, no change in behavior 7 years ago
Michael Kirk c680908646 add toggle for unrestricted access 7 years ago
Matthew Chen a6eed30127 Add 'is ud' property to outgoing messages. 7 years ago
Matthew Chen cba8c67983 Add 'is ud' property to incoming messages. 7 years ago
Matthew Chen 17541a8888 Change conversation bubble colors. 7 years ago
Michael Kirk ac12169627 Keep home view controller in the navigation stack when entering an archived conversation. 7 years ago
Matthew Chen acdd7f2805 Fix settings button glitch on iOS 10. 7 years ago
Matthew Chen 21b383f4e2 Remove server GUID from TSIncomingMessage. 7 years ago
Matthew Chen 3b06434d4f Split out second web socket. 7 years ago
Matthew Chen c137e95ae5 Move socket manager to hang on SSKEnvironment. 7 years ago
Michael Kirk 2b805e4eae Constantize ConversationColorName, map previous incorrect values 7 years ago
Matthew Chen ccb67f49a3 Fix issues in UD send & receive. 7 years ago
Matthew Chen 0b41e5e240 Rework profile fetch to reflect UD changes. 7 years ago
Michael Kirk f243914fe5 NSTemporaryDirectory -> OWSTemporaryDirectory/AccessibleAfterFirstAuth
Remove redundant move - AFNetworking alread moves the CFNetwork tmp file for
us.
7 years ago
Michael Kirk e1e355bfec fixup filebrowser 7 years ago
Matthew Chen 3eb84ed0e0 Move message processing singletons to SSKEnvironment. 7 years ago
Matthew Chen 580d0486b6 Respond to CR. 7 years ago
Michael Kirk dcb65854eb More scaleable across device sizes. 7 years ago
Michael Kirk bdb5bd5596 minimize diff 7 years ago
Michael Kirk 375c8bee04 Use stand accessoryView mechanics 7 years ago
Michael Kirk 5127352f7a update color picker cell per design 7 years ago
Michael Kirk 7805e00441 work around multiple review's appearing 7 years ago
Michael Kirk 006021ea41 Fix: group color change doesn't immediately apply
Because we were fetching a new thread instance, instead of updating the
existing thread instance, classes which were bound to the old thread instance
weren't updating. This affected the HeaderView.AvatarView.thread and the
ConversationStyle.thread.
7 years ago
Matthew Chen a224401879 Respond to CR. 7 years ago
Matthew Chen 24d7a97616 Fix rebase breakage. 7 years ago
Matthew Chen 7d727b7ac9 Modify proto wrapper builders to require required fields. 7 years ago
Matthew Chen 3738155c81 Fix build breakage from SMK. 7 years ago
Matthew Chen 8ae200ac21 Fix build breakage around SignalCoreKit. 7 years ago
Matthew Chen 0125535d4d Pull out SignalCoreKit. 7 years ago
Matthew Chen 9474a1bfcb Fix "broken settings button layout in iOS 9" issue. 7 years ago
Matthew Chen 908d6dfd78 Ensure unread badges in home view are always at least a circle. 7 years ago
Michael Kirk 56387f3574 demo conversation colors when selecting 7 years ago
Michael Kirk 06eae47e09 ConversationViewItem -> protocol 7 years ago
Matthew Chen ebae75af00 Revert 'new sort id'. 7 years ago
Matthew Chen 1e82caed03 Remove dark theme feature flag. 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
Joshua Lund 97d0543cef String cleanup:
* Made our Title Case usage a little more consistent.
* Standardized on the ellipses special character.
* Rephrased a few buttons and descriptions.
7 years ago
Michael Kirk 79add78d51 Merge branch 'release/2.30.1' 7 years ago
Matthew Chen 2ef878bfc9 Add crash gesture to about view. 7 years ago
Matthew Chen 5a99cd347f Pull out OWSConversationColor to its own file. 7 years ago
Matthew Chen 1c1d305a71 Respond to CR. 7 years ago
Matthew Chen 27488f078a Replace old "default profile avatar" icon with default avatar for local user. 7 years ago
Matthew Chen b5c5d1c3ef Use local avatar as app settings button. 7 years ago
Matthew Chen cbaf40d4ce Respond to CR. 7 years ago
Matthew Chen d161e5ff3d Add inner shadows to media thumbnails. 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 da63731447 Respond to CR. 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 c21020d7e7 Use received date for footer-collapse supression 7 years ago
Michael Kirk 6f8eddc955 unread indicator uses sortId
- removed timestamp parameter. This wasn't totally obvious, previously we were tracking two pieces of state

1. `unreadIndicator.firstUnseenTimestamp`:
    the first unseen timestamp for a conversation that exists in the database
2. `unreadIndicator.timestamp`:
    the timestamp of the first interaction *after* the unread indicator that fits in the loading window

We don't actually need to track `2` because it was only used in a comparison like:

   viewItem.interaction.timestampForSorting >= unreadIndicator.timestamp

But by definition, unreadIndicator.firstUnseenTimestamp is always less than or
equal to unreadIndicator.timestamp. Put into terms of the `sortId` corallary,
the sortId of the first unseen interaction in the database is always less than
or equal to the sortId of the first unseen interaction that fits in the loading
window.

In other words, there's no situation where

   viewItem.interaction.sortId >= unreadIndicator.firstUnseenSortId
7 years ago
Michael Kirk 3240e0d9d0 Be explicit about receivedAt time
We were often using `timestampForLegacySorting`, which is convoluted for when
we actually just want received time.

In some sense this is a superficial change, but it's part of auditing that
we've completed moved away from timestampForLegacySorting.
7 years ago
Michael Kirk b281b37637 replace thread.lastMessageDate/archivalDate -> thread.lastSortId, thread.archivedAsOfSortId
Update migration accordingly

Date shown on home view cell is message.receivedAt
7 years ago
Michael Kirk 1459fad01a sort media gallery by sortId 7 years ago
Michael Kirk 90aa593dcd sortId vs. Read status 7 years ago
Michael Kirk d6d6c4fca4 ConversationVC - lastSeenSortId 7 years ago
Michael Kirk ab55e85304 step 1: timestampForSorting audit, change signature
No change in functionality in this commit, I just broke the signature to have a
systematic audit of the callsites. Added TODO's with the plan for each call.
7 years ago
Michael Kirk df61316495 minimize diff senderTimestamp -> timestamp 7 years ago
Michael Kirk 00d0d1e002 Remove legacy Error backdating - no changes in functionality
Historically we would backdate the SN change messages, but since adopting
non-blocking SN changes long ago, they're already sorted properly by creation
time, so backdating has been unnecessary for a while.

I also audited that all other error messages are saved directly after creation.

I applied deprecation attributes as appropriate as I audited.
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
Michael Kirk ae668ceca9 include sequence number in fake messages 7 years ago
Matthew Chen 72562920ed Fix author conversation colors. 7 years ago
Matthew Chen 4186ce9a72 Respond to CR. 7 years ago
Matthew Chen 7b2dd19fb8 Respond to CR. 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 a5628c4204 Rework layout of message status in home view. 7 years ago
Matthew Chen 0701d2465b Replace shadow with stroke. 7 years ago
Matthew Chen 8106158780 Move unread badge on home view; propose shadow. 7 years ago
Matthew Chen d13624897d Fix reminder changes in home view. 7 years ago
Matthew Chen b30bfec21f Fix contact offer button margins. 7 years ago
Matthew Chen 0b7d269017 Rename DebugContactsUtils. 7 years ago
Matthew Chen bcee59f5e5 Add contact utils class. 7 years ago
Matthew Chen 8cf5f3e58f New grayscale palette. 7 years ago
Matthew Chen 29bb69032a DRY up the debounce of db extension version increment. 7 years ago
Matthew Chen 20de087441 Repair corrupt thread view. 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 df67e883f3 BlockList vs. "zero length" group names 7 years ago
Michael Kirk 24ea8262d5 consolidate blocked-group state tracking 7 years ago
Michael Kirk 0f9b0936df Use cached group details when rendering blocklist 7 years ago
Michael Kirk b09831d8d0 copy updates 7 years ago
Michael Kirk fd492f379a Use BlockListCache where possible 7 years ago
Michael Kirk 2eca462efc can view conversation settings for left group 7 years ago
Michael Kirk 2c49232db0 remove barely used getters
Lock contention on these methods is less important because we're not iterating
over their access, e.g. per tableViewCell
7 years ago
Michael Kirk 448936d156 BlockListCache
block manager synchronizes on self for coherent read/writes to blocking state
across threads, but we want to be able to have performant reads on the main
thread.
7 years ago
Michael Kirk 28d28cf2b6 remove unused code 7 years ago
Michael Kirk b6eb1476cb Leave group when blocking it 7 years ago
Michael Kirk 8aba5725cf BlockListViewController v. group blocking 7 years ago
Michael Kirk 809b3766c1 Home view cell v. group blocking 7 years ago
Michael Kirk c6de8c579c WIP: Localizations 7 years ago
Michael Kirk b1da5e93d9 group blocking v. conversation view 7 years ago
Michael Kirk eadb04efcc WIP: ContactViewHelper incorporates 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
  -[ ] ConversationViewHelper
   -[x] Track blocked groups
   -[ ] HomeView
   -[ ] ConversationView
   -[ ] Any others?
   -[ ] Rename? Extract BlockList cache?
  -[ ] 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
  -[x] send new protos
-[ ] Message Processing
  -[ ] Drop messages from blocked groups
7 years ago
Michael Kirk b282d51da0 SyncMessages for blocked groups 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 df7acfeed3 Simplify OWSPreferences access. 7 years ago
Matthew Chen cc117b385c Modify environment accessors to use our 'shared' convention. 7 years ago
Matthew Chen 3a12446be8 Modify environment accessors to use our 'shared' convention. 7 years ago
Matthew Chen b642a5fabe Update log. 7 years ago
Matthew Chen cfb511aa57 Respond to CR. 7 years ago
Matthew Chen eb616a3411 Respond to CR. 7 years ago
Matthew Chen 399dd13cee Add test app context; use mock "document" and "shared data container" directories in tests, use mock keychain storage in tests. 7 years ago
Matthew Chen f9eab5cd24 Merge remote-tracking branch 'origin/release/2.29.2' 7 years ago
Michael Kirk 01a6a3d98e avoid overflow in debug logging 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 1c325cd210 Respond to CR. 7 years ago
Matthew Chen b1f2b9e75c Clean up thumbnail-related logic. 7 years ago
Matthew Chen dc3467dcda Tidy up attachment usage. 7 years ago
Matthew Chen 0be12da3dd Use thumbnails in media views. 7 years ago