-
Notifications
You must be signed in to change notification settings - Fork 122
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
[Accepted] SDL 0268 - Main Menu Updating and Pagination #883
Comments
Since UpdateCommand is a notification shouldn't it be named OnUpdateCommand? |
@joeljfischer I do support improvements to the app menu. Especially the performance to create the graphical app menu is not the best. I have some doubts to the suggested method though but let me try to start with some feedback to the proposal.
Actually I am not sure if the proposal is the best solution to the performance issues. Downsides of the proposed solution are, that with pagination I expect the command list is set in pages. With the proposal you would still need to add all commands per menu. Saying if you have 100 commands in the main app menu you still need to send 100 An alternative would be to allow apps to say how many commands should be contained in a menu (e.g. extending |
1. Yep, you're correct. 2. I'm okay with 3. I was considering the implementation of SDL-0148, which could have additional submenus beneath submenus. I know it's not implemented yet, but it is accepted, so I was trying to have more generic naming that could fit both sub-commands and sub-menus. What do you think? 4. I re-reviewed this proposal, and your alternative would work for artworks, however it doesn't work for sub-cells, and it's not extensible. I can add it as an alternative, if you'd like. 5. I'm sorry, I've read your question a few times and I'm not understanding it. Could you elaborate or re-phrase? 6.
This is true, however, it's not possible to support VR without sending the entire menu at once without pagination. If the menu doesn't have VR, then sending 100 |
|
4. I disagree that this should be tied to 5. Yes, there is a 6.
I don't see the relevance. I'm saying that sending 100 text-only Second, it bears repeating that this breaks menu items with VR. That's a bad enough downside alone that it's not worth going down that path. 7. |
@joeljfischer my suggestion is to add This suggestion provides the exact same result as in the proposal but adds support for choices and is generic for any place where images like widgets and graphics. It also adds support to notify when a submenu entry is pressed. It eliminates the need to extend AddCommand and AddSubMenu with hasIcon because it uses existing features from SDL0042 |
There are a few downsides to what you said:
This means that the HMI can only have the menu be sent when the sub-menu cell is tapped and not in the other circumstances I mentioned above in 7.
We would need to add additional capabilities items. This isn't a big downside and is doable. With that said, I was not aware of the implementation of SDL-0042 in Core 5.0. That certainly opens up these additional options. I think that altering |
👍 that's a good point. I agree to this. I want to make things clear regarding the mobile API changes: <function name="OnUpdateFile" functionID="OnUpdateFileID" messagetype="notification" since="x.x">
<description>This notification tells an app to upload and update a file with a given name.</description>
<param name="fileName" type="String" maxlength="255" mandatory="true">
<description>File reference name.</description>
</param>
</function>
<function name="OnUpdateSubMenu" functionID="OnUpdateSubMenuID" messagetype="notification" since="x.x">
<description>This notification tells an app to update the AddSubMenu or its 'sub' AddCommand and AddSubMenus with the requested data</description>
<param name="menuID" type="Integer" minvalue="0" maxvalue="2000000000" mandatory="true">
<description>This menuID must match a menuID in the current menu structure</description>
</param>
<param name="updateSubCells" type="Bool" mandatory="false">
<description>If not set, assume false. If true, the app should send AddCommands with parentIDs matching the menuID. These AddCommands will then be attached to the submenu and displayed if the submenu is selected.</description>
</param>
</function>
<struct name="WindowCapability" since="6.0">
<!-- New Parameters -->
<param name="supportsDynamicMenus" type="Bool" mandatory="false" since="x.x">
<description>If true, the head unit will send UpdateCommand and UpdateSubMenu notifications, and it will support updating menu cells by sending the same cmdID / menuID with new data. If not set, assume false.</description>
</param>
</struct> Different to what's proposed, the params Regarding the HMI API I just realize that you suggest requests and responses. Should they be notifications instead with direction HMI -> SDL? |
Additional parameters would need to be added to <struct name="DynamicUpdateCapabilities" since="X.X">
<param name="supportsDynamicSubMenus" type="Bool" mandatory="false" since="X.X">
<description>If true, then OnUpdateSubMenu notifications will be sent from the module requesting AddCommands with parentIDs matching the menuID.</description>
</param>
<param name="supportsDynamicPerformInteractionImages" type="Bool" mandatory="false" since="X.X">
<description>If true, then OnFileUpdate notifications will be sent from the module requesting PutFile information for PerformInteraction / CreateInteractionChoiceSet images.</description>
</param>
<param name="supportsDynamicMenuImages" type="Bool" mandatory="false" since="X.X">
<description>If true, then OnFileUpdate notifications will be sent from the module requesting PutFile information for AddCommand and AddSubMenu icons.</description>
</param>
</struct>
<struct name="WindowCapability" since="6.0">
<!-- New Parameters -->
<param name="dynamicUpdateCapabilities" type="DynamicUpdateCapabilities" mandatory="false" since="x.x">
<description>Contains capabilities for dynamic updating features such as image and sub-menu requests from the head unit.</description>
</param>
</struct>
I don't remember why I chose the request-response pair. It seems to me that it could be a notification. |
Getting close to the meeting... what do you think about the idea to make the capabilities an ImageName array which could be called <param name="dynamicImageUpdateSupported" type="ImageType" array="true" mandatory="false" minsize="1"> |
I think you mean Second, we don't have defined behavior for fields outside of |
The Steering Committee voted to return this proposal for revisions. The author will update based on this comment and this comment, and also work to make |
The author has revised this proposal to incorporate the requested revisions from the Steering Committee. The revised proposal is now in review and will be voted upon during the 2020-01-14 meeting. |
The Steering Committee fully agreed to accept this proposal. |
Implementation Issues Entered: |
Hello SDL community,
The review of the revised "SDL 0268 - Main Menu Updating and Pagination" proposal begins now and runs through January 14, 2020. The original review of "SDL 0268 - Main Menu Updating and Pagination" took place December 4 - 10, 2019. The proposal is available here:
https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0268-main-menu-updating.md
Reviews are an important part of the SDL evolution process. All reviews should be sent to the associated Github issue at:
#883
What goes into a review?
The goal of the review process is to improve the proposal under review through constructive criticism and, eventually, determine the direction of SDL. When writing your review, here are some questions you might want to answer in your review:
Please state explicitly whether you believe that the proposal should be accepted into SDL.
More information about the SDL evolution process is available at
https://github.com/smartdevicelink/sdl_evolution/blob/master/process.md
Thank you,
Theresa Lech
Program Manager - Livio
theresa@livio.io
The text was updated successfully, but these errors were encountered: