diff --git a/src/main/java/io/appium/java_client/Setting.java b/src/main/java/io/appium/java_client/Setting.java
index 316015600..90197b4ce 100644
--- a/src/main/java/io/appium/java_client/Setting.java
+++ b/src/main/java/io/appium/java_client/Setting.java
@@ -18,7 +18,9 @@
/**
* Enums defining constants for Appium Settings which can be set and toggled during a test session.
- * https://appium.io/docs/en/advanced-concepts/settings/
+ *
+ *
+ * https://appium.io/docs/en/advanced-concepts/settings/
*/
public enum Setting {
@@ -33,12 +35,15 @@ public enum Setting {
NORMALIZE_TAG_NAMES("normalizeTagNames"),
KEY_INJECTION_DELAY("keyInjectionDelay"),
SHUTDOWN_ON_POWER_DISCONNECT("shutdownOnPowerDisconnect"),
+ TRACK_SCROLL_EVENTS("trackScrollEvents"),
// iOS
MJPEG_SERVER_SCREENSHOT_QUALITY("mjpegServerScreenshotQuality"),
MJPEG_SERVER_FRAMERATE("mjpegServerFramerate"),
SCREENSHOT_QUALITY("screenshotQuality"),
NATIVE_WEB_TAP("nativeWebTap"),
MJPEG_SCALING_FACTOR("mjpegScalingFactor"),
+ KEYBOARD_AUTOCORRECTION("keyboardAutocorrection"),
+ KEYBOARD_PREDICTION("keyboardPrediction"),
// Android and iOS
SHOULD_USE_COMPACT_RESPONSES("shouldUseCompactResponses"),
ELEMENT_RESPONSE_ATTRIBUTES("elementResponseAttributes"),
@@ -50,7 +55,8 @@ public enum Setting {
CHECK_IMAGE_ELEMENT_STALENESS("checkForImageElementStaleness"),
UPDATE_IMAGE_ELEMENT_POSITION("autoUpdateImageElementPosition"),
FIX_IMAGE_TEMPLATE_SCALE("fixImageTemplateScale"),
- DEFAULT_IMAGE_TEMPLATE_SCALE("defaultImageTemplateScale");
+ DEFAULT_IMAGE_TEMPLATE_SCALE("defaultImageTemplateScale"),
+ GET_MATCHED_IMAGE_RESULT("getMatchedImageResult");
private final String name;
diff --git a/src/main/java/io/appium/java_client/android/HasAndroidSettings.java b/src/main/java/io/appium/java_client/android/HasAndroidSettings.java
index a3584c614..977377b42 100644
--- a/src/main/java/io/appium/java_client/android/HasAndroidSettings.java
+++ b/src/main/java/io/appium/java_client/android/HasAndroidSettings.java
@@ -177,4 +177,18 @@ default HasAndroidSettings shutdownOnPowerDisconnect(boolean enabled) {
setSetting(Setting.SHUTDOWN_ON_POWER_DISCONNECT, enabled);
return this;
}
+
+ /**
+ * Turn on or off the tracking of scroll events as they happen.
+ * If {@code true}, a field {@code lastScrollData} is added to the results of
+ * {@code getSession}, which can then be used to check on scroll progress.
+ * Turning this feature off significantly increases touch action performance.
+ *
+ * @param enabled Either true or false. The default value if true.
+ * @return self instance for chaining
+ */
+ default HasAndroidSettings setTrackScrollEvents(boolean enabled) {
+ setSetting(Setting.TRACK_SCROLL_EVENTS, enabled);
+ return this;
+ }
}
diff --git a/src/main/java/io/appium/java_client/ios/HasIOSSettings.java b/src/main/java/io/appium/java_client/ios/HasIOSSettings.java
index ad8179cdb..1eda46aa4 100644
--- a/src/main/java/io/appium/java_client/ios/HasIOSSettings.java
+++ b/src/main/java/io/appium/java_client/ios/HasIOSSettings.java
@@ -107,4 +107,26 @@ default HasIOSSettings setMjpegScalingFactor(int scale) {
setSetting(Setting.MJPEG_SCALING_FACTOR, scale);
return this;
}
+
+ /**
+ * Changes the 'Auto-Correction' preference in Keyboards setting.
+ *
+ * @param enabled Either true or false. Defaults to false when WDA starts as xctest.
+ * @return self instance for chaining
+ */
+ default HasIOSSettings setKeyboardAutocorrection(boolean enabled) {
+ setSetting(Setting.KEYBOARD_AUTOCORRECTION, enabled);
+ return this;
+ }
+
+ /**
+ * Changes the 'Predictive' preference in Keyboards setting.
+ *
+ * @param enabled Either true or false. Defaults to false when WDA starts as xctest.
+ * @return self instance for chaining
+ */
+ default HasIOSSettings setKeyboardPrediction(boolean enabled) {
+ setSetting(Setting.KEYBOARD_PREDICTION, enabled);
+ return this;
+ }
}
diff --git a/src/test/java/io/appium/java_client/android/SettingTest.java b/src/test/java/io/appium/java_client/android/SettingTest.java
index ac2850595..0cd0ac6f5 100644
--- a/src/test/java/io/appium/java_client/android/SettingTest.java
+++ b/src/test/java/io/appium/java_client/android/SettingTest.java
@@ -84,6 +84,14 @@ public class SettingTest extends BaseAndroidTest {
.get(Setting.SHUTDOWN_ON_POWER_DISCONNECT.toString()));
}
+ @Test public void testSetTrackScrollEvents() {
+ assertEquals(true, driver.getSettings()
+ .get(Setting.TRACK_SCROLL_EVENTS.toString()));
+ driver.setTrackScrollEvents(false);
+ assertEquals(false, driver.getSettings()
+ .get(Setting.TRACK_SCROLL_EVENTS.toString()));
+ }
+
private void assertJSONElementContains(Setting setting, long value) {
assertEquals(driver.getSettings().get(setting.toString()), value);
}
diff --git a/src/test/java/io/appium/java_client/ios/SettingTest.java b/src/test/java/io/appium/java_client/ios/SettingTest.java
index 16fd358df..b6d576585 100644
--- a/src/test/java/io/appium/java_client/ios/SettingTest.java
+++ b/src/test/java/io/appium/java_client/ios/SettingTest.java
@@ -71,5 +71,17 @@ public class SettingTest extends AppIOSTest {
.get(Setting.MJPEG_SCALING_FACTOR.toString()));
}
+ @Test public void testSetKeyboardAutocorrection() {
+ driver.setKeyboardAutocorrection(true);
+ assertEquals(true, driver.getSettings()
+ .get(Setting.KEYBOARD_AUTOCORRECTION.toString()));
+ }
+
+ @Test public void testSetKeyboardPrediction() {
+ driver.setKeyboardPrediction(true);
+ assertEquals(true, driver.getSettings()
+ .get(Setting.KEYBOARD_PREDICTION.toString()));
+ }
+
}