Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(color): Improvements to switch and source select menu #4104

Merged
merged 15 commits into from
Oct 13, 2023

Conversation

philmoz
Copy link
Collaborator

@philmoz philmoz commented Sep 24, 2023

Fixes #1538

Based on feedback from PR #4055, I've made some more changes to the switch and source popup menus.

  • Add 'All' filter button which is selected by default.
  • Add 'Clear' filter button (switch select only) which only shows the '---' selection.
  • Change filter buttons to look like other buttons.
  • Increased filter buttons size and spacing for easier touch activation.
  • Show filter buttons in two columns to avoid scrolling.
  • Show label above menu list, either selection type or current filter.

Screenshot 2023-09-25 at 9 22 37 am
Screenshot 2023-09-25 at 9 22 57 am
Screenshot 2023-09-25 at 9 23 13 am

@philmoz
Copy link
Collaborator Author

philmoz commented Sep 24, 2023

Todo:

  • The 'Clear' button also needs to be available on the source select; but this is not always the case (need to work out logic).
  • May need to have three columns for filters on landscape layout.

@philmoz
Copy link
Collaborator Author

philmoz commented Sep 25, 2023

Now shows 'Clear' filter when needed, and uses 3 columns for source select on landscape display.

Screenshot 2023-09-25 at 11 06 03 am

@pfeerick pfeerick added color Related generally to color LCD radios UX-UI Related to user experience (UX) or user interface (UI) behaviour labels Sep 25, 2023
@JimB40
Copy link
Collaborator

JimB40 commented Sep 25, 2023

Testing PR. This is fkn awesome. :)
So good to see concept works and choosing source or switch is now piece of cake

@JimB40
Copy link
Collaborator

JimB40 commented Sep 25, 2023

Few remarks.

  1. Shouldn't we have "Clear" & "---" as first items in Source selection popup?.
    Reason is consistency rather, don't see use case when you have to clear source but I havent reviewed all source fields yet.

  2. Switch inversion
    I know inverted items have negated ID in system so it's easy to display them like now, but it terms of UX this way sucks a little comparing to old method used in OTX and early ETX.
    This is particularly visible when programming LS routines. So you choose LS48 then .. you find out it should be inverted. So now you have to scroll like 100 items to select !LS48. Plus to select next negated switch you need to move roller in oposite direction. I always make UI mistakes at this point.

Concept:
a. We have switches list starting with '---' that is filtered or not.
b. There additional button placed in filter area at the very bottom with "Inverse" or shorter "NOT" lablel (you can use switch UI element with label to differnciate this input from groups or normal buton that shows active state when ON)
c. If you tap this button switch list will exchange for negated values, while selected item is still focused.
d. This button should not be includedd in PAGE>, PAGE< carousel because we will loose this quick clearang feature.
e. For key navigation. LONG ENTER press was always good way to go. It is used to bring Context menu with options but in this case inversion is the only "option" so we don't need to display additional menu.

  1. Filter/button area background
    Initialy I've designed dark color (SECONDARY1) to differenciate this from data area (items list) but that would need another styling so let's ditch it, so:
    For filter/button ara we should try SECONDARY3. Same color that is used as background elswhere
    Pop-up has frame and diming overleay underneath so it should look okay

@philmoz
Copy link
Collaborator Author

philmoz commented Sep 25, 2023

  1. Shouldn't we have "Clear" & "---" as first items in Source selection popup?.
    Reason is consistency rather, don't see use case when you have to clear source but I havent reviewed all source fields yet.

If the '---' option is not valid for the field then there is no point displaying it (or the Clear button).

Some source fields can be cleared (e.g. Mix), some cannot (e.g. Input).
(I'm not sure why you can clear the source in a Mix line; but that's what the current code allows.)

@JimB40 JimB40 mentioned this pull request Sep 25, 2023
1 task
@JimB40
Copy link
Collaborator

JimB40 commented Sep 25, 2023

  1. Shouldn't we have "Clear" & "---" as first items in Source selection popup?.
    Reason is consistency rather, don't see use case when you have to clear source but I havent reviewed all source fields yet.

