-
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 0329 - OnDataResumed Notification #1121
Comments
I'm sorry that the question was not about this proposal but about the fundamental part.
From the perspective of the app developer, the state management is performed by the app, and the state may change when disconnected, We think this proposal is a Proposal to notify you of the data that will be resumed with the current Resume feature and to clarify the data that needs to be resent. Also, is there an app that currently sends only the necessary data after checking the document when the app is restarted? |
Hello thank you for these questions. Overall resumption is a feature to optimize the SDL ecosystems connection process. Resumption is used to reduce the time it takes for an app to achieve its previous state after an ignition cycle or the app unexpectedly disconnects/reconnects. An app may have previously had a lot of menu items or choice sets or subscriptions. The time that it would take for the app to reach its previous state is greatly reduced by the resumption feature, especially in the case of parsing long lists of voice recognition information from the app. This proposal is a step towards improving the resumption feature and making it actually usable for developers. We can accomplish that by first creating a notification to let a developer know what information is resumed and does not need to be resent. Without this notification developers have to rely on borderline insider knowledge for how to handle resumption on a specific head unit integration depending on the SDL Core version. |
The Steering Committee voted to keep this proposal in review on 2021-02-09 to allow the conversation to continue on the open item. |
2. I think that the added structs here will lead to a lot of confusion. Their names sound so similar to the related function names that searching for the correct RPC and simply being able to remember which is which between, for example, a 3. I don't believe that this feature is very useful and is unlikely to be used by mobile developers. At least not the complete feature set. Because so much of app library usage is built atop the manager system, and because this update would not work with the manager system, I don't believe this proposal should be accepted. The manager system is built atop closure callbacks, and those are difficult to resume. Providing this data isn't helpful because the manager system tracks what data has been accepted by the head unit already. To refactor this proposal into something that may be usable by the manager system in the future would look something like this: <function name="OnDataResumed" functionID="OnDataResumed" messagetype="notification" since="x.x">
<description>
Relays resumption information to an application
</description>
<param name="choiceSets" type="Bool" mandatory="false">
</param>
<param name="mainMenu" type="Bool" mandatory="false">
</param>
<param name="ephemeralFiles" type="Bool" mandatory="false">
</param>
<param name="globalProperties" type="Bool" mandatory="false">
</param>
<param name="vehicleDataSubscriptions" type="Bool" mandatory="false">
</param>
<param name="remoteControlSubscriptions" type="Bool" mandatory="false">
</param>
<param name="windowInfo" type="Bool" mandatory="false">
</param>
</function> This is more useful because the eventual app library resumption manager will be able to know for certain what was and was not resumed, but it already knows what the current state of those individual items would be. |
Since resumption is an implemented feature in SDL Core, any issues you find with the current implementation should be submitted as issues to the appropriate repositories. I think this discussion is out of scope for this proposal review since it is questioning the existence of the resumption feature.
<function name="OnDataResumed" functionID="OnDataResumed" messagetype="notification" since="x.x">
<description>
Relays resumption information to an application
</description>
<param name="choiceSetsResumed" type="Bool" mandatory="false">
</param>
<param name="mainMenuResumed" type="Bool" mandatory="false">
</param>
<param name="ephemeralFilesResumed" type="Bool" mandatory="false">
</param>
<param name="globalPropertiesResumed" type="Bool" mandatory="false">
</param>
<param name="vehicleDataSubscriptionsResumed" type="Bool" mandatory="false">
</param>
<param name="remoteControlSubscriptionsResumed" type="Bool" mandatory="false">
</param>
<param name="windowInfoResumed" type="Bool" mandatory="false">
</param>
</function> |
@JackLivio -san ・The burden on application developers may increase. Due to the above disadvantages, we think there is little advantage in adding this proposal. Also, are there any conditions such as disconnection time for the resume function to be performed?
These are certainly questions about reopening features, however we don't think that feature extension with less merit is necessary because it only complicates the implementation. |
1. @Sohei-Suzuki-Nexty Processing time: This is the entire point of the resumption feature to begin with and relates directly to the original feature. The processing time for 100's if not 1000's of choice sets for a voice recognition engine to build out grammar for far exceeds the processing time of a few logical checks on a mobile device or sending of a small RPC notification. Easier for developer: Again this goes back to the original feature and not this enhancement. However, easier for developer does not mean it's a better design. Take the use case of someone stepping out of their car to get gas then going back in their car. They expect the app to resume from its previous point, not to start all over again which might include sending 1000's of choice sets on connection; that would be very bad UX. It should also be noted it is completely up to the developer to use the original feature or not, this proposal doesn't change that. There is also already an accepted proposal to implement a convenience method at the manager layer to reduce burden on the developer, this proposal enhances that. Though, this issue has nothing to do specifically with this proposal and the issue is out of scope. Disconnection time. Once again, this is part of the original feature and not this proposal. This proposal does not affect when app resumption takes place and when it does not. All these issues relate to the original feature and are not scoped for this proposal. I would urge the commenter to understand the original feature and only comment on how this proposal affects that feature. I still consider these points out of scope for this proposal and until the commenter can define exactly how this proposal affects the original feature and not rely on the original feature's defects or misunderstandings to raise issues they should not be debated on this proposal. The commenter is welcome to submit any proposals on how they would like to see the original feature changed. 2. & 3. I do agree the original solution was likely to add a lot of potential issues in maintenance. I do believe that sending the actual contents that were resumed would serve some benefit, but the overhead is likely not worth it at this time. The manager layers in the app library as well as developers should at least be aware of which pieces of app data were resumed and the potential revisions look to handle that well. 4. I would like to just clarify when this notification is sent. Is this sent after RAI response but before the first OnHMIStatus? Or after that OnHMIStatus? I think defining that is important in terms of how the app libraries will handle this notification and the HMI status. |
@joeygrover -san, @JackLivio -san
|
The Steering Committee voted on 2021-02-16 to keep this proposal in review to allow for conversation to continue on open items 1-4. |
1. The transfer time will be negligible based on the updated and agreed to design. It's just transferring a few booleans. Additionally, the entire feature is opt-in for the app developer by sending the |
@joeljfischer -san, @joeygrover -san, @JackLivio -san 1.Our concern has been resolved with the update of item 3. |
|
To provide clarity of the current status of this proposal review, here's a summary of the discussion items on this review issue: Agreed Upon Revisions: 2/3. Update the proposal to include changes for the app libraries; See this comment. <function name="OnDataResumed" functionID="OnDataResumed" messagetype="notification" since="x.x">
<description>
Relays resumption information to an application
</description>
<param name="choiceSetsResumed" type="Bool" mandatory="false">
</param>
<param name="mainMenuResumed" type="Bool" mandatory="false">
</param>
<param name="ephemeralFilesResumed" type="Bool" mandatory="false">
</param>
<param name="globalPropertiesResumed" type="Bool" mandatory="false">
</param>
<param name="vehicleDataSubscriptionsResumed" type="Bool" mandatory="false">
</param>
<param name="remoteControlSubscriptionsResumed" type="Bool" mandatory="false">
</param>
<param name="windowInfoResumed" type="Bool" mandatory="false">
</param>
</function> 4. Clarify that the OnDataResumed is sent after the RAI response and before the No action required: |
The Steering Committee voted on 2021-02-24 to return this proposal for revisions. The author is to update the proposal to include the agreed-upon revisions summarized in this comment. |
The author has updated this proposal based on the Steering Committee's agreed-upon revisions, and the revised proposal is now in review until April 06, 2021. The specific items that were updated since the last review can be found in this merged pull request: #1129. |
The Steering Committee fully voted to accept this proposal on 2021-04-06. |
Implementation issues have been added: |
Hello SDL community,
The review of the revised proposal "SDL 0329 - OnDataResumed Notification" begins now and, and continues through April 06, 2021.
The proposal is available here:
https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0329-on-data-resumed.md
Reviews are an important part of the SDL evolution process. All reviews should be sent to the associated Github issue at:
#1121
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,
Jordyn Mackool
Program Manager - Livio
[email protected]
The text was updated successfully, but these errors were encountered: