Skip to content

Commit 20484e2

Browse files
committed
refactor: removal of more blatant code smells
1 parent 3e21b5d commit 20484e2

14 files changed

Lines changed: 34 additions & 100 deletions

src/model/AbstractDropmixDataRecord.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,10 @@ public String toString() {
3232
return (this.modified ? "[MODIFIED]" : "") + Helpers.byteArrayToString(Helpers.getNRange(raw, 4, dataLength));
3333
}
3434

35-
public boolean validateUpdatedData(byte[] newData) {
36-
if (
37-
newData.length != dataLength
38-
) {
39-
return false;
40-
}
41-
return true;
42-
}
43-
4435
public static int getStartIndex(byte[] rawData, byte[] startSequence) {
4536
outer:
4637
for (int i = 0; i < rawData.length; i++) {
4738
if (rawData[i] == startSequence[0]) {
48-
inner:
4939
for (int j = 1; j < startSequence.length && (j+i) < rawData.length; j++ ) {
5040
if (rawData[i + j] != startSequence[j]) {
5141
continue outer;
@@ -56,6 +46,4 @@ public static int getStartIndex(byte[] rawData, byte[] startSequence) {
5646
}
5747
return -1;
5848
}
59-
60-
public abstract String[] getHeadings();
6149
}

src/model/AppState.java

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,13 @@
55
import util.Helpers;
66

77
import java.io.File;
8-
import java.io.IOException;
9-
import java.nio.file.Files;
10-
import java.nio.file.Paths;
118
import java.util.*;
129

1310
public class AppState {
1411
public static AppState instance = new AppState();
1512
public File apkFile;
1613
public File dataZip;
17-
public byte[] rawData;
18-
public TreeMap<String, String> swapOptions = new TreeMap<String, String>();;
14+
public TreeMap<String, String> swapOptions = new TreeMap<>();
1915
public TreeMap<String, String> playlistSwap = new TreeMap<>();
2016
public JadbDevice adbDevice;
2117
public DropmixSharedAssets assetsHandler;
@@ -48,7 +44,7 @@ public void setData(byte[] sharedAssets, byte[] level0) {
4844
}
4945

5046
public DropmixSharedAssetsCard[] getCards() {
51-
ArrayList<DropmixSharedAssetsCard> cards = new ArrayList<DropmixSharedAssetsCard>();
47+
ArrayList<DropmixSharedAssetsCard> cards = new ArrayList<>();
5248
try {
5349
int seasonIdx = 0;
5450
DropmixSharedAssetsSeason season = this.assetsHandler.seasons.get(seasonIdx++);
@@ -63,7 +59,7 @@ public DropmixSharedAssetsCard[] getCards() {
6359
}
6460
}
6561
public DropmixSharedAssetsPlaylist[] getPlaylists() {
66-
Set<String> playlistNames = new HashSet<String>();
62+
Set<String> playlistNames = new HashSet<>();
6763
for (DropmixSharedAssetsCard c: AppState.getInstance().getCards()) {
6864
playlistNames.add(c.data.get(DropmixSharedAssetsCard.SeriesIcon));
6965
}
@@ -77,9 +73,8 @@ public DropmixSharedAssetsPlaylist[] getPlaylists() {
7773
seasons.add(playlist);
7874
}
7975
// this is required to sort the playlists in the common order
80-
Collections.sort(seasons, new Comparator<DropmixSharedAssetsPlaylist>(){
81-
public int compare(DropmixSharedAssetsPlaylist o1, DropmixSharedAssetsPlaylist o2)
82-
{
76+
seasons.sort(new Comparator<DropmixSharedAssetsPlaylist>() {
77+
public int compare(DropmixSharedAssetsPlaylist o1, DropmixSharedAssetsPlaylist o2) {
8378
int val = o1.season.compareTo(o2.season);
8479
if (val == 0) {
8580
// baffler and promo are both empty
@@ -91,6 +86,9 @@ public int compare(DropmixSharedAssetsPlaylist o1, DropmixSharedAssetsPlaylist o
9186
}
9287
int card1 = Integer.parseInt(o1.cardId);
9388
int card2 = Integer.parseInt(o2.cardId);
89+
if (card1 == card2) {
90+
return 0;
91+
}
9492
return card1 > card2 ? 1 : -1;
9593
}
9694
return val;
@@ -117,7 +115,7 @@ public void setPlaylistSwap(String p1, String p2) throws Exception {
117115
throw new Exception("value-in-use");
118116
}
119117
for(DropmixSharedAssetsPlaylist pl : this.getPlaylists()) {
120-
if (pl.name == p1 || pl.name == p2) {
118+
if (pl.name.equals(p1) || pl.name.equals(p2)) {
121119
if (pl.playlistCount != 15) {
122120
throw new Exception("invalid-playlist");
123121
}
@@ -187,13 +185,13 @@ public static TreeMap<String, String> getCardSwapFromPlaylist(TreeMap<String, St
187185
for (String key: plSwap.values()) {
188186
String value = plSwap.get(key);
189187
String validator = plSwap.get(value);
190-
if (value == null || validator == null || !key.equals(validator)) {
188+
if (value == null || !key.equals(validator)) {
191189
throw new RuntimeException("playlist-swap-sync-issue");
192190
}
193191
}
194192
String[] playlistNames = plSwap.keySet().toArray(new String[0]);
195193
DropmixSharedAssetsPlaylist[] playlists = getInstance().getPlaylists();
196-
TreeMap<String, DropmixSharedAssetsPlaylist> dropmixSharedAssetsPlaylistTreeMap = new TreeMap<String, DropmixSharedAssetsPlaylist>();
194+
TreeMap<String, DropmixSharedAssetsPlaylist> dropmixSharedAssetsPlaylistTreeMap = new TreeMap<>();
197195
TreeMap<String, String> generatedCardSwap = new TreeMap<>();
198196
Set<String> alreadySwappedPlaylists = new HashSet<>();
199197
for (DropmixSharedAssetsPlaylist pl: playlists) {
@@ -213,7 +211,7 @@ public static TreeMap<String, String> getCardSwapFromPlaylist(TreeMap<String, St
213211
generatedCardSwap.put(srcPl.cards[i], swapPl.cards[i]);
214212
generatedCardSwap.put(swapPl.cards[i], srcPl.cards[i]);
215213
} catch (Exception e) {
216-
continue;
214+
e.printStackTrace();
217215
}
218216
}
219217
if (includeBafflers) {

src/model/AppStateTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public void getCardSwapFromPlaylist() {
1414
plSwap.put("highness", "sweets");
1515
plSwap.put("sweets", "highness");
1616

17-
TreeMap<String, String> cardSwap = AppState.getCardSwapFromPlaylist(plSwap);
17+
TreeMap<String, String> cardSwap = AppState.getCardSwapFromPlaylist(plSwap, false);
1818
Assertions.assertEquals(cardSwap.size(), 30);
1919
Assertions.assertTrue(cardSwap.containsKey("LIC_0058_Wild"));
2020
Assertions.assertTrue(cardSwap.containsValue("LIC_0058_Wild"));
@@ -25,7 +25,7 @@ public void getCardSwapFromPlaylist() {
2525
plSwap.clear();
2626
plSwap.put("baffler", "promo");
2727
plSwap.put("promo", "baffler");
28-
cardSwap = AppState.getCardSwapFromPlaylist(plSwap);
28+
AppState.getCardSwapFromPlaylist(plSwap, false);
2929
} catch (RuntimeException e) {
3030
errorMessage = e.getMessage();
3131
}
@@ -37,7 +37,7 @@ public void getCardSwapFromPlaylist() {
3737
plSwap.put("instinct", "bomb");
3838
plSwap.put("chiller", "instinct");
3939
plSwap.put("bomb", "chiller");
40-
cardSwap = AppState.getCardSwapFromPlaylist(plSwap);
40+
AppState.getCardSwapFromPlaylist(plSwap, false);
4141
} catch (RuntimeException e) {
4242
errorMessage = e.getMessage();
4343
}

src/model/DropmixLevel0.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package model;
22

3-
import util.Helpers;
4-
53
import java.util.ArrayList;
64
import java.util.HashSet;
75
import java.util.TreeMap;
@@ -26,7 +24,7 @@ public DropmixLevel0(byte[] raw) {
2624
}
2725
this.startIdx = AbstractDropmixDataRecord.getStartIndex(raw, header);
2826
this.raw = raw;
29-
DropmixLevel0Card headingRow = new DropmixLevel0Card(raw, this.startIdx, new HashSet<String>(), this.iOS);
27+
DropmixLevel0Card headingRow = new DropmixLevel0Card(raw, this.startIdx, new HashSet<>(), this.iOS);
3028
for (String h: DropmixLevel0Card.headings) {
3129
if (!h.equals(headingRow.card.data.get(h))) {
3230
throw new RuntimeException("db-corrupt:bad-heading:"+ h);
@@ -36,7 +34,7 @@ public DropmixLevel0(byte[] raw) {
3634
int currentStart = headingRow.startIdx + headingRow.raw.length;
3735
int counter = 0;
3836
while (counter < 440) {
39-
DropmixLevel0Card newCard = new DropmixLevel0Card(raw, currentStart, new HashSet<String>(), this.iOS);
37+
DropmixLevel0Card newCard = new DropmixLevel0Card(raw, currentStart, new HashSet<>(), this.iOS);
4038
currentStart = newCard.startIdx + newCard.raw.length;
4139
cards[counter] = newCard;
4240
counter++;
@@ -60,7 +58,6 @@ public byte[] applySwap(TreeMap<String, String> cardSwaps) {
6058
DropmixLevel0 modifiedLevel0 = new DropmixLevel0(cloned);
6159
ArrayList<String> alreadySwapped = new ArrayList<>();
6260
cardSwaps.forEach((s1, s2) -> {
63-
int idx = 0;
6461
for (DropmixLevel0Card c : modifiedLevel0.cards) {
6562
if (alreadySwapped.size() == cardSwaps.values().size()) {
6663
break;
@@ -74,7 +71,6 @@ public byte[] applySwap(TreeMap<String, String> cardSwaps) {
7471
c.updateEntry("CID", s1);
7572
alreadySwapped.add(s2);
7673
}
77-
idx++;
7874
}
7975
});
8076
return modifiedLevel0.backToByteArray();

src/model/DropmixLevel0Card.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,12 @@ public static String[] rowParser(String value) {
113113
boolean firstEmptyInstancePassed = false;
114114
for (String quoteChunk: quotesHandled) {
115115
// skip first empty value
116-
if (quoteChunk.equals("") && builder.size() == 0) {
116+
if (quoteChunk.isEmpty() && builder.isEmpty()) {
117117
continue;
118118
}
119-
if (!firstEmptyInstancePassed && quoteChunk.length() == 0) {
119+
if (!firstEmptyInstancePassed && quoteChunk.isEmpty()) {
120120
firstEmptyInstancePassed = true;
121-
} else if (quoteChunk.length() > 0 && quoteChunk.charAt(0) == ',') {
121+
} else if (!quoteChunk.isEmpty() && quoteChunk.charAt(0) == ',') {
122122
// if comma between quoted fields, skip
123123
if (quoteChunk.length() == 1) {
124124
continue;
@@ -178,7 +178,7 @@ public byte[] backToByteArray() {
178178
field = Helpers.addQuotes(field);
179179
}
180180
} catch (Exception e) {
181-
if (field.length() > 0) {
181+
if (!field.isEmpty()) {
182182
field = Helpers.addQuotes(field);
183183
}
184184
}
@@ -200,10 +200,7 @@ public byte[] backToByteArray() {
200200
}
201201
return newRaw;
202202
}
203-
@Override
204-
public String[] getHeadings() {
205-
return DropmixLevel0Card.headings;
206-
}
203+
207204
public String toString() {
208205
StringBuilder sb = new StringBuilder();
209206
for (String h: headings) {
@@ -220,7 +217,7 @@ public String toString() {
220217
data = Helpers.addQuotes(data);
221218
}
222219
} catch (Exception e) {
223-
if (data.length() > 0) {
220+
if (!data.isEmpty()) {
224221
data = Helpers.addQuotes(data);
225222
}
226223
}

src/model/DropmixLevel0Test.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import org.junit.jupiter.api.Test;
55
import util.Helpers;
66

7-
import java.util.ArrayList;
87
import java.util.TreeMap;
98

109
public class DropmixLevel0Test {
@@ -19,9 +18,8 @@ public void testAssets() {
1918
}
2019

2120
// verifies changing fields doesn't result in the database becoming corrupted
22-
// @Test
21+
@Test
2322
public void testDatabaseConsistency() {
24-
TreeMap<String, String> swapCards = new TreeMap<>();
2523
String[][] cardSwaps = new String[][]{
2624
// two swaps of just season 1, different lengths
2725
new String[]{ "LIC_0058_Wild", "FX_0022" },
@@ -36,13 +34,6 @@ public void testDatabaseConsistency() {
3634
};
3735
String CID = "CID";
3836

39-
for (String[] swap: cardSwaps) {
40-
if (swap[0] == null) {
41-
continue;
42-
}
43-
swapCards.put(swap[0], swap[1]);
44-
swapCards.put(swap[1], swap[0]);
45-
}
4637
int i = 0;
4738
for (DropmixLevel0Card c: dropmixLevel0.cards) {
4839
String cardId = c.card.data.get(CID);

src/model/DropmixSharedAssetsPlaylist.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,9 @@
22

33
import util.Helpers;
44

5-
import java.util.TreeMap;
6-
75
public class DropmixSharedAssetsPlaylist {
86
public String[] cards;
97
public int playlistCount;
10-
public String baffler;
118
public String playlistType;
129
public String season;
1310
public String name;
@@ -87,8 +84,4 @@ public DropmixSharedAssetsPlaylist(String iconName) {
8784
}
8885
}
8986
}
90-
public String getBaffler(String iconName) {
91-
baffler = "";
92-
return baffler;
93-
}
9487
}

src/model/DropmixSharedAssetsSeason.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public DropmixSharedAssetsSeason(byte[] rawTableData, byte[] startHeader, int st
3333
this.cards = new DropmixSharedAssetsCard[this.rows.length - 1];
3434
for (int i = 0; i < this.cards.length; i++) {
3535
this.cards[i] = new DropmixSharedAssetsCard(this.rows[i+1]);
36-
cardIndexRef.put(this.cards[i].data.get(DropmixSharedAssetsCard.SourceCID), Integer.valueOf(i));
36+
cardIndexRef.put(this.cards[i].data.get(DropmixSharedAssetsCard.SourceCID), i);
3737
}
3838
}
3939

@@ -54,13 +54,7 @@ public byte[] backToByteArray(boolean includeEndNewLine) {
5454
}
5555
return seasonByteArray;
5656
}
57-
static String getDb(byte[] b) {
58-
StringBuilder sb = new StringBuilder();
59-
for (byte a: b) {
60-
sb.append((char) a);
61-
}
62-
return sb.toString();
63-
}
57+
6458
/**/
6559
public String[][] toNestedString() {
6660
String[][] nestedData = new String[this.cards.length + 1][this.columns.length];

src/model/DropmixSharedAssetsTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
import java.util.TreeMap;
88

99
class DropmixSharedAssetsTest {
10-
Helpers helper = new Helpers();
11-
DropmixSharedAssets dropmixSharedAssets = new DropmixSharedAssets(helper.loadFile("sharedassets0.assets.split194"));
10+
DropmixSharedAssets dropmixSharedAssets = new DropmixSharedAssets(Helpers.loadFile("sharedassets0.assets.split194"));
1211

1312
// @Test
1413
// void validateConstructor() {
@@ -82,7 +81,6 @@ void applySwapOfPlaylists() {
8281
int lastIdx = 0;
8382
for (int k = 0; k < original.length; k++) {
8483
if (original[k] != modified[k] && (k - lastIdx) > range) {
85-
lastIdx = k;
8684
byte[] r1 = Helpers.getNRange(original, k - range, range * 2);
8785
byte[] r2 = Helpers.getNRange(modified, k - range, range * 2);
8886
StringBuilder a1 = new StringBuilder();

src/ui/UIPlaylistActions.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ public void actionPerformed(ActionEvent e) {
4848
freshDecompile(true, false);
4949
}
5050
});
51-
modApkBtn.setEnabled(as.playlistSwap.size() > 0 && verifiedModApk == null && as.currentProcess.equals(Process.NONE));
51+
modApkBtn.setEnabled(!as.playlistSwap.isEmpty() && verifiedModApk == null && as.currentProcess.equals(Process.NONE));
5252
add(modApkBtn);
5353
JButton safeModApkBtn = SwingFactory.buildButton("Safe Swap", new ActionListener() {
5454
@Override
5555
public void actionPerformed(ActionEvent e) {
5656
freshDecompile(true, true);
5757
}
5858
});
59-
safeModApkBtn.setEnabled(as.playlistSwap.size() > 0 && verifiedModApk == null);
59+
safeModApkBtn.setEnabled(!as.playlistSwap.isEmpty() && verifiedModApk == null);
6060
add(safeModApkBtn);
6161

6262
JButton installApkBtn = SwingFactory.buildButton("Install APK", new ActionListener() {
@@ -85,7 +85,7 @@ public void actionPerformed(ActionEvent e) {
8585
System.out.println(verifiedModApk.getBytes().length + " " + saved.toPath());
8686
Path savePath = saved.toPath();
8787
if (!savePath.toString().endsWith(".apk")) {
88-
savePath = Paths.get(savePath.toString() + ".apk");
88+
savePath = Paths.get(savePath + ".apk");
8989
}
9090
Files.write(savePath, Files.readAllBytes(Paths.get(verifiedModApk)));
9191
} catch (IOException ex) {}
@@ -174,9 +174,7 @@ public void clearState() {
174174
if (this.verifiedModApk != null) {
175175
Files.deleteIfExists(Paths.get(this.verifiedModApk));
176176
}
177-
} catch (IOException e) {
178-
179-
}
177+
} catch (IOException e) { }
180178
this.verifiedModApk = null;
181179
renderActions();
182180
}

0 commit comments

Comments
 (0)