If the '---' option is not valid for the field then there is no point displaying it (or the Clear button).

Some source fields can be cleared (e.g. Mix), some cannot (e.g. Input). (I'm not sure why you can clear the source in a Mix line; but that's what the current code allows.)

Yep minor thing. forget this point.

@JimB40
Copy link
Collaborator

JimB40 commented Sep 25, 2023

Found edge case.
With one item and no filter groups. Minimum pop-up height should be increased.
IMG_0746

PS.
Finding edge cases in EdgeTX that's something. ;)

@pfeerick
Copy link
Member

2. So you choose LS48 then .. you find out it should be inverted.

Have you not found "Long press to invert" capability yet... (only been there since something like 2.5)? 🤭 I do agree though that an "Invert" button next to Clear would make that more visible/easier. If put above the clear button you don't lose your "quick clear function" by having Clear as the first item when you page back. ;)

@JimB40
Copy link
Collaborator

JimB40 commented Sep 25, 2023

Have you not found "Long press to invert" capability yet... (only been there since something like 2.5)? 🤭

Your sense of humour is ... lovely :P
So how do you invert switch on NV18? Ah forgot ... we made Key emulation PR :)

Anyway I think clearly visible/touchable option should be there.

@philmoz
Copy link
Collaborator Author

philmoz commented Sep 25, 2023

Found edge case. With one item and no filter groups. Minimum pop-up height should be increased.

Not sure I can do much about that - the size is controlled by the menu list.

At least it's better than this:
Screenshot 2023-09-25 at 6 33 02 pm

@JimB40
Copy link
Collaborator

JimB40 commented Sep 25, 2023

List is wrong but you should get concept.
SS_01
SS_02

@pfeerick
Copy link
Member

pfeerick commented Sep 25, 2023

So how do you invert switch on NV18? Ah forgot ... we made Key emulation PR :)

I said "long press" ... it works for touch as well! ;)

UI-wise... invert is in the wrong place for me... if I press back, I expect it to go from "All" at the top, to the bottom-most button... so that should be clear. Then you can have invert, and then all the filter buttons. Why exactly does this make sense to you for the page back navigation (starting from 1)?

brave_oQFkviX84J

@philmoz
Copy link
Collaborator Author

philmoz commented Sep 25, 2023

UI-wise... invert is in the wrong place for me... if I press back, I expect it to go from "All" at the top, to the bottom-most button... so that should be clear. Then you can have invert, and then all the filter buttons. Why exactly does this make sense to you for the page back navigation (starting from 1)?

Invert is not a filter - it changes the current selection to be inverted (e.g. SA --> !SA or vice versa). It would also change the displayed items in the list to be inverted or not.

It should work like a normal button; not be auto activated like the filter buttons so it can't be in the PAGE navigation.

@JimB40
Copy link
Collaborator

JimB40 commented Sep 25, 2023

Eh Peter it would be so much faster if you sleep ;)

ENTER is used only on the right hand list.
PAGE> and PAGE< change focus on the left hand side items but also applies filter (no need to press ENTER)

INVERT need key press to be applied but SHORT ENTER is already in use.
On the other hand implementig SHORT ENTER change left<->right will mess and complicate UI

To recap no need to include it in focusable fields.
It is button to indicate you can tap on it but it never gets focus, only changes Active state if you tap or press LONG ENTER

@pfeerick
Copy link
Member

pfeerick commented Sep 25, 2023

So the button is only for touch then (and thus can be hidden on non-touch radios)?

@JimB40
Copy link
Collaborator

JimB40 commented Sep 25, 2023

Well for those color radio models without Touch capabilities we can change it so it looks like label (just indicator) after you LONG press ENTER. But then list will be visually changed with items including !
So I think it is not needed at all. ENTER LONG PRESS inversion was always kind of 'hidden' feature without visual representation on UI so users know about it.
if we can sense if touchUI is not present I'd make it not visible.

@3djc
Copy link
Collaborator

