summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkboskin <kboskin>2021-02-17 13:28:41 +0200
committerkboskin <kboskin>2021-02-17 13:28:41 +0200
commit76101c4c6189da949e1fe578d30e7f460658465e (patch)
treefbbe87bb0519ee25aa8d87efe7b97c5bd0dbf067
parent6843d63e94aac1413aeb4d798b1d0561cf700652 (diff)
downloadsdl_android-76101c4c6189da949e1fe578d30e7f460658465e.tar.gz
[0238]
- Fix pr comments
-rw-r--r--base/src/main/java/com/smartdevicelink/managers/screen/choiceset/BaseChoiceSetManager.java101
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;
}