Skip to content

Commit 75e7262

Browse files
authored
refactor: Replace private usages of Guava Collections API with Java Collections API (#2136)
1 parent 79c6c0c commit 75e7262

26 files changed

+201
-247
lines changed

src/main/java/io/appium/java_client/ExecuteCDPCommand.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package io.appium.java_client;
1818

19-
import com.google.common.collect.ImmutableMap;
2019
import org.openqa.selenium.remote.Response;
2120

2221
import javax.annotation.Nullable;
@@ -44,7 +43,7 @@ default Map<String, Object> executeCdpCommand(String command, @Nullable Map<Stri
4443
data.put("params", params == null ? Collections.emptyMap() : params);
4544
Response response = execute(EXECUTE_GOOGLE_CDP_COMMAND, data);
4645
//noinspection unchecked
47-
return ImmutableMap.copyOf((Map<String, Object>) response.getValue());
46+
return Collections.unmodifiableMap((Map<String, Object>) response.getValue());
4847
}
4948

5049
/**

src/main/java/io/appium/java_client/InteractsWithApps.java

Lines changed: 32 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package io.appium.java_client;
1818

19-
import com.google.common.collect.ImmutableMap;
2019
import io.appium.java_client.appmanagement.ApplicationState;
2120
import io.appium.java_client.appmanagement.BaseActivateApplicationOptions;
2221
import io.appium.java_client.appmanagement.BaseInstallApplicationOptions;
@@ -28,9 +27,8 @@
2827

2928
import javax.annotation.Nullable;
3029
import java.time.Duration;
31-
import java.util.Collections;
30+
import java.util.HashMap;
3231
import java.util.Map;
33-
import java.util.Optional;
3432

3533
import static io.appium.java_client.MobileCommand.ACTIVATE_APP;
3634
import static io.appium.java_client.MobileCommand.INSTALL_APP;
@@ -40,6 +38,7 @@
4038
import static io.appium.java_client.MobileCommand.RUN_APP_IN_BACKGROUND;
4139
import static io.appium.java_client.MobileCommand.TERMINATE_APP;
4240
import static java.util.Objects.requireNonNull;
41+
import static java.util.Optional.ofNullable;
4342

4443
@SuppressWarnings({"rawtypes", "unchecked"})
4544
public interface InteractsWithApps extends ExecutesMethod, CanRememberExtensionPresence {
@@ -63,23 +62,17 @@ default void installApp(String appPath) {
6362
default void installApp(String appPath, @Nullable BaseInstallApplicationOptions options) {
6463
final String extName = "mobile: installApp";
6564
try {
66-
Map<String, Object> args = ImmutableMap.<String, Object>builder()
67-
.put("app", appPath)
68-
.put("appPath", appPath)
69-
.putAll(Optional.ofNullable(options).map(BaseOptions::build).orElseGet(Collections::emptyMap))
70-
.build();
65+
var args = new HashMap<String, Object>();
66+
args.put("app", appPath);
67+
args.put("appPath", appPath);
68+
ofNullable(options).map(BaseOptions::build).ifPresent(args::putAll);
7169
CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, args);
7270
} catch (UnsupportedCommandException | InvalidArgumentException e) {
7371
// TODO: Remove the fallback
74-
Map args = ImmutableMap.builder()
75-
.put("appPath", appPath)
76-
.putAll(Optional.ofNullable(options).map(
77-
opts -> Map.of("options", opts.build())
78-
).orElseGet(Map::of))
79-
.build();
80-
CommandExecutionHelper.execute(
81-
markExtensionAbsence(extName), Map.entry(INSTALL_APP, args)
82-
);
72+
var args = new HashMap<String, Object>();
73+
args.put("appPath", appPath);
74+
ofNullable(options).map(BaseOptions::build).ifPresent(opts -> args.put("options", opts));
75+
CommandExecutionHelper.execute(markExtensionAbsence(extName), Map.entry(INSTALL_APP, args));
8376
}
8477
}
8578

@@ -153,22 +146,18 @@ default boolean removeApp(String bundleId) {
153146
default boolean removeApp(String bundleId, @Nullable BaseRemoveApplicationOptions options) {
154147
final String extName = "mobile: removeApp";
155148
try {
156-
Map<String, Object> args = ImmutableMap.<String, Object>builder()
157-
.put("bundleId", bundleId)
158-
.put("appId", bundleId)
159-
.putAll(Optional.ofNullable(options).map(BaseOptions::build).orElseGet(Collections::emptyMap))
160-
.build();
149+
var args = new HashMap<String, Object>();
150+
args.put("bundleId", bundleId);
151+
args.put("appId", bundleId);
152+
ofNullable(options).map(BaseOptions::build).ifPresent(args::putAll);
161153
return requireNonNull(
162154
CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, args)
163155
);
164156
} catch (UnsupportedCommandException | InvalidArgumentException e) {
165157
// TODO: Remove the fallback
166-
Map args = ImmutableMap.builder()
167-
.put("bundleId", bundleId)
168-
.putAll(Optional.ofNullable(options).map(
169-
opts -> Map.of("options", opts.build())
170-
).orElseGet(Map::of))
171-
.build();
158+
var args = new HashMap<String, Object>();
159+
args.put("bundleId", bundleId);
160+
ofNullable(options).map(BaseOptions::build).ifPresent(opts -> args.put("options", opts));
172161
//noinspection RedundantCast
173162
return requireNonNull(
174163
(Boolean) CommandExecutionHelper.execute(
@@ -200,23 +189,17 @@ default void activateApp(String bundleId) {
200189
default void activateApp(String bundleId, @Nullable BaseActivateApplicationOptions options) {
201190
final String extName = "mobile: activateApp";
202191
try {
203-
Map<String, Object> args = ImmutableMap.<String, Object>builder()
204-
.put("bundleId", bundleId)
205-
.put("appId", bundleId)
206-
.putAll(Optional.ofNullable(options).map(BaseOptions::build).orElseGet(Collections::emptyMap))
207-
.build();
192+
var args = new HashMap<String, Object>();
193+
args.put("bundleId", bundleId);
194+
args.put("appId", bundleId);
195+
ofNullable(options).map(BaseOptions::build).ifPresent(args::putAll);
208196
CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, args);
209197
} catch (UnsupportedCommandException | InvalidArgumentException e) {
210198
// TODO: Remove the fallback
211-
Map args = ImmutableMap.builder()
212-
.put("bundleId", bundleId)
213-
.putAll(Optional.ofNullable(options).map(
214-
opts -> Map.of("options", opts.build())
215-
).orElseGet(Map::of))
216-
.build();
217-
CommandExecutionHelper.execute(
218-
markExtensionAbsence(extName), Map.entry(ACTIVATE_APP, args)
219-
);
199+
var args = new HashMap<String, Object>();
200+
args.put("bundleId", bundleId);
201+
ofNullable(options).map(BaseOptions::build).ifPresent(opts -> args.put("options", opts));
202+
CommandExecutionHelper.execute(markExtensionAbsence(extName), Map.entry(ACTIVATE_APP, args));
220203
}
221204
}
222205

@@ -274,22 +257,18 @@ default boolean terminateApp(String bundleId) {
274257
default boolean terminateApp(String bundleId, @Nullable BaseTerminateApplicationOptions options) {
275258
final String extName = "mobile: terminateApp";
276259
try {
277-
Map<String, Object> args = ImmutableMap.<String, Object>builder()
278-
.put("bundleId", bundleId)
279-
.put("appId", bundleId)
280-
.putAll(Optional.ofNullable(options).map(BaseOptions::build).orElseGet(Collections::emptyMap))
281-
.build();
260+
var args = new HashMap<String, Object>();
261+
args.put("bundleId", bundleId);
262+
args.put("appId", bundleId);
263+
ofNullable(options).map(BaseOptions::build).ifPresent(args::putAll);
282264
return requireNonNull(
283265
CommandExecutionHelper.executeScript(assertExtensionExists(extName), extName, args)
284266
);
285267
} catch (UnsupportedCommandException | InvalidArgumentException e) {
286268
// TODO: Remove the fallback
287-
Map args = ImmutableMap.builder()
288-
.put("bundleId", bundleId)
289-
.putAll(Optional.ofNullable(options).map(
290-
opts -> Map.of("options", opts.build())
291-
).orElseGet(Map::of))
292-
.build();
269+
var args = new HashMap<String, Object>();
270+
args.put("bundleId", bundleId);
271+
ofNullable(options).map(BaseOptions::build).ifPresent(opts -> args.put("options", opts));
293272
//noinspection RedundantCast
294273
return requireNonNull(
295274
(Boolean) CommandExecutionHelper.execute(

src/main/java/io/appium/java_client/MobileCommand.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import javax.annotation.Nullable;
2828
import java.nio.charset.StandardCharsets;
2929
import java.time.Duration;
30+
import java.util.Collections;
3031
import java.util.HashMap;
3132
import java.util.Map;
3233
import java.util.Optional;
@@ -610,12 +611,12 @@ public static ImmutableMap<String, Object> prepareArguments(String[] params,
610611
public static Map.Entry<String, Map<String, ?>> compareImagesCommand(ComparisonMode mode,
611612
byte[] img1Data, byte[] img2Data,
612613
@Nullable BaseComparisonOptions options) {
613-
ImmutableMap.Builder<String, Object> argsBuilder = ImmutableMap.<String, Object>builder()
614-
.put("mode", mode.toString())
615-
.put("firstImage", new String(img1Data, StandardCharsets.UTF_8))
616-
.put("secondImage", new String(img2Data, StandardCharsets.UTF_8));
617-
Optional.ofNullable(options).ifPresent(opts -> argsBuilder.put("options", options.build()));
618-
return Map.entry(COMPARE_IMAGES, argsBuilder.build());
614+
var args = new HashMap<String, Object>();
615+
args.put("mode", mode.toString());
616+
args.put("firstImage", new String(img1Data, StandardCharsets.UTF_8));
617+
args.put("secondImage", new String(img2Data, StandardCharsets.UTF_8));
618+
Optional.ofNullable(options).ifPresent(opts -> args.put("options", options.build()));
619+
return Map.entry(COMPARE_IMAGES, Collections.unmodifiableMap(args));
619620
}
620621

621622
/**

src/main/java/io/appium/java_client/MultiTouchAction.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616

1717
package io.appium.java_client;
1818

19-
import com.google.common.collect.ImmutableList;
20-
19+
import java.util.ArrayList;
2120
import java.util.List;
2221
import java.util.Map;
2322

@@ -53,12 +52,12 @@
5352
@Deprecated
5453
public class MultiTouchAction implements PerformsActions<MultiTouchAction> {
5554

56-
private ImmutableList.Builder<TouchAction> actions;
55+
private List<TouchAction> actions;
5756
private PerformsTouchActions performsTouchActions;
5857

5958
public MultiTouchAction(PerformsTouchActions performsTouchActions) {
6059
this.performsTouchActions = performsTouchActions;
61-
actions = ImmutableList.builder();
60+
actions = new ArrayList<>();
6261
}
6362

6463
/**
@@ -76,21 +75,19 @@ public MultiTouchAction add(TouchAction action) {
7675
* Perform the multi-touch action on the mobile performsTouchActions.
7776
*/
7877
public MultiTouchAction perform() {
79-
List<TouchAction> touchActions = actions.build();
80-
checkArgument(touchActions.size() > 0,
78+
checkArgument(!actions.isEmpty(),
8179
"MultiTouch action must have at least one TouchAction added before it can be performed");
82-
if (touchActions.size() > 1) {
80+
if (actions.size() > 1) {
8381
performsTouchActions.performMultiTouchAction(this);
8482
return this;
8583
} //android doesn't like having multi-touch actions with only a single TouchAction...
86-
performsTouchActions.performTouchAction(touchActions.get(0));
84+
performsTouchActions.performTouchAction(actions.get(0));
8785
return this;
8886
}
8987

9088
protected Map<String, List<Object>> getParameters() {
9189
return Map.of("actions",
92-
actions.build().stream().map(touchAction ->
93-
touchAction.getParameters().get("actions")).collect(toList())
90+
actions.stream().map(touchAction -> touchAction.getParameters().get("actions")).collect(toList())
9491
);
9592
}
9693

@@ -100,7 +97,7 @@ protected Map<String, List<Object>> getParameters() {
10097
* @return this MultiTouchAction, for possible segmented-touches.
10198
*/
10299
protected MultiTouchAction clearActions() {
103-
actions = ImmutableList.builder();
100+
actions = new ArrayList<>();
104101
return this;
105102
}
106103
}

0 commit comments

Comments
 (0)