worldreboot/twitch-reloaded-roku

User-interface "modality" is confusing

Opened this issue · 1 comments

This isn't really a bug or a feature, but I find the "modality" of the user interface confusing:

  • if you're in the sidebar, scrolling past the top doesn't move the cursor to the top bar;

  • if you're in the top bar, scrolling past the leftmost option doesn't move the cursor to the sidebar; and

  • if you've selected a channel from the sidebar, scrolling past the top of the channel page doesn't move the cursor to the top bar.

    Instead, you have to press the "back" button to exit the channel, then move the cursor back to the center pane, then scroll past the top of that.

As an aside, I have two related suggestions with regard to the top bar:

  1. it would be easier if just moving the cursor between the options switched between them, rather than waiting for you to press the "ok" button, and

    Note that this isn't necessary or desirable for the sidebar because unlike the top bar the sidebar shows "tooltip"-style summaries as you move the cursor from one item to the next.

  2. it would be preferable for each top-bar section to remember your position in the infinite scroll for some period of time so that if you switch sections or "drill down" before clicking "back" you won't get dumped all the way at the top of the list like you would on the Twitch website.

    The way this could be implemented is that section could reload but try to put the cursor on the same item in the updated list; if the item has moved drastically on the list, the cursor could start at the same list index, and there could be a popup asking the user if they want to scroll back to the top.

    The main issue with infinite scroll, though, is that you usually have to scroll up to the top in order to access the top bar, so it may make sense to add a hidden shortcut where the "back" button in the infinite scroll moves the cursor to the top bar without having to scroll to the top first, and the list would cache the cursor position as I've just described.

All these issues seem small, but the way the code is written makes them much harder to fix than it seems!

That's why I'm trying to remake the sidebar and topbar with proper Roku MarkupLists/MarkupGrids. This will make it much easier to fix those issues. I already have a first version of the sidebar, but i definitely need a second version for it to be correctly implemented.

About the "back to" parts, that's much harder because the implementation of the flow in the app is not very flexible and adding more stuff will just make it more monolithic and less readable.