Signal-ios: Avatar for unknown contact is confusing

Created on 1 Dec 2016  Â·  12Comments  Â·  Source: signalapp/Signal-iOS

When you receive a message from an unknown contact their avatar is just a "+" in a circle.

Worse than just unhelpful, this gives the false impression that this should be an actionable button.

The reasoning is the "+" is the "intials" for their display name (which is just their phone number if they're not in your contacts), but if you had e.g. "David Bowie" in your contacts it would appear as "DB".

help wanted needs design

All 12 comments

I'll take a shot at this.

Thoughts on 7d29635? I'm not in love with the way I determine the name is actually a number, but I can't find a better way to do it when we're built from a thread without adding properties to the thread object.

The artwork is from The Noun Project, and the branch includes the addition of attribution.

Here's what it looks like in the app:

fullsizerender

Easiest solution right now is to be cohesive with Android and Desktop which use '#' until an asset is created for use across all OS's.

Easiest solution right now is to be cohesive with Android and Desktop which use '#' until an asset is created for use across all OS's.

That makes sense. Thanks @riyapenn.

With respect, I would like to argue the case that the original suggestion of using an avatar image instead of a “#” would be the better choice until a cross-platform asset is attained, because:

  1. In my opinion, the placeholder avatar looks better than the #
  2. iMessage uses a placeholder avatar, so there’s an established pattern in another popular (and highly-designed) messenger
  3. I believe it can be an anti-pattern for a small team to try to keep disparate platforms in lockstep on minor details, as the striving for lockstep can slow down overall throughput, and also because the platforms already use different platform-specific patterns, so I don’t think there’s a high expectation of cohesion on details such as these. Letting the different platforms push ahead in small ways, on the other hand, make it easier for the other platforms to 'copy' a reference solution and achieve eventual unification.

In addition, the proposed branch (7d29635) has a complete solution that uses images. It would be trivial to change it to use “#,” but it would be similarly trivial to just use images as-is, as the work is done.

I’m fine with the “#” suggestion, and will assume that’s the direction unless someone from the project weighs in otherwise. Just sharing this because I would be remiss if I didn’t express this opinion.

The solution for this issue can also address: Avatar for a contact saved in iOS contact list but with no name just a number.

Alternatively, I can create a new issue with "unknown contact name" where the solution relates to https://github.com/WhisperSystems/Signal-iOS/issues/1519 vs adding to this issue of "unsaved contact"
noname

@riyapenn, while working on this issue, I encountered and fixed the "Avatar for a contact saved in iOS contact list but with no name just a number." issue, so no need to make a separate issue for that.

1519 will not be fixed by this branch.

I liked the feedback about renaming the method, and changed it from nameStringForPlaceIdentifier to displayNameForPhoneIdentifier to match how it's commonly used. This name will require a merge of this SSK branch.

There's a new method called - (BOOL)nameExistsForPhoneIdentifier:(NSString *)identifier that reports whether or not we'll get a non-phone-number name for a contact. Because OWSContactsManager falls back on setting the first name to be the first phone number in absence of an actual name or business name, and because I didn't want to change this behavior and risk regressions, this method will compare the name to the first phone number (if it exists) and report that there is no name if it matches. This should fix the behavior riyapenn described above.

The final commit reverts the avatar image and uses "#" instead. Both commits should compile cleanly if you'd like to compare and contrast.

Looks good @roostr. When you're ready, can you submit a PR for SSK and Signal-iOS? I can take care of fixing up any Podfile references upon merging.

With respect, I would like to argue the case that the original suggestion of using an avatar image instead of a “#” would be the better choice until a cross-platform asset is attained, because:

Also, thanks for the rationale. Ultimately we prefer to stick with the "#", mainly for platform cohesion, despite your reasonable critique.

Also, thanks for the rationale. Ultimately we prefer to stick with the "#", mainly for platform cohesion, despite your reasonable critique.

Sounds good, thanks for the consideration, and I appreciate the explanation of the decision.

Going to incorporate your latest suggestions, then I'll send some PR's.

Contrary to what I've been doing in earlier PRs, I'd prefer to not squash and push --force for readability and to correspond with the evolution of this discussion and review. Does that work for you? Please feel free to squash before merging as you see fit. Also, my intention was to make this a FREEBIE, but I forgot that in the very first commit, so if you squash, my desire is to include FREEBIE.

Both PRs are now prepared for evaluation.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

nanotechz9l picture nanotechz9l  Â·  5Comments

ghost picture ghost  Â·  4Comments

gabridome picture gabridome  Â·  4Comments

echarlie picture echarlie  Â·  5Comments

maxbrandes picture maxbrandes  Â·  4Comments