signalapp / Signal-Android

A private messenger for Android.
https://signal.org
GNU Affero General Public License v3.0
25.71k stars 6.17k forks source link

Conversation View: Consistent message order #937

Closed lablans closed 6 years ago

lablans commented 10 years ago

Please correct me, but as far as I can tell, messages are sorted by time of arrival. However, since the messages are transported either via SMS or via Google Cloud Messaging, both of which don't guarantee ordering, messages may appear in the wrong order. This means that chat participants may see deviating orders of messages, replies to messages they don't even see. In theory, it's even possible that several messages from the same sender arrive and are displayed in wrong order.

moxie0 commented 10 years ago

If it's an encrypted conversation, we can actually display pairwise messages in a cryptographically guaranteed order.

lablans commented 10 years ago

Sounds fancy ;-) I have just experienced another use-case to consider:

Just received a message sent 10:52, received 12:11. There were several messages in between. Of course, the 10:52 message shows last, and makes no sense in the context.

I know you can't get guarantees out of GCM, but maybe you can display a bubble like "There should be a message here! 1 or more messages still in transit." - once the message(s) arrive(s), replace the bubble with it/them.

frictionlessmeme commented 10 years ago

Here's a third use case.

As a security conscious user, you frequently remove the battery from your phone.

When the battery is removed from the phone, on some models, the date and time reset to 00:00 01/01/1970, or some such.

Then text messages start arriving as soon as the network connection initializes.

The messages pile up at the top of the message thread. On long message threads, you have to scroll up for half an hour to see them. They are all in the wrong order.

The more frequently this happens, the more messages gather at the top of the message thread appear in an asynchronous mess.

The only workaround is to turn on plane mode as the phone is booting up, and set the date right before turning it on again.

Couldn't incoming messages just be added to the bottom of the thread, no matter what their timestamp is?

automated-signal commented 6 years ago

GitHub Issue Cleanup: See #7598 for more information.

2-4601 commented 6 years ago

This feature request is being discussed and tracked here.