-
Notifications
You must be signed in to change notification settings - Fork 0
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
Feature/0238 Keyboard Enhancements #10
base: develop
Are you sure you want to change the base?
Conversation
OnKeyboardInput - update add Notification MUST and NOTE sections in index; add new diagram KeyboardEventInputKeyMask and its source file; SetGlobalProperties - update index; add new diagram SetGlobalPropertiesCustomizeKeys and its source file
docs/UI/SetGlobalProperties/index.md
Outdated
|
||
4. HMI displays the in-application menu for every active application upon the User's request. It must contain SDL-requested commands (UI.AddCommand) and sub-menus (UI.AddSubMenu). SDL provides the values for the name (`menuTitle` parameter) and for the icon (`menuIcon` parameter) of this in-application menu. The values for in-application menu and touchscreen keyboard are allowed by SDL Core for navigation type of application only. | ||
5. HMI must display the onscreen keyboard upon the User's request within the following condition: all `keyboardProperties` supported by HMI must be embodied in `HMI_capabilities.json file`. In this case SDL Core is able to compare `keyboardProperties` requested by the mobile device with actually supported `keyboardProperties` and send to HMI only those that are supported. | ||
6. HMI must use default `keyboardProperties` parameters, in case SDL Core transfers UI.SetGlobalProperties request with omitted or empty `keyboardProperties` parameters. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@KhrystynaDubovyk
keyboardCapabilities
includes in the windowCapabilities
that includes in DisplayCapability
that includes in systemCapability
struct.
- SDL can receive
systemCapability
struct only viaOnSystemCapabilityUpdated
notification after the app registration. - SDL wouldn't save this data to the cache file, because it specific capabilities for the app. (the same logic as for DisplayCapability)
So I think that points 5. and 6. should be removed.
@dboltovskyi @ychernysheva please advise should we add some specific info related to the customizable keys processing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
May be just one notice:
In case if HMI does not provide number of customizable keys for some keyboard layout SDL will automatically populate zero for it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed p.5,6 in 09c6fad
HMI-->SDL:UI.SetGlobalProperties (SUCCESS) | ||
SDL-->App:SetGlobalProperties (SUCCESS) | ||
note over HMI:<align:center>Keyboard layout\ncustomizable keys are:\n**" # "** - customized value\n** " $ "** - customized value | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This scenario updates already available character '#' (default one)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
updated in 856c2dd
note over SDL:<align:center><customizeKeys> array\nhas more values than\ncustomizable keys allowed | ||
SDL-->App:<align:center>SetGlobalProperties\n(INVALID_DATA: "CustomizeKeys exceeds the number of customizable keys in this Layout") | ||
note over HMI:<align:center>Customizable keys' values\nare not changed | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would add an information how HMI lets SDL know about max number of customizable characters.
And that's why we need docs/BasicCommunication/OnSystemCapabilityUpdated/index.md
file updated within this PR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
updated in 3c734d7
docs/UI/SetGlobalProperties/index.md
Outdated
7. HMI allows to customize special characters depending on the keyboard layout restrictions: | ||
* `QWERTY` - 3 customizable keys | ||
* `AZERTY` - 4 customizable keys | ||
* `NUMERIC` - 2 customizable keys |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please notice there 4 layouts available, QWERTZ
currently is missing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
and how many customizable buttons allowed for QWERTZ
? three?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added in 09c6fad
docs/UI/SetGlobalProperties/index.md
Outdated
* display the complete list of available VR commands (SDL-defined and HMI-defined ones) when the User activates VR. | ||
|
||
4. HMI displays the in-application menu for every active application upon the User's request. It must contain SDL-requested commands (UI.AddCommand) and sub-menus (UI.AddSubMenu). SDL provides the values for the name (`menuTitle` parameter) and for the icon (`menuIcon` parameter) of this in-application menu. The values for in-application menu and touchscreen keyboard are allowed by SDL Core for navigation type of application only. | ||
5. HMI must display the onscreen keyboard upon the User's request within the following condition: all `keyboardProperties` supported by HMI must be embodied in `HMI_capabilities.json file`. In this case SDL Core is able to compare `keyboardProperties` requested by the mobile device with actually supported `keyboardProperties` and send to HMI only those that are supported. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please notice currently in hmi_capabilities.json
there is no information on KeyboardProperties
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed this in 09c6fad
docs/UI/SetGlobalProperties/index.md
Outdated
* display the complete list of available VR commands (SDL-defined and HMI-defined ones) when the User activates VR. | ||
|
||
4. HMI displays the in-application menu for every active application upon the User's request. It must contain SDL-requested commands (UI.AddCommand) and sub-menus (UI.AddSubMenu). SDL provides the values for the name (`menuTitle` parameter) and for the icon (`menuIcon` parameter) of this in-application menu. The values for in-application menu and touchscreen keyboard are allowed by SDL Core for navigation type of application only. | ||
5. HMI must display the onscreen keyboard upon the User's request within the following condition: all `keyboardProperties` supported by HMI must be embodied in `HMI_capabilities.json file`. In this case SDL Core is able to compare `keyboardProperties` requested by the mobile device with actually supported `keyboardProperties` and send to HMI only those that are supported. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this case SDL Core is able to compare
keyboardProperties
requested by the mobile device with actually supportedkeyboardProperties
and send to HMI only those that are supported.
I'm not sure is this actually true.
Unfortunately there is no direct mapping between keyboard "capabilities" provided by HMI and keyboard "properties" that app try to set through SetGP.
That's why in current implementation of the proposal we decided to move responsibility to check parameters to HMI.
It means SDL does not "verify" new parameters maskInputCharacters
and customizeKeys
and pass them to HMI as is (except of the case for number of customizable keys).
docs/UI/SetGlobalProperties/index.md
Outdated
|
||
4. HMI displays the in-application menu for every active application upon the User's request. It must contain SDL-requested commands (UI.AddCommand) and sub-menus (UI.AddSubMenu). SDL provides the values for the name (`menuTitle` parameter) and for the icon (`menuIcon` parameter) of this in-application menu. The values for in-application menu and touchscreen keyboard are allowed by SDL Core for navigation type of application only. | ||
5. HMI must display the onscreen keyboard upon the User's request within the following condition: all `keyboardProperties` supported by HMI must be embodied in `HMI_capabilities.json file`. In this case SDL Core is able to compare `keyboardProperties` requested by the mobile device with actually supported `keyboardProperties` and send to HMI only those that are supported. | ||
6. HMI must use default `keyboardProperties` parameters, in case SDL Core transfers UI.SetGlobalProperties request with omitted or empty `keyboardProperties` parameters. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
May be just one notice:
In case if HMI does not provide number of customizable keys for some keyboard layout SDL will automatically populate zero for it.
|
||
2. In case HMI sends `KeyboardCapabilities` without information about `numConfigurableKeys` within OnSystemCapabilityUpdated notification, SDL would provide `KeyboardCapabilities` to app with `numConfigurableKeys` set to zero. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe, I will be better to highlight, that numConfigurableKeys
will be set to zero only for supported layouts (if they are provided in KeyboardCapabilities struct).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And one more clarification: if KeyboardCapabilities struct doesn't have any information about supported layouts (supportedKeyboardLayouts param is omitted), corresponding requests will use configurableKeys param as is.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dboltovskyi, @ychernysheva
shall I change wording in p.2 like this
- In case HMI sends OnSystemCapabilityUpdated notification with
KeyboardCapabilities
,supportedKeyboardLayouts
and without information aboutnumConfigurableKeys
, SDL would provideKeyboardCapabilities
to app withnumConfigurableKeys
set to zero.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks Ok for me
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done in 6391778
@@ -18,11 +18,13 @@ Purpose | |||
* `menuName` and `templateTitle` should be included, if they are visible on HMI. | |||
* `mainField1-4`, `statusBar` and `mediaTrack` should not be included if OEM implemented the `WEB_VIEW` template without these text fields. | |||
* `availabletemplates`, `buttonCapabilities` and `imageTypeSupported` should reflect the general capabilities of the window/system. | |||
5. HMI sends `KeyboardCapabilities` and max number of customizable keys within OnSystemCapabilityUpdated notification to SDL. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would say HMI may send KeyboardCapabilities
within OnSystemCapabilityUpdated
notification which may include maskInputCharactersSupported
, supportedKeyboardLayouts
and configurableKeys
parameters.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done in 66efcf6
|
||
2. In case HMI sends `KeyboardCapabilities` without information about `numConfigurableKeys` within OnSystemCapabilityUpdated notification, SDL would provide `KeyboardCapabilities` to app with `numConfigurableKeys` set to zero. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks Ok for me
|
||
SDL-->App: RegisterAppInterface (SUCCESS) | ||
|
||
SDL->>HMI: BC.OnAppRegistered(appName; appID) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This notification is sent before UI.SetGlobalProperties
request
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done in 66efcf6
…KeyboardProperties after demo
…cements_revision SDL-0238 update per proposal revision
Co-authored-by: Jacob Keeler <jacob.keeler@livioradio.com>
Co-authored-by: Jacob Keeler <jacob.keeler@livioradio.com>
Update Structs, Enums;
OnKeyboardInput - update add Notification MUST and NOTE sections in index; add new diagram KeyboardEventInputKeyMask and its source file;
SetGlobalProperties - update index; add new diagram SetGlobalPropertiesCustomizeKeys and its source file