Improve behavior of navigating conversations with the keyboard
Let's say I have a conversation thread in my inbox with 5 messages: 2 have been previously read and 3 are new. I'm using Gmail keyboard shortcuts, and I select the thread. This is what should happen:
- The 2 previously read messages appear collapsed.
- All of the unread messages are expanded.
- The oldest unread message is selected and scrolled fully into view.
- Hitting "n" goes to the next oldest unread message. It is scrolled fully into view. Currently only a tiny amount is scrolled into view (e.g. enough to read the recipient list and nothing else), and one must then manually scroll down to actually read the message.
I can't totally tell what Airmail is doing currently, but in the above situation it seems to be some combination of:
- Expanding the unread messages and placing the oldest unread message into view. This seems okay.
- The newest unread message is actually selected, not the oldest, so you have the end of the thread selected even though you haven't read it all yet. This seems to happen even if the newest message is not in the viewport.
- Hitting n or p seems nondeterminant to me. I feel like I've seen it sometimes select the oldest unread message, sometimes select the middle message. In either case the app does an unanimated scroll to some message, and the message is not top aligned in the viewport, ti's just at some apparently random scroll position, so it's really hard to tell what just happened.
Basically the behavior should exactly emulate what Gmail does on the web (regardless of shortcut keys used -- this is just basic conversation navigation). They do sane expand and collapse of read/unread messages in a conversation (read are collapsed when navigating to a conversation, unread are expanded), and they scroll intelligently as you use shortcuts to navigate through a conversation. For example, they always scroll selected messages fully into view, not just a few pixels into view, when selecting them. They always scroll expanded messages to the top of the viewport when selected so you can always read as much as will fit on screen. And as a side note, the selection indicator in the left margin is very subtle when using the default theme and can be hard to see.
Thanks for reading.