3djc commented Sep 25, 2023

Yes touch interface can be 'sensed'

@philmoz
Copy link
Collaborator Author

philmoz commented Sep 25, 2023

I've added the 'Invert' button and associated logic. Long press will switch inverted state.

I did not hide the 'Invert' button for radios without touch screen, as I think it provides a better visual cue of the inverted state than just the '!' marks in the names.

Screenshot 2023-09-26 at 8 34 32 am

Also hidden the 'Clear' button if there are no other filters.

Screenshot 2023-09-26 at 8 35 06 am

@pfeerick
Copy link
Member

pfeerick commented Sep 25, 2023

Can't hide the toolbar completely if there is not more than one filter (the "one" being "All")?

as I think it provides a better visual cue of the inverted state

While I agree with the intention, for that to work, it would need not be a verb (action) word there, or to be displayed differently. If you need to explain to someone "this looks like a button, smells like a button, tastes(!?) like a button, but doesn't work" then that UI concept fundamentally is broken.

@JimB40
Copy link
Collaborator

JimB40 commented Sep 27, 2023

Looks good. Will test in after early morning coffee
Agree with Peter, if something is not behaving like a button it shouldn't look like it.
Label "inverted" would serve better

@JimB40
Copy link
Collaborator

JimB40 commented Sep 27, 2023

Two things after testing:

  1. List item is loosing focus if switch was not selected previously (cleared to '---')
  2. Can't find Pots/Sliders/6-pos in sources.

https://youtu.be/NIdlf-dPR2k

@philmoz
Copy link
Collaborator Author

philmoz commented Sep 27, 2023

  1. List item is loosing focus if switch was not selected previously (cleared to '---')

I will see what I can do with this.

  1. Can't find Pots/Sliders/6-pos in sources.

Existing functionality - 2.8 is the same (not available on AND switch option in LS).

@pfeerick
Copy link
Member

pfeerick commented Sep 27, 2023

Can't find Pots/Sliders/6-pos in sources.

Pots /sliders are not switches ;) So if you go into any 'switches' list, you won't find them.

However, they do seem to be missing in your case at https://youtu.be/NIdlf-dPR2k?si=MJS0pgqad3ZKCA3Z&t=384 ... the group icon was completely missing for you... and instead, you had the constants icon where it should have been...
image

However, from what I could see from the look of the main screen at the start of the video ... you may need to go into Radio Settings -> Hardware -> Pots, and actually enable S1/S2/6POS/LS/RS again! 🤭

@JimB40
Copy link
Collaborator

JimB40 commented Sep 27, 2023

image

Volume by GF
Left 2.10 - LS but no POTS
Right 2.9 - POTS but no LS

Talking about source selection (not switch selection). Seems like POTS are missing in all fields that need source
Checked now LS with a>x function

@pfeerick
Copy link
Member

pfeerick commented Sep 27, 2023

  1. you need to check my above comment about actually ensuring your pots/sliders are enabled on the 2.10 radio. The radio isn't going to show you something that hasn't been configured to actually exist ;)

  2. Logical switches have never been (and probably will never be) available in global functions since they are not necessarily available for all models. And when you go into special functions on 2.9, there is no filter for them (but they are in the list when you scroll past the last of the switches) as that is being added by this PR ;) There seems to be a couple of groups that are now being incorrectly shown in GFs due to this PR.

pfeerick pushed a commit that referenced this pull request Nov 7, 2023
pfeerick pushed a commit that referenced this pull request Nov 7, 2023
@pfeerick pfeerick linked an issue Dec 13, 2023 that may be closed by this pull request
1 task
@philmoz philmoz deleted the switch-and-source-ui-2 branch January 24, 2024 22:46
@pfeerick pfeerick mentioned this pull request Mar 11, 2024
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
color Related generally to color LCD radios UX-UI Related to user experience (UX) or user interface (UI) behaviour
Projects
None yet
Development

Successfully merging this pull request may close these issues.

"!" entries missing when using PgUp/Dn to preselect switchgroup Global Functions inverted Switches
4 participants