Display release types in album page

This commit is contained in:
Drew Weymouth
2023-12-16 15:03:22 -08:00
parent 1521c0c4ba
commit cb4329cf08
4 changed files with 79 additions and 14 deletions
+49
View File
@@ -14,11 +14,14 @@ import (
"fyne.io/fyne/v2/layout"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"github.com/dweymouth/supersonic/backend/mediaprovider"
"github.com/dweymouth/supersonic/ui/layouts"
myTheme "github.com/dweymouth/supersonic/ui/theme"
"golang.org/x/net/html"
)
var BoldRichTextStyle = widget.RichTextStyle{TextStyle: fyne.TextStyle{Bold: true}, Inline: true}
func SecondsToTimeString(s float64) string {
if s < 0 {
s = 0
@@ -109,6 +112,52 @@ func PlaintextFromHTMLString(s string) string {
return text
}
func DisplayReleaseType(releaseTypes mediaprovider.ReleaseTypes) string {
baseType := "Album"
switch {
case releaseTypes&mediaprovider.ReleaseTypeAudiobook > 0:
baseType = "Audiobook"
case releaseTypes&mediaprovider.ReleaseTypeAudioDrama > 0:
baseType = "Audio Drama"
case releaseTypes&mediaprovider.ReleaseTypeBroadcast > 0:
baseType = "Broadcast"
case releaseTypes&mediaprovider.ReleaseTypeDJMix > 0:
baseType = "DJ-Mix"
case releaseTypes&mediaprovider.ReleaseTypeEP > 0:
baseType = "EP"
case releaseTypes&mediaprovider.ReleaseTypeFieldRecording > 0:
baseType = "Field Recording"
case releaseTypes&mediaprovider.ReleaseTypeInterview > 0:
baseType = "Interview"
case releaseTypes&mediaprovider.ReleaseTypeMixtape > 0:
baseType = "Mixtape"
case releaseTypes&mediaprovider.ReleaseTypeSingle > 0:
baseType = "Single"
case releaseTypes&mediaprovider.ReleaseTypeSoundtrack > 0:
baseType = "Soundtrack"
}
var modifiers []string
if releaseTypes&mediaprovider.ReleaseTypeLive > 0 {
modifiers = append(modifiers, "Live")
}
if releaseTypes&mediaprovider.ReleaseTypeDemo > 0 {
modifiers = append(modifiers, "Demo")
}
if releaseTypes&mediaprovider.ReleaseTypeRemix > 0 {
modifiers = append(modifiers, "Remix")
}
if releaseTypes&mediaprovider.ReleaseTypeSpokenWord > 0 {
modifiers = append(modifiers, "Spoken Word")
}
if releaseTypes&mediaprovider.ReleaseTypeCompilation > 0 {
modifiers = append(modifiers, "Compilation")
}
modifiers = append(modifiers, baseType)
return strings.Join(modifiers, " ")
}
func NewRatingSubmenu(onSetRating func(int)) *fyne.MenuItem {
newRatingMenuItem := func(rating int) *fyne.MenuItem {
label := "(none)"