Commit Graph

13 Commits

Author SHA1 Message Date
Michael Kirk
c8fa47d9c9 Added some tests per CR
// FREEBIE
2017-03-20 15:22:34 -04:00
Michael Kirk
d3ecbba0e8 Keep unit tests with their class files
Moved from Signal-iOS and updated to use standard XCTest macros vs. our
test-util's

// FREEBIE
2017-03-20 15:11:11 -04:00
Michael Kirk
a92158ef16 CR: fix register async where specified
* fix thread test
* add IncomingMessageFinder test
* use constants
* clearer comments

// FREEBIE
2017-02-24 19:15:35 -08:00
Michael Kirk
975726e022 Dedupe incoming messags
// FREEBIE
2017-02-24 19:15:35 -08:00
Michael Kirk
7c62097d0c Fix up tests
// FREEBIE
2017-01-19 17:23:19 -05:00
Russ Shanahan
34ffce89f5 Only calculate fullName once, & sortable fullnames (#67)
1. Adds caching of the calculated fullName value
   (which will slightly improve performance)
2. Incorporates fullNames that respect the first-name-first
   rules of the currently unmerged PR #22
3. Adds two new fullName properties that can be used
   for sorting comparators
4. Move the comparator into the model object for easy testing

Includes tests to ensure that the first name first and last name
first sorts are behaving as expected.

// FREEBIE
2016-11-29 10:02:46 -05:00
Michael Kirk
1ebb82f987 Contacts don't have safety numbers until they've exchanged keys.
// FREEBIE
2016-11-09 12:57:54 -05:00
Michael Kirk
47cad611e5 Fix register w/o background fetch & stale push tokens
* Separate account registration from push token registration
* Provide better errors when validation fails (e.g. numbers don't match, numbers blank)
* More logging during registration
* Call success after setting phone number to avoid any future race condition

  This isn't currently causing problems, but it's unexpected that we'd
  mutate the state *after* calling a callback which might inuitively rely
  on that state.

* Don't throw exception off thread when device keys 404's
* Better async startup handling
  - move processing off main thread
  - reduce code duplication
  - don't wrap it in a transaction in the future case where we want to
    further access the DB

// FREEBIE
2016-11-03 16:10:06 -04:00
Michael Kirk
4ba1e86ec1 Explain send failures for text and media messages
Motivation
----------
We were often swallowing errors or yielding generic errors when it would
be better to provide specific errors.

We also didn't create an attachment when attachments failed to send,
making it impossible to show the user what was happening with an
in-progress or failed attachment.

Primary Changes
---------------
- Funnel all message sending through MessageSender, and remove message sending
  from MessagesManager.
  - Record most recent sending error so we can expose it in the UI
  - Can resend attachments.
  - Update message status for attachments, just like text messages
- Extracted UploadingService from MessagesManager
  - Saving attachment stream before uploading gives uniform API for send vs.
    resend
  - update status for downloading transcript attachments
- TSAttachments have a local id, separate from the server allocated id
  This allows us to save the attachment before the allocation request. Which is
  is good because:
  1. can show feedback to user faster.
  2. allows us to show an error when allocation fails.

Code Cleanup
------------
- Replaced a lot of global singleton access with injected dependencies to make
  for easier testing.
- Never save group meta messages. Rather than checking before (hopefully) every
  save, do it in the save method.
- Don't use callbacks for sync code.
- Handle errors on writing attachment data
- Fix old long broken tests that weren't even running. =(
- Removed dead code
- Use constants vs define
- Port flaky travis fixes from Signal-iOS

// FREEBIE
2016-10-24 09:36:51 -04:00
Michael Kirk
0b4d81002f Fix attachment deleting for outgoing messages
Broken in the disappearing messages beta due to sloppy refactoring. =(

// FREEBIE
2016-10-11 09:24:40 -04:00
Michael Kirk
40cdc7f224 disappearing messages
* Support for disappearing messages
* update inbox thread preview when receiving message

// FREEBIE
2016-10-11 09:24:40 -04:00
Michael Kirk
c8a5f50763 Fixup DevicesManager
* By providing a view extension for secondary devices we can use that in
  a view mapping to power our devices view controller, and avoid any race
  conditions with uncommitted transactions.

* Fix crash when you're not in your own contacts

* New device appears on top

* Don't show "edit" button unless there are devices, or rather, the helpers to do so.

* Fix glitchy refresh

  Saving unchanged records was causing the tableview to redraw, which was
  mostly invisible, except that if the refresh indicator were running, it
  would twitch.

// FREEBIE
2016-09-09 15:11:40 -04:00
Michael Kirk
80671b247f Extract phone formatting method (#14)
* refactor and backfill tests for phone number parsing
* bump version to 0.0.5
2016-06-28 10:22:36 -07:00