Skip to content

Commit

Permalink
Comparison method violates its general contract
Browse files Browse the repository at this point in the history
  • Loading branch information
AbandonedCart committed Jan 28, 2025
1 parent 5d7541f commit a9b8873
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 79 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,24 +19,12 @@ class AmiiboComparator(var settings: BrowserSettings) : Comparator<Amiibo> {
null == amiibo1 && null == amiibo2 -> 0
null == amiibo1 -> 1
null == amiibo2 -> -1
sort == SORT.NAME.value -> {
compareAmiiboName(amiibo1, amiibo2)
}
sort == SORT.AMIIBO_SERIES.value -> {
compareAmiiboSeries(amiibo1, amiibo2)
}
sort == SORT.AMIIBO_TYPE.value -> {
compareAmiiboType(amiibo1, amiibo2)
}
sort == SORT.GAME_SERIES.value -> {
compareGameSeries(amiibo1, amiibo2)
}
sort == SORT.CHARACTER.value -> {
compareCharacter(amiibo1, amiibo2)
}
else -> {
amiibo1.compareTo(amiibo2)
}
sort == SORT.NAME.value -> compareAmiiboName(amiibo1, amiibo2)
sort == SORT.AMIIBO_SERIES.value -> compareAmiiboSeries(amiibo1, amiibo2)
sort == SORT.AMIIBO_TYPE.value -> compareAmiiboType(amiibo1, amiibo2)
sort == SORT.GAME_SERIES.value -> compareGameSeries(amiibo1, amiibo2)
sort == SORT.CHARACTER.value -> compareCharacter(amiibo1, amiibo2)
else -> 0
}
}
if (value == 0) value = compareAmiiboId(amiiboId1, amiiboId2)
Expand All @@ -52,18 +40,9 @@ class AmiiboComparator(var settings: BrowserSettings) : Comparator<Amiibo> {
val name1 = amiibo1.name
val name2 = amiibo2.name
return when {
null == name1 && null == name2 -> {
0
}

null == name1 -> {
1
}

null == name2 -> {
-1
}

null == name1 && null == name2 -> 0
null == name1 -> 1
null == name2 -> -1
else -> name1.compareTo(name2)
}
}
Expand All @@ -72,18 +51,9 @@ class AmiiboComparator(var settings: BrowserSettings) : Comparator<Amiibo> {
val amiiboSeries1 = amiibo1.amiiboSeries
val amiiboSeries2 = amiibo2.amiiboSeries
return when {
null == amiiboSeries1 && null == amiiboSeries2 -> {
0
}

null == amiiboSeries1 -> {
1
}

null == amiiboSeries2 -> {
-1
}

null == amiiboSeries1 && null == amiiboSeries2 -> 0
null == amiiboSeries1 -> 1
null == amiiboSeries2 -> -1
else -> amiiboSeries1.compareTo(amiiboSeries2)
}
}
Expand All @@ -92,18 +62,9 @@ class AmiiboComparator(var settings: BrowserSettings) : Comparator<Amiibo> {
val amiiboType1 = amiibo1.amiiboType
val amiiboType2 = amiibo2.amiiboType
return when {
null == amiiboType1 && null == amiiboType2 -> {
0
}

null == amiiboType1 -> {
1
}

null == amiiboType2 -> {
-1
}

null == amiiboType1 && null == amiiboType2 -> 0
null == amiiboType1 -> 1
null == amiiboType2 -> -1
else -> amiiboType1.compareTo(amiiboType2)
}
}
Expand All @@ -112,18 +73,9 @@ class AmiiboComparator(var settings: BrowserSettings) : Comparator<Amiibo> {
val gameSeries1 = amiibo1.gameSeries
val gameSeries2 = amiibo2.gameSeries
return when {
null == gameSeries1 && null == gameSeries2 -> {
0
}

null == gameSeries1 -> {
1
}

null == gameSeries2 -> {
-1
}

null == gameSeries1 && null == gameSeries2 -> 0
null == gameSeries1 -> 1
null == gameSeries2 -> -1
else -> gameSeries1.compareTo(gameSeries2)
}
}
Expand All @@ -132,18 +84,9 @@ class AmiiboComparator(var settings: BrowserSettings) : Comparator<Amiibo> {
val character1 = amiibo1.character
val character2 = amiibo2.character
return when {
null == character1 && null == character2 -> {
0
}

null == character1 -> {
1
}

null == character2 -> {
-1
}

null == character1 && null == character2 -> 0
null == character1 -> 1
null == character2 -> -1
else -> character1.compareTo(character2)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -497,7 +497,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
override fun onResults(result: String?, isRawJSON: Boolean) {
result?.let {
val amiiboManager = if (isRawJSON) parse(it) else parseAmiiboAPI(it)
saveDatabase(amiiboManager, requireContext().applicationContext)
saveDatabase(amiiboManager, TagMo.appContext)
CoroutineScope(Dispatchers.Main).launch {
if (syncMessage.isShown) syncMessage.dismiss()
buildSnackbar(
Expand Down

0 comments on commit a9b8873

Please sign in to comment.