diff --git a/src/main/java/io/appium/java_client/AppiumDriver.java b/src/main/java/io/appium/java_client/AppiumDriver.java index 28d0bd529..f4721dbf5 100644 --- a/src/main/java/io/appium/java_client/AppiumDriver.java +++ b/src/main/java/io/appium/java_client/AppiumDriver.java @@ -16,7 +16,6 @@ package io.appium.java_client; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.internal.CapabilityHelpers; import io.appium.java_client.internal.ReflectionHelpers; import io.appium.java_client.internal.SessionHelpers; @@ -153,7 +152,7 @@ public AppiumDriver(URL remoteSessionAddress, String platformName, String automa super(); ReflectionHelpers.setPrivateFieldValue( RemoteWebDriver.class, this, "capabilities", new ImmutableCapabilities( - ImmutableMap.of( + Map.of( PLATFORM_NAME, platformName, APPIUM_PREFIX + AUTOMATION_NAME_OPTION, automationName ) diff --git a/src/main/java/io/appium/java_client/AppiumExecutionMethod.java b/src/main/java/io/appium/java_client/AppiumExecutionMethod.java index 9b9f79cb9..34a848f79 100644 --- a/src/main/java/io/appium/java_client/AppiumExecutionMethod.java +++ b/src/main/java/io/appium/java_client/AppiumExecutionMethod.java @@ -16,7 +16,6 @@ package io.appium.java_client; -import com.google.common.collect.ImmutableMap; import org.openqa.selenium.remote.ExecuteMethod; import org.openqa.selenium.remote.Response; @@ -40,7 +39,7 @@ public Object execute(String commandName, Map parameters) { Response response; if (parameters == null || parameters.isEmpty()) { - response = driver.execute(commandName, ImmutableMap.of()); + response = driver.execute(commandName, Map.of()); } else { response = driver.execute(commandName, parameters); } diff --git a/src/main/java/io/appium/java_client/CommandExecutionHelper.java b/src/main/java/io/appium/java_client/CommandExecutionHelper.java index 692f7cf0f..7cb011677 100644 --- a/src/main/java/io/appium/java_client/CommandExecutionHelper.java +++ b/src/main/java/io/appium/java_client/CommandExecutionHelper.java @@ -16,11 +16,9 @@ package io.appium.java_client; -import com.google.common.collect.ImmutableMap; import org.openqa.selenium.remote.Response; import javax.annotation.Nullable; -import java.util.AbstractMap; import java.util.Collections; import java.util.Map; @@ -66,7 +64,7 @@ public static T executeScript(ExecutesMethod executesMethod, String scriptNa public static T executeScript( ExecutesMethod executesMethod, String scriptName, @Nullable Map args ) { - return execute(executesMethod, new AbstractMap.SimpleEntry<>(EXECUTE_SCRIPT, ImmutableMap.of( + return execute(executesMethod, Map.entry(EXECUTE_SCRIPT, Map.of( "script", scriptName, "args", (args == null || args.isEmpty()) ? Collections.emptyList() : Collections.singletonList(args) ))); diff --git a/src/main/java/io/appium/java_client/ErrorCodesMobile.java b/src/main/java/io/appium/java_client/ErrorCodesMobile.java index 473c014d9..c70514b0f 100644 --- a/src/main/java/io/appium/java_client/ErrorCodesMobile.java +++ b/src/main/java/io/appium/java_client/ErrorCodesMobile.java @@ -17,7 +17,6 @@ package io.appium.java_client; -import com.google.common.collect.ImmutableMap; import org.openqa.selenium.WebDriverException; import org.openqa.selenium.remote.ErrorCodes; @@ -32,9 +31,7 @@ public class ErrorCodesMobile extends ErrorCodes { public static final int NO_SUCH_CONTEXT = 35; - private static Map statusToState = - ImmutableMap.builder().put(NO_SUCH_CONTEXT, "No such context found") - .build(); + private static Map statusToState = Map.of(NO_SUCH_CONTEXT, "No such context found"); /** * Returns the exception type that corresponds to the given {@code statusCode}. All unrecognized diff --git a/src/main/java/io/appium/java_client/ExecuteCDPCommand.java b/src/main/java/io/appium/java_client/ExecuteCDPCommand.java index 8cf09f357..5af5e1f83 100644 --- a/src/main/java/io/appium/java_client/ExecuteCDPCommand.java +++ b/src/main/java/io/appium/java_client/ExecuteCDPCommand.java @@ -24,8 +24,8 @@ import java.util.HashMap; import java.util.Map; -import static com.google.common.base.Preconditions.checkNotNull; import static io.appium.java_client.MobileCommand.EXECUTE_GOOGLE_CDP_COMMAND; +import static java.util.Objects.requireNonNull; public interface ExecuteCDPCommand extends ExecutesMethod { @@ -40,7 +40,7 @@ public interface ExecuteCDPCommand extends ExecutesMethod { */ default Map executeCdpCommand(String command, @Nullable Map params) { Map data = new HashMap<>(); - data.put("cmd", checkNotNull(command)); + data.put("cmd", requireNonNull(command)); data.put("params", params == null ? Collections.emptyMap() : params); Response response = execute(EXECUTE_GOOGLE_CDP_COMMAND, data); //noinspection unchecked diff --git a/src/main/java/io/appium/java_client/ExecutesDriverScript.java b/src/main/java/io/appium/java_client/ExecutesDriverScript.java index 997b061a2..1ffebedb9 100644 --- a/src/main/java/io/appium/java_client/ExecutesDriverScript.java +++ b/src/main/java/io/appium/java_client/ExecutesDriverScript.java @@ -24,8 +24,8 @@ import java.util.HashMap; import java.util.Map; -import static com.google.common.base.Preconditions.checkNotNull; import static io.appium.java_client.MobileCommand.EXECUTE_DRIVER_SCRIPT; +import static java.util.Objects.requireNonNull; public interface ExecutesDriverScript extends ExecutesMethod { @@ -46,7 +46,7 @@ public interface ExecutesDriverScript extends ExecutesMethod { */ default ScriptValue executeDriverScript(String script, @Nullable ScriptOptions options) { Map data = new HashMap<>(); - data.put("script", checkNotNull(script)); + data.put("script", requireNonNull(script)); if (options != null) { data.putAll(options.build()); } diff --git a/src/main/java/io/appium/java_client/HasAppStrings.java b/src/main/java/io/appium/java_client/HasAppStrings.java index 439e08bcd..1224b26f9 100644 --- a/src/main/java/io/appium/java_client/HasAppStrings.java +++ b/src/main/java/io/appium/java_client/HasAppStrings.java @@ -16,14 +16,11 @@ package io.appium.java_client; -import com.google.common.collect.ImmutableMap; import org.openqa.selenium.UnsupportedCommandException; -import java.util.AbstractMap; import java.util.Map; import static io.appium.java_client.MobileCommand.GET_STRINGS; -import static io.appium.java_client.MobileCommand.prepareArguments; public interface HasAppStrings extends ExecutesMethod, CanRememberExtensionPresence { /** @@ -52,14 +49,14 @@ default Map getAppStringMap() { default Map getAppStringMap(String language) { final String extName = "mobile: getAppStrings"; try { - return CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + return CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "language", language )); } catch (UnsupportedCommandException e) { // TODO: Remove the fallback return CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(GET_STRINGS, prepareArguments("language", language)) + Map.entry(GET_STRINGS, Map.of("language", language)) ); } } @@ -75,18 +72,17 @@ default Map getAppStringMap(String language) { */ default Map getAppStringMap(String language, String stringFile) { final String extName = "mobile: getAppStrings"; + Map args = Map.of( + "language", language, + "stringFile", stringFile + ); try { - return CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( - "language", language, - "stringFile", stringFile - )); + return CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, args); } catch (UnsupportedCommandException e) { // TODO: Remove the fallback - String[] parameters = new String[]{"language", "stringFile"}; - Object[] values = new Object[]{language, stringFile}; return CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(GET_STRINGS, prepareArguments(parameters, values)) + Map.entry(GET_STRINGS, args) ); } } diff --git a/src/main/java/io/appium/java_client/HasBrowserCheck.java b/src/main/java/io/appium/java_client/HasBrowserCheck.java index c5cd62cdb..76094b5ca 100644 --- a/src/main/java/io/appium/java_client/HasBrowserCheck.java +++ b/src/main/java/io/appium/java_client/HasBrowserCheck.java @@ -6,8 +6,8 @@ import org.openqa.selenium.WebDriverException; import org.openqa.selenium.remote.CapabilityType; -import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Strings.isNullOrEmpty; +import static java.util.Objects.requireNonNull; public interface HasBrowserCheck extends ExecutesMethod, HasCapabilities { /** @@ -20,7 +20,7 @@ default boolean isBrowser() { CapabilityType.BROWSER_NAME, String.class); if (!isNullOrEmpty(browserName)) { try { - return checkNotNull( + return requireNonNull( CommandExecutionHelper.executeScript(this, "return !!window.navigator;") ); } catch (WebDriverException ign) { diff --git a/src/main/java/io/appium/java_client/HasDeviceTime.java b/src/main/java/io/appium/java_client/HasDeviceTime.java index f29e3f3f1..e450f28f1 100644 --- a/src/main/java/io/appium/java_client/HasDeviceTime.java +++ b/src/main/java/io/appium/java_client/HasDeviceTime.java @@ -16,7 +16,7 @@ package io.appium.java_client; -import com.google.common.collect.ImmutableMap; +import java.util.Map; public interface HasDeviceTime extends ExecutesMethod { @@ -32,7 +32,7 @@ public interface HasDeviceTime extends ExecutesMethod { */ default String getDeviceTime(String format) { return CommandExecutionHelper.executeScript( - this, "mobile: getDeviceTime", ImmutableMap.of("format", format) + this, "mobile: getDeviceTime", Map.of("format", format) ); } diff --git a/src/main/java/io/appium/java_client/HasOnScreenKeyboard.java b/src/main/java/io/appium/java_client/HasOnScreenKeyboard.java index d54c4a91f..b242d2b01 100644 --- a/src/main/java/io/appium/java_client/HasOnScreenKeyboard.java +++ b/src/main/java/io/appium/java_client/HasOnScreenKeyboard.java @@ -2,8 +2,8 @@ import org.openqa.selenium.UnsupportedCommandException; -import static com.google.common.base.Preconditions.checkNotNull; import static io.appium.java_client.MobileCommand.isKeyboardShownCommand; +import static java.util.Objects.requireNonNull; public interface HasOnScreenKeyboard extends ExecutesMethod, CanRememberExtensionPresence { @@ -16,10 +16,10 @@ public interface HasOnScreenKeyboard extends ExecutesMethod, CanRememberExtensio default boolean isKeyboardShown() { final String extName = "mobile: isKeyboardShown"; try { - return checkNotNull(CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName)); + return requireNonNull(CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName)); } catch (UnsupportedCommandException e) { // TODO: Remove the fallback - return checkNotNull( + return requireNonNull( CommandExecutionHelper.execute(markExtensionAbsence(extName), isKeyboardShownCommand()) ); } diff --git a/src/main/java/io/appium/java_client/HidesKeyboardWithKeyName.java b/src/main/java/io/appium/java_client/HidesKeyboardWithKeyName.java index 4223ab814..c2a84bb11 100644 --- a/src/main/java/io/appium/java_client/HidesKeyboardWithKeyName.java +++ b/src/main/java/io/appium/java_client/HidesKeyboardWithKeyName.java @@ -16,10 +16,11 @@ package io.appium.java_client; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import org.openqa.selenium.UnsupportedCommandException; +import java.util.List; +import java.util.Map; + import static io.appium.java_client.MobileCommand.hideKeyboardCommand; public interface HidesKeyboardWithKeyName extends HidesKeyboard { @@ -37,8 +38,8 @@ public interface HidesKeyboardWithKeyName extends HidesKeyboard { default void hideKeyboard(String keyName) { final String extName = "mobile: hideKeyboard"; try { - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( - "keys", ImmutableList.of(keyName) + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( + "keys", List.of(keyName) )); } catch (UnsupportedCommandException e) { // TODO: Remove the fallback diff --git a/src/main/java/io/appium/java_client/InteractsWithApps.java b/src/main/java/io/appium/java_client/InteractsWithApps.java index d61f85b19..e254f6aa6 100644 --- a/src/main/java/io/appium/java_client/InteractsWithApps.java +++ b/src/main/java/io/appium/java_client/InteractsWithApps.java @@ -28,12 +28,10 @@ import javax.annotation.Nullable; import java.time.Duration; -import java.util.AbstractMap; import java.util.Collections; import java.util.Map; import java.util.Optional; -import static com.google.common.base.Preconditions.checkNotNull; import static io.appium.java_client.MobileCommand.ACTIVATE_APP; import static io.appium.java_client.MobileCommand.INSTALL_APP; import static io.appium.java_client.MobileCommand.IS_APP_INSTALLED; @@ -41,6 +39,7 @@ import static io.appium.java_client.MobileCommand.REMOVE_APP; import static io.appium.java_client.MobileCommand.RUN_APP_IN_BACKGROUND; import static io.appium.java_client.MobileCommand.TERMINATE_APP; +import static java.util.Objects.requireNonNull; @SuppressWarnings({"rawtypes", "unchecked"}) public interface InteractsWithApps extends ExecutesMethod, CanRememberExtensionPresence { @@ -75,11 +74,11 @@ default void installApp(String appPath, @Nullable BaseInstallApplicationOptions Map args = ImmutableMap.builder() .put("appPath", appPath) .putAll(Optional.ofNullable(options).map( - opts -> ImmutableMap.of("options", opts.build()) - ).orElseGet(ImmutableMap::of)) + opts -> Map.of("options", opts.build()) + ).orElseGet(Map::of)) .build(); CommandExecutionHelper.execute( - markExtensionAbsence(extName), new AbstractMap.SimpleEntry<>(INSTALL_APP, args) + markExtensionAbsence(extName), Map.entry(INSTALL_APP, args) ); } } @@ -93,18 +92,18 @@ default void installApp(String appPath, @Nullable BaseInstallApplicationOptions default boolean isAppInstalled(String bundleId) { final String extName = "mobile: isAppInstalled"; try { - return checkNotNull( - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + return requireNonNull( + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "bundleId", bundleId, "appId", bundleId )) ); } catch (UnsupportedCommandException | InvalidArgumentException e) { // TODO: Remove the fallback - return checkNotNull( + return requireNonNull( CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(IS_APP_INSTALLED, ImmutableMap.of("bundleId", bundleId)) + Map.entry(IS_APP_INSTALLED, Map.of("bundleId", bundleId)) ) ); } @@ -121,16 +120,14 @@ default boolean isAppInstalled(String bundleId) { default void runAppInBackground(Duration duration) { final String extName = "mobile: backgroundApp"; try { - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "seconds", duration.toMillis() / 1000.0 )); } catch (UnsupportedCommandException e) { // TODO: Remove the fallback CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(RUN_APP_IN_BACKGROUND, ImmutableMap.of( - "seconds", duration.toMillis() / 1000.0) - ) + Map.entry(RUN_APP_IN_BACKGROUND, Map.of("seconds", duration.toMillis() / 1000.0)) ); } } @@ -161,7 +158,7 @@ default boolean removeApp(String bundleId, @Nullable BaseRemoveApplicationOption .put("appId", bundleId) .putAll(Optional.ofNullable(options).map(BaseOptions::build).orElseGet(Collections::emptyMap)) .build(); - return checkNotNull( + return requireNonNull( CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, args) ); } catch (UnsupportedCommandException | InvalidArgumentException e) { @@ -169,14 +166,14 @@ default boolean removeApp(String bundleId, @Nullable BaseRemoveApplicationOption Map args = ImmutableMap.builder() .put("bundleId", bundleId) .putAll(Optional.ofNullable(options).map( - opts -> ImmutableMap.of("options", opts.build()) - ).orElseGet(ImmutableMap::of)) + opts -> Map.of("options", opts.build()) + ).orElseGet(Map::of)) .build(); //noinspection RedundantCast - return checkNotNull( + return requireNonNull( (Boolean) CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(REMOVE_APP, args) + Map.entry(REMOVE_APP, args) ) ); } @@ -214,11 +211,11 @@ default void activateApp(String bundleId, @Nullable BaseActivateApplicationOptio Map args = ImmutableMap.builder() .put("bundleId", bundleId) .putAll(Optional.ofNullable(options).map( - opts -> ImmutableMap.of("options", opts.build()) - ).orElseGet(ImmutableMap::of)) + opts -> Map.of("options", opts.build()) + ).orElseGet(Map::of)) .build(); CommandExecutionHelper.execute( - markExtensionAbsence(extName), new AbstractMap.SimpleEntry<>(ACTIVATE_APP, args) + markExtensionAbsence(extName), Map.entry(ACTIVATE_APP, args) ); } } @@ -233,10 +230,10 @@ default ApplicationState queryAppState(String bundleId) { final String extName = "mobile: queryAppState"; try { return ApplicationState.ofCode( - checkNotNull( + requireNonNull( CommandExecutionHelper.executeScript( assertExtensionExists(extName), - extName, ImmutableMap.of( + extName, Map.of( "bundleId", bundleId, "appId", bundleId ) @@ -246,10 +243,10 @@ default ApplicationState queryAppState(String bundleId) { } catch (UnsupportedCommandException | InvalidArgumentException e) { // TODO: Remove the fallback return ApplicationState.ofCode( - checkNotNull( + requireNonNull( CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(QUERY_APP_STATE, ImmutableMap.of("bundleId", bundleId)) + Map.entry(QUERY_APP_STATE, Map.of("bundleId", bundleId)) ) ) ); @@ -282,7 +279,7 @@ default boolean terminateApp(String bundleId, @Nullable BaseTerminateApplication .put("appId", bundleId) .putAll(Optional.ofNullable(options).map(BaseOptions::build).orElseGet(Collections::emptyMap)) .build(); - return checkNotNull( + return requireNonNull( CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, args) ); } catch (UnsupportedCommandException | InvalidArgumentException e) { @@ -290,13 +287,13 @@ default boolean terminateApp(String bundleId, @Nullable BaseTerminateApplication Map args = ImmutableMap.builder() .put("bundleId", bundleId) .putAll(Optional.ofNullable(options).map( - opts -> ImmutableMap.of("options", opts.build()) - ).orElseGet(ImmutableMap::of)) + opts -> Map.of("options", opts.build()) + ).orElseGet(Map::of)) .build(); //noinspection RedundantCast - return checkNotNull( + return requireNonNull( (Boolean) CommandExecutionHelper.execute( - markExtensionAbsence(extName), new AbstractMap.SimpleEntry<>(TERMINATE_APP, args) + markExtensionAbsence(extName), Map.entry(TERMINATE_APP, args) ) ); } diff --git a/src/main/java/io/appium/java_client/LocksDevice.java b/src/main/java/io/appium/java_client/LocksDevice.java index 60ba88ffc..bd818b21b 100644 --- a/src/main/java/io/appium/java_client/LocksDevice.java +++ b/src/main/java/io/appium/java_client/LocksDevice.java @@ -16,15 +16,15 @@ package io.appium.java_client; -import com.google.common.collect.ImmutableMap; import org.openqa.selenium.UnsupportedCommandException; import java.time.Duration; +import java.util.Map; -import static com.google.common.base.Preconditions.checkNotNull; import static io.appium.java_client.MobileCommand.getIsDeviceLockedCommand; import static io.appium.java_client.MobileCommand.lockDeviceCommand; import static io.appium.java_client.MobileCommand.unlockDeviceCommand; +import static java.util.Objects.requireNonNull; public interface LocksDevice extends ExecutesMethod, CanRememberExtensionPresence { @@ -47,7 +47,7 @@ default void lockDevice() { default void lockDevice(Duration duration) { final String extName = "mobile: lock"; try { - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "seconds", duration.getSeconds() )); } catch (UnsupportedCommandException e) { @@ -82,12 +82,12 @@ default void unlockDevice() { default boolean isDeviceLocked() { final String extName = "mobile: isLocked"; try { - return checkNotNull( + return requireNonNull( CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName) ); } catch (UnsupportedCommandException e) { // TODO: Remove the fallback - return checkNotNull( + return requireNonNull( CommandExecutionHelper.execute(markExtensionAbsence(extName), getIsDeviceLockedCommand()) ); } diff --git a/src/main/java/io/appium/java_client/LogsEvents.java b/src/main/java/io/appium/java_client/LogsEvents.java index 33f50d2db..6ae80bc0c 100644 --- a/src/main/java/io/appium/java_client/LogsEvents.java +++ b/src/main/java/io/appium/java_client/LogsEvents.java @@ -16,7 +16,6 @@ package io.appium.java_client; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.serverevents.CommandEvent; import io.appium.java_client.serverevents.CustomEvent; import io.appium.java_client.serverevents.ServerEvents; @@ -41,7 +40,7 @@ public interface LogsEvents extends ExecutesMethod { * @throws org.openqa.selenium.WebDriverException if there was a failure while executing the script */ default void logEvent(CustomEvent event) { - execute(LOG_EVENT, ImmutableMap.of("vendor", event.getVendor(), "event", event.getEventName())); + execute(LOG_EVENT, Map.of("vendor", event.getVendor(), "event", event.getEventName())); } /** diff --git a/src/main/java/io/appium/java_client/MobileCommand.java b/src/main/java/io/appium/java_client/MobileCommand.java index 878c13c4d..ee08c289a 100644 --- a/src/main/java/io/appium/java_client/MobileCommand.java +++ b/src/main/java/io/appium/java_client/MobileCommand.java @@ -27,9 +27,9 @@ import javax.annotation.Nullable; import java.nio.charset.StandardCharsets; import java.time.Duration; -import java.util.AbstractMap; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import static com.google.common.base.Strings.isNullOrEmpty; @@ -389,8 +389,7 @@ public static AppiumCommandInfo deleteC(String url) { */ @Deprecated public static Map.Entry> hideKeyboardCommand(String keyName) { - return new AbstractMap.SimpleEntry<>( - HIDE_KEYBOARD, prepareArguments("keyName", keyName)); + return Map.entry(HIDE_KEYBOARD, Map.of("keyName", keyName)); } /** @@ -405,10 +404,10 @@ public static AppiumCommandInfo deleteC(String url) { @Deprecated public static Map.Entry> hideKeyboardCommand(String strategy, String keyName) { - String[] parameters = new String[]{"strategy", "key"}; - Object[] values = new Object[]{strategy, keyName}; - return new AbstractMap.SimpleEntry<>( - HIDE_KEYBOARD, prepareArguments(parameters, values)); + return Map.entry(HIDE_KEYBOARD, Map.of( + "strategy", strategy, + "key", keyName + )); } /** @@ -417,7 +416,9 @@ public static AppiumCommandInfo deleteC(String url) { * @param param is a parameter name. * @param value is the parameter value. * @return built {@link ImmutableMap}. + * @deprecated Use {@link Map#of(Object, Object)} */ + @Deprecated public static ImmutableMap prepareArguments(String param, Object value) { ImmutableMap.Builder builder = ImmutableMap.builder(); @@ -431,7 +432,9 @@ public static ImmutableMap prepareArguments(String param, * @param params is the array with parameter names. * @param values is the array with parameter values. * @return built {@link ImmutableMap}. + * @deprecated Use {@link Map#of(Object, Object, Object, Object)} */ + @Deprecated public static ImmutableMap prepareArguments(String[] params, Object[] values) { ImmutableMap.Builder builder = ImmutableMap.builder(); @@ -452,8 +455,7 @@ public static ImmutableMap prepareArguments(String[] params, */ @Deprecated public static Map.Entry> pressKeyCodeCommand(int key) { - return new AbstractMap.SimpleEntry<>( - PRESS_KEY_CODE, prepareArguments("keycode", key)); + return Map.entry(PRESS_KEY_CODE, Map.of("keycode", key)); } /** @@ -467,10 +469,10 @@ public static ImmutableMap prepareArguments(String[] params, @Deprecated public static Map.Entry> pressKeyCodeCommand(int key, Integer metastate) { - String[] parameters = new String[]{"keycode", "metastate"}; - Object[] values = new Object[]{key, metastate}; - return new AbstractMap.SimpleEntry<>( - PRESS_KEY_CODE, prepareArguments(parameters, values)); + return Map.entry(PRESS_KEY_CODE, Map.of( + "keycode", key, + "metastate", metastate + )); } /** @@ -482,8 +484,7 @@ public static ImmutableMap prepareArguments(String[] params, */ @Deprecated public static Map.Entry> longPressKeyCodeCommand(int key) { - return new AbstractMap.SimpleEntry<>( - LONG_PRESS_KEY_CODE, prepareArguments("keycode", key)); + return Map.entry(LONG_PRESS_KEY_CODE, Map.of("keycode", key)); } /** @@ -497,10 +498,10 @@ public static ImmutableMap prepareArguments(String[] params, @Deprecated public static Map.Entry> longPressKeyCodeCommand(int key, Integer metastate) { - String[] parameters = new String[]{"keycode", "metastate"}; - Object[] values = new Object[]{key, metastate}; - return new AbstractMap.SimpleEntry<>( - LONG_PRESS_KEY_CODE, prepareArguments(parameters, values)); + return Map.entry(LONG_PRESS_KEY_CODE, Map.of( + "keycode", key, + "metastate", metastate + )); } /** @@ -512,8 +513,7 @@ public static ImmutableMap prepareArguments(String[] params, */ @Deprecated public static Map.Entry> lockDeviceCommand(Duration duration) { - return new AbstractMap.SimpleEntry<>( - LOCK, prepareArguments("seconds", duration.getSeconds())); + return Map.entry(LOCK, Map.of("seconds", duration.getSeconds())); } /** @@ -524,7 +524,7 @@ public static ImmutableMap prepareArguments(String[] params, */ @Deprecated public static Map.Entry> unlockDeviceCommand() { - return new AbstractMap.SimpleEntry<>(UNLOCK, ImmutableMap.of()); + return Map.entry(UNLOCK, Map.of()); } /** @@ -535,19 +535,19 @@ public static ImmutableMap prepareArguments(String[] params, */ @Deprecated public static Map.Entry> getIsDeviceLockedCommand() { - return new AbstractMap.SimpleEntry<>(IS_LOCKED, ImmutableMap.of()); + return Map.entry(IS_LOCKED, Map.of()); } public static Map.Entry> getSettingsCommand() { - return new AbstractMap.SimpleEntry<>(GET_SETTINGS, ImmutableMap.of()); + return Map.entry(GET_SETTINGS, Map.of()); } public static Map.Entry> setSettingsCommand(String setting, Object value) { - return setSettingsCommand(prepareArguments(setting, value)); + return setSettingsCommand(Map.of(setting, value)); } public static Map.Entry> setSettingsCommand(Map settings) { - return new AbstractMap.SimpleEntry<>(SET_SETTINGS, prepareArguments("settings", settings)); + return Map.entry(SET_SETTINGS, Map.of("settings", settings)); } /** @@ -560,19 +560,18 @@ public static ImmutableMap prepareArguments(String[] params, */ @Deprecated public static Map.Entry> pushFileCommand(String remotePath, byte[] base64Data) { - String[] parameters = new String[]{"path", "data"}; - Object[] values = new Object[]{remotePath, new String(base64Data, StandardCharsets.UTF_8)}; - return new AbstractMap.SimpleEntry<>(PUSH_FILE, prepareArguments(parameters, values)); + return Map.entry(PUSH_FILE, Map.of( + "path", remotePath, + "data", new String(base64Data, StandardCharsets.UTF_8) + )); } public static Map.Entry> startRecordingScreenCommand(BaseStartScreenRecordingOptions opts) { - return new AbstractMap.SimpleEntry<>(START_RECORDING_SCREEN, - prepareArguments("options", opts.build())); + return Map.entry(START_RECORDING_SCREEN, Map.of("options", opts.build())); } public static Map.Entry> stopRecordingScreenCommand(BaseStopScreenRecordingOptions opts) { - return new AbstractMap.SimpleEntry<>(STOP_RECORDING_SCREEN, - prepareArguments("options", opts.build())); + return Map.entry(STOP_RECORDING_SCREEN, Map.of("options", opts.build())); } /** @@ -587,15 +586,12 @@ public static ImmutableMap prepareArguments(String[] params, public static Map.Entry> compareImagesCommand(ComparisonMode mode, byte[] img1Data, byte[] img2Data, @Nullable BaseComparisonOptions options) { - String[] parameters = options == null - ? new String[]{"mode", "firstImage", "secondImage"} - : new String[]{"mode", "firstImage", "secondImage", "options"}; - Object[] values = options == null - ? new Object[]{mode.toString(), new String(img1Data, StandardCharsets.UTF_8), - new String(img2Data, StandardCharsets.UTF_8)} - : new Object[]{mode.toString(), new String(img1Data, StandardCharsets.UTF_8), - new String(img2Data, StandardCharsets.UTF_8), options.build()}; - return new AbstractMap.SimpleEntry<>(COMPARE_IMAGES, prepareArguments(parameters, values)); + ImmutableMap.Builder argsBuilder = ImmutableMap.builder() + .put("mode", mode.toString()) + .put("firstImage", new String(img1Data, StandardCharsets.UTF_8)) + .put("secondImage", new String(img2Data, StandardCharsets.UTF_8)); + Optional.ofNullable(options).ifPresent(opts -> argsBuilder.put("options", options.build())); + return Map.entry(COMPARE_IMAGES, argsBuilder.build()); } /** @@ -606,6 +602,6 @@ public static ImmutableMap prepareArguments(String[] params, */ @Deprecated public static Map.Entry> isKeyboardShownCommand() { - return new AbstractMap.SimpleEntry<>(IS_KEYBOARD_SHOWN, ImmutableMap.of()); + return Map.entry(IS_KEYBOARD_SHOWN, Map.of()); } } diff --git a/src/main/java/io/appium/java_client/MultiTouchAction.java b/src/main/java/io/appium/java_client/MultiTouchAction.java index 1549fbdf5..0a133756e 100644 --- a/src/main/java/io/appium/java_client/MultiTouchAction.java +++ b/src/main/java/io/appium/java_client/MultiTouchAction.java @@ -17,7 +17,6 @@ package io.appium.java_client; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import java.util.List; import java.util.Map; @@ -89,10 +88,10 @@ public MultiTouchAction perform() { } protected Map> getParameters() { - ImmutableList touchActions = actions.build(); - return ImmutableMap.of("actions", - touchActions.stream().map(touchAction -> - touchAction.getParameters().get("actions")).collect(toList())); + return Map.of("actions", + actions.build().stream().map(touchAction -> + touchAction.getParameters().get("actions")).collect(toList()) + ); } /** diff --git a/src/main/java/io/appium/java_client/PullsFiles.java b/src/main/java/io/appium/java_client/PullsFiles.java index c6d4e0898..3c1e7ccff 100644 --- a/src/main/java/io/appium/java_client/PullsFiles.java +++ b/src/main/java/io/appium/java_client/PullsFiles.java @@ -16,16 +16,15 @@ package io.appium.java_client; -import com.google.common.collect.ImmutableMap; import org.openqa.selenium.UnsupportedCommandException; import java.nio.charset.StandardCharsets; -import java.util.AbstractMap; import java.util.Base64; +import java.util.Map; -import static com.google.common.base.Preconditions.checkNotNull; import static io.appium.java_client.MobileCommand.PULL_FILE; import static io.appium.java_client.MobileCommand.PULL_FOLDER; +import static java.util.Objects.requireNonNull; public interface PullsFiles extends ExecutesMethod, CanRememberExtensionPresence { @@ -45,16 +44,16 @@ default byte[] pullFile(String remotePath) { final String extName = "mobile: pullFile"; String base64String; try { - base64String = checkNotNull( + base64String = requireNonNull( CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, - ImmutableMap.of("remotePath", remotePath) + Map.of("remotePath", remotePath) ) ); } catch (UnsupportedCommandException e) { // TODO: Remove the fallback - base64String = checkNotNull( + base64String = requireNonNull( CommandExecutionHelper.execute(markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(PULL_FILE, ImmutableMap.of("path", remotePath)) + Map.entry(PULL_FILE, Map.of("path", remotePath)) ) ); } @@ -77,16 +76,16 @@ default byte[] pullFolder(String remotePath) { final String extName = "mobile: pullFolder"; String base64String; try { - base64String = checkNotNull( + base64String = requireNonNull( CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, - ImmutableMap.of("remotePath", remotePath) + Map.of("remotePath", remotePath) ) ); } catch (UnsupportedCommandException e) { // TODO: Remove the fallback - base64String = checkNotNull( + base64String = requireNonNull( CommandExecutionHelper.execute(markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(PULL_FOLDER, ImmutableMap.of("path", remotePath)) + Map.entry(PULL_FOLDER, Map.of("path", remotePath)) ) ); } diff --git a/src/main/java/io/appium/java_client/PushesFiles.java b/src/main/java/io/appium/java_client/PushesFiles.java index b91aada90..a30bf0d3b 100644 --- a/src/main/java/io/appium/java_client/PushesFiles.java +++ b/src/main/java/io/appium/java_client/PushesFiles.java @@ -16,7 +16,6 @@ package io.appium.java_client; -import com.google.common.collect.ImmutableMap; import org.openqa.selenium.UnsupportedCommandException; import java.io.File; @@ -24,6 +23,7 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.util.Base64; +import java.util.Map; import static io.appium.java_client.MobileCommand.pushFileCommand; @@ -41,7 +41,7 @@ public interface PushesFiles extends ExecutesMethod, CanRememberExtensionPresenc default void pushFile(String remotePath, byte[] base64Data) { final String extName = "mobile: pushFile"; try { - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "remotePath", remotePath, "payload", new String(base64Data, StandardCharsets.UTF_8) )); diff --git a/src/main/java/io/appium/java_client/ScreenshotState.java b/src/main/java/io/appium/java_client/ScreenshotState.java index 1747a1e41..f51add334 100644 --- a/src/main/java/io/appium/java_client/ScreenshotState.java +++ b/src/main/java/io/appium/java_client/ScreenshotState.java @@ -31,7 +31,7 @@ import java.util.function.Function; import java.util.function.Supplier; -import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.Objects.requireNonNull; import static java.util.Optional.ofNullable; @Accessors(chain = true) @@ -81,7 +81,7 @@ public class ScreenshotState { * @param stateProvider lambda function, which returns a screenshot for further comparison */ public ScreenshotState(ComparesImages comparator, Supplier stateProvider) { - this.comparator = checkNotNull(comparator); + this.comparator = requireNonNull(comparator); this.stateProvider = stateProvider; } @@ -110,7 +110,7 @@ public ScreenshotState remember() { * @return self instance for chaining */ public ScreenshotState remember(BufferedImage customInitialState) { - this.previousScreenshot = checkNotNull(customInitialState); + this.previousScreenshot = requireNonNull(customInitialState); return this; } diff --git a/src/main/java/io/appium/java_client/TouchAction.java b/src/main/java/io/appium/java_client/TouchAction.java index 98abeaafb..be76d1610 100644 --- a/src/main/java/io/appium/java_client/TouchAction.java +++ b/src/main/java/io/appium/java_client/TouchAction.java @@ -28,8 +28,8 @@ import java.util.List; import java.util.Map; -import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.collect.ImmutableList.builder; +import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.toList; /** @@ -58,7 +58,7 @@ public class TouchAction> implements PerformsActions private PerformsTouchActions performsTouchActions; public TouchAction(PerformsTouchActions performsTouchActions) { - this.performsTouchActions = checkNotNull(performsTouchActions); + this.performsTouchActions = requireNonNull(performsTouchActions); parameterBuilder = builder(); } @@ -204,9 +204,9 @@ public T perform() { * @return A map of parameters for this touch action to pass as part of mjsonwp. */ protected Map> getParameters() { - List actionList = parameterBuilder.build(); - return ImmutableMap.of("actions", actionList.stream() - .map(ActionParameter::getParameterMap).collect(toList())); + return Map.of("actions", + parameterBuilder.build().stream().map(ActionParameter::getParameterMap).collect(toList()) + ); } /** @@ -233,17 +233,18 @@ public ActionParameter(String actionName) { } public ActionParameter(String actionName, ActionOptions opts) { - checkNotNull(opts); + requireNonNull(opts); this.actionName = actionName; optionsBuilder = ImmutableMap.builder(); //noinspection unchecked optionsBuilder.putAll(opts.build()); } - public ImmutableMap getParameterMap() { - ImmutableMap.Builder builder = ImmutableMap.builder(); - builder.put("action", actionName).put("options", optionsBuilder.build()); - return builder.build(); + public Map getParameterMap() { + return Map.of( + "action", actionName, + "options", optionsBuilder.build() + ); } } } diff --git a/src/main/java/io/appium/java_client/android/AndroidMobileCommandHelper.java b/src/main/java/io/appium/java_client/android/AndroidMobileCommandHelper.java index a3b31f716..50a7256a5 100644 --- a/src/main/java/io/appium/java_client/android/AndroidMobileCommandHelper.java +++ b/src/main/java/io/appium/java_client/android/AndroidMobileCommandHelper.java @@ -16,11 +16,9 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.MobileCommand; import org.openqa.selenium.remote.RemoteWebElement; -import java.util.AbstractMap; import java.util.Map; /** @@ -36,7 +34,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> currentActivityCommand() { - return new AbstractMap.SimpleEntry<>(CURRENT_ACTIVITY, ImmutableMap.of()); + return Map.entry(CURRENT_ACTIVITY, Map.of()); } /** @@ -46,7 +44,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> currentPackageCommand() { - return new AbstractMap.SimpleEntry<>(GET_CURRENT_PACKAGE, ImmutableMap.of()); + return Map.entry(GET_CURRENT_PACKAGE, Map.of()); } /** @@ -57,7 +55,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { * */ public static Map.Entry> getSupportedPerformanceDataTypesCommand() { - return new AbstractMap.SimpleEntry<>(GET_SUPPORTED_PERFORMANCE_DATA_TYPES, ImmutableMap.of()); + return Map.entry(GET_SUPPORTED_PERFORMANCE_DATA_TYPES, Map.of()); } /** @@ -90,10 +88,11 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ public static Map.Entry> getPerformanceDataCommand( String packageName, String dataType, int dataReadTimeout) { - String[] parameters = new String[] {"packageName", "dataType", "dataReadTimeout"}; - Object[] values = new Object[] {packageName, dataType, dataReadTimeout}; - return new AbstractMap.SimpleEntry<>( - GET_PERFORMANCE_DATA, prepareArguments(parameters, values)); + return Map.entry(GET_PERFORMANCE_DATA, Map.of( + "packageName", packageName, + "dataType", dataType, + "dataReadTimeout", dataReadTimeout + )); } /** @@ -103,7 +102,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> getDisplayDensityCommand() { - return new AbstractMap.SimpleEntry<>(GET_DISPLAY_DENSITY, ImmutableMap.of()); + return Map.entry(GET_DISPLAY_DENSITY, Map.of()); } /** @@ -113,7 +112,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> getNetworkConnectionCommand() { - return new AbstractMap.SimpleEntry<>(GET_NETWORK_CONNECTION, ImmutableMap.of()); + return Map.entry(GET_NETWORK_CONNECTION, Map.of()); } /** @@ -124,7 +123,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> getSystemBarsCommand() { - return new AbstractMap.SimpleEntry<>(GET_SYSTEM_BARS, ImmutableMap.of()); + return Map.entry(GET_SYSTEM_BARS, Map.of()); } /** @@ -134,7 +133,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> isLockedCommand() { - return new AbstractMap.SimpleEntry<>(IS_LOCKED, ImmutableMap.of()); + return Map.entry(IS_LOCKED, Map.of()); } /** @@ -145,8 +144,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> fingerPrintCommand(int fingerPrintId) { - return new AbstractMap.SimpleEntry<>(FINGER_PRINT, - prepareArguments("fingerprintId", fingerPrintId)); + return Map.entry(FINGER_PRINT, Map.of("fingerprintId", fingerPrintId)); } /** @@ -156,7 +154,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> openNotificationsCommand() { - return new AbstractMap.SimpleEntry<>(OPEN_NOTIFICATIONS, ImmutableMap.of()); + return Map.entry(OPEN_NOTIFICATIONS, Map.of()); } /** @@ -167,10 +165,10 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> setConnectionCommand(long bitMask) { - String[] parameters = new String[] {"name", "parameters"}; - Object[] values = new Object[] {"network_connection", ImmutableMap.of("type", bitMask)}; - return new AbstractMap.SimpleEntry<>( - SET_NETWORK_CONNECTION, prepareArguments(parameters, values)); + return Map.entry(SET_NETWORK_CONNECTION, Map.of( + "name", "network_connection", + "parameters", Map.of("type", bitMask) + )); } /** @@ -180,7 +178,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> toggleLocationServicesCommand() { - return new AbstractMap.SimpleEntry<>(TOGGLE_LOCATION_SERVICES, ImmutableMap.of()); + return Map.entry(TOGGLE_LOCATION_SERVICES, Map.of()); } /** @@ -190,7 +188,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> unlockCommand() { - return new AbstractMap.SimpleEntry<>(UNLOCK, ImmutableMap.of()); + return Map.entry(UNLOCK, Map.of()); } @@ -205,12 +203,10 @@ public class AndroidMobileCommandHelper extends MobileCommand { @Deprecated public static Map.Entry> replaceElementValueCommand( RemoteWebElement remoteWebElement, String value) { - String[] parameters = new String[] {"id", "value"}; - Object[] values = - new Object[] {remoteWebElement.getId(), value}; - - return new AbstractMap.SimpleEntry<>( - REPLACE_VALUE, prepareArguments(parameters, values)); + return Map.entry(REPLACE_VALUE, Map.of( + "id", remoteWebElement.getId(), + "value", value + )); } /** @@ -225,12 +221,10 @@ public class AndroidMobileCommandHelper extends MobileCommand { @Deprecated public static Map.Entry> sendSMSCommand( String phoneNumber, String message) { - ImmutableMap parameters = ImmutableMap - .builder().put("phoneNumber", phoneNumber) - .put("message", message) - .build(); - - return new AbstractMap.SimpleEntry<>(SEND_SMS, parameters); + return Map.entry(SEND_SMS, Map.of( + "phoneNumber", phoneNumber, + "message", message + )); } /** @@ -245,9 +239,10 @@ public class AndroidMobileCommandHelper extends MobileCommand { @Deprecated public static Map.Entry> gsmCallCommand( String phoneNumber, GsmCallActions gsmCallActions) { - String[] parameters = new String[] {"phoneNumber", "action"}; - Object[] values = new Object[]{phoneNumber, gsmCallActions.name().toLowerCase()}; - return new AbstractMap.SimpleEntry<>(GSM_CALL, prepareArguments(parameters, values)); + return Map.entry(GSM_CALL, Map.of( + "phoneNumber", phoneNumber, + "action", gsmCallActions.name().toLowerCase() + )); } /** @@ -261,11 +256,11 @@ public class AndroidMobileCommandHelper extends MobileCommand { @Deprecated public static Map.Entry> gsmSignalStrengthCommand( GsmSignalStrength gsmSignalStrength) { - return new AbstractMap.SimpleEntry<>(GSM_SIGNAL, - prepareArguments( + return Map.entry(GSM_SIGNAL, + Map.of( // https://github.com/appium/appium/issues/12234 - new String[] {"signalStrengh", "signalStrength" }, - new Object[] {gsmSignalStrength.ordinal(), gsmSignalStrength.ordinal()} + "signalStrengh", gsmSignalStrength.ordinal(), + "signalStrength", gsmSignalStrength.ordinal() )); } @@ -280,8 +275,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { @Deprecated public static Map.Entry> gsmVoiceCommand( GsmVoiceState gsmVoiceState) { - return new AbstractMap.SimpleEntry<>(GSM_VOICE, - prepareArguments("state", gsmVoiceState.name().toLowerCase())); + return Map.entry(GSM_VOICE, Map.of("state", gsmVoiceState.name().toLowerCase())); } /** @@ -295,8 +289,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { @Deprecated public static Map.Entry> networkSpeedCommand( NetworkSpeed networkSpeed) { - return new AbstractMap.SimpleEntry<>(NETWORK_SPEED, - prepareArguments("netspeed", networkSpeed.name().toLowerCase())); + return Map.entry(NETWORK_SPEED, Map.of("netspeed", networkSpeed.name().toLowerCase())); } /** @@ -310,8 +303,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { @Deprecated public static Map.Entry> powerCapacityCommand( int percent) { - return new AbstractMap.SimpleEntry<>(POWER_CAPACITY, - prepareArguments("percent", percent)); + return Map.entry(POWER_CAPACITY, Map.of("percent", percent)); } /** @@ -325,8 +317,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { @Deprecated public static Map.Entry> powerACCommand( PowerACState powerACState) { - return new AbstractMap.SimpleEntry<>(POWER_AC_STATE, - prepareArguments("state", powerACState.name().toLowerCase())); + return Map.entry(POWER_AC_STATE, Map.of("state", powerACState.name().toLowerCase())); } /** @@ -336,7 +327,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> toggleWifiCommand() { - return new AbstractMap.SimpleEntry<>(TOGGLE_WIFI, ImmutableMap.of()); + return Map.entry(TOGGLE_WIFI, Map.of()); } /** @@ -346,7 +337,7 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> toggleAirplaneCommand() { - return new AbstractMap.SimpleEntry<>(TOGGLE_AIRPLANE_MODE, ImmutableMap.of()); + return Map.entry(TOGGLE_AIRPLANE_MODE, Map.of()); } /** @@ -356,6 +347,6 @@ public class AndroidMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> toggleDataCommand() { - return new AbstractMap.SimpleEntry<>(TOGGLE_DATA, ImmutableMap.of()); + return Map.entry(TOGGLE_DATA, Map.of()); } } diff --git a/src/main/java/io/appium/java_client/android/AndroidStartScreenRecordingOptions.java b/src/main/java/io/appium/java_client/android/AndroidStartScreenRecordingOptions.java index 2ef6cdc29..14c575208 100644 --- a/src/main/java/io/appium/java_client/android/AndroidStartScreenRecordingOptions.java +++ b/src/main/java/io/appium/java_client/android/AndroidStartScreenRecordingOptions.java @@ -107,9 +107,9 @@ public AndroidStartScreenRecordingOptions withTimeLimit(Duration timeLimit) { public Map build() { final ImmutableMap.Builder builder = ImmutableMap.builder(); builder.putAll(super.build()); - ofNullable(bitRate).map(x -> builder.put("bitRate", x)); - ofNullable(videoSize).map(x -> builder.put("videoSize", x)); - ofNullable(isBugReportEnabled).map(x -> builder.put("bugReport", x)); + ofNullable(bitRate).ifPresent(x -> builder.put("bitRate", x)); + ofNullable(videoSize).ifPresent(x -> builder.put("videoSize", x)); + ofNullable(isBugReportEnabled).ifPresent(x -> builder.put("bugReport", x)); return builder.build(); } } diff --git a/src/main/java/io/appium/java_client/android/AuthenticatesByFinger.java b/src/main/java/io/appium/java_client/android/AuthenticatesByFinger.java index 178ec4206..611fb30ed 100644 --- a/src/main/java/io/appium/java_client/android/AuthenticatesByFinger.java +++ b/src/main/java/io/appium/java_client/android/AuthenticatesByFinger.java @@ -1,11 +1,12 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.CanRememberExtensionPresence; import io.appium.java_client.CommandExecutionHelper; import io.appium.java_client.ExecutesMethod; import org.openqa.selenium.UnsupportedCommandException; +import java.util.Map; + import static io.appium.java_client.android.AndroidMobileCommandHelper.fingerPrintCommand; public interface AuthenticatesByFinger extends ExecutesMethod, CanRememberExtensionPresence { @@ -18,7 +19,7 @@ public interface AuthenticatesByFinger extends ExecutesMethod, CanRememberExtens default void fingerPrint(int fingerPrintId) { final String extName = "mobile: fingerprint"; try { - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "fingerprintId", fingerPrintId )); } catch (UnsupportedCommandException e) { diff --git a/src/main/java/io/appium/java_client/android/CanReplaceElementValue.java b/src/main/java/io/appium/java_client/android/CanReplaceElementValue.java index 2b48a9e29..447377633 100644 --- a/src/main/java/io/appium/java_client/android/CanReplaceElementValue.java +++ b/src/main/java/io/appium/java_client/android/CanReplaceElementValue.java @@ -1,6 +1,5 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.CanRememberExtensionPresence; import io.appium.java_client.CommandExecutionHelper; import io.appium.java_client.ExecutesMethod; @@ -8,7 +7,7 @@ import org.openqa.selenium.UnsupportedCommandException; import org.openqa.selenium.remote.RemoteWebElement; -import java.util.AbstractMap; +import java.util.Map; public interface CanReplaceElementValue extends ExecutesMethod, CanRememberExtensionPresence { /** @@ -24,7 +23,7 @@ public interface CanReplaceElementValue extends ExecutesMethod, CanRememberExten default void replaceElementValue(RemoteWebElement element, String value) { final String extName = "mobile: replaceValue"; try { - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "elementId", element.getId(), "text", value )); @@ -32,7 +31,7 @@ default void replaceElementValue(RemoteWebElement element, String value) { // TODO: Remove the fallback CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(MobileCommand.REPLACE_VALUE, ImmutableMap.of( + Map.entry(MobileCommand.REPLACE_VALUE, Map.of( "id", element.getId(), "text", value, "value", value diff --git a/src/main/java/io/appium/java_client/android/HasAndroidClipboard.java b/src/main/java/io/appium/java_client/android/HasAndroidClipboard.java index 40fc24a83..49a657898 100644 --- a/src/main/java/io/appium/java_client/android/HasAndroidClipboard.java +++ b/src/main/java/io/appium/java_client/android/HasAndroidClipboard.java @@ -21,12 +21,11 @@ import io.appium.java_client.clipboard.HasClipboard; import java.nio.charset.StandardCharsets; -import java.util.AbstractMap; import java.util.Base64; +import java.util.Map; -import static com.google.common.base.Preconditions.checkNotNull; import static io.appium.java_client.MobileCommand.SET_CLIPBOARD; -import static io.appium.java_client.MobileCommand.prepareArguments; +import static java.util.Objects.requireNonNull; public interface HasAndroidClipboard extends HasClipboard { /** @@ -37,11 +36,13 @@ public interface HasAndroidClipboard extends HasClipboard { * @param base64Content base64-encoded content to be set. */ default void setClipboard(String label, ClipboardContentType contentType, byte[] base64Content) { - String[] parameters = new String[]{"content", "contentType", "label"}; - Object[] values = new Object[]{new String(checkNotNull(base64Content), StandardCharsets.UTF_8), - contentType.name().toLowerCase(), checkNotNull(label)}; - CommandExecutionHelper.execute(this, new AbstractMap.SimpleEntry<>(SET_CLIPBOARD, - prepareArguments(parameters, values))); + CommandExecutionHelper.execute(this, Map.entry(SET_CLIPBOARD, + Map.of( + "content", new String(requireNonNull(base64Content), StandardCharsets.UTF_8), + "contentType", contentType.name().toLowerCase(), + "label", requireNonNull(label) + ) + )); } /** diff --git a/src/main/java/io/appium/java_client/android/HasSupportedPerformanceDataType.java b/src/main/java/io/appium/java_client/android/HasSupportedPerformanceDataType.java index ee6a3bce8..9a175d14c 100644 --- a/src/main/java/io/appium/java_client/android/HasSupportedPerformanceDataType.java +++ b/src/main/java/io/appium/java_client/android/HasSupportedPerformanceDataType.java @@ -1,12 +1,12 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.CanRememberExtensionPresence; import io.appium.java_client.CommandExecutionHelper; import io.appium.java_client.ExecutesMethod; import org.openqa.selenium.UnsupportedCommandException; import java.util.List; +import java.util.Map; import static io.appium.java_client.android.AndroidMobileCommandHelper.getPerformanceDataCommand; import static io.appium.java_client.android.AndroidMobileCommandHelper.getSupportedPerformanceDataTypesCommand; @@ -63,7 +63,7 @@ default List getSupportedPerformanceDataTypes() { default List> getPerformanceData(String packageName, String dataType, int dataReadTimeout) { final String extName = "mobile: getPerformanceData"; try { - return CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + return CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "packageName", packageName, "dataType", dataType )); diff --git a/src/main/java/io/appium/java_client/android/StartsActivity.java b/src/main/java/io/appium/java_client/android/StartsActivity.java index d4cb4258a..9f56d7b1a 100644 --- a/src/main/java/io/appium/java_client/android/StartsActivity.java +++ b/src/main/java/io/appium/java_client/android/StartsActivity.java @@ -16,7 +16,6 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.CanRememberExtensionPresence; import io.appium.java_client.CommandExecutionHelper; import io.appium.java_client.ExecutesMethod; @@ -24,7 +23,7 @@ import javax.annotation.Nullable; -import java.util.AbstractMap; +import java.util.Map; import static io.appium.java_client.MobileCommand.CURRENT_ACTIVITY; import static io.appium.java_client.MobileCommand.GET_CURRENT_PACKAGE; @@ -44,7 +43,7 @@ default String currentActivity() { // TODO: Remove the fallback return CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(CURRENT_ACTIVITY, ImmutableMap.of()) + Map.entry(CURRENT_ACTIVITY, Map.of()) ); } } @@ -63,7 +62,7 @@ default String getCurrentPackage() { // TODO: Remove the fallback return CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(GET_CURRENT_PACKAGE, ImmutableMap.of()) + Map.entry(GET_CURRENT_PACKAGE, Map.of()) ); } } diff --git a/src/main/java/io/appium/java_client/android/SupportsGpsStateManagement.java b/src/main/java/io/appium/java_client/android/SupportsGpsStateManagement.java index 14854412e..5c16bb293 100644 --- a/src/main/java/io/appium/java_client/android/SupportsGpsStateManagement.java +++ b/src/main/java/io/appium/java_client/android/SupportsGpsStateManagement.java @@ -5,8 +5,8 @@ import io.appium.java_client.ExecutesMethod; import org.openqa.selenium.UnsupportedCommandException; -import static com.google.common.base.Preconditions.checkNotNull; import static io.appium.java_client.android.AndroidMobileCommandHelper.toggleLocationServicesCommand; +import static java.util.Objects.requireNonNull; public interface SupportsGpsStateManagement extends ExecutesMethod, CanRememberExtensionPresence { @@ -30,7 +30,7 @@ default void toggleLocationServices() { * @return true if GPS service is enabled. */ default boolean isLocationServicesEnabled() { - return checkNotNull( + return requireNonNull( CommandExecutionHelper.executeScript(this, "mobile: isGpsEnabled") ); } diff --git a/src/main/java/io/appium/java_client/android/SupportsNetworkStateManagement.java b/src/main/java/io/appium/java_client/android/SupportsNetworkStateManagement.java index 8f4dfa246..2992e5847 100644 --- a/src/main/java/io/appium/java_client/android/SupportsNetworkStateManagement.java +++ b/src/main/java/io/appium/java_client/android/SupportsNetworkStateManagement.java @@ -1,6 +1,5 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.CanRememberExtensionPresence; import io.appium.java_client.CommandExecutionHelper; import io.appium.java_client.ExecutesMethod; @@ -8,10 +7,10 @@ import java.util.Map; -import static com.google.common.base.Preconditions.checkNotNull; import static io.appium.java_client.android.AndroidMobileCommandHelper.toggleAirplaneCommand; import static io.appium.java_client.android.AndroidMobileCommandHelper.toggleDataCommand; import static io.appium.java_client.android.AndroidMobileCommandHelper.toggleWifiCommand; +import static java.util.Objects.requireNonNull; public interface SupportsNetworkStateManagement extends ExecutesMethod, CanRememberExtensionPresence { @@ -21,10 +20,10 @@ public interface SupportsNetworkStateManagement extends ExecutesMethod, CanRemem default void toggleWifi() { final String extName = "mobile: setConnectivity"; try { - Map result = checkNotNull( + Map result = requireNonNull( CommandExecutionHelper.executeScript(assertExtensionExists(extName), "mobile: getConnectivity") ); - CommandExecutionHelper.executeScript(this, extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(this, extName, Map.of( "wifi", !((Boolean) result.get("wifi")) )); } catch (UnsupportedCommandException e) { @@ -40,10 +39,10 @@ default void toggleWifi() { default void toggleAirplaneMode() { final String extName = "mobile: setConnectivity"; try { - Map result = checkNotNull( + Map result = requireNonNull( CommandExecutionHelper.executeScript(assertExtensionExists(extName), "mobile: getConnectivity") ); - CommandExecutionHelper.executeScript(this, extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(this, extName, Map.of( "airplaneMode", !((Boolean) result.get("airplaneMode")) )); } catch (UnsupportedCommandException e) { @@ -59,10 +58,10 @@ default void toggleAirplaneMode() { default void toggleData() { final String extName = "mobile: setConnectivity"; try { - Map result = checkNotNull( + Map result = requireNonNull( CommandExecutionHelper.executeScript(assertExtensionExists(extName), "mobile: getConnectivity") ); - CommandExecutionHelper.executeScript(this, extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(this, extName, Map.of( "data", !((Boolean) result.get("data")) )); } catch (UnsupportedCommandException e) { diff --git a/src/main/java/io/appium/java_client/android/SupportsSpecialEmulatorCommands.java b/src/main/java/io/appium/java_client/android/SupportsSpecialEmulatorCommands.java index 025f00b05..c7b9accaf 100644 --- a/src/main/java/io/appium/java_client/android/SupportsSpecialEmulatorCommands.java +++ b/src/main/java/io/appium/java_client/android/SupportsSpecialEmulatorCommands.java @@ -1,12 +1,11 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.CanRememberExtensionPresence; import io.appium.java_client.CommandExecutionHelper; import io.appium.java_client.ExecutesMethod; import org.openqa.selenium.UnsupportedCommandException; -import java.util.AbstractMap; +import java.util.Map; import static io.appium.java_client.MobileCommand.GSM_CALL; import static io.appium.java_client.MobileCommand.GSM_SIGNAL; @@ -27,7 +26,7 @@ public interface SupportsSpecialEmulatorCommands extends ExecutesMethod, CanReme default void sendSMS(String phoneNumber, String message) { final String extName = "mobile: sendSms"; try { - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "phoneNumber", phoneNumber, "message", message )); @@ -35,7 +34,7 @@ default void sendSMS(String phoneNumber, String message) { // TODO: Remove the fallback CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(SEND_SMS, ImmutableMap.of( + Map.entry(SEND_SMS, Map.of( "phoneNumber", phoneNumber, "message", message )) @@ -52,7 +51,7 @@ default void sendSMS(String phoneNumber, String message) { default void makeGsmCall(String phoneNumber, GsmCallActions gsmCallAction) { final String extName = "mobile: gsmCall"; try { - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "phoneNumber", phoneNumber, "action", gsmCallAction.toString().toLowerCase() )); @@ -60,7 +59,7 @@ default void makeGsmCall(String phoneNumber, GsmCallActions gsmCallAction) { // TODO: Remove the fallback CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(GSM_CALL, ImmutableMap.of( + Map.entry(GSM_CALL, Map.of( "phoneNumber", phoneNumber, "action", gsmCallAction.toString().toLowerCase() )) @@ -76,14 +75,14 @@ default void makeGsmCall(String phoneNumber, GsmCallActions gsmCallAction) { default void setGsmSignalStrength(GsmSignalStrength gsmSignalStrength) { final String extName = "mobile: gsmSignal"; try { - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "strength", gsmSignalStrength.ordinal() )); } catch (UnsupportedCommandException e) { // TODO: Remove the fallback CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(GSM_SIGNAL, ImmutableMap.of( + Map.entry(GSM_SIGNAL, Map.of( "signalStrengh", gsmSignalStrength.ordinal(), "signalStrength", gsmSignalStrength.ordinal() )) @@ -99,14 +98,14 @@ default void setGsmSignalStrength(GsmSignalStrength gsmSignalStrength) { default void setGsmVoice(GsmVoiceState gsmVoiceState) { final String extName = "mobile: gsmVoice"; try { - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "state", gsmVoiceState.toString().toLowerCase() )); } catch (UnsupportedCommandException e) { // TODO: Remove the fallback CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(GSM_VOICE, ImmutableMap.of( + Map.entry(GSM_VOICE, Map.of( "state", gsmVoiceState.name().toLowerCase() )) ); @@ -121,14 +120,14 @@ default void setGsmVoice(GsmVoiceState gsmVoiceState) { default void setNetworkSpeed(NetworkSpeed networkSpeed) { final String extName = "mobile: networkSpeed"; try { - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "speed", networkSpeed.toString().toLowerCase() )); } catch (UnsupportedCommandException e) { // TODO: Remove the fallback CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(NETWORK_SPEED, ImmutableMap.of( + Map.entry(NETWORK_SPEED, Map.of( "netspeed", networkSpeed.name().toLowerCase() )) ); @@ -143,14 +142,14 @@ default void setNetworkSpeed(NetworkSpeed networkSpeed) { default void setPowerCapacity(int percent) { final String extName = "mobile: powerCapacity"; try { - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "percent", percent )); } catch (UnsupportedCommandException e) { // TODO: Remove the fallback CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(POWER_CAPACITY, ImmutableMap.of( + Map.entry(POWER_CAPACITY, Map.of( "percent", percent )) ); @@ -165,14 +164,14 @@ default void setPowerCapacity(int percent) { default void setPowerAC(PowerACState powerACState) { final String extName = "mobile: powerAC"; try { - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "state", powerACState.toString().toLowerCase() )); } catch (UnsupportedCommandException e) { // TODO: Remove the fallback CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(POWER_AC_STATE, ImmutableMap.of( + Map.entry(POWER_AC_STATE, Map.of( "state", powerACState.name().toLowerCase() )) ); diff --git a/src/main/java/io/appium/java_client/android/appmanagement/AndroidInstallApplicationOptions.java b/src/main/java/io/appium/java_client/android/appmanagement/AndroidInstallApplicationOptions.java index 67f2e09db..27ce3e4a6 100644 --- a/src/main/java/io/appium/java_client/android/appmanagement/AndroidInstallApplicationOptions.java +++ b/src/main/java/io/appium/java_client/android/appmanagement/AndroidInstallApplicationOptions.java @@ -23,7 +23,7 @@ import java.util.Map; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.Objects.requireNonNull; import static java.util.Optional.ofNullable; public class AndroidInstallApplicationOptions extends @@ -64,7 +64,7 @@ public AndroidInstallApplicationOptions withReplaceDisabled() { * @return self instance for chaining. */ public AndroidInstallApplicationOptions withTimeout(Duration timeout) { - checkArgument(!checkNotNull(timeout).isNegative(), "The timeout value cannot be negative"); + checkArgument(!requireNonNull(timeout).isNegative(), "The timeout value cannot be negative"); this.timeout = timeout; return this; } @@ -139,11 +139,11 @@ public AndroidInstallApplicationOptions withGrantPermissionsDisabled() { @Override public Map build() { final ImmutableMap.Builder builder = ImmutableMap.builder(); - ofNullable(replace).map(x -> builder.put("replace", x)); - ofNullable(timeout).map(x -> builder.put("timeout", x.toMillis())); - ofNullable(allowTestPackages).map(x -> builder.put("allowTestPackages", x)); - ofNullable(useSdcard).map(x -> builder.put("useSdcard", x)); - ofNullable(grantPermissions).map(x -> builder.put("grantPermissions", x)); + ofNullable(replace).ifPresent(x -> builder.put("replace", x)); + ofNullable(timeout).ifPresent(x -> builder.put("timeout", x.toMillis())); + ofNullable(allowTestPackages).ifPresent(x -> builder.put("allowTestPackages", x)); + ofNullable(useSdcard).ifPresent(x -> builder.put("useSdcard", x)); + ofNullable(grantPermissions).ifPresent(x -> builder.put("grantPermissions", x)); return builder.build(); } } diff --git a/src/main/java/io/appium/java_client/android/appmanagement/AndroidRemoveApplicationOptions.java b/src/main/java/io/appium/java_client/android/appmanagement/AndroidRemoveApplicationOptions.java index 2a4899f13..9783d9fda 100644 --- a/src/main/java/io/appium/java_client/android/appmanagement/AndroidRemoveApplicationOptions.java +++ b/src/main/java/io/appium/java_client/android/appmanagement/AndroidRemoveApplicationOptions.java @@ -23,7 +23,7 @@ import java.util.Map; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.Objects.requireNonNull; import static java.util.Optional.ofNullable; public class AndroidRemoveApplicationOptions extends @@ -39,7 +39,7 @@ public class AndroidRemoveApplicationOptions extends * @return self instance for chaining. */ public AndroidRemoveApplicationOptions withTimeout(Duration timeout) { - checkArgument(!checkNotNull(timeout).isNegative(), + checkArgument(!requireNonNull(timeout).isNegative(), "The timeout value cannot be negative"); this.timeout = timeout; return this; @@ -69,8 +69,8 @@ public AndroidRemoveApplicationOptions withKeepDataDisabled() { @Override public Map build() { final ImmutableMap.Builder builder = ImmutableMap.builder(); - ofNullable(timeout).map(x -> builder.put("timeout", x.toMillis())); - ofNullable(keepData).map(x -> builder.put("keepData", x)); + ofNullable(timeout).ifPresent(x -> builder.put("timeout", x.toMillis())); + ofNullable(keepData).ifPresent(x -> builder.put("keepData", x)); return builder.build(); } } diff --git a/src/main/java/io/appium/java_client/android/appmanagement/AndroidTerminateApplicationOptions.java b/src/main/java/io/appium/java_client/android/appmanagement/AndroidTerminateApplicationOptions.java index 0e11e569d..c9a0a02d8 100644 --- a/src/main/java/io/appium/java_client/android/appmanagement/AndroidTerminateApplicationOptions.java +++ b/src/main/java/io/appium/java_client/android/appmanagement/AndroidTerminateApplicationOptions.java @@ -23,7 +23,7 @@ import java.util.Map; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.Objects.requireNonNull; import static java.util.Optional.ofNullable; public class AndroidTerminateApplicationOptions extends @@ -38,7 +38,7 @@ public class AndroidTerminateApplicationOptions extends * @return self instance for chaining. */ public AndroidTerminateApplicationOptions withTimeout(Duration timeout) { - checkArgument(!checkNotNull(timeout).isNegative(), "The timeout value cannot be negative"); + checkArgument(!requireNonNull(timeout).isNegative(), "The timeout value cannot be negative"); this.timeout = timeout; return this; } @@ -46,7 +46,7 @@ public AndroidTerminateApplicationOptions withTimeout(Duration timeout) { @Override public Map build() { final ImmutableMap.Builder builder = ImmutableMap.builder(); - ofNullable(timeout).map(x -> builder.put("timeout", x.toMillis())); + ofNullable(timeout).ifPresent(x -> builder.put("timeout", x.toMillis())); return builder.build(); } } diff --git a/src/main/java/io/appium/java_client/android/connection/HasNetworkConnection.java b/src/main/java/io/appium/java_client/android/connection/HasNetworkConnection.java index 0774c74a2..03d1381f0 100644 --- a/src/main/java/io/appium/java_client/android/connection/HasNetworkConnection.java +++ b/src/main/java/io/appium/java_client/android/connection/HasNetworkConnection.java @@ -16,7 +16,6 @@ package io.appium.java_client.android.connection; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.CanRememberExtensionPresence; import io.appium.java_client.CommandExecutionHelper; import io.appium.java_client.ExecutesMethod; @@ -24,9 +23,9 @@ import java.util.Map; -import static com.google.common.base.Preconditions.checkNotNull; import static io.appium.java_client.android.AndroidMobileCommandHelper.getNetworkConnectionCommand; import static io.appium.java_client.android.AndroidMobileCommandHelper.setConnectionCommand; +import static java.util.Objects.requireNonNull; public interface HasNetworkConnection extends ExecutesMethod, CanRememberExtensionPresence { @@ -39,7 +38,7 @@ public interface HasNetworkConnection extends ExecutesMethod, CanRememberExtensi default ConnectionState setConnection(ConnectionState connection) { final String extName = "mobile: setConnectivity"; try { - CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, ImmutableMap.of( + CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, Map.of( "wifi", connection.isWiFiEnabled(), "data", connection.isDataEnabled(), "airplaneMode", connection.isAirplaneModeEnabled() @@ -48,7 +47,7 @@ default ConnectionState setConnection(ConnectionState connection) { } catch (UnsupportedCommandException e) { // TODO: Remove the fallback return new ConnectionState( - checkNotNull( + requireNonNull( CommandExecutionHelper.execute( markExtensionAbsence(extName), setConnectionCommand(connection.getBitMask()) @@ -66,7 +65,7 @@ default ConnectionState setConnection(ConnectionState connection) { default ConnectionState getConnection() { final String extName = "mobile: getConnectivity"; try { - Map result = checkNotNull( + Map result = requireNonNull( CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName) ); return new ConnectionState( @@ -77,7 +76,7 @@ default ConnectionState getConnection() { } catch (UnsupportedCommandException e) { // TODO: Remove the fallback return new ConnectionState( - checkNotNull( + requireNonNull( CommandExecutionHelper.execute( markExtensionAbsence(extName), getNetworkConnectionCommand() diff --git a/src/main/java/io/appium/java_client/android/geolocation/AndroidGeoLocation.java b/src/main/java/io/appium/java_client/android/geolocation/AndroidGeoLocation.java index f04a41fe2..7cd53e698 100644 --- a/src/main/java/io/appium/java_client/android/geolocation/AndroidGeoLocation.java +++ b/src/main/java/io/appium/java_client/android/geolocation/AndroidGeoLocation.java @@ -117,9 +117,9 @@ public AndroidGeoLocation withSpeed(double speed) { ofNullable(latitude).map(x -> builder.put("latitude", x)) .orElseThrow(() -> new IllegalArgumentException( "A valid 'latitude' must be provided")); - ofNullable(altitude).map(x -> builder.put("altitude", x)); - ofNullable(satellites).map(x -> builder.put("satellites", x)); - ofNullable(speed).map(x -> builder.put("speed", x)); + ofNullable(altitude).ifPresent(x -> builder.put("altitude", x)); + ofNullable(satellites).ifPresent(x -> builder.put("satellites", x)); + ofNullable(speed).ifPresent(x -> builder.put("speed", x)); return builder.build(); } } diff --git a/src/main/java/io/appium/java_client/android/geolocation/SupportsExtendedGeolocationCommands.java b/src/main/java/io/appium/java_client/android/geolocation/SupportsExtendedGeolocationCommands.java index 3587ad07e..d1ccf8e2c 100644 --- a/src/main/java/io/appium/java_client/android/geolocation/SupportsExtendedGeolocationCommands.java +++ b/src/main/java/io/appium/java_client/android/geolocation/SupportsExtendedGeolocationCommands.java @@ -16,12 +16,11 @@ package io.appium.java_client.android.geolocation; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.CommandExecutionHelper; import io.appium.java_client.ExecutesMethod; import org.openqa.selenium.remote.DriverCommand; -import java.util.AbstractMap; +import java.util.Map; public interface SupportsExtendedGeolocationCommands extends ExecutesMethod { @@ -32,9 +31,8 @@ public interface SupportsExtendedGeolocationCommands extends ExecutesMethod { * @param location The location object to set. */ default void setLocation(AndroidGeoLocation location) { - ImmutableMap parameters = ImmutableMap - .of("location", location.build()); - CommandExecutionHelper.execute(this, - new AbstractMap.SimpleEntry<>(DriverCommand.SET_LOCATION, parameters)); + CommandExecutionHelper.execute(this, Map.entry(DriverCommand.SET_LOCATION, + Map.of("location", location.build()) + )); } } diff --git a/src/main/java/io/appium/java_client/android/nativekey/PressesKey.java b/src/main/java/io/appium/java_client/android/nativekey/PressesKey.java index b262096c0..641087050 100644 --- a/src/main/java/io/appium/java_client/android/nativekey/PressesKey.java +++ b/src/main/java/io/appium/java_client/android/nativekey/PressesKey.java @@ -22,7 +22,6 @@ import io.appium.java_client.ExecutesMethod; import org.openqa.selenium.UnsupportedCommandException; -import java.util.AbstractMap; import java.util.Map; import static io.appium.java_client.MobileCommand.LONG_PRESS_KEY_CODE; @@ -43,7 +42,7 @@ default void pressKey(KeyEvent keyEvent) { // TODO: Remove the fallback CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(PRESS_KEY_CODE, keyEvent.build()) + Map.entry(PRESS_KEY_CODE, keyEvent.build()) ); } } @@ -65,7 +64,7 @@ default void longPressKey(KeyEvent keyEvent) { // TODO: Remove the fallback CommandExecutionHelper.execute( markExtensionAbsence(extName), - new AbstractMap.SimpleEntry<>(LONG_PRESS_KEY_CODE, keyEvent.build()) + Map.entry(LONG_PRESS_KEY_CODE, keyEvent.build()) ); } } diff --git a/src/main/java/io/appium/java_client/android/options/server/EspressoBuildConfig.java b/src/main/java/io/appium/java_client/android/options/server/EspressoBuildConfig.java index 24adc5675..4cbc571da 100644 --- a/src/main/java/io/appium/java_client/android/options/server/EspressoBuildConfig.java +++ b/src/main/java/io/appium/java_client/android/options/server/EspressoBuildConfig.java @@ -42,7 +42,7 @@ private EspressoBuildConfig assignToolsVersionsField(String name, Object value) Optional> toolsVersionsOptional = getOptionValue(TOOLS_VERSION); Map toolsVersions = toolsVersionsOptional.orElseGet(HashMap::new); toolsVersions.put(name, value); - if (!toolsVersionsOptional.isPresent()) { + if (toolsVersionsOptional.isEmpty()) { assignOptionValue(TOOLS_VERSION, toolsVersions); } return this; diff --git a/src/main/java/io/appium/java_client/clipboard/HasClipboard.java b/src/main/java/io/appium/java_client/clipboard/HasClipboard.java index 637a35caf..a6ae3327c 100644 --- a/src/main/java/io/appium/java_client/clipboard/HasClipboard.java +++ b/src/main/java/io/appium/java_client/clipboard/HasClipboard.java @@ -20,13 +20,12 @@ import io.appium.java_client.ExecutesMethod; import java.nio.charset.StandardCharsets; -import java.util.AbstractMap; import java.util.Base64; +import java.util.Map; -import static com.google.common.base.Preconditions.checkNotNull; import static io.appium.java_client.MobileCommand.GET_CLIPBOARD; import static io.appium.java_client.MobileCommand.SET_CLIPBOARD; -import static io.appium.java_client.MobileCommand.prepareArguments; +import static java.util.Objects.requireNonNull; public interface HasClipboard extends ExecutesMethod { /** @@ -36,11 +35,12 @@ public interface HasClipboard extends ExecutesMethod { * @param base64Content base64-encoded content to be set. */ default void setClipboard(ClipboardContentType contentType, byte[] base64Content) { - String[] parameters = new String[]{"content", "contentType"}; - Object[] values = new Object[]{new String(checkNotNull(base64Content), StandardCharsets.UTF_8), - contentType.name().toLowerCase()}; - CommandExecutionHelper.execute(this, new AbstractMap.SimpleEntry<>(SET_CLIPBOARD, - prepareArguments(parameters, values))); + CommandExecutionHelper.execute(this, Map.entry(SET_CLIPBOARD, + Map.of( + "content", new String(requireNonNull(base64Content), StandardCharsets.UTF_8), + "contentType", contentType.name().toLowerCase() + ) + )); } /** @@ -50,8 +50,8 @@ default void setClipboard(ClipboardContentType contentType, byte[] base64Content * @return the actual content of the clipboard as base64-encoded string or an empty string if the clipboard is empty */ default String getClipboard(ClipboardContentType contentType) { - return CommandExecutionHelper.execute(this, new AbstractMap.SimpleEntry<>(GET_CLIPBOARD, - prepareArguments("contentType", contentType.name().toLowerCase()))); + return CommandExecutionHelper.execute(this, Map.entry(GET_CLIPBOARD, + Map.of("contentType", contentType.name().toLowerCase()))); } /** diff --git a/src/main/java/io/appium/java_client/driverscripts/ScriptOptions.java b/src/main/java/io/appium/java_client/driverscripts/ScriptOptions.java index 15d7ddf36..11c4f650a 100644 --- a/src/main/java/io/appium/java_client/driverscripts/ScriptOptions.java +++ b/src/main/java/io/appium/java_client/driverscripts/ScriptOptions.java @@ -20,7 +20,7 @@ import java.util.Map; -import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.Objects.requireNonNull; import static java.util.Optional.ofNullable; @@ -35,7 +35,7 @@ public class ScriptOptions { * @return self instance for chaining */ public ScriptOptions withScriptType(ScriptType type) { - this.scriptType = checkNotNull(type); + this.scriptType = requireNonNull(type); return this; } @@ -59,8 +59,8 @@ public ScriptOptions withTimeout(long timeoutMs) { */ public Map build() { final ImmutableMap.Builder builder = ImmutableMap.builder(); - ofNullable(scriptType).map(x -> builder.put("type", x.name().toLowerCase())); - ofNullable(timeoutMs).map(x -> builder.put("timeout", x)); + ofNullable(scriptType).ifPresent(x -> builder.put("type", x.name().toLowerCase())); + ofNullable(timeoutMs).ifPresent(x -> builder.put("timeout", x)); return builder.build(); } } diff --git a/src/main/java/io/appium/java_client/imagecomparison/BaseComparisonOptions.java b/src/main/java/io/appium/java_client/imagecomparison/BaseComparisonOptions.java index 2563055cc..b91974009 100644 --- a/src/main/java/io/appium/java_client/imagecomparison/BaseComparisonOptions.java +++ b/src/main/java/io/appium/java_client/imagecomparison/BaseComparisonOptions.java @@ -46,7 +46,7 @@ public T withEnabledVisualization() { */ public Map build() { final ImmutableMap.Builder builder = ImmutableMap.builder(); - ofNullable(visualize).map(x -> builder.put("visualize", x)); + ofNullable(visualize).ifPresent(x -> builder.put("visualize", x)); return builder.build(); } } diff --git a/src/main/java/io/appium/java_client/imagecomparison/FeaturesMatchingOptions.java b/src/main/java/io/appium/java_client/imagecomparison/FeaturesMatchingOptions.java index 5e72c6591..42e4cd976 100644 --- a/src/main/java/io/appium/java_client/imagecomparison/FeaturesMatchingOptions.java +++ b/src/main/java/io/appium/java_client/imagecomparison/FeaturesMatchingOptions.java @@ -70,9 +70,9 @@ public FeaturesMatchingOptions withGoodMatchesFactor(int factor) { public Map build() { final ImmutableMap.Builder builder = ImmutableMap.builder(); builder.putAll(super.build()); - ofNullable(detectorName).map(x -> builder.put("detectorName", x)); - ofNullable(matchFunc).map(x -> builder.put("matchFunc", x)); - ofNullable(goodMatchesFactor).map(x -> builder.put("goodMatchesFactor", x)); + ofNullable(detectorName).ifPresent(x -> builder.put("detectorName", x)); + ofNullable(matchFunc).ifPresent(x -> builder.put("matchFunc", x)); + ofNullable(goodMatchesFactor).ifPresent(x -> builder.put("goodMatchesFactor", x)); return builder.build(); } } diff --git a/src/main/java/io/appium/java_client/imagecomparison/OccurrenceMatchingOptions.java b/src/main/java/io/appium/java_client/imagecomparison/OccurrenceMatchingOptions.java index 818c9f2da..d75e1d7e1 100644 --- a/src/main/java/io/appium/java_client/imagecomparison/OccurrenceMatchingOptions.java +++ b/src/main/java/io/appium/java_client/imagecomparison/OccurrenceMatchingOptions.java @@ -68,9 +68,9 @@ public OccurrenceMatchingOptions withMatchNeighbourThreshold(int threshold) { public Map build() { final ImmutableMap.Builder builder = ImmutableMap.builder(); builder.putAll(super.build()); - ofNullable(threshold).map(x -> builder.put("threshold", x)); - ofNullable(matchNeighbourThreshold).map(x -> builder.put("matchNeighbourThreshold", x)); - ofNullable(multiple).map(x -> builder.put("multiple", x)); + ofNullable(threshold).ifPresent(x -> builder.put("threshold", x)); + ofNullable(matchNeighbourThreshold).ifPresent(x -> builder.put("matchNeighbourThreshold", x)); + ofNullable(multiple).ifPresent(x -> builder.put("multiple", x)); return builder.build(); } } diff --git a/src/main/java/io/appium/java_client/ios/HasIOSClipboard.java b/src/main/java/io/appium/java_client/ios/HasIOSClipboard.java index f1dd7300e..32f4c9df4 100644 --- a/src/main/java/io/appium/java_client/ios/HasIOSClipboard.java +++ b/src/main/java/io/appium/java_client/ios/HasIOSClipboard.java @@ -29,7 +29,7 @@ import java.nio.charset.StandardCharsets; import java.util.Base64; -import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.Objects.requireNonNull; public interface HasIOSClipboard extends HasClipboard { /** @@ -40,7 +40,7 @@ public interface HasIOSClipboard extends HasClipboard { */ default void setClipboardImage(BufferedImage img) throws IOException { try (final ByteArrayOutputStream os = new ByteArrayOutputStream()) { - ImageIO.write(checkNotNull(img), "png", os); + ImageIO.write(requireNonNull(img), "png", os); setClipboard(ClipboardContentType.IMAGE, Base64 .getMimeEncoder() .encode(os.toByteArray())); @@ -68,7 +68,7 @@ default BufferedImage getClipboardImage() throws IOException { default void setClipboardUrl(URL url) { setClipboard(ClipboardContentType.URL, Base64 .getMimeEncoder() - .encode(checkNotNull(url).toString().getBytes(StandardCharsets.UTF_8))); + .encode(requireNonNull(url).toString().getBytes(StandardCharsets.UTF_8))); } /** diff --git a/src/main/java/io/appium/java_client/ios/IOSDriver.java b/src/main/java/io/appium/java_client/ios/IOSDriver.java index 33c048710..995c196a6 100644 --- a/src/main/java/io/appium/java_client/ios/IOSDriver.java +++ b/src/main/java/io/appium/java_client/ios/IOSDriver.java @@ -49,8 +49,7 @@ import org.openqa.selenium.remote.http.HttpClient; import java.net.URL; - -import static io.appium.java_client.MobileCommand.prepareArguments; +import java.util.Map; /** * iOS driver implementation. @@ -275,7 +274,7 @@ class IOSAlert implements Alert { } @Override public void sendKeys(String keysToSend) { - execute(DriverCommand.SET_ALERT_VALUE, prepareArguments("value", keysToSend)); + execute(DriverCommand.SET_ALERT_VALUE, Map.of("value", keysToSend)); } } diff --git a/src/main/java/io/appium/java_client/ios/IOSMobileCommandHelper.java b/src/main/java/io/appium/java_client/ios/IOSMobileCommandHelper.java index 390079d19..ebdddaedc 100644 --- a/src/main/java/io/appium/java_client/ios/IOSMobileCommandHelper.java +++ b/src/main/java/io/appium/java_client/ios/IOSMobileCommandHelper.java @@ -16,10 +16,8 @@ package io.appium.java_client.ios; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.MobileCommand; -import java.util.AbstractMap; import java.util.Map; @Deprecated @@ -32,8 +30,8 @@ public class IOSMobileCommandHelper extends MobileCommand { * @deprecated this helper is deprecated and will be removed in future versions. */ @Deprecated - public static Map.Entry> shakeCommand() { - return new AbstractMap.SimpleEntry<>(SHAKE, ImmutableMap.of()); + public static Map.Entry> shakeCommand() { + return Map.entry(SHAKE, Map.of()); } /** @@ -45,8 +43,7 @@ public class IOSMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> touchIdCommand(boolean match) { - return new AbstractMap.SimpleEntry<>( - TOUCH_ID, prepareArguments("match", match)); + return Map.entry(TOUCH_ID, Map.of("match", match)); } /** @@ -59,7 +56,6 @@ public class IOSMobileCommandHelper extends MobileCommand { */ @Deprecated public static Map.Entry> toggleTouchIdEnrollmentCommand(boolean enabled) { - return new AbstractMap.SimpleEntry<>( - TOUCH_ID_ENROLLMENT, prepareArguments("enabled", enabled)); + return Map.entry(TOUCH_ID_ENROLLMENT, Map.of("enabled", enabled)); } } diff --git a/src/main/java/io/appium/java_client/ios/IOSStartScreenRecordingOptions.java b/src/main/java/io/appium/java_client/ios/IOSStartScreenRecordingOptions.java index a86dabac7..b0673a5e0 100644 --- a/src/main/java/io/appium/java_client/ios/IOSStartScreenRecordingOptions.java +++ b/src/main/java/io/appium/java_client/ios/IOSStartScreenRecordingOptions.java @@ -23,7 +23,7 @@ import java.time.Duration; import java.util.Map; -import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.Objects.requireNonNull; import static java.util.Optional.ofNullable; public class IOSStartScreenRecordingOptions @@ -56,7 +56,7 @@ public IOSStartScreenRecordingOptions withUploadOptions(ScreenRecordingUploadOpt * @return self instance for chaining. */ public IOSStartScreenRecordingOptions withVideoType(String videoType) { - this.videoType = checkNotNull(videoType); + this.videoType = requireNonNull(videoType); return this; } @@ -72,7 +72,7 @@ public enum VideoQuality { * @return self instance for chaining. */ public IOSStartScreenRecordingOptions withVideoQuality(VideoQuality videoQuality) { - this.videoQuality = checkNotNull(videoQuality).name().toLowerCase(); + this.videoQuality = requireNonNull(videoQuality).name().toLowerCase(); return this; } @@ -98,7 +98,7 @@ public IOSStartScreenRecordingOptions withFps(int fps) { * @return self instance for chaining. */ public IOSStartScreenRecordingOptions withVideoScale(String videoScale) { - this.videoScale = checkNotNull(videoScale); + this.videoScale = requireNonNull(videoScale); return this; } diff --git a/src/main/java/io/appium/java_client/ios/PerformsTouchID.java b/src/main/java/io/appium/java_client/ios/PerformsTouchID.java index af574bd2f..5829808bd 100644 --- a/src/main/java/io/appium/java_client/ios/PerformsTouchID.java +++ b/src/main/java/io/appium/java_client/ios/PerformsTouchID.java @@ -16,10 +16,11 @@ package io.appium.java_client.ios; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.CommandExecutionHelper; import io.appium.java_client.ExecutesMethod; +import java.util.Map; + public interface PerformsTouchID extends ExecutesMethod { /** @@ -29,7 +30,7 @@ public interface PerformsTouchID extends ExecutesMethod { * @param match If true, simulates a successful fingerprint scan. If false, simulates a failed fingerprint scan. */ default void performTouchID(boolean match) { - CommandExecutionHelper.executeScript(this, "mobile: sendBiometricMatch", ImmutableMap.of( + CommandExecutionHelper.executeScript(this, "mobile: sendBiometricMatch", Map.of( "type", "touchId", "match", match )); @@ -44,7 +45,7 @@ default void performTouchID(boolean match) { * Multiple calls of the method with the same argument value have no effect. */ default void toggleTouchIDEnrollment(boolean enabled) { - CommandExecutionHelper.executeScript(this, "mobile: enrollBiometric", ImmutableMap.of( + CommandExecutionHelper.executeScript(this, "mobile: enrollBiometric", Map.of( "isEnabled", enabled )); } diff --git a/src/main/java/io/appium/java_client/pagefactory/AppiumFieldDecorator.java b/src/main/java/io/appium/java_client/pagefactory/AppiumFieldDecorator.java index 63208ef1f..67af93096 100644 --- a/src/main/java/io/appium/java_client/pagefactory/AppiumFieldDecorator.java +++ b/src/main/java/io/appium/java_client/pagefactory/AppiumFieldDecorator.java @@ -16,7 +16,6 @@ package io.appium.java_client.pagefactory; -import com.google.common.collect.ImmutableList; import io.appium.java_client.internal.CapabilityHelpers; import io.appium.java_client.pagefactory.bys.ContentType; import io.appium.java_client.pagefactory.locator.CacheableLocator; @@ -62,7 +61,7 @@ */ public class AppiumFieldDecorator implements FieldDecorator { - private static final List> AVAILABLE_ELEMENT_CLASSES = ImmutableList.of( + private static final List> AVAILABLE_ELEMENT_CLASSES = List.of( WebElement.class, RemoteWebElement.class ); diff --git a/src/main/java/io/appium/java_client/pagefactory/bys/ContentMappedBy.java b/src/main/java/io/appium/java_client/pagefactory/bys/ContentMappedBy.java index 30bf58456..4bb1b1f4d 100644 --- a/src/main/java/io/appium/java_client/pagefactory/bys/ContentMappedBy.java +++ b/src/main/java/io/appium/java_client/pagefactory/bys/ContentMappedBy.java @@ -25,8 +25,8 @@ import java.util.Map; import java.util.Objects; -import static com.google.common.base.Preconditions.checkNotNull; import static io.appium.java_client.pagefactory.bys.ContentType.NATIVE_MOBILE_SPECIFIC; +import static java.util.Objects.requireNonNull; public class ContentMappedBy extends By { private final Map map; @@ -43,7 +43,7 @@ public ContentMappedBy(Map map) { * @return self-reference. */ public By useContent(@Nonnull ContentType type) { - checkNotNull(type); + requireNonNull(type); currentContent = type; return this; } diff --git a/src/main/java/io/appium/java_client/pagefactory/bys/builder/ByChained.java b/src/main/java/io/appium/java_client/pagefactory/bys/builder/ByChained.java index 9a4196f23..2f44463ec 100644 --- a/src/main/java/io/appium/java_client/pagefactory/bys/builder/ByChained.java +++ b/src/main/java/io/appium/java_client/pagefactory/bys/builder/ByChained.java @@ -16,7 +16,6 @@ package io.appium.java_client.pagefactory.bys.builder; -import io.appium.java_client.functions.AppiumFunction; import org.openqa.selenium.By; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.SearchContext; @@ -25,14 +24,15 @@ import org.openqa.selenium.support.ui.FluentWait; import java.util.Optional; +import java.util.function.Function; -import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.Objects.requireNonNull; public class ByChained extends org.openqa.selenium.support.pagefactory.ByChained { private final By[] bys; - private static AppiumFunction getSearchingFunction(By by) { + private static Function getSearchingFunction(By by) { return input -> { try { if (input == null) { @@ -51,8 +51,7 @@ private static AppiumFunction getSearchingFunction(By * @param bys is a set of {@link By} which forms the chain of the searching. */ public ByChained(By[] bys) { - super(bys); - checkNotNull(bys); + super(requireNonNull(bys)); if (bys.length == 0) { throw new IllegalArgumentException("By array should not be empty"); } @@ -61,7 +60,7 @@ public ByChained(By[] bys) { @Override public WebElement findElement(SearchContext context) { - AppiumFunction searchingFunction = null; + Function searchingFunction = null; for (By by: bys) { searchingFunction = Optional.ofNullable(searchingFunction != null @@ -71,7 +70,7 @@ public WebElement findElement(SearchContext context) { FluentWait waiting = new FluentWait<>(context); try { - checkNotNull(searchingFunction); + requireNonNull(searchingFunction); return waiting.until(searchingFunction); } catch (TimeoutException e) { throw new NoSuchElementException("Cannot locate an element using " + this); diff --git a/src/main/java/io/appium/java_client/proxy/Helpers.java b/src/main/java/io/appium/java_client/proxy/Helpers.java index 6ed19b7a4..9543073a8 100644 --- a/src/main/java/io/appium/java_client/proxy/Helpers.java +++ b/src/main/java/io/appium/java_client/proxy/Helpers.java @@ -32,6 +32,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; +import static java.util.Objects.requireNonNull; import static net.bytebuddy.matcher.ElementMatchers.namedOneOf; public class Helpers { @@ -108,7 +109,7 @@ public static T createProxy( ) ); Preconditions.checkArgument(!listeners.isEmpty(), "The collection of listeners must not be empty"); - Preconditions.checkArgument(cls != null, "Class must not be null"); + requireNonNull(cls, "Class must not be null"); Preconditions.checkArgument(!cls.isInterface(), "Class must not be an interface"); ElementMatcher.Junction matcher = ElementMatchers.isPublic(); diff --git a/src/main/java/io/appium/java_client/remote/AppiumCommandExecutor.java b/src/main/java/io/appium/java_client/remote/AppiumCommandExecutor.java index d7dd90683..d3310f478 100644 --- a/src/main/java/io/appium/java_client/remote/AppiumCommandExecutor.java +++ b/src/main/java/io/appium/java_client/remote/AppiumCommandExecutor.java @@ -16,7 +16,6 @@ package io.appium.java_client.remote; -import com.google.common.base.Supplier; import com.google.common.base.Throwables; import io.appium.java_client.AppiumClientConfig; import io.appium.java_client.internal.ReflectionHelpers; @@ -47,8 +46,8 @@ import java.util.Map; import java.util.Optional; -import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Throwables.throwIfUnchecked; +import static java.util.Objects.requireNonNull; import static java.util.Optional.ofNullable; import static org.openqa.selenium.remote.DriverCommand.NEW_SESSION; @@ -85,14 +84,14 @@ public AppiumCommandExecutor( public AppiumCommandExecutor(Map additionalCommands, DriverService service, HttpClient.Factory httpClientFactory) { - this(additionalCommands, checkNotNull(service), httpClientFactory, - AppiumClientConfig.defaultConfig().baseUrl(checkNotNull(service).getUrl())); + this(additionalCommands, requireNonNull(service), httpClientFactory, + AppiumClientConfig.defaultConfig().baseUrl(requireNonNull(service).getUrl())); } public AppiumCommandExecutor(Map additionalCommands, URL addressOfRemoteServer, HttpClient.Factory httpClientFactory) { this(additionalCommands, null, httpClientFactory, - AppiumClientConfig.defaultConfig().baseUrl(checkNotNull(addressOfRemoteServer))); + AppiumClientConfig.defaultConfig().baseUrl(requireNonNull(addressOfRemoteServer))); } public AppiumCommandExecutor(Map additionalCommands, AppiumClientConfig appiumClientConfig) { @@ -101,13 +100,13 @@ public AppiumCommandExecutor(Map additionalCommands, Appium public AppiumCommandExecutor(Map additionalCommands, URL addressOfRemoteServer) { this(additionalCommands, null, HttpClient.Factory.createDefault(), - AppiumClientConfig.defaultConfig().baseUrl(checkNotNull(addressOfRemoteServer))); + AppiumClientConfig.defaultConfig().baseUrl(requireNonNull(addressOfRemoteServer))); } public AppiumCommandExecutor(Map additionalCommands, URL addressOfRemoteServer, AppiumClientConfig appiumClientConfig) { this(additionalCommands, null, HttpClient.Factory.createDefault(), - appiumClientConfig.baseUrl(checkNotNull(addressOfRemoteServer))); + appiumClientConfig.baseUrl(requireNonNull(addressOfRemoteServer))); } public AppiumCommandExecutor(Map additionalCommands, DriverService service) { @@ -246,8 +245,7 @@ public Response execute(Command command) throws WebDriverException { } return new WebDriverException("The appium server has accidentally died!", rootCause); - }).orElseGet((Supplier) () -> - new WebDriverException(rootCause.getMessage(), rootCause)); + }).orElseGet(() -> new WebDriverException(rootCause.getMessage(), rootCause)); } throwIfUnchecked(t); throw new WebDriverException(t); diff --git a/src/main/java/io/appium/java_client/remote/AppiumNewSessionCommandPayload.java b/src/main/java/io/appium/java_client/remote/AppiumNewSessionCommandPayload.java index a57170d6c..5f7655c2d 100644 --- a/src/main/java/io/appium/java_client/remote/AppiumNewSessionCommandPayload.java +++ b/src/main/java/io/appium/java_client/remote/AppiumNewSessionCommandPayload.java @@ -17,13 +17,13 @@ package io.appium.java_client.remote; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; import io.appium.java_client.remote.options.BaseOptions; import org.openqa.selenium.Capabilities; import org.openqa.selenium.internal.Require; import org.openqa.selenium.remote.CommandPayload; import java.util.Map; +import java.util.Set; import static org.openqa.selenium.remote.DriverCommand.NEW_SESSION; @@ -50,8 +50,8 @@ private static Map makeW3CSafe(Capabilities possiblyInvalidCapab * @param capabilities User-provided capabilities. */ public AppiumNewSessionCommandPayload(Capabilities capabilities) { - super(NEW_SESSION, ImmutableMap.of( - "capabilities", ImmutableSet.of(makeW3CSafe(capabilities)), + super(NEW_SESSION, Map.of( + "capabilities", Set.of(makeW3CSafe(capabilities)), "desiredCapabilities", capabilities )); } diff --git a/src/main/java/io/appium/java_client/remote/SupportsContextSwitching.java b/src/main/java/io/appium/java_client/remote/SupportsContextSwitching.java index 7f5f79956..b5c7e4b3b 100644 --- a/src/main/java/io/appium/java_client/remote/SupportsContextSwitching.java +++ b/src/main/java/io/appium/java_client/remote/SupportsContextSwitching.java @@ -16,7 +16,6 @@ package io.appium.java_client.remote; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.ExecutesMethod; import io.appium.java_client.NoSuchContextException; import org.openqa.selenium.ContextAware; @@ -28,9 +27,10 @@ import javax.annotation.Nullable; import java.util.LinkedHashSet; import java.util.List; +import java.util.Map; import java.util.Set; -import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.Objects.requireNonNull; public interface SupportsContextSwitching extends WebDriver, ContextAware, ExecutesMethod { /** @@ -40,9 +40,9 @@ public interface SupportsContextSwitching extends WebDriver, ContextAware, Execu * @return self instance for chaining. */ default WebDriver context(String name) { - checkNotNull(name, "Must supply a context name"); + requireNonNull(name, "Must supply a context name"); try { - execute(DriverCommand.SWITCH_TO_CONTEXT, ImmutableMap.of("name", name)); + execute(DriverCommand.SWITCH_TO_CONTEXT, Map.of("name", name)); return this; } catch (WebDriverException e) { throw new NoSuchContextException(e.getMessage(), e); @@ -55,7 +55,7 @@ default WebDriver context(String name) { * @return List list of context names. */ default Set getContextHandles() { - Response response = execute(DriverCommand.GET_CONTEXT_HANDLES, ImmutableMap.of()); + Response response = execute(DriverCommand.GET_CONTEXT_HANDLES, Map.of()); Object value = response.getValue(); try { //noinspection unchecked diff --git a/src/main/java/io/appium/java_client/remote/SupportsRotation.java b/src/main/java/io/appium/java_client/remote/SupportsRotation.java index 6e1af3a58..4e8078707 100644 --- a/src/main/java/io/appium/java_client/remote/SupportsRotation.java +++ b/src/main/java/io/appium/java_client/remote/SupportsRotation.java @@ -16,7 +16,6 @@ package io.appium.java_client.remote; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.ExecutesMethod; import org.openqa.selenium.DeviceRotation; import org.openqa.selenium.ScreenOrientation; @@ -44,7 +43,7 @@ default void rotate(DeviceRotation rotation) { default void rotate(ScreenOrientation orientation) { execute(DriverCommand.SET_SCREEN_ORIENTATION, - ImmutableMap.of("orientation", orientation.value().toUpperCase())); + Map.of("orientation", orientation.value().toUpperCase())); } /** diff --git a/src/main/java/io/appium/java_client/screenrecording/BaseScreenRecordingOptions.java b/src/main/java/io/appium/java_client/screenrecording/BaseScreenRecordingOptions.java index 308a9b05a..e4e3797ad 100644 --- a/src/main/java/io/appium/java_client/screenrecording/BaseScreenRecordingOptions.java +++ b/src/main/java/io/appium/java_client/screenrecording/BaseScreenRecordingOptions.java @@ -20,7 +20,7 @@ import java.util.Map; -import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.Objects.requireNonNull; import static java.util.Optional.ofNullable; public abstract class BaseScreenRecordingOptions> { @@ -34,7 +34,7 @@ public abstract class BaseScreenRecordingOptions> @@ -36,7 +36,7 @@ public abstract class BaseStartScreenRecordingOptions formFields) { - this.formFields = checkNotNull(formFields); + this.formFields = requireNonNull(formFields); return this; } @@ -112,7 +112,7 @@ public ScreenRecordingUploadOptions withFormFields(Map formField * @return self instance for chaining. */ public ScreenRecordingUploadOptions withHeaders(Map headers) { - this.headers = checkNotNull(headers); + this.headers = requireNonNull(headers); return this; } diff --git a/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java b/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java index fa2ed6584..0bd223034 100644 --- a/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java +++ b/src/main/java/io/appium/java_client/service/local/AppiumDriverLocalService.java @@ -45,10 +45,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Strings.isNullOrEmpty; import static io.appium.java_client.service.local.AppiumServiceBuilder.BROADCAST_IP4_ADDRESS; import static io.appium.java_client.service.local.AppiumServiceBuilder.BROADCAST_IP6_ADDRESS; +import static java.util.Objects.requireNonNull; import static org.slf4j.event.Level.DEBUG; import static org.slf4j.event.Level.INFO; @@ -291,7 +291,7 @@ public String getStdOut() { * that is ready to accept server output */ public void addOutPutStream(OutputStream outputStream) { - checkNotNull(outputStream, "outputStream parameter is NULL!"); + requireNonNull(outputStream, "outputStream parameter is NULL!"); stream.add(outputStream); } @@ -302,7 +302,7 @@ public void addOutPutStream(OutputStream outputStream) { * that are ready to accept server output */ public void addOutPutStreams(List outputStreams) { - checkNotNull(outputStreams, "outputStreams parameter is NULL!"); + requireNonNull(outputStreams, "outputStreams parameter is NULL!"); for (OutputStream outputStream : outputStreams) { addOutPutStream(outputStream); } @@ -314,7 +314,7 @@ public void addOutPutStreams(List outputStreams) { * @return the outputStream has been removed if it is present */ public Optional removeOutPutStream(OutputStream outputStream) { - checkNotNull(outputStream, "outputStream parameter is NULL!"); + requireNonNull(outputStream, "outputStream parameter is NULL!"); return stream.remove(outputStream); } @@ -399,7 +399,7 @@ public void enableDefaultSlf4jLoggingOfOutputData() { * available. */ public void addSlf4jLogMessageConsumer(BiConsumer slf4jLogMessageConsumer) { - checkNotNull(slf4jLogMessageConsumer, "slf4jLogMessageConsumer parameter is NULL!"); + requireNonNull(slf4jLogMessageConsumer, "slf4jLogMessageConsumer parameter is NULL!"); addLogMessageConsumer(logMessage -> { slf4jLogMessageConsumer.accept(logMessage, parseSlf4jContextFromLogMessage(logMessage)); }); @@ -433,7 +433,7 @@ static Slf4jLogMessageContext parseSlf4jContextFromLogMessage(String logMessage) * @param consumer Consumer block to be executed when a log message is available. */ public void addLogMessageConsumer(Consumer consumer) { - checkNotNull(consumer, "consumer parameter is NULL!"); + requireNonNull(consumer, "consumer parameter is NULL!"); addOutPutStream(new OutputStream() { private final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); diff --git a/src/main/java/io/appium/java_client/service/local/AppiumServiceBuilder.java b/src/main/java/io/appium/java_client/service/local/AppiumServiceBuilder.java index a8879cc36..a8690c78b 100644 --- a/src/main/java/io/appium/java_client/service/local/AppiumServiceBuilder.java +++ b/src/main/java/io/appium/java_client/service/local/AppiumServiceBuilder.java @@ -49,8 +49,8 @@ import java.util.function.Function; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Strings.isNullOrEmpty; +import static java.util.Objects.requireNonNull; import static org.openqa.selenium.remote.CapabilityType.PLATFORM_NAME; public final class AppiumServiceBuilder @@ -229,7 +229,7 @@ public AppiumServiceBuilder withArgument(ServerArgument argument, String value) } private static String sanitizeBasePath(String basePath) { - basePath = checkNotNull(basePath).trim(); + basePath = requireNonNull(basePath).trim(); checkArgument( !basePath.isEmpty(), "Given base path is not valid - blank or empty values are not allowed for base path" @@ -357,7 +357,7 @@ private String capabilitiesToCmdlineArg() { } @Override - protected ImmutableList createArgs() { + protected List createArgs() { List argList = new ArrayList<>(); loadPathToMainScript(); argList.add(appiumJS.getAbsolutePath()); diff --git a/src/main/java/io/appium/java_client/touch/LongPressOptions.java b/src/main/java/io/appium/java_client/touch/LongPressOptions.java index ac8600b49..9f9104b71 100644 --- a/src/main/java/io/appium/java_client/touch/LongPressOptions.java +++ b/src/main/java/io/appium/java_client/touch/LongPressOptions.java @@ -22,7 +22,7 @@ import java.util.Map; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.Objects.requireNonNull; import static java.util.Optional.ofNullable; public class LongPressOptions extends AbstractOptionCombinedWithPosition { @@ -45,7 +45,7 @@ public static LongPressOptions longPressOptions() { * @return this instance for chaining. */ public LongPressOptions withDuration(Duration duration) { - checkNotNull(duration); + requireNonNull(duration); checkArgument(duration.toMillis() >= 0, "Duration value should be greater or equal to zero"); this.duration = duration; diff --git a/src/main/java/io/appium/java_client/touch/WaitOptions.java b/src/main/java/io/appium/java_client/touch/WaitOptions.java index 81aedd674..29d869b07 100644 --- a/src/main/java/io/appium/java_client/touch/WaitOptions.java +++ b/src/main/java/io/appium/java_client/touch/WaitOptions.java @@ -20,8 +20,8 @@ import java.util.Map; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; import static java.time.Duration.ofMillis; +import static java.util.Objects.requireNonNull; public class WaitOptions extends ActionOptions { protected Duration duration = ofMillis(0); @@ -44,7 +44,7 @@ public static WaitOptions waitOptions(Duration duration) { * @return this instance for chaining. */ public WaitOptions withDuration(Duration duration) { - checkNotNull(duration); + requireNonNull(duration); checkArgument(duration.toMillis() >= 0, "Duration value should be greater or equal to zero"); this.duration = duration; diff --git a/src/main/java/io/appium/java_client/touch/offset/ElementOption.java b/src/main/java/io/appium/java_client/touch/offset/ElementOption.java index 05b4684a3..16cf65f70 100644 --- a/src/main/java/io/appium/java_client/touch/offset/ElementOption.java +++ b/src/main/java/io/appium/java_client/touch/offset/ElementOption.java @@ -8,7 +8,7 @@ import java.util.Map; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; +import static java.util.Objects.requireNonNull; import static java.util.Optional.ofNullable; public class ElementOption extends PointOption { @@ -82,7 +82,7 @@ public ElementOption withCoordinates(int xOffset, int yOffset) { * @return self-reference */ public ElementOption withElement(WebElement element) { - checkNotNull(element); + requireNonNull(element); checkArgument(true, "Element should be an instance of the class which " + "extends org.openqa.selenium.remote.RemoteWebElement", element instanceof RemoteWebElement); diff --git a/src/test/java/io/appium/java_client/android/AndroidAbilityToUseSupplierTest.java b/src/test/java/io/appium/java_client/android/AndroidAbilityToUseSupplierTest.java index 21389d54a..5db7921a7 100644 --- a/src/test/java/io/appium/java_client/android/AndroidAbilityToUseSupplierTest.java +++ b/src/test/java/io/appium/java_client/android/AndroidAbilityToUseSupplierTest.java @@ -1,6 +1,5 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.AppiumBy; import io.appium.java_client.functions.ActionSupplier; import io.appium.java_client.touch.offset.ElementOption; @@ -10,6 +9,7 @@ import org.openqa.selenium.WebElement; import java.util.List; +import java.util.Map; import static io.appium.java_client.TestUtils.getCenter; import static io.appium.java_client.touch.WaitOptions.waitOptions; @@ -59,8 +59,8 @@ public class AndroidAbilityToUseSupplierTest extends BaseAndroidTest { } @Test public void verticalSwipingWithSupplier() throws Exception { - driver.executeScript("mobile: terminateApp", ImmutableMap.of("appId", APP_ID)); - driver.executeScript("mobile: activateApp", ImmutableMap.of("appId", APP_ID)); + driver.executeScript("mobile: terminateApp", Map.of("appId", APP_ID)); + driver.executeScript("mobile: activateApp", Map.of("appId", APP_ID)); driver.findElement(AppiumBy.accessibilityId("Views")).click(); Point originalLocation = driver.findElement(AppiumBy.accessibilityId("Gallery")).getLocation(); diff --git a/src/test/java/io/appium/java_client/android/AndroidDataMatcherTest.java b/src/test/java/io/appium/java_client/android/AndroidDataMatcherTest.java index 3db8ade05..83d8eabdf 100644 --- a/src/test/java/io/appium/java_client/android/AndroidDataMatcherTest.java +++ b/src/test/java/io/appium/java_client/android/AndroidDataMatcherTest.java @@ -16,8 +16,6 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.AppiumBy; import org.junit.jupiter.api.Test; import org.openqa.selenium.json.Json; @@ -25,6 +23,8 @@ import org.openqa.selenium.support.ui.WebDriverWait; import java.time.Duration; +import java.util.List; +import java.util.Map; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -37,9 +37,9 @@ public void testFindByDataMatcher() { .elementToBeClickable(AppiumBy.accessibilityId("Graphics"))); driver.findElement(AppiumBy.accessibilityId("Graphics")).click(); - String selector = new Json().toJson(ImmutableMap.of( + String selector = new Json().toJson(Map.of( "name", "hasEntry", - "args", ImmutableList.of("title", "Sweep") + "args", List.of("title", "Sweep") )); assertNotNull(wait.until(ExpectedConditions diff --git a/src/test/java/io/appium/java_client/android/AndroidDriverTest.java b/src/test/java/io/appium/java_client/android/AndroidDriverTest.java index 095866e89..e1ff99d2e 100644 --- a/src/test/java/io/appium/java_client/android/AndroidDriverTest.java +++ b/src/test/java/io/appium/java_client/android/AndroidDriverTest.java @@ -16,7 +16,6 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.appmanagement.ApplicationState; import org.apache.commons.io.FileUtils; import org.hamcrest.Matchers; @@ -29,6 +28,7 @@ import java.util.ArrayList; import java.util.Base64; import java.util.List; +import java.util.Map; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; @@ -149,8 +149,8 @@ public void isAppNotInstalledTest() { @Test public void closeAppTest() { - driver.executeScript("mobile: terminateApp", ImmutableMap.of("appId", APP_ID)); - driver.executeScript("mobile: activateApp", ImmutableMap.of("appId", APP_ID)); + driver.executeScript("mobile: terminateApp", Map.of("appId", APP_ID)); + driver.executeScript("mobile: activateApp", Map.of("appId", APP_ID)); assertEquals(".ApiDemos", driver.currentActivity()); } diff --git a/src/test/java/io/appium/java_client/android/AndroidTouchTest.java b/src/test/java/io/appium/java_client/android/AndroidTouchTest.java index 84cb15753..c24ed20fa 100644 --- a/src/test/java/io/appium/java_client/android/AndroidTouchTest.java +++ b/src/test/java/io/appium/java_client/android/AndroidTouchTest.java @@ -1,6 +1,5 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.AppiumBy; import io.appium.java_client.MultiTouchAction; import io.appium.java_client.TouchAction; @@ -11,6 +10,7 @@ import org.openqa.selenium.WebElement; import java.util.List; +import java.util.Map; import static io.appium.java_client.TestUtils.getCenter; import static io.appium.java_client.touch.LongPressOptions.longPressOptions; @@ -26,8 +26,8 @@ public class AndroidTouchTest extends BaseAndroidTest { @BeforeEach public void setUp() { - driver.executeScript("mobile: terminateApp", ImmutableMap.of("appId", APP_ID)); - driver.executeScript("mobile: activateApp", ImmutableMap.of("appId", APP_ID)); + driver.executeScript("mobile: terminateApp", Map.of("appId", APP_ID)); + driver.executeScript("mobile: activateApp", Map.of("appId", APP_ID)); } @Test public void dragNDropByElementTest() { diff --git a/src/test/java/io/appium/java_client/android/AndroidViewMatcherTest.java b/src/test/java/io/appium/java_client/android/AndroidViewMatcherTest.java index 852723694..80b60ab28 100644 --- a/src/test/java/io/appium/java_client/android/AndroidViewMatcherTest.java +++ b/src/test/java/io/appium/java_client/android/AndroidViewMatcherTest.java @@ -16,8 +16,6 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.AppiumBy; import org.junit.jupiter.api.Test; import org.openqa.selenium.json.Json; @@ -25,6 +23,8 @@ import org.openqa.selenium.support.ui.WebDriverWait; import java.time.Duration; +import java.util.List; +import java.util.Map; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -32,9 +32,9 @@ public class AndroidViewMatcherTest extends BaseEspressoTest { @Test public void testFindByViewMatcher() { - String selector = new Json().toJson(ImmutableMap.of( + String selector = new Json().toJson(Map.of( "name", "withText", - "args", ImmutableList.of("Animation"), + "args", List.of("Animation"), "class", "androidx.test.espresso.matcher.ViewMatchers" )); final WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); diff --git a/src/test/java/io/appium/java_client/android/BaseAndroidTest.java b/src/test/java/io/appium/java_client/android/BaseAndroidTest.java index 21142e631..e14343d75 100644 --- a/src/test/java/io/appium/java_client/android/BaseAndroidTest.java +++ b/src/test/java/io/appium/java_client/android/BaseAndroidTest.java @@ -16,13 +16,14 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.android.options.UiAutomator2Options; import io.appium.java_client.service.local.AppiumDriverLocalService; import io.appium.java_client.service.local.AppiumServiceBuilder; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; +import java.util.Map; + import static io.appium.java_client.TestResources.apiDemosApk; @SuppressWarnings("checkstyle:HideUtilityClassConstructor") @@ -65,7 +66,7 @@ public class BaseAndroidTest { public static void startActivity(String name) { driver.executeScript( "mobile: startActivity", - ImmutableMap.of( + Map.of( "component", String.format("%s/%s", APP_ID, name) ) ); diff --git a/src/test/java/io/appium/java_client/android/ClipboardTest.java b/src/test/java/io/appium/java_client/android/ClipboardTest.java index 7b576bcc2..8de3bda5c 100644 --- a/src/test/java/io/appium/java_client/android/ClipboardTest.java +++ b/src/test/java/io/appium/java_client/android/ClipboardTest.java @@ -16,17 +16,18 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableMap; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import java.util.Map; + import static org.junit.jupiter.api.Assertions.assertEquals; public class ClipboardTest extends BaseAndroidTest { @BeforeEach public void setUp() { - driver.executeScript("mobile: terminateApp", ImmutableMap.of("appId", APP_ID)); - driver.executeScript("mobile: activateApp", ImmutableMap.of("appId", APP_ID)); + driver.executeScript("mobile: terminateApp", Map.of("appId", APP_ID)); + driver.executeScript("mobile: activateApp", Map.of("appId", APP_ID)); } @Test public void verifySetAndGetClipboardText() { diff --git a/src/test/java/io/appium/java_client/android/OpenNotificationsTest.java b/src/test/java/io/appium/java_client/android/OpenNotificationsTest.java index 1c5848934..08bddc736 100644 --- a/src/test/java/io/appium/java_client/android/OpenNotificationsTest.java +++ b/src/test/java/io/appium/java_client/android/OpenNotificationsTest.java @@ -1,12 +1,12 @@ package io.appium.java_client.android; -import com.google.common.collect.ImmutableMap; import org.junit.jupiter.api.Test; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.WebDriverWait; import java.time.Duration; import java.util.List; +import java.util.Map; import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.openqa.selenium.By.xpath; @@ -14,7 +14,7 @@ public class OpenNotificationsTest extends BaseAndroidTest { @Test public void openNotification() { - driver.executeScript("mobile: terminateApp", ImmutableMap.of( + driver.executeScript("mobile: terminateApp", Map.of( "appId", APP_ID )); driver.openNotifications(); diff --git a/src/test/java/io/appium/java_client/drivers/options/OptionsBuildingTest.java b/src/test/java/io/appium/java_client/drivers/options/OptionsBuildingTest.java index 7a22ffd93..4ab700ca3 100644 --- a/src/test/java/io/appium/java_client/drivers/options/OptionsBuildingTest.java +++ b/src/test/java/io/appium/java_client/drivers/options/OptionsBuildingTest.java @@ -16,8 +16,6 @@ package io.appium.java_client.drivers.options; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.android.options.EspressoOptions; import io.appium.java_client.android.options.UiAutomator2Options; import io.appium.java_client.android.options.localization.AppLocale; @@ -42,6 +40,8 @@ import java.net.MalformedURLException; import java.net.URL; import java.time.Duration; +import java.util.List; +import java.util.Map; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -60,7 +60,7 @@ public void canBuildXcuiTestOptions() throws MalformedURLException { .setWdaBaseUrl("http://localhost:8000") .setPermissions(new Permissions() .withAppPermissions("com.apple.MobileSafari", - ImmutableMap.of("calendar", "YES"))) + Map.of("calendar", "YES"))) .setSafariSocketChunkSize(10) .setCommandTimeouts(new CommandTimeouts() .withCommandTimeout("yolo", Duration.ofSeconds(1))); @@ -105,7 +105,7 @@ public void canBuildEspressoOptions() { .withLanguage("zh") .withVariant("hans")) .setEspressoBuildConfig(new EspressoBuildConfig() - .withAdditionalAppDependencies(ImmutableList.of( + .withAdditionalAppDependencies(List.of( "com.dep1:1.2.3", "com.dep2:1.2.3" )) @@ -154,7 +154,7 @@ public void canBuildGeckoOptions() { assertEquals(AutomationName.GECKO, options.getAutomationName().orElse(null)); options.setNewCommandTimeout(Duration.ofSeconds(10)) .setVerbosity(Verbosity.TRACE) - .setMozFirefoxOptions(ImmutableMap.of( + .setMozFirefoxOptions(Map.of( "profile", "yolo" )); assertEquals(Duration.ofSeconds(10), options.getNewCommandTimeout().orElse(null)); diff --git a/src/test/java/io/appium/java_client/events/stubs/EmptyWebDriver.java b/src/test/java/io/appium/java_client/events/stubs/EmptyWebDriver.java index 9b6af0820..c07df5b68 100644 --- a/src/test/java/io/appium/java_client/events/stubs/EmptyWebDriver.java +++ b/src/test/java/io/appium/java_client/events/stubs/EmptyWebDriver.java @@ -16,7 +16,6 @@ package io.appium.java_client.events.stubs; -import com.google.common.collect.ImmutableList; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.Capabilities; @@ -46,7 +45,7 @@ public EmptyWebDriver() { } private static List createStubList() { - return ImmutableList.of(new StubWebElement(), new StubWebElement()); + return List.of(new StubWebElement(), new StubWebElement()); } public WebDriver context(String name) { diff --git a/src/test/java/io/appium/java_client/events/stubs/StubWebElement.java b/src/test/java/io/appium/java_client/events/stubs/StubWebElement.java index 5a50dc58a..a84708083 100644 --- a/src/test/java/io/appium/java_client/events/stubs/StubWebElement.java +++ b/src/test/java/io/appium/java_client/events/stubs/StubWebElement.java @@ -16,7 +16,6 @@ package io.appium.java_client.events.stubs; -import com.google.common.collect.ImmutableList; import org.openqa.selenium.By; import org.openqa.selenium.Dimension; import org.openqa.selenium.OutputType; @@ -33,7 +32,7 @@ public StubWebElement() { } private static List createStubSubElementList() { - return new ArrayList<>(ImmutableList.of(new StubWebElement(), new StubWebElement())); + return new ArrayList<>(List.of(new StubWebElement(), new StubWebElement())); } public void click() { diff --git a/src/test/java/io/appium/java_client/ios/IOSDriverTest.java b/src/test/java/io/appium/java_client/ios/IOSDriverTest.java index 6ead922b8..b5d718eb8 100644 --- a/src/test/java/io/appium/java_client/ios/IOSDriverTest.java +++ b/src/test/java/io/appium/java_client/ios/IOSDriverTest.java @@ -16,7 +16,6 @@ package io.appium.java_client.ios; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.appmanagement.ApplicationState; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; @@ -30,6 +29,7 @@ import org.openqa.selenium.remote.http.HttpMethod; import java.time.Duration; +import java.util.Map; import static io.appium.java_client.TestUtils.waitUntilTrue; import static org.hamcrest.MatcherAssert.assertThat; @@ -71,7 +71,7 @@ public void addCustomCommandWithElementIdTest() { String.format("/session/%s/appium/element/%s/value", driver.getSessionId(), ((RemoteWebElement) intA).getId()), "setNewValue"); final Response setNewValue = driver.execute("setNewValue", - ImmutableMap.of("id", ((RemoteWebElement) intA).getId(), "text", "8")); + Map.of("id", ((RemoteWebElement) intA).getId(), "text", "8")); assertNotNull(setNewValue.getSessionId()); } @@ -82,8 +82,8 @@ public void getDeviceTimeTest() { } @Test public void resetTest() { - driver.executeScript("mobile: terminateApp", ImmutableMap.of("bundleId", BUNDLE_ID)); - driver.executeScript("mobile: activateApp", ImmutableMap.of("bundleId", BUNDLE_ID)); + driver.executeScript("mobile: terminateApp", Map.of("bundleId", BUNDLE_ID)); + driver.executeScript("mobile: activateApp", Map.of("bundleId", BUNDLE_ID)); } @Disabled diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/AbstractStubWebDriver.java b/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/AbstractStubWebDriver.java index 6f7dbb1c9..636d33c4e 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/AbstractStubWebDriver.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/AbstractStubWebDriver.java @@ -17,7 +17,6 @@ import java.util.Set; import java.util.concurrent.TimeUnit; -import static com.google.common.collect.ImmutableList.of; import static io.appium.java_client.remote.AutomationName.ANDROID_UIAUTOMATOR2; import static io.appium.java_client.remote.AutomationName.IOS_XCUI_TEST; import static io.appium.java_client.remote.MobilePlatform.ANDROID; @@ -61,7 +60,7 @@ public String getTitle() { @Override public List findElements(By by) { - return of(new StubWebElement(this, by), new StubWebElement(this, by)); + return List.of(new StubWebElement(this, by), new StubWebElement(this, by)); } @Override diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/DefaultStubWidget.java b/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/DefaultStubWidget.java index 0e6bc08b7..5977646d7 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/DefaultStubWidget.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/DefaultStubWidget.java @@ -1,6 +1,5 @@ package io.appium.java_client.pagefactory_tests.widget.tests; -import com.google.common.collect.ImmutableList; import io.appium.java_client.pagefactory.Widget; import org.openqa.selenium.WebElement; @@ -16,7 +15,7 @@ public T getSubWidget() { } public List getSubWidgets() { - return ImmutableList.of(); + return List.of(); } @Override diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/StubWebElement.java b/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/StubWebElement.java index 43f0864ac..94fd5a8db 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/StubWebElement.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/StubWebElement.java @@ -12,16 +12,15 @@ import java.util.List; -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.collect.ImmutableList.of; +import static java.util.Objects.requireNonNull; public class StubWebElement implements WebElement, WrapsDriver { private final WebDriver driver; private final By by; public StubWebElement(WebDriver driver, By by) { - this.driver = checkNotNull(driver); - this.by = checkNotNull(by); + this.driver = requireNonNull(driver); + this.by = requireNonNull(by); } @Override @@ -70,8 +69,8 @@ public String getText() { } @Override - public List findElements(By by) { - return of(new StubWebElement(driver, by), new StubWebElement(driver, by)); + public List findElements(By by) { + return List.of(new StubWebElement(driver, by), new StubWebElement(driver, by)); } @Override diff --git a/src/test/java/io/appium/java_client/service/local/ServerBuilderTest.java b/src/test/java/io/appium/java_client/service/local/ServerBuilderTest.java index aae940553..9822e9417 100644 --- a/src/test/java/io/appium/java_client/service/local/ServerBuilderTest.java +++ b/src/test/java/io/appium/java_client/service/local/ServerBuilderTest.java @@ -1,6 +1,5 @@ package io.appium.java_client.service.local; -import com.google.common.collect.ImmutableMap; import io.appium.java_client.android.options.UiAutomator2Options; import io.github.bonigarcia.wdm.WebDriverManager; import org.junit.jupiter.api.AfterEach; @@ -14,6 +13,7 @@ import java.time.Duration; import java.util.ArrayList; import java.util.List; +import java.util.Map; import static io.appium.java_client.TestResources.apiDemosApk; import static io.appium.java_client.TestUtils.getLocalIp4Address; @@ -179,7 +179,7 @@ void checkAbilityToStartServiceUsingCapabilitiesAndFlags() { .amend("unixPath", "/selenium/app.apk") .amend("quotes", "\"'") .setChromeOptions( - ImmutableMap.of("env", ImmutableMap.of("test", "value"), "val2", 0) + Map.of("env", Map.of("test", "value"), "val2", 0) ); service = new AppiumServiceBuilder()