Skip to content

Commit 48ad73f

Browse files
author
Yevhen Babiichuk (DustDFG)
committed
Refactor settings/tabs/TabsJsonHelper.java to use java streams
1 parent d7dffb7 commit 48ad73f

1 file changed

Lines changed: 10 additions & 24 deletions

File tree

app/src/main/java/org/schabi/newpipe/settings/tabs/TabsJsonHelper.java

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@
99
import com.grack.nanojson.JsonStringWriter;
1010
import com.grack.nanojson.JsonWriter;
1111

12-
import java.util.ArrayList;
1312
import java.util.List;
13+
import java.util.Objects;
14+
import java.util.stream.Collectors;
1415

1516
/**
1617
* Class to get a JSON representation of a list of tabs, and the other way around.
@@ -44,39 +45,24 @@ public static List<Tab> getTabsFromJson(@Nullable final String tabsJson)
4445
return getDefaultTabs();
4546
}
4647

47-
final List<Tab> returnTabs = new ArrayList<>();
48-
49-
final JsonObject outerJsonObject;
5048
try {
51-
outerJsonObject = JsonParser.object().from(tabsJson);
49+
final JsonObject outerJsonObject = JsonParser.object().from(tabsJson);
5250

53-
if (!outerJsonObject.has(JSON_TABS_ARRAY_KEY)) {
51+
final JsonArray tabsArray = outerJsonObject.getArray(JSON_TABS_ARRAY_KEY, null);
52+
if (tabsArray == null) {
5453
throw new InvalidJsonException("JSON doesn't contain \"" + JSON_TABS_ARRAY_KEY
5554
+ "\" array");
5655
}
5756

58-
final JsonArray tabsArray = outerJsonObject.getArray(JSON_TABS_ARRAY_KEY);
59-
60-
for (final Object o : tabsArray) {
61-
if (!(o instanceof JsonObject)) {
62-
continue;
63-
}
57+
final var returnTabs = tabsArray.streamAsJsonObjects()
58+
.map(Tab::from)
59+
.filter(Objects::nonNull)
60+
.collect(Collectors.toUnmodifiableList());
6461

65-
final Tab tab = Tab.from((JsonObject) o);
66-
67-
if (tab != null) {
68-
returnTabs.add(tab);
69-
}
70-
}
62+
return returnTabs.isEmpty() ? getDefaultTabs() : returnTabs;
7163
} catch (final JsonParserException e) {
7264
throw new InvalidJsonException(e);
7365
}
74-
75-
if (returnTabs.isEmpty()) {
76-
return getDefaultTabs();
77-
}
78-
79-
return returnTabs;
8066
}
8167

8268
/**

0 commit comments

Comments
 (0)