A music player that connects to your cloud/distributed storage.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Save grouping state in enclosed-user data

+40 -8
+6 -6
src/Applications/UI/Tracks.elm
··· 214 214 -- Groups 215 215 ----------------------------------------- 216 216 DisableGrouping -> 217 - reviseCollection 218 - arrange 219 - { model | grouping = Nothing } 217 + { model | grouping = Nothing } 218 + |> reviseCollection arrange 219 + |> addReply SaveEnclosedUserData 220 220 221 221 GroupBy grouping -> 222 - reviseCollection 223 - arrange 224 - { model | grouping = Just grouping } 222 + { model | grouping = Just grouping } 223 + |> reviseCollection arrange 224 + |> addReply SaveEnclosedUserData 225 225 226 226 ----------------------------------------- 227 227 -- Menus
+2
src/Applications/UI/UserData.elm
··· 144 144 in 145 145 encodeEnclosed 146 146 { equalizerSettings = equalizerSettings 147 + , grouping = model.tracks.grouping 147 148 , onlyShowFavourites = model.tracks.favouritesOnly 148 149 , repeat = model.queue.repeat 149 150 , searchTerm = model.tracks.searchTerm ··· 179 180 newTracks = 180 181 { tracks 181 182 | favouritesOnly = data.onlyShowFavourites 183 + , grouping = data.grouping 182 184 , searchTerm = data.searchTerm 183 185 , sortBy = data.sortBy 184 186 , sortDirection = data.sortDirection
+4 -1
src/Library/Authentication.elm
··· 25 25 26 26 type alias EnclosedUserData = 27 27 { equalizerSettings : Equalizer.Settings 28 + , grouping : Maybe Tracks.Grouping 28 29 , onlyShowFavourites : Bool 29 30 , repeat : Bool 30 31 , searchTerm : Maybe String ··· 124 125 enclosedDecoder = 125 126 Json.succeed EnclosedUserData 126 127 |> optional "equalizerSettings" Equalizer.settingsDecoder Equalizer.defaultSettings 128 + |> optional "grouping" (Json.maybe Tracks.groupingDecoder) Nothing 127 129 |> optional "onlyShowFavourites" Json.bool False 128 130 |> optional "repeat" Json.bool False 129 131 |> optional "searchTerm" (Json.maybe Json.string) Nothing ··· 133 135 134 136 135 137 encodeEnclosed : EnclosedUserData -> Json.Value 136 - encodeEnclosed { equalizerSettings, onlyShowFavourites, repeat, searchTerm, shuffle, sortBy, sortDirection } = 138 + encodeEnclosed { equalizerSettings, grouping, onlyShowFavourites, repeat, searchTerm, shuffle, sortBy, sortDirection } = 137 139 Json.Encode.object 138 140 [ ( "equalizerSettings", Equalizer.encodeSettings equalizerSettings ) 141 + , ( "grouping", Maybe.unwrap Json.Encode.null Tracks.encodeGrouping grouping ) 139 142 , ( "onlyShowFavourites", Json.Encode.bool onlyShowFavourites ) 140 143 , ( "repeat", Json.Encode.bool repeat ) 141 144 , ( "searchTerm", Maybe.unwrap Json.Encode.null Json.Encode.string searchTerm )
+28 -1
src/Library/Tracks/Encoding.elm
··· 1 - module Tracks.Encoding exposing (decodeFavourite, decodeTrack, encodeFavourite, encodeMaybe, encodeSortBy, encodeSortDirection, encodeTags, encodeTrack, favouriteDecoder, sortByDecoder, sortDirectionDecoder, tagsDecoder, trackDecoder) 1 + module Tracks.Encoding exposing (decodeFavourite, decodeTrack, encodeFavourite, encodeGrouping, encodeMaybe, encodeSortBy, encodeSortDirection, encodeTags, encodeTrack, favouriteDecoder, groupingDecoder, sortByDecoder, sortDirectionDecoder, tagsDecoder, trackDecoder) 2 2 3 3 import Json.Decode as Decode 4 4 import Json.Decode.Pipeline exposing (optional, required) ··· 17 17 [ ( "artist", Encode.string fav.artist ) 18 18 , ( "title", Encode.string fav.title ) 19 19 ] 20 + 21 + 22 + encodeGrouping : Grouping -> Encode.Value 23 + encodeGrouping v = 24 + case v of 25 + AddedOnGroups -> 26 + Encode.string "ADDED_ON_GROUPS" 27 + 28 + TrackYearGroups -> 29 + Encode.string "TRACK_YEAR_GROUPS" 20 30 21 31 22 32 encodeSortBy : SortBy -> Encode.Value ··· 102 112 Decode.map2 Favourite 103 113 (Decode.field "artist" Decode.string) 104 114 (Decode.field "title" Decode.string) 115 + 116 + 117 + groupingDecoder : Decode.Decoder Grouping 118 + groupingDecoder = 119 + Decode.andThen 120 + (\string -> 121 + case string of 122 + "ADDED_ON_GROUPS" -> 123 + Decode.succeed AddedOnGroups 124 + 125 + "TRACK_YEAR_GROUPS" -> 126 + Decode.succeed TrackYearGroups 127 + 128 + _ -> 129 + Decode.fail "Invalid Grouping" 130 + ) 131 + Decode.string 105 132 106 133 107 134 sortByDecoder : Decode.Decoder SortBy