Skip to content

Commit 92d6999

Browse files
committedJan 19, 2025·
Clean up basic filtering and sorting method
1 parent ae22f32 commit 92d6999

File tree

3 files changed

+95
-59
lines changed

3 files changed

+95
-59
lines changed
 

‎app/src/main/java/com/hiddenramblings/tagmo/adapter/BrowserAdapter.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,8 @@ class BrowserAdapter(
238238
if (filteredData === filterResults.values) return
239239
@Suppress("UNCHECKED_CAST")
240240
filterResults.values?.let { filteredData = it as ArrayList<AmiiboFile?> }
241-
if (itemCount > 0) Collections.sort(filteredData, AmiiboFileComparator(settings))
241+
if (filteredData.isNotEmpty())
242+
Collections.sort(filteredData, AmiiboFileComparator(settings))
242243
notifyDataSetChanged()
243244
}
244245
}

‎app/src/main/java/com/hiddenramblings/tagmo/adapter/FoomiiboAdapter.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ class FoomiiboAdapter(
186186
override fun publishResults(charSequence: CharSequence?, filterResults: FilterResults) {
187187
if (filteredData === filterResults.values) return
188188
filterResults.values?.let { filteredData = it as ArrayList<Amiibo> }
189-
if (itemCount > 0) {
189+
if (filteredData.isNotEmpty()) {
190190
Collections.sort(filteredData, AmiiboComparator(settings))
191191
val missingFiles: ArrayList<Amiibo> = arrayListOf()
192192
val amiiboIds: HashSet<Long> = hashSetOf()

‎app/src/main/java/com/hiddenramblings/tagmo/amiibo/AmiiboComparator.kt

+92-57
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,29 @@ class AmiiboComparator(var settings: BrowserSettings) : Comparator<Amiibo> {
1515
settings.amiiboManager?.let {
1616
val amiibo1 = it.amiibos[amiiboId1]
1717
val amiibo2 = it.amiibos[amiiboId2]
18-
if (null == amiibo1 && null == amiibo2)
19-
value = 0
20-
else if (null == amiibo1)
21-
value = 1
22-
else if (null == amiibo2)
23-
value = -1
24-
else if (sort == SORT.NAME.value) {
25-
value = compareAmiiboName(amiibo1, amiibo2)
26-
} else if (sort == SORT.AMIIBO_SERIES.value) {
27-
value = compareAmiiboSeries(amiibo1, amiibo2)
28-
} else if (sort == SORT.AMIIBO_TYPE.value) {
29-
value = compareAmiiboType(amiibo1, amiibo2)
30-
} else if (sort == SORT.GAME_SERIES.value) {
31-
value = compareGameSeries(amiibo1, amiibo2)
32-
} else if (sort == SORT.CHARACTER.value) {
33-
value = compareCharacter(amiibo1, amiibo2)
18+
value = when {
19+
null == amiibo1 && null == amiibo2 -> 0
20+
null == amiibo1 -> 1
21+
null == amiibo2 -> -1
22+
sort == SORT.NAME.value -> {
23+
compareAmiiboName(amiibo1, amiibo2)
24+
}
25+
sort == SORT.AMIIBO_SERIES.value -> {
26+
compareAmiiboSeries(amiibo1, amiibo2)
27+
}
28+
sort == SORT.AMIIBO_TYPE.value -> {
29+
compareAmiiboType(amiibo1, amiibo2)
30+
}
31+
sort == SORT.GAME_SERIES.value -> {
32+
compareGameSeries(amiibo1, amiibo2)
33+
}
34+
sort == SORT.CHARACTER.value -> {
35+
compareCharacter(amiibo1, amiibo2)
36+
}
37+
else -> {
38+
amiibo1.compareTo(amiibo2)
39+
}
3440
}
35-
if (value == 0 && null != amiibo1) value = amiibo1.compareTo(amiibo2!!)
3641
}
3742
if (value == 0) value = compareAmiiboId(amiiboId1, amiiboId2)
3843
}
@@ -46,70 +51,100 @@ class AmiiboComparator(var settings: BrowserSettings) : Comparator<Amiibo> {
4651
private fun compareAmiiboName(amiibo1: Amiibo, amiibo2: Amiibo): Int {
4752
val name1 = amiibo1.name
4853
val name2 = amiibo2.name
49-
if (null == name1 && null == name2) {
50-
return 0
51-
}
52-
if (null == name1) {
53-
return 1
54-
} else if (null == name2) {
55-
return -1
54+
return when {
55+
null == name1 && null == name2 -> {
56+
0
57+
}
58+
59+
null == name1 -> {
60+
1
61+
}
62+
63+
null == name2 -> {
64+
-1
65+
}
66+
67+
else -> name1.compareTo(name2)
5668
}
57-
return name1.compareTo(name2)
5869
}
5970

6071
private fun compareAmiiboSeries(amiibo1: Amiibo, amiibo2: Amiibo): Int {
6172
val amiiboSeries1 = amiibo1.amiiboSeries
6273
val amiiboSeries2 = amiibo2.amiiboSeries
63-
if (null == amiiboSeries1 && null == amiiboSeries2) {
64-
return 0
65-
}
66-
if (null == amiiboSeries1) {
67-
return 1
68-
} else if (null == amiiboSeries2) {
69-
return -1
74+
return when {
75+
null == amiiboSeries1 && null == amiiboSeries2 -> {
76+
0
77+
}
78+
79+
null == amiiboSeries1 -> {
80+
1
81+
}
82+
83+
null == amiiboSeries2 -> {
84+
-1
85+
}
86+
87+
else -> amiiboSeries1.compareTo(amiiboSeries2)
7088
}
71-
return amiiboSeries1.compareTo(amiiboSeries2)
7289
}
7390

7491
private fun compareAmiiboType(amiibo1: Amiibo, amiibo2: Amiibo): Int {
7592
val amiiboType1 = amiibo1.amiiboType
7693
val amiiboType2 = amiibo2.amiiboType
77-
if (null == amiiboType1 && null == amiiboType2) {
78-
return 0
79-
}
80-
if (null == amiiboType1) {
81-
return 1
82-
} else if (null == amiiboType2) {
83-
return -1
94+
return when {
95+
null == amiiboType1 && null == amiiboType2 -> {
96+
0
97+
}
98+
99+
null == amiiboType1 -> {
100+
1
101+
}
102+
103+
null == amiiboType2 -> {
104+
-1
105+
}
106+
107+
else -> amiiboType1.compareTo(amiiboType2)
84108
}
85-
return amiiboType1.compareTo(amiiboType2)
86109
}
87110

88111
private fun compareGameSeries(amiibo1: Amiibo, amiibo2: Amiibo): Int {
89112
val gameSeries1 = amiibo1.gameSeries
90113
val gameSeries2 = amiibo2.gameSeries
91-
if (null == gameSeries1 && null == gameSeries2) {
92-
return 0
93-
}
94-
if (null == gameSeries1) {
95-
return 1
96-
} else if (null == gameSeries2) {
97-
return -1
114+
return when {
115+
null == gameSeries1 && null == gameSeries2 -> {
116+
0
117+
}
118+
119+
null == gameSeries1 -> {
120+
1
121+
}
122+
123+
null == gameSeries2 -> {
124+
-1
125+
}
126+
127+
else -> gameSeries1.compareTo(gameSeries2)
98128
}
99-
return gameSeries1.compareTo(gameSeries2)
100129
}
101130

102131
private fun compareCharacter(amiibo1: Amiibo, amiibo2: Amiibo): Int {
103132
val character1 = amiibo1.character
104133
val character2 = amiibo2.character
105-
if (null == character1 && null == character2) {
106-
return 0
107-
}
108-
if (null == character1) {
109-
return 1
110-
} else if (null == character2) {
111-
return -1
134+
return when {
135+
null == character1 && null == character2 -> {
136+
0
137+
}
138+
139+
null == character1 -> {
140+
1
141+
}
142+
143+
null == character2 -> {
144+
-1
145+
}
146+
147+
else -> character1.compareTo(character2)
112148
}
113-
return character1.compareTo(character2)
114149
}
115150
}

0 commit comments

Comments
 (0)
Please sign in to comment.