mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-02 10:23:33 +00:00
feat: implemented additional sorting options for albums in the catalog screen
This commit is contained in:
parent
0f471a7b9f
commit
780f1c3a2e
6 changed files with 28 additions and 2 deletions
|
|
@ -4,6 +4,8 @@ import android.os.Parcelable
|
||||||
import androidx.annotation.Keep
|
import androidx.annotation.Keep
|
||||||
import com.google.gson.annotations.SerializedName
|
import com.google.gson.annotations.SerializedName
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
|
import java.time.Instant
|
||||||
|
import java.time.LocalDate
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@Keep
|
@Keep
|
||||||
|
|
@ -17,12 +19,12 @@ open class AlbumID3 : Parcelable {
|
||||||
var coverArtId: String? = null
|
var coverArtId: String? = null
|
||||||
var songCount: Int? = 0
|
var songCount: Int? = 0
|
||||||
var duration: Int? = 0
|
var duration: Int? = 0
|
||||||
var playCount: Long? = null
|
var playCount: Long? = 0
|
||||||
var created: Date? = null
|
var created: Date? = null
|
||||||
var starred: Date? = null
|
var starred: Date? = null
|
||||||
var year: Int = 0
|
var year: Int = 0
|
||||||
var genre: String? = null
|
var genre: String? = null
|
||||||
var played: String? = null
|
var played: Date? = Date(0)
|
||||||
var userRating: Int? = 0
|
var userRating: Int? = 0
|
||||||
var recordLabels: List<RecordLabel>? = null
|
var recordLabels: List<RecordLabel>? = null
|
||||||
var musicBrainzId: String? = null
|
var musicBrainzId: String? = null
|
||||||
|
|
|
||||||
|
|
@ -169,6 +169,14 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
|
||||||
albums.sort(Comparator.comparing(AlbumID3::getCreated));
|
albums.sort(Comparator.comparing(AlbumID3::getCreated));
|
||||||
Collections.reverse(albums);
|
Collections.reverse(albums);
|
||||||
break;
|
break;
|
||||||
|
case Constants.ALBUM_ORDER_BY_RECENTLY_PLAYED:
|
||||||
|
albums.sort(Comparator.comparing(AlbumID3::getPlayed));
|
||||||
|
Collections.reverse(albums);
|
||||||
|
break;
|
||||||
|
case Constants.ALBUM_ORDER_BY_MOST_PLAYED:
|
||||||
|
albums.sort(Comparator.comparing(AlbumID3::getPlayCount));
|
||||||
|
Collections.reverse(albums);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
|
|
|
||||||
|
|
@ -187,6 +187,12 @@ public class AlbumCatalogueFragment extends Fragment implements ClickCallback {
|
||||||
} else if (menuItem.getItemId() == R.id.menu_album_sort_recently_added) {
|
} else if (menuItem.getItemId() == R.id.menu_album_sort_recently_added) {
|
||||||
albumAdapter.sort(Constants.ALBUM_ORDER_BY_RECENTLY_ADDED);
|
albumAdapter.sort(Constants.ALBUM_ORDER_BY_RECENTLY_ADDED);
|
||||||
return true;
|
return true;
|
||||||
|
} else if (menuItem.getItemId() == R.id.menu_album_sort_recently_played) {
|
||||||
|
albumAdapter.sort(Constants.ALBUM_ORDER_BY_RECENTLY_PLAYED);
|
||||||
|
return true;
|
||||||
|
} else if (menuItem.getItemId() == R.id.menu_album_sort_most_played) {
|
||||||
|
albumAdapter.sort(Constants.ALBUM_ORDER_BY_MOST_PLAYED);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,8 @@ object Constants {
|
||||||
const val ALBUM_ORDER_BY_YEAR = "ALBUM_ORDER_BY_YEAR"
|
const val ALBUM_ORDER_BY_YEAR = "ALBUM_ORDER_BY_YEAR"
|
||||||
const val ALBUM_ORDER_BY_RANDOM = "ALBUM_ORDER_BY_RANDOM"
|
const val ALBUM_ORDER_BY_RANDOM = "ALBUM_ORDER_BY_RANDOM"
|
||||||
const val ALBUM_ORDER_BY_RECENTLY_ADDED = "ALBUM_ORDER_BY_RECENTLY_ADDED"
|
const val ALBUM_ORDER_BY_RECENTLY_ADDED = "ALBUM_ORDER_BY_RECENTLY_ADDED"
|
||||||
|
const val ALBUM_ORDER_BY_RECENTLY_PLAYED = "ALBUM_ORDER_BY_RECENTLY_PLAYED"
|
||||||
|
const val ALBUM_ORDER_BY_MOST_PLAYED = "ALBUM_ORDER_BY_MOST_PLAYED"
|
||||||
|
|
||||||
const val ARTIST_DOWNLOADED = "ARTIST_DOWNLOADED"
|
const val ARTIST_DOWNLOADED = "ARTIST_DOWNLOADED"
|
||||||
const val ARTIST_STARRED = "ARTIST_STARRED"
|
const val ARTIST_STARRED = "ARTIST_STARRED"
|
||||||
|
|
|
||||||
|
|
@ -15,4 +15,10 @@
|
||||||
<item
|
<item
|
||||||
android:id="@+id/menu_album_sort_recently_added"
|
android:id="@+id/menu_album_sort_recently_added"
|
||||||
android:title="@string/menu_sort_recently_added" />
|
android:title="@string/menu_sort_recently_added" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/menu_album_sort_recently_played"
|
||||||
|
android:title="@string/menu_sort_recently_played" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/menu_album_sort_most_played"
|
||||||
|
android:title="@string/menu_sort_most_played" />
|
||||||
</menu>
|
</menu>
|
||||||
|
|
@ -176,6 +176,8 @@
|
||||||
<string name="menu_sort_name">Name</string>
|
<string name="menu_sort_name">Name</string>
|
||||||
<string name="menu_sort_random">Random</string>
|
<string name="menu_sort_random">Random</string>
|
||||||
<string name="menu_sort_recently_added">Recently added</string>
|
<string name="menu_sort_recently_added">Recently added</string>
|
||||||
|
<string name="menu_sort_recently_played">Recently played</string>
|
||||||
|
<string name="menu_sort_most_played">Most played</string>
|
||||||
<string name="menu_pin_button">Add to home screen</string>
|
<string name="menu_pin_button">Add to home screen</string>
|
||||||
<string name="menu_unpin_button">Remove from home screen</string>
|
<string name="menu_unpin_button">Remove from home screen</string>
|
||||||
<string name="menu_sort_year">Year</string>
|
<string name="menu_sort_year">Year</string>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue