Skip to content

Commit a9b8873

Browse files
committed
Comparison method violates its general contract
1 parent 5d7541f commit a9b8873

File tree

2 files changed

+22
-79
lines changed

2 files changed

+22
-79
lines changed

Diff for: app/src/main/java/com/hiddenramblings/tagmo/amiibo/AmiiboComparator.kt

+21-78
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,12 @@ class AmiiboComparator(var settings: BrowserSettings) : Comparator<Amiibo> {
1919
null == amiibo1 && null == amiibo2 -> 0
2020
null == amiibo1 -> 1
2121
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-
}
22+
sort == SORT.NAME.value -> compareAmiiboName(amiibo1, amiibo2)
23+
sort == SORT.AMIIBO_SERIES.value -> compareAmiiboSeries(amiibo1, amiibo2)
24+
sort == SORT.AMIIBO_TYPE.value -> compareAmiiboType(amiibo1, amiibo2)
25+
sort == SORT.GAME_SERIES.value -> compareGameSeries(amiibo1, amiibo2)
26+
sort == SORT.CHARACTER.value -> compareCharacter(amiibo1, amiibo2)
27+
else -> 0
4028
}
4129
}
4230
if (value == 0) value = compareAmiiboId(amiiboId1, amiiboId2)
@@ -52,18 +40,9 @@ class AmiiboComparator(var settings: BrowserSettings) : Comparator<Amiibo> {
5240
val name1 = amiibo1.name
5341
val name2 = amiibo2.name
5442
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-
43+
null == name1 && null == name2 -> 0
44+
null == name1 -> 1
45+
null == name2 -> -1
6746
else -> name1.compareTo(name2)
6847
}
6948
}
@@ -72,18 +51,9 @@ class AmiiboComparator(var settings: BrowserSettings) : Comparator<Amiibo> {
7251
val amiiboSeries1 = amiibo1.amiiboSeries
7352
val amiiboSeries2 = amiibo2.amiiboSeries
7453
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-
54+
null == amiiboSeries1 && null == amiiboSeries2 -> 0
55+
null == amiiboSeries1 -> 1
56+
null == amiiboSeries2 -> -1
8757
else -> amiiboSeries1.compareTo(amiiboSeries2)
8858
}
8959
}
@@ -92,18 +62,9 @@ class AmiiboComparator(var settings: BrowserSettings) : Comparator<Amiibo> {
9262
val amiiboType1 = amiibo1.amiiboType
9363
val amiiboType2 = amiibo2.amiiboType
9464
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-
65+
null == amiiboType1 && null == amiiboType2 -> 0
66+
null == amiiboType1 -> 1
67+
null == amiiboType2 -> -1
10768
else -> amiiboType1.compareTo(amiiboType2)
10869
}
10970
}
@@ -112,18 +73,9 @@ class AmiiboComparator(var settings: BrowserSettings) : Comparator<Amiibo> {
11273
val gameSeries1 = amiibo1.gameSeries
11374
val gameSeries2 = amiibo2.gameSeries
11475
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-
76+
null == gameSeries1 && null == gameSeries2 -> 0
77+
null == gameSeries1 -> 1
78+
null == gameSeries2 -> -1
12779
else -> gameSeries1.compareTo(gameSeries2)
12880
}
12981
}
@@ -132,18 +84,9 @@ class AmiiboComparator(var settings: BrowserSettings) : Comparator<Amiibo> {
13284
val character1 = amiibo1.character
13385
val character2 = amiibo2.character
13486
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-
87+
null == character1 && null == character2 -> 0
88+
null == character1 -> 1
89+
null == character2 -> -1
14790
else -> character1.compareTo(character2)
14891
}
14992
}

Diff for: app/src/main/java/com/hiddenramblings/tagmo/fragment/SettingsFragment.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
497497
override fun onResults(result: String?, isRawJSON: Boolean) {
498498
result?.let {
499499
val amiiboManager = if (isRawJSON) parse(it) else parseAmiiboAPI(it)
500-
saveDatabase(amiiboManager, requireContext().applicationContext)
500+
saveDatabase(amiiboManager, TagMo.appContext)
501501
CoroutineScope(Dispatchers.Main).launch {
502502
if (syncMessage.isShown) syncMessage.dismiss()
503503
buildSnackbar(

0 commit comments

Comments
 (0)