Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/main/java/io/appium/java_client/AppiumDriver.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
@SuppressWarnings("unchecked")
public class AppiumDriver<T extends WebElement>
extends DefaultGenericMobileDriver<T> implements ComparesImages, FindsByImage<T>, FindsByCustom<T>,
ExecutesDriverScript, LogsEvents {
ExecutesDriverScript, LogsEvents, HasSettings {

private static final ErrorHandler errorHandler = new ErrorHandler(new ErrorCodesMobile(), true);
// frequently used command parameters
Expand Down
20 changes: 10 additions & 10 deletions src/main/java/io/appium/java_client/HasSettings.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,10 @@
import static io.appium.java_client.MobileCommand.getSettingsCommand;
import static io.appium.java_client.MobileCommand.setSettingsCommand;

import com.google.common.collect.ImmutableMap;

import org.openqa.selenium.remote.Response;

import java.util.Map;


public interface HasSettings extends ExecutesMethod {

/**
Expand All @@ -34,22 +31,25 @@ public interface HasSettings extends ExecutesMethod {
* the method for the specific setting you want to change.
*
* @param setting Setting you wish to set.
* @param value value of the setting.
* @param value Value of the setting.
* @return Self instance for chaining.
*/
default void setSetting(Setting setting, Object value) {
CommandExecutionHelper.execute(this, setSettingsCommand(setting.toString(), value));
default HasSettings setSetting(Setting setting, Object value) {
return setSetting(setting.toString(), value);
}

/**
* Set a setting for this test session It's probably better to use a
* convenience function, rather than use this function directly. Try finding
* the method for the specific setting you want to change.
*
* @param setting Setting you wish to set.
* @param value value of the setting.
* @param settingName Setting name you wish to set.
* @param value Value of the setting.
* @return Self instance for chaining.
*/
default void setSetting(String setting, Object value) {
CommandExecutionHelper.execute(this, setSettingsCommand(setting, value));
default HasSettings setSetting(String settingName, Object value) {
CommandExecutionHelper.execute(this, setSettingsCommand(settingName, value));
return this;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@ interface HasAndroidSettings extends HasSettings {
* @return self instance for chaining
*/
default HasAndroidSettings ignoreUnimportantViews(Boolean compress) {
setSetting(Setting.IGNORE_UNIMPORTANT_VIEWS, compress);
return this;
return (HasAndroidSettings) setSetting(Setting.IGNORE_UNIMPORTANT_VIEWS, compress);
}

/**
Expand All @@ -45,8 +44,7 @@ default HasAndroidSettings ignoreUnimportantViews(Boolean compress) {
* @return self instance for chaining
*/
default HasAndroidSettings configuratorSetWaitForIdleTimeout(Duration timeout) {
setSetting(Setting.WAIT_FOR_IDLE_TIMEOUT, timeout.toMillis());
return this;
return (HasAndroidSettings) setSetting(Setting.WAIT_FOR_IDLE_TIMEOUT, timeout.toMillis());
}

/**
Expand All @@ -57,8 +55,7 @@ default HasAndroidSettings configuratorSetWaitForIdleTimeout(Duration timeout) {
* @return self instance for chaining
*/
default HasAndroidSettings configuratorSetWaitForSelectorTimeout(Duration timeout) {
setSetting(Setting.WAIT_FOR_SELECTOR_TIMEOUT, timeout.toMillis());
return this;
return (HasAndroidSettings) setSetting(Setting.WAIT_FOR_SELECTOR_TIMEOUT, timeout.toMillis());
}

/**
Expand All @@ -69,8 +66,7 @@ default HasAndroidSettings configuratorSetWaitForSelectorTimeout(Duration timeou
* @return self instance for chaining
*/
default HasAndroidSettings configuratorSetScrollAcknowledgmentTimeout(Duration timeout) {
setSetting(Setting.WAIT_SCROLL_ACKNOWLEDGMENT_TIMEOUT, timeout.toMillis());
return this;
return (HasAndroidSettings) setSetting(Setting.WAIT_SCROLL_ACKNOWLEDGMENT_TIMEOUT, timeout.toMillis());
}

/**
Expand All @@ -81,8 +77,7 @@ default HasAndroidSettings configuratorSetScrollAcknowledgmentTimeout(Duration t
* @return self instance for chaining
*/
default HasAndroidSettings configuratorSetKeyInjectionDelay(Duration delay) {
setSetting(Setting.KEY_INJECTION_DELAY, delay.toMillis());
return this;
return (HasAndroidSettings) setSetting(Setting.KEY_INJECTION_DELAY, delay.toMillis());
}

/**
Expand All @@ -93,8 +88,7 @@ default HasAndroidSettings configuratorSetKeyInjectionDelay(Duration delay) {
* @return self instance for chaining
*/
default HasAndroidSettings configuratorSetActionAcknowledgmentTimeout(Duration timeout) {
setSetting(Setting.WAIT_ACTION_ACKNOWLEDGMENT_TIMEOUT, timeout.toMillis());
return this;
return (HasAndroidSettings) setSetting(Setting.WAIT_ACTION_ACKNOWLEDGMENT_TIMEOUT, timeout.toMillis());
}

/**
Expand All @@ -111,8 +105,7 @@ default HasAndroidSettings configuratorSetActionAcknowledgmentTimeout(Duration t
* @return self instance for chaining
*/
default HasAndroidSettings normalizeTagNames(boolean enabled) {
setSetting(Setting.NORMALIZE_TAG_NAMES, enabled);
return this;
return (HasAndroidSettings) setSetting(Setting.NORMALIZE_TAG_NAMES, enabled);
}

/**
Expand All @@ -124,8 +117,7 @@ default HasAndroidSettings normalizeTagNames(boolean enabled) {
* @return self instance for chaining
*/
default HasAndroidSettings setShouldUseCompactResponses(boolean enabled) {
setSetting(Setting.SHOULD_USE_COMPACT_RESPONSES, enabled);
return this;
return (HasAndroidSettings) setSetting(Setting.SHOULD_USE_COMPACT_RESPONSES, enabled);
}

/**
Expand All @@ -136,8 +128,7 @@ default HasAndroidSettings setShouldUseCompactResponses(boolean enabled) {
* @return self instance for chaining
*/
default HasAndroidSettings setElementResponseAttributes(String attrNames) {
setSetting(Setting.ELEMENT_RESPONSE_ATTRIBUTES, attrNames);
return this;
return (HasAndroidSettings) setSetting(Setting.ELEMENT_RESPONSE_ATTRIBUTES, attrNames);
}

/**
Expand All @@ -148,8 +139,7 @@ default HasAndroidSettings setElementResponseAttributes(String attrNames) {
* @return self instance for chaining
*/
default HasAndroidSettings allowInvisibleElements(boolean enabled) {
setSetting(Setting.ALLOW_INVISIBLE_ELEMENTS, enabled);
return this;
return (HasAndroidSettings) setSetting(Setting.ALLOW_INVISIBLE_ELEMENTS, enabled);
}

/**
Expand All @@ -162,8 +152,7 @@ default HasAndroidSettings allowInvisibleElements(boolean enabled) {
* @return self instance for chaining
*/
default HasAndroidSettings enableNotificationListener(boolean enabled) {
setSetting(Setting.ENABLE_NOTIFICATION_LISTENER, enabled);
return this;
return (HasAndroidSettings) setSetting(Setting.ENABLE_NOTIFICATION_LISTENER, enabled);
}

/**
Expand All @@ -174,8 +163,7 @@ default HasAndroidSettings enableNotificationListener(boolean enabled) {
* @return self instance for chaining
*/
default HasAndroidSettings shutdownOnPowerDisconnect(boolean enabled) {
setSetting(Setting.SHUTDOWN_ON_POWER_DISCONNECT, enabled);
return this;
return (HasAndroidSettings) setSetting(Setting.SHUTDOWN_ON_POWER_DISCONNECT, enabled);
}

/**
Expand All @@ -188,7 +176,6 @@ default HasAndroidSettings shutdownOnPowerDisconnect(boolean enabled) {
* @return self instance for chaining
*/
default HasAndroidSettings setTrackScrollEvents(boolean enabled) {
setSetting(Setting.TRACK_SCROLL_EVENTS, enabled);
return this;
return (HasAndroidSettings) setSetting(Setting.TRACK_SCROLL_EVENTS, enabled);
}
}
27 changes: 9 additions & 18 deletions src/main/java/io/appium/java_client/ios/HasIOSSettings.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@ interface HasIOSSettings extends HasSettings {
* @return self instance for chaining
*/
default HasIOSSettings nativeWebTap(Boolean enabled) {
setSetting(Setting.NATIVE_WEB_TAP, enabled);
return this;
return (HasIOSSettings) setSetting(Setting.NATIVE_WEB_TAP, enabled);
}

/**
Expand All @@ -41,8 +40,7 @@ default HasIOSSettings nativeWebTap(Boolean enabled) {
* @return self instance for chaining
*/
default HasIOSSettings setShouldUseCompactResponses(boolean enabled) {
setSetting(Setting.SHOULD_USE_COMPACT_RESPONSES, enabled);
return this;
return (HasIOSSettings) setSetting(Setting.SHOULD_USE_COMPACT_RESPONSES, enabled);
}

/**
Expand All @@ -53,8 +51,7 @@ default HasIOSSettings setShouldUseCompactResponses(boolean enabled) {
* @return self instance for chaining
*/
default HasIOSSettings setElementResponseAttributes(String attrNames) {
setSetting(Setting.ELEMENT_RESPONSE_ATTRIBUTES, attrNames);
return this;
return (HasIOSSettings) setSetting(Setting.ELEMENT_RESPONSE_ATTRIBUTES, attrNames);
}

/**
Expand All @@ -66,8 +63,7 @@ default HasIOSSettings setElementResponseAttributes(String attrNames) {
* @return self instance for chaining
*/
default HasIOSSettings setMjpegServerScreenshotQuality(int quality) {
setSetting(Setting.MJPEG_SERVER_SCREENSHOT_QUALITY, quality);
return this;
return (HasIOSSettings) setSetting(Setting.MJPEG_SERVER_SCREENSHOT_QUALITY, quality);
}

/**
Expand All @@ -79,8 +75,7 @@ default HasIOSSettings setMjpegServerScreenshotQuality(int quality) {
* @return self instance for chaining
*/
default HasIOSSettings setMjpegServerFramerate(int framerate) {
setSetting(Setting.MJPEG_SERVER_FRAMERATE, framerate);
return this;
return (HasIOSSettings) setSetting(Setting.MJPEG_SERVER_FRAMERATE, framerate);
}

/**
Expand All @@ -92,8 +87,7 @@ default HasIOSSettings setMjpegServerFramerate(int framerate) {
* @return self instance for chaining
*/
default HasIOSSettings setScreenshotQuality(int quality) {
setSetting(Setting.SCREENSHOT_QUALITY, quality);
return this;
return (HasIOSSettings) setSetting(Setting.SCREENSHOT_QUALITY, quality);
}

/**
Expand All @@ -104,8 +98,7 @@ default HasIOSSettings setScreenshotQuality(int quality) {
* @return self instance for chaining
*/
default HasIOSSettings setMjpegScalingFactor(int scale) {
setSetting(Setting.MJPEG_SCALING_FACTOR, scale);
return this;
return (HasIOSSettings) setSetting(Setting.MJPEG_SCALING_FACTOR, scale);
}

/**
Expand All @@ -115,8 +108,7 @@ default HasIOSSettings setMjpegScalingFactor(int scale) {
* @return self instance for chaining
*/
default HasIOSSettings setKeyboardAutocorrection(boolean enabled) {
setSetting(Setting.KEYBOARD_AUTOCORRECTION, enabled);
return this;
return (HasIOSSettings) setSetting(Setting.KEYBOARD_AUTOCORRECTION, enabled);
}

/**
Expand All @@ -126,7 +118,6 @@ default HasIOSSettings setKeyboardAutocorrection(boolean enabled) {
* @return self instance for chaining
*/
default HasIOSSettings setKeyboardPrediction(boolean enabled) {
setSetting(Setting.KEYBOARD_PREDICTION, enabled);
return this;
return (HasIOSSettings) setSetting(Setting.KEYBOARD_PREDICTION, enabled);
}
}