-
Notifications
You must be signed in to change notification settings - Fork 121
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 0294 - App Service - Messaging #973
Comments
Should this be an array?
|
1. Yep 🤦♂ 2. This is true. I'm going through different options in my head, but the only one I can think of that would work is to say that if the app wishes to keep this text protected, to not send 3. I think that would get complicated in Core. I'm not sure of a good solution to this other than that, though, and it's probably the "best" solution for this particular service. Alternatively, we could make it so that non-active service's data can be polled (correct me if that's already possible). Only the active service would get data pushed to subscribers though. Or open up a way for non-active services to be subscribed to (correct me if that's already possible). 4. That's an interesting idea. I think it would look something like this: Based on a forthcoming proposal from Joey, we would add the following to <function name="PerformAppServiceInteraction" functionID="PerformAppServiceInteractionID" messagetype="request">
<!-- Existing params -->
<param name="rpcRequest" type="String" mandatory="false">
<description>A stringified version of an RPC request. Only RPCs defined in the RPC spec should be used.</description>
</param>
</function>
<function name="PerformAppServiceInteraction" functionID="PerformAppServiceInteractionID" messagetype="response">
<!-- Existing params -->
<param name="rpcResponse" type="String" mandatory="false">
<description>A stringified version of an RPC response. Only RPCs defined in the RPC spec should be used.</description>
</param>
</function> Then we would add a new RPC that can be send via <function name="SendMessage" functionID="SendMessageID" messagetype="request" since="X.X">
<description>Request for sending a message to a contact</description>
<param name="messageContactID" type="String" mandatory="true">
<description>The contact ID retrieved from the app service's MessageContact struct</description>
</param>
<param name="messageText" type="String" mandatory="true"/>
</function>
<!-- Add a response without any special parameters, TBD --> We would extend <struct name="MessageContact">
<!-- Other parameters -->
<param name = "contactID" type="String" mandatory="false" />
</struct> If no The |
Should the use case using this "Messaging" be discussed here? |
Not possible right now but it would be easy to implement. We could add a serviceID parameter to GetAppServiceData request. Consumers could choose to subscribe to any service, even if not the active service.
Sorry I don't follow why the PerformAppServiceInteraction is used with SendMessage? |
4. Because that allows the receiving app to know what the |
3.
I like that solution. |
Hi @Sohei-Suzuki, this would be an extension to the app services system, so it would add the ability for chat apps to expose to the head unit their recent messages. The Head Unit could then surface those however they wish (e.g. show a status icon on system UI, etc.). The messaging app also exposes this data to other app consumers, so that a navigation app could show new messages in their own UI, for example. |
The Steering Committee voted to return this proposal for revisions. The author will make the following changes to the proposal:
It was also mentioned on the Steering Committee call that any additional questions about the messaging use case could be posed during the review of the revised proposal. |
The author has updated the proposal to reflect the agreed upon revisions, and the revised proposal is now in review until April 7, 2020. |
@joeljfischer -san Thank you for replying .
In this case, the behavior will be different depending on each App, so I think it may confuse the user. |
@Sohei-Suzuki-Nexty I think that's a good question. This could introduce variability between apps' capabilities. However, I think that the capability of apps that don't expose the message text is still good because the app consumer can still open the message thread in the messaging app itself, and the user can read the text there. The only alternative would be to remove the ability for app producers to show message text at all, which I don't think is something we'd like to do. |
@joeljfischer -san I think UX that varies between apps is not a good idea. Is it possible of you to add a message box for overlay and display it without depending on the app? |
I'm not sure what you're asking here, could you please clarify. |
@joeljfischer -san Your design: If App2 has a function to display a message, a message is displayed. If App2 do not have one, it will not be displayed. Our idea: The Native (Embedded) side displays a message on a layer above the App (Overlay layer), taking into account the status of the App. |
@Shohei-Kawano I think that this is a misunderstanding of the app services feature. Both "my design" and "your idea" occur in this proposal. App Service data goes to all app service consumers, both the head unit ("your idea") and to other apps ("my design"). There is currently no way to mark that app service data only goes to the head unit and not to other apps. However, in order for apps to receive app service data they do have to be approved by the OEM to use those RPCs, so there is some protection there. The only other alternative I could think of would be to add a new parameter like: <struct name="Message">
<param name="isProtected" type="Boolean" mandatory="false">
<description>If true, this data should only be sent to the HMI service consumer, and not to any app consumers.</param>
</param>
</struct> Alternatively, we could use an attribute: <struct name="MessageContact">
<param name="mostRecentMessage" type="Message" app-service-protected="true" mandatory="false">
<description>Details about the most recent message in the chat for previewing purposes.</description>
</param>
</struct> Where if this attribute was true, the data would not be sent to app consumers and only to the HMI consumer. I'm not sure how I feel about those alternatives at the moment. @joeygrover @JackLivio what do you think? EDIT: Github ate some of my comment, added it back in. |
A quorum was not present during the 2020-04-07 Steering Committee Meeting, so this proposal will remain in review until our meeting on 2020-04-14. |
@joeljfischer -san If multiple app service consumers are registered, will the registered consumers be notified without priorities or conditions? In short, what I mean is that there is a conflict between Native(HMI) and App in displaying messages. |
I understand your point now. You are looking to ensure that a head unit doesn't display a "native" notification and another app displaying the same notification. Due to the variety of HMIs and implementations we can't make any guarantees about the HMI implementation or UI. I think that it's important that apps have the capability of showing notifications and using their own features to be able to consume and respond to messages if possible. AFAIK, there's no current way with app services for the app to know if the HMI will handle the service nor how it would handle it in terms of UI. |
During the 2020-04-14 Steering Committee Meeting, the author and Nexty team agreed that the questions/concerns posed in Nexty's comments on this review issue are out of scope for this proposal, and should be discussed separately with regards to the larger app services feature as a whole. The Steering Committee then fully agreed to accept this proposal. |
Implementation Issues Entered: |
Hello SDL community,
The review of the revised "SDL 0294 - App Service - Messaging" begins now and runs through April 7, 2020. The review of the original proposal took place March 18 - March 24, 2020. The proposal is available here:
https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0294-app-service-messaging.md
Reviews are an important part of the SDL evolution process. All reviews should be sent to the associated Github issue at:
#973
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
[email protected]
The text was updated successfully, but these errors were encountered: