Commit graph

152 commits

Author SHA1 Message Date
Matthew Chen
dc73342573 Convert databases if necessary. 2018-01-25 11:00:38 -05:00
Michael Kirk
a423fe8a0e WIP Merge tag '2.19.4.4'
- restore video playback in fullscreen

This was a large merge, so I'm opting to make some changes in separate
commits.
2018-01-16 15:25:58 -05:00
Matthew Chen
0d5b5bc44c Respond to CR. 2018-01-12 16:49:51 -05:00
Matthew Chen
3de9a4ea55 Add debug UI actions around clearing and snapshotting session state. 2018-01-12 16:42:18 -05:00
Matthew Chen
2b528ad894 Don't use mainApplicationState in business logic. 2018-01-12 14:24:35 -05:00
Matthew Chen
76676659f8 Respond to CR. 2018-01-12 10:25:04 -05:00
Matthew Chen
15b8e58324 Retain changes from session database branch. 2018-01-12 10:23:54 -05:00
Matthew Chen
16f7317579 Complete backup restore/import. 2018-01-11 10:44:03 -05:00
Matthew Chen
1839b10550 Retain changes from session database branch. 2018-01-10 12:18:34 -05:00
Matthew Chen
9ac2383a2c Retain changes from session database branch. 2018-01-10 12:18:29 -05:00
Michael Kirk
8d2934d86e CR: remove unnecessary code, comments
// FREEBIE
2018-01-08 15:11:35 -05:00
Matthew Chen
d01ec57f0e Fix storage reset. 2018-01-08 10:51:56 -05:00
Michael Kirk
81268012e5 Better keyboard management.
- fixes problems on iOS11.2 where emoji keyboard sometimes obscures text
  input.
- better animation for interactive pan gesture when viewing message
  details
- more intuitive swipe-to-dismiss keyboard in conversation view
- converge on one mnethod for dismissing keyboard in conversation view

- [ ] Pop keyboard, then hit attachment, dismisses keyboard, which is
      fine, but the content should immediately scroll down with the
      keyboard, instead it stays up, and scrolls down only once the
      attachment action sheet has been dismissed.

// FREEBIE
2018-01-08 01:10:31 -05:00
Matthew Chen
05100b1143 Respond to CR. 2017-12-20 11:32:48 -05:00
Matthew Chen
6b0e3508a5 Respond to CR. 2017-12-20 11:28:07 -05:00
Matthew Chen
245304116f Respond to CR. 2017-12-20 11:19:09 -05:00
Matthew Chen
085f8a6f64 Clean up ahead of PR. 2017-12-19 12:02:58 -05:00
Matthew Chen
70926d7f10 Clean up ahead of PR. 2017-12-19 11:50:01 -05:00
Matthew Chen
6b58b4cbde Rework database view registration. 2017-12-19 11:42:06 -05:00
Matthew Chen
fe67cd924c Rework database view registration. 2017-12-19 11:42:06 -05:00
Matthew Chen
f88b954ab5 Clean up TSStorageManager usage. 2017-12-19 11:41:31 -05:00
Matthew Chen
d3efb2e1c9 Clean up TSStorageManager usage. 2017-12-19 11:41:31 -05:00
Matthew Chen
d52eba739d Clean up TSStorageManager usage. 2017-12-19 11:41:31 -05:00
Matthew Chen
85686d3144 Continue TSStorageManager refactor. 2017-12-19 11:41:30 -05:00
Matthew Chen
9a990b58e8 Respond to CR. 2017-12-19 11:38:25 -05:00
Matthew Chen
1163e76dee Clean up ahead of PR. 2017-12-19 11:16:01 -05:00
Matthew Chen
5dcf4b3bbc Clean up ahead of PR. 2017-12-19 11:16:01 -05:00
Matthew Chen
137fe6fb8b Pull out OWSStorage base class for TSStorageManager. 2017-12-19 11:16:01 -05:00
Matthew Chen
a29c4ce5d6 Pull out OWSStorage base class for TSStorageManager. 2017-12-19 11:16:01 -05:00
Matthew Chen
3643414da1 Respond to CR. 2017-12-15 11:16:07 -05:00
Matthew Chen
571840b1dc Update YapDatabase. 2017-12-15 11:11:04 -05:00
Matthew Chen
b9b3eb0541 Clean up ahead of PR. 2017-12-11 12:28:28 -05:00
Matthew Chen
429312523f Simplify OWSUserProfile's "apply changes" logic using model diffing. 2017-12-11 12:28:28 -05:00
Matthew Chen
f684482c54 Don't emit "user profile changed" notifications if nothing changed. 2017-12-11 12:28:28 -05:00
Matthew Chen
97ce1a6675 Rework user profile saves; block SAE if no local user profile key. 2017-12-11 12:28:28 -05:00
Matthew Chen
f5353fc7d5 Clean up ahead of PR. 2017-12-05 11:35:43 -05:00
Matthew Chen
9da165b846 Continue conversion of app setup. 2017-12-05 11:19:11 -05:00
Matthew Chen
c817aa51b3 Migrate environment to SignalMessaging. 2017-12-05 10:28:46 -05:00
Michael Kirk
0138777343 New @available syntax avoids compiler warnings
// FREEBIE
2017-12-04 12:50:28 -05:00
Michael Kirk
5e7ca89930 Proper function prototypes
// FREEBIE
2017-12-04 12:50:28 -05:00
Matthew Chen
bf21d0c0ed Enable logging in SAE; rework log file management to include multiple log directories. 2017-12-01 12:55:47 -05:00
Matthew Chen
e7df2511a4 Register CrossProcessNotifier. 2017-11-30 10:28:05 -05:00
Matthew Chen
62cf9b1dd5 Respond to CR. 2017-11-30 10:19:34 -05:00
Matthew Chen
d17ccadea2 Use AppContext to resolve share extension FIXMEs. 2017-11-30 10:12:32 -05:00
Matthew Chen
e712e8bfc4 Use AppContext to resolve share extension FIXMEs. 2017-11-30 10:12:24 -05:00
Matthew Chen
8d4e9b4565 Respond to CR. 2017-11-30 10:02:04 -05:00
Matthew Chen
edaf65223a Migrate to shared data NSUserDefaults. 2017-11-30 09:49:01 -05:00
Matthew Chen
cd11ec5698 Add app group, share keychain. Take a first pass at file migration to shared data directory. 2017-11-30 09:49:01 -05:00
Michael Kirk
336aa13520 Avoid overzealous assert
// FREEBIE
2017-11-29 14:57:04 -08:00
Michael Kirk
a11d83187b WIP: Framework-friendly - compiles but crashes on launch
// FREEBIE
2017-11-29 13:58:27 -08:00
Michael Kirk
7894a58769 FIXME: Changes to get share extension compiling
This was a slash and burn approach, and breaks existing functionality.
We need to address all of these before merging.

// FREEBIE
2017-11-29 13:58:27 -08:00
Matthew Chen
2d8a7b03d0 Respond to CR.
// FREEBIE
2017-11-16 10:12:47 -05:00
Matthew Chen
19ba564f80 Respond to CR.
// FREEBIE
2017-11-15 13:21:31 -05:00
Matthew Chen
00feb14b10 Respond to CR.
// FREEBIE
2017-11-15 13:15:48 -05:00
Matthew Chen
518f15155a Respond to CR.
// FREEBIE
2017-11-10 12:57:16 -05:00
Matthew Chen
efcd42012c Respond to CR.
// FREEBIE
2017-11-10 12:57:16 -05:00
Matthew Chen
6e840ff956 Fix build warnings from XCode 9. 2017-11-09 02:52:44 -05:00
Matthew Chen
da7338580c Merge tag '2.18.1.0' 2017-11-06 14:28:43 -05:00
Michael Kirk
e82a3f3ddf respond to CR
// FREEBIE
2017-11-06 13:39:23 -05:00
Michael Kirk
8ef9e96b91 Avoid group-sync deadlock by making post-upload save async
// FREEBIE
2017-11-06 13:39:23 -05:00
Michael Kirk
0706edf42a Generate new registrationId on re-register
In order for others to know they should start a new session with us, we
need to change our registration id.

To achieve this, I consolidated all the Account related attributes on
TSAccountManager - luckily they were already in the proper collection, I
just moved the API to hang on the AccountManager instead of a TSStorage
category extension.

Also:

@synchronize access to `registrationId`

// FREEBIE
2017-11-02 16:05:41 -04:00
Michael Kirk
58d4c95362 Re-register without losing your messages in Debug-UI
// FREEBIE
2017-11-02 16:05:41 -04:00
Matthew Chen
834ad3f8e1 Respond to CR.
// FREEBIE
2017-09-27 14:22:01 -04:00
Matthew Chen
eec0efa3c8 Fix class rename.
// FREEBIE
2017-09-27 14:22:01 -04:00
Matthew Chen
ee13084d5c Respond to CR.
// FREEBIE
2017-09-27 14:05:21 -04:00
Matthew Chen
ffe44e68be Refactor linked device read receipts.
// FREEBIE
2017-09-27 13:17:43 -04:00
Matthew Chen
35a2470cb7 Post notifications asynchronously.
// FREEBIE
2017-09-21 17:03:57 -04:00
Matthew Chen
6fce2c26b7 Process messages in a single transaction (wherever possible).
// FREEBIE
2017-09-20 09:40:46 -04:00
Matthew Chen
afc753e7ed Add batch message processor.
// FREEBIE
2017-09-20 09:24:49 -04:00
Matthew Chen
c498e4b354 Decouple message decryption and processing.
// FREEBIE
2017-09-20 09:24:49 -04:00
Matthew Chen
bfd50a9e0e Make "database view registration complete" check thread-safe.
// FREEBIE
2017-09-20 09:21:05 -04:00
Matthew Chen
183f0f1ccd Respond to CR.
// FREEBIE
2017-09-19 17:45:18 -04:00
Matthew Chen
703b348091 Respond to CR.
// FREEBIE
2017-08-23 09:55:53 -04:00
Matthew Chen
a9b55675cd Add assert to ensure that we don't use write transactions before sync database view registration is complete.
// FREEBIE
2017-08-23 09:46:26 -04:00
Matthew Chen
a825fad47b Start reworking the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen
98eb4693c5 Rework the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen
164bf19b47 Respond to CR.
// FREEBIE
2017-08-17 11:22:25 -04:00
Matthew Chen
622c0c3f5f * 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
2017-08-17 11:22:25 -04:00
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
2017-08-17 11:22:25 -04:00
Michael Kirk
01e808febe localNumber persistance from Category -> TSAccountManager
Following the pattern that singleton methods for effectively global
state should get/set on their own dedicated dbConnection for consistency
and to avoid being blocked by unrelated writes.
2017-08-03 13:27:09 -04:00
Michael Kirk
8a4712bf4c Only access localNumber on AccountManager and cache it
// FREEBIE
2017-08-03 13:27:09 -04:00
Matthew Chen
43b3abe321 Merge branch 'hotfix/2.15.2' 2017-08-03 13:10:01 -04:00
Matthew Chen
539490ee19 Respond to CR.
// FREEBIE
2017-08-03 12:05:53 -04:00
Matthew Chen
6f03c2d92f Don’t hide threads if they are a group thread, or if they have _ever_ had a message.
// FREEBIE
2017-08-02 15:12:42 -04:00
Matthew Chen
2993ac002f Clean up database convenience methods and add assertions.
// FREEBIE
2017-08-02 10:47:42 -04:00
Matthew Chen
7692a393c1 Add convenience category for YapDatabaseConnection.
// FREEBIE
2017-08-02 10:38:23 -04:00
Matthew Chen
0bd23345a1 Sketch out the profile view.
// FREEBIE
2017-08-01 16:17:59 -04:00
Michael Kirk
4bf407a24f fix some compiler warnings
// FREEBIE
2017-07-31 11:56:47 -04:00
Matthew Chen
678db31c1f Hide empty conversations in home view.
// FREEBIE
2017-07-27 15:40:35 -04:00
Matthew Chen
c042a96aa4 Hide empty conversations in home view.
// FREEBIE
2017-07-27 15:40:35 -04:00
Matthew Chen
c6e21e83a3 Hide empty conversations in home view.
// FREEBIE
2017-07-27 15:40:35 -04:00
Matthew Chen
103a7fab36 Hide empty conversations in home view.
// FREEBIE
2017-07-27 15:39:26 -04:00
Matthew Chen
f1807cd709 Add script to extract and gather analytics event names.
// FREEBIE
2017-07-27 12:29:05 -04:00
Matthew Chen
f973af5a83 Streamline analytics properties.
// FREEBIE
2017-07-27 10:16:16 -04:00
Michael Kirk
4d8429186d Store undecrypted envelopes before doing any processing.
This lets us clear the server side queue immediately, and paves the way
for retry, give up logic.

// FREEBIE
2017-07-26 14:29:56 -04:00
Matthew Chen
7cbdde7b1d Rework handling of critical errors, e.g. errors while initializing TSStorageManager.
// FREEBIE
2017-07-26 10:01:43 -04:00
Matthew Chen
543c05b2c5 Add a “critical” severity level for analytics events.
// FREEBIE
2017-07-24 16:13:59 -04:00
Matthew Chen
7da5df594f Instrument errors in storage manager.
// FREEBIE
2017-07-24 16:05:39 -04:00
Matthew Chen
19c0a7ad7c Instrument errors in message sender.
// FREEBIE
2017-07-24 16:05:39 -04:00
Michael Kirk
a5f067936c migration to fix any half-registered users
// FREEBIE
2017-07-24 13:01:43 -04:00