Skip to content

SDL 0238 Keyboard Enhancements

Khrystyna Dubovyk (GitHub) edited this page Jan 4, 2021 · 3 revisions
Enhancement #1: Support for Numeric Keyboard.

Enhancement #2: Allow apps to mask entered characters.

Enhancement #3: Allow apps to change special characters shown on the keyboard layout.

Use Case 1: Supporting Numeric Keyboard

Main Flow:

Pre-conditions:

a. SDL and HMI are started

b. Mobile application is registered on SDL

c. HMI supposts numeric keyboard

Steps:

  1. The app requests to enter some numeric values

Expected:

  1. A numeric keyboard is displayed on the HMI
  2. User enters the numeric value

Use case 2: Support masking entered characters

Main Flow:

Pre-conditions:

a. SDL and HMI are started

b. Mobile application is registered on SDL

c. maskInputCharacters is set to ENABLE_INPUT_KEY_MASK on HMI

Steps:

  1. Application needs a user to enter some value

Expected:

  1. User enters characters
  2. Characters are displayed masked on the HMI

Alternative flow 2: Displaying entered characters unmasked

a. SDL and HMI are started

b. Mobile application is registered on SDL

c. maskInputCharacters is set to DISABLE_INPUT_KEY_MASK

Steps:

  1. Application needs a user to enter some value

Expected:

  1. User enters characters
  2. Characters are displayed NOT masked on the HMI

Alternative flow 3: Providing a key to unmask the entered characters

Pre-conditions:

a. SDL and HMI are started

b. Mobile application is registered on SDL

c. maskInputCharacters is set to USER_CHOICE_INPUT_KEY_MASK on HMI

Steps:

  1. Application needs a user to enter some value

Expected:
2. User enters characters
3. HMI sends UI.OnKeyboardInput(INPUT_KEY_MASK_DISABLED) notification to SDL
4. SDL transfers the notification to mobile application
5. Characters are displayed not masked on the HMI
6. 'Mask' key button is observed on HMI keyboard
7. User taps the key to mask the entered characters
8. HMI sends UI.OnKeyboardInput(INPUT_KEY_MASK_ENABLED) notification to SDL
9. SDL transfers the notification to mobile application
10. Characters are displayed masked on the HMI

KeyboardEventInputKeyMask

Use Case 2: Supporting special characters at the root level of the keyboard

Main Flow:

Pre-conditions:

a. SDL and HMI are started

b. Mobile application is registered on SDL

c. HMI supposts special character keys at the root level of keyboard

Steps:

  1. The app needs a user to enter special characters

Expected:

  1. The special character keys at the root level of keyboard are displayed on the HMI
  2. User enters special characters

Use Case 3: Allow apps to change special characters shown on the Keyboard Layout

Main Flow:

Pre-conditions:

a. SDL and HMI are started

b. Mobile application is registered on SDL

c. QWERTY layout is set

Steps:

  1. Application requests changes in two special characters shown in the keyboard layout

Expected:

  1. SDL transfers the request to HMI
  2. SDL receives the response from HMI
  3. SDL transfers the received response from HMI to the application
  4. HMI displays the two set customizable keys and one default character in the remaining customizable key

Exception 1

1.a.1 The keys in customizeKeys array in mobile request is more than customizable keys allowed
1.a.2 SDL does not transfer the request to the HMI
1.a.3 SDL responds with INVALID_DATA and the info "customizeKeys exceeds the number of customizable keys in this Layout"

Exception 2

1.b.1 A certain special character is not supported by HMI
1.b.2 HMI sends "WARNING" response, with "info" text as "Some symbols might not be supported by system"
1.b.3 SDL transfers received response from HMI to the application

SetGlobalPropertiesCustomizeKeys

Use Case 4: Resumption of keyboard settings

Pre-conditions:

a. SDL and HMI are started

b. Mobile application is registered on SDL and sets some non-default values for KeyboardProperties

Steps:

  1. App unexpectedly disconnects and reconnects

Expected:

  1. SDL starts data resumption process for the app
  2. SDL sends values for KeyboardProperties previously set by the app within UI.SetGlobalProperties request to HMI

SetGlobalPropertiesResumptionKeyboardProperties