Feature Request: Update VCard Occasionally
Bug report form
Describe your environment
Please specify the following:
- Ring version: 20190629-01
- Device model: LG-Volt LS740
- Android version: 6.0 LineageOS 13
- What build you are using: Play Store
Steps to reproduce
- Can you reproduce the bug: at will
- Create an account in Gnome
- Create an account on Android
- Add contact on Android (used QR code)
- Accept request in Gnome
- Actual result: For my peer contact's identity, all I get is "ring:XXXXX..."
- Expected result: I see my peer contact's username instead of "ring:XXXXX..."
I figured I'd just bring this back up since it hasn't been addressed/dealt-with in quite some time. Something I had brought up in IRC and the ML.
I know it currently is only sent with calls That's why I'm calling this a feature request since it's currently behaving as it was programmed to, hence "not a bug".
My suggestion: When the application is started for any client, it initially seeks out the peers by sending a timestamp for sender's vcard as well as the timestamp for each peer's vcard.
Each peer compares the timestamp they have for the sender's vcard with what the sender just sent. If it's older, the peer responds back with the timestamp for THEIR OWN vcard as well as a request for the sender's updated vcard.
If the vcard they have for the sender is already up to date, they just return their vcard if it's newer than the timestamp the sender sent to them regarding the peer's vcard timestamp, otherwise they just send an ack (EDIT0).
That's only for when the application is started.
If a client makes a change to their vcard, they automatically send out the update to each peer.
It's my belief that with this methodology, the vcard will always remain up to date.
Again, it's the only thing that's been keeping me from getting my F&F to use this as their IM. Other than that, even though I haven't taken the testing much further, it's getting nicer and nicer and the latest test resulted in NO lost messages, which used to be another huge issue.
The easier option to implement before going with a vcard revamp is adding a superseding field like nickname that a client can set for each peer.
That way, the vcard will still be viewable, yet the history will always show the nickname if it's set.
EDIT0: Correct my thought.