diff options
author | kboskin <kboskin> | 2021-02-17 13:28:41 +0200 |
---|---|---|
committer | kboskin <kboskin> | 2021-02-17 13:28:41 +0200 |
commit | 76101c4c6189da949e1fe578d30e7f460658465e (patch) | |
tree | fbbe87bb0519ee25aa8d87efe7b97c5bd0dbf067 | |
parent | 6843d63e94aac1413aeb4d798b1d0561cf700652 (diff) | |
download | sdl_android-76101c4c6189da949e1fe578d30e7f460658465e.tar.gz |
[0238]
- Fix pr comments
-rw-r--r-- | base/src/main/java/com/smartdevicelink/managers/screen/choiceset/BaseChoiceSetManager.java | 101 |
1 files changed, 56 insertions, 45 deletions
diff --git a/base/src/main/java/com/smartdevicelink/managers/screen/choiceset/BaseChoiceSetManager.java b/base/src/main/java/com/smartdevicelink/managers/screen/choiceset/BaseChoiceSetManager.java index 3d3a8b934..8e8352956 100644 --- a/base/src/main/java/com/smartdevicelink/managers/screen/choiceset/BaseChoiceSetManager.java +++ b/base/src/main/java/com/smartdevicelink/managers/screen/choiceset/BaseChoiceSetManager.java @@ -55,7 +55,6 @@ import com.smartdevicelink.proxy.rpc.OnHMIStatus; import com.smartdevicelink.proxy.rpc.WindowCapability; import com.smartdevicelink.proxy.rpc.enums.HMILevel; import com.smartdevicelink.proxy.rpc.enums.InteractionMode; -import com.smartdevicelink.proxy.rpc.enums.KeyboardInputMask; import com.smartdevicelink.proxy.rpc.enums.KeyboardLayout; import com.smartdevicelink.proxy.rpc.enums.KeypressMode; import com.smartdevicelink.proxy.rpc.enums.Language; @@ -67,10 +66,8 @@ import com.smartdevicelink.proxy.rpc.listeners.OnRPCNotificationListener; import com.smartdevicelink.util.DebugTool; import java.lang.ref.WeakReference; -import java.util.Collections; import java.util.HashSet; import java.util.List; -import java.util.logging.Logger; /** * <strong>ChoiceSetManager</strong> <br> @@ -398,13 +395,11 @@ abstract class BaseChoiceSetManager extends BaseSubManager { DebugTool.logWarning(TAG, "There is a current or pending choice set, cancelling and continuing."); } - if (customKeyboardConfig == null) { - KeyboardProperties keyboardProperties = processKeyboardConfiguration(customKeyboardConfig); - if (keyboardProperties != null){ - customKeyboardConfig = this.keyboardConfiguration; - } else { - return null; - } + KeyboardProperties keyboardProperties = processKeyboardConfiguration(customKeyboardConfig); + if (keyboardProperties != null) { + customKeyboardConfig = this.keyboardConfiguration; + } else { + return null; } // Present a keyboard with the choice set that we used to test VR's optional state @@ -461,68 +456,62 @@ abstract class BaseChoiceSetManager extends BaseSubManager { processKeyboardConfiguration(keyboardConfiguration); } - private KeyboardProperties processKeyboardConfiguration(KeyboardProperties keyboardConfiguration) { - if (keyboardConfiguration == null || defaultMainWindowCapability.getKeyboardCapabilities() == null) { + private KeyboardProperties processKeyboardConfiguration(@Nullable KeyboardProperties keyboardConfiguration) { + if (keyboardConfiguration == null) { this.keyboardConfiguration = defaultKeyboardConfiguration(); + } else if (defaultMainWindowCapability == null || defaultMainWindowCapability.getKeyboardCapabilities() == null) { + this.keyboardConfiguration = keyboardConfiguration; + this.keyboardConfiguration.setMaskInputCharacters(null); + this.keyboardConfiguration.setCustomKeys(null); } else { KeyboardCapabilities keyboardCapabilities = defaultMainWindowCapability.getKeyboardCapabilities(); - List<String> customKeys = keyboardConfiguration.getCustomKeys(); + KeyboardProperties properties = new KeyboardProperties(); - if (customKeys == null || customKeys.isEmpty()){ - keyboardConfiguration.setCustomKeys(null); + properties.setLanguage((keyboardConfiguration.getLanguage() == null ? Language.EN_US : keyboardConfiguration.getLanguage())); + properties.setKeypressMode((keyboardConfiguration.getKeypressMode() == null ? KeypressMode.RESEND_CURRENT_ENTRY : keyboardConfiguration.getKeypressMode())); + properties.setLimitedCharacterList(keyboardConfiguration.getLimitedCharacterList()); + properties.setAutoCompleteText(keyboardConfiguration.getAutoCompleteText()); + properties.setAutoCompleteList(keyboardConfiguration.getAutoCompleteList()); + + if (keyboardConfiguration.getMaskInputCharacters() != null && keyboardCapabilities.getMaskInputCharactersSupported()) { + properties.setMaskInputCharacters(keyboardConfiguration.getMaskInputCharacters()); } + List<String> customKeys = keyboardConfiguration.getCustomKeys(); + boolean containsRightKeyboard = false; - boolean containsValidAmountOfCustomKeys = false; - for (KeyboardLayoutCapability keyboardLayoutCapability : keyboardCapabilities.getSupportedKeyboards()){ - if (keyboardLayoutCapability.getKeyboardLayout().equals(keyboardConfiguration.getKeyboardLayout())){ + + for (KeyboardLayoutCapability keyboardLayoutCapability : keyboardCapabilities.getSupportedKeyboards()) { + if (keyboardLayoutCapability.getKeyboardLayout().equals(keyboardConfiguration.getKeyboardLayout())) { containsRightKeyboard = true; - if (!keyboardCapabilities.getMaskInputCharactersSupported() && keyboardConfiguration.getMaskInputCharacters() != null){ - keyboardCapabilities.setMaskInputCharactersSupported(null); + properties.setKeyboardLayout(keyboardConfiguration.getKeyboardLayout()); + + if (!keyboardCapabilities.getMaskInputCharactersSupported() && keyboardConfiguration.getMaskInputCharacters() != null) { DebugTool.logWarning(TAG, "mask input character is not supported, property is set to null"); } - if (customKeys != null) { + if (customKeys != null && !customKeys.isEmpty()) { int customKeysSize = customKeys.size(); if (keyboardLayoutCapability.getNumConfigurableKeys() > customKeysSize) { int sizeDiff = keyboardConfiguration.getCustomKeys().size() - keyboardLayoutCapability.getNumConfigurableKeys(); - for (int i = 0; i < sizeDiff; i++){ + for (int i = 0; i < sizeDiff; i++) { customKeys.remove(customKeysSize - 1); } - keyboardConfiguration.setCustomKeys(customKeys); + properties.setCustomKeys(keyboardConfiguration.getCustomKeys()); DebugTool.logWarning(TAG, String.format("the maximum amount of custom keys supported is %d", customKeysSize)); } } + break; } } - if (!containsRightKeyboard){ - DebugTool.logError(TAG, "attempting to use unsupported keyboard layout"); - return null; - } - - if (!containsValidAmountOfCustomKeys){ + if (!containsRightKeyboard) { DebugTool.logError(TAG, "attempting to use unsupported keyboard layout"); return null; } - - - if (keyboardCapabilities.getMaskInputCharactersSupported() != null - && !keyboardCapabilities.getMaskInputCharactersSupported()) { - keyboardConfiguration.setMaskInputCharacters(KeyboardInputMask.DISABLE_INPUT_KEY_MASK); - } - KeyboardProperties properties = new KeyboardProperties(); - properties.setLanguage((keyboardConfiguration.getLanguage() == null ? Language.EN_US : keyboardConfiguration.getLanguage())); - properties.setKeyboardLayout((keyboardConfiguration.getKeyboardLayout() == null ? KeyboardLayout.QWERTZ : keyboardConfiguration.getKeyboardLayout())); - properties.setKeypressMode((keyboardConfiguration.getKeypressMode() == null ? KeypressMode.RESEND_CURRENT_ENTRY : keyboardConfiguration.getKeypressMode())); - properties.setLimitedCharacterList(keyboardConfiguration.getLimitedCharacterList()); - properties.setAutoCompleteText(keyboardConfiguration.getAutoCompleteText()); - properties.setAutoCompleteList(keyboardConfiguration.getAutoCompleteList()); - properties.setMaskInputCharacters(keyboardConfiguration.getMaskInputCharacters()); - properties.setCustomKeys(keyboardConfiguration.getCustomKeys()); this.keyboardConfiguration = properties; } return this.keyboardConfiguration; @@ -709,9 +698,31 @@ abstract class BaseChoiceSetManager extends BaseSubManager { } KeyboardProperties defaultKeyboardConfiguration() { + KeyboardLayout layout = KeyboardLayout.QWERTY; + + if (defaultMainWindowCapability != null){ + KeyboardCapabilities keyboardCapabilities = defaultMainWindowCapability.getKeyboardCapabilities(); + boolean containsDefaultKeyboard = false; + if (keyboardCapabilities != null + && keyboardCapabilities.getSupportedKeyboards() != null + && !keyboardCapabilities.getSupportedKeyboards().isEmpty() + ) { + for (KeyboardLayoutCapability capability : defaultMainWindowCapability.getKeyboardCapabilities().getSupportedKeyboards()) { + if (capability.getKeyboardLayout().equals(layout)) { + containsDefaultKeyboard = true; + break; + } + } + + if (!containsDefaultKeyboard) { + layout = defaultMainWindowCapability.getKeyboardCapabilities().getSupportedKeyboards().get(0).getKeyboardLayout(); + } + } + } + KeyboardProperties defaultProperties = new KeyboardProperties(); defaultProperties.setLanguage(Language.EN_US); - defaultProperties.setKeyboardLayout(KeyboardLayout.QWERTY); + defaultProperties.setKeyboardLayout(layout); defaultProperties.setKeypressMode(KeypressMode.RESEND_CURRENT_ENTRY); return defaultProperties; } |