package com.fteams.siftrain.entities; import com.fteams.siftrain.assets.GlobalConfiguration; import com.fteams.siftrain.util.SongUtils; public class SongFileInfo implements Comparable<SongFileInfo> { private String resourceName; public String song_name; public Integer difficulty; private String fileName; public String music_file; public String difficulty_name; private Long crc; public String toString() { return (difficulty_name == null ? SongUtils.getDifficulty(difficulty) : difficulty_name); } public String getResourceName() { return resourceName; } public void setResourceName(String resourceName) { this.resourceName = resourceName; } @Override public int compareTo(SongFileInfo o) { if (GlobalConfiguration.sortMode == SongUtils.SORTING_MODE_FILE_NAME) { if (!o.getResourceName().equals(resourceName)) { return (GlobalConfiguration.sortOrder == SongUtils.SORTING_MODE_ASCENDING ? 1 : -1) * resourceName.compareTo(o.getResourceName()); } if (!song_name.equals(o.song_name)) { return (GlobalConfiguration.sortOrder == SongUtils.SORTING_MODE_ASCENDING ? 1 : -1) * song_name.compareTo(o.song_name); } } else if (GlobalConfiguration.sortMode == SongUtils.SORTING_MODE_SONG_NAME) { if (!song_name.equals(o.song_name)) { return (GlobalConfiguration.sortOrder == SongUtils.SORTING_MODE_ASCENDING ? 1 : -1) * song_name.compareTo(o.song_name); } if (!o.getResourceName().equals(resourceName)) { return (GlobalConfiguration.sortOrder == SongUtils.SORTING_MODE_ASCENDING ? 1 : -1) * resourceName.compareTo(o.getResourceName()); } } // always check difficulty last to keep them in order if (!difficulty.equals(o.difficulty)) { return (GlobalConfiguration.sortOrder == SongUtils.SORTING_MODE_ASCENDING ? 1 : -1) * difficulty.compareTo(o.difficulty); } if (difficulty_name != null && o.difficulty_name != null && !difficulty_name.equals(o.difficulty_name)) { return (GlobalConfiguration.sortOrder == SongUtils.SORTING_MODE_ASCENDING ? 1 : -1) * difficulty_name.compareTo(o.difficulty_name); } return 0; } public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public Long getCrc() { return crc; } public void setCrc(Long crc) { this.crc = crc; } public String to2LineString() { return song_name + "\n[" + (difficulty_name == null ? SongUtils.getDifficulty(difficulty) : difficulty_name) + "]"; } }