Skip to content

Commit

Permalink
Possible fix for #326 (#363)
Browse files Browse the repository at this point in the history
  • Loading branch information
tastybento authored Oct 24, 2024
1 parent 2843a8e commit 17dc22e
Showing 1 changed file with 18 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -113,32 +113,36 @@ public class ChallengesManager
* This comparator orders challenges by their level, order and name.
*/
private final Comparator<Challenge> challengeComparator = (o1, o2) -> {
// Get the levels
ChallengeLevel o1Level = this.getLevel(o1.getLevel());
ChallengeLevel o2Level = this.getLevel(o2.getLevel());

if (o1Level == null && o2Level == null)
{
// Handle null levels consistently
if (o1Level == null && o2Level == null) {
// Both levels are null, compare by order
return Integer.compare(o1.getOrder(), o2.getOrder());
}
else if (o1Level == null)
{
} else if (o1Level == null) {
// If o1 level is null, it should be ordered lower
return -1;
}
else if (o2Level == null)
{
} else if (o2Level == null) {
// If o2 level is null, it should be ordered lower
return 1;
}
else if (o1Level.equals(o2Level))
{

// If both levels are non-null, compare their orders
int levelComparison = Integer.compare(o1Level.getOrder(), o2Level.getOrder());

// If levels are the same, compare by challenge order
if (levelComparison == 0) {
return Integer.compare(o1.getOrder(), o2.getOrder());
}
else
{
return Integer.compare(o1Level.getOrder(), o2Level.getOrder());
}

// Return the level comparison result
return levelComparison;
};



// ---------------------------------------------------------------------
// Section: Constructor
// ---------------------------------------------------------------------
Expand Down

0 comments on commit 17dc22e

Please sign in to comment.