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

Configure Feed

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

Closes #336

+58 -17
+1
CHANGELOG.md
··· 6 6 - Add support for non-standard `audio/x-flac` mimetype. 7 7 - Fixes a playback issue with Google Drive on Safari/iOS. 8 8 - Improves Google Drive support, access tokens are now refreshed when needed (before it only refreshed on source processing) 9 + - Shift + Click actions for the top-right nav items on the tracks page. 9 10 - Several playlist improvements: add to queue, add options to autogenerated playlists, convert autogenerated playlist into regular playlist, etc. 10 11 11 12
+3
src/Applications/UI.elm
··· 397 397 AssistWithAddingTracksToPlaylist a -> 398 398 Playlists.assistWithAddingTracksToPlaylist a 399 399 400 + AssistWithSelectingPlaylist -> 401 + Playlists.assistWithSelectingPlaylist 402 + 400 403 CreatePlaylist -> 401 404 Playlists.create 402 405
+53 -17
src/Applications/UI/Tracks/View.elm
··· 10 10 import Html.Events.Extra.Mouse as Mouse 11 11 import Html.Ext exposing (onEnterKey) 12 12 import Html.Lazy exposing (..) 13 + import Keyboard exposing (Key(..)) 13 14 import Material.Icons.Round as Icons 14 15 import Material.Icons.Types exposing (Coloring(..)) 15 16 import Maybe.Extra as Maybe ··· 28 29 29 30 30 31 32 + -- 🌳 33 + 34 + 35 + type alias NavigationProperties = 36 + { bgColor : Maybe Color 37 + , favouritesOnly : Bool 38 + , grouping : Maybe Grouping 39 + , isOnIndexPage : Bool 40 + , pressedShift : Bool 41 + , scene : Scene 42 + , searchTerm : Maybe String 43 + , selectedPlaylist : Maybe Playlist 44 + , showVolumeSlider : Bool 45 + , volume : Float 46 + } 47 + 48 + 49 + 31 50 -- 🗺 32 51 33 52 ··· 39 58 in 40 59 chunk 41 60 viewClasses 42 - [ lazy8 61 + [ lazy 43 62 navigation 44 - model.grouping 45 - model.favouritesOnly 46 - model.searchTerm 47 - model.selectedPlaylist 48 - isOnIndexPage 49 - model.extractedBackdropColor 50 - model.scene 51 - ( model.showVolumeSlider 52 - , model.eqSettings.volume 53 - ) 63 + { bgColor = model.extractedBackdropColor 64 + , favouritesOnly = model.favouritesOnly 65 + , grouping = model.grouping 66 + , isOnIndexPage = isOnIndexPage 67 + , pressedShift = List.member Shift model.pressedKeys 68 + , scene = model.scene 69 + , searchTerm = model.searchTerm 70 + , selectedPlaylist = model.selectedPlaylist 71 + , showVolumeSlider = model.showVolumeSlider 72 + , volume = model.eqSettings.volume 73 + } 54 74 55 75 -- 56 76 , if List.isEmpty model.tracks.harvested then ··· 120 140 ] 121 141 122 142 123 - navigation : Maybe Grouping -> Bool -> Maybe String -> Maybe Playlist -> Bool -> Maybe Color -> Scene -> ( Bool, Float ) -> Html UI.Msg 124 - navigation maybeGrouping favouritesOnly searchTerm selectedPlaylist isOnIndexPage bgColor scene ( showVolumeSlider, volume ) = 143 + navigation : NavigationProperties -> Html UI.Msg 144 + navigation { bgColor, favouritesOnly, grouping, isOnIndexPage, pressedShift, scene, searchTerm, selectedPlaylist, showVolumeSlider, volume } = 125 145 let 126 146 tabindex_ = 127 147 ifThenElse isOnIndexPage 0 -1 ··· 287 307 288 308 -- 4 289 309 , brick 290 - [ Mouse.onClick (TracksMsg << ShowViewMenu maybeGrouping) 310 + [ Mouse.onClick (TracksMsg << ShowViewMenu grouping) 291 311 , title "View settings" 292 312 ] 293 313 [ "cursor-pointer" ] ··· 339 359 tabindex_ 340 360 [ ( Icon Icons.waves 341 361 , Label "Playlists" Hidden 342 - , NavigateToPage (Page.Playlists UI.Playlists.Page.Index) 362 + , if pressedShift then 363 + PerformMsg AssistWithSelectingPlaylist 364 + 365 + else 366 + NavigateToPage (Page.Playlists UI.Playlists.Page.Index) 343 367 ) 344 368 , ( Icon Icons.schedule 345 369 , Label "Queue" Hidden 346 - , NavigateToPage (Page.Queue UI.Queue.Page.Index) 370 + , if pressedShift then 371 + PerformMsg (ChangeUrlUsingPage <| Page.Queue UI.Queue.Page.History) 372 + 373 + else 374 + NavigateToPage (Page.Queue UI.Queue.Page.Index) 347 375 ) 348 376 , ( if volume == 0 then 349 377 Icon Icons.volume_off ··· 354 382 else 355 383 Icon Icons.volume_up 356 384 , Label "Volume" Hidden 357 - , PerformMsg (ToggleVolumeSlider <| ifThenElse showVolumeSlider Off On) 385 + , if pressedShift then 386 + if volume == 0 then 387 + PerformMsg (AdjustVolume 0.5) 388 + 389 + else 390 + PerformMsg (AdjustVolume 0) 391 + 392 + else 393 + PerformMsg (ToggleVolumeSlider <| ifThenElse showVolumeSlider Off On) 358 394 ) 359 395 ] 360 396 , -----------------------------------------
+1
src/Applications/UI/Types.elm
··· 250 250 | ActivatePlaylist Playlist 251 251 | AddTracksToPlaylist { playlistName : String, tracks : List PlaylistTrack } 252 252 | AssistWithAddingTracksToPlaylist (List IdentifiedTrack) 253 + | AssistWithSelectingPlaylist 253 254 | CreatePlaylist 254 255 | DeactivatePlaylist 255 256 | DeletePlaylist { playlistName : String }