示例#1
0
 private void UpdatePlaylistDetailsUI()
 {
     if (_playlist != null)
     {
         if (_headerParent)
         {
             _headerParent.gameObject.SetActive(true);
         }
         if (_headerImg != null)
         {
             SpotifyAPI.Web.Image image = S4UUtility.GetLowestResolutionImage(_playlist.Images, 300, 300);
             StartCoroutine(S4UUtility.LoadImageFromUrl(image?.Url, (loadedSprite) =>
             {
                 _headerImg.sprite = loadedSprite;
             }));
         }
         if (_headerTitle != null)
         {
             _headerTitle.text = _playlist.Name;
         }
         if (_headerDescription != null)
         {
             _headerDescription.text = _playlist.Description;
         }
         if (_headerDetails != null)
         {
             _headerDetails.text = $"{ _playlist.Owner.DisplayName} • {_playlist.Tracks.Total.Value} songs";
         }
         if (_headerType != null)
         {
             _headerType.text = _playlist.Type.ToUpper();
         }
     }
 }
示例#2
0
 private void DownloadUpdateSprite(Image img, List <SpotifyAPI.Web.Image> images)
 {
     if (img != null && img.sprite == null)
     {
         SpotifyAPI.Web.Image icon = S4UUtility.GetLowestResolutionImage(images);
         if (icon != null)
         {
             StartCoroutine(S4UUtility.LoadImageFromUrl(icon.Url, (loadedSprite) =>
             {
                 _icon.sprite = loadedSprite;
             }));
         }
     }
 }
示例#3
0
    private async void PlayingItemChanged(IPlayableItem newPlayingItem)
    {
        if (newPlayingItem == null)
        {
            // No new item playing, reset UI
            UpdatePlayerInfo("No track playing", "No track playing", "");
            SetLibraryBtnIsLiked(false);

            _currentProgressSlider.value = 0;
            _totalProgressText.text      = _currentProgressText.text = "00:00";
        }
        else
        {
            if (newPlayingItem.Type == ItemType.Track)
            {
                if (newPlayingItem is FullTrack track)
                {
                    // Update player information with track info
                    string allArtists          = S4UUtility.ArtistsToSeparatedString(", ", track.Artists);
                    SpotifyAPI.Web.Image image = S4UUtility.GetLowestResolutionImage(track.Album.Images);
                    UpdatePlayerInfo(track.Name, allArtists, image?.Url);

                    // Make request to see if track is part of user's library
                    var client = SpotifyService.Instance.GetSpotifyClient();
                    LibraryCheckTracksRequest request = new LibraryCheckTracksRequest(new List <string>()
                    {
                        track.Id
                    });
                    var result = await client.Library.CheckTracks(request);

                    if (result.Count > 0)
                    {
                        SetLibraryBtnIsLiked(result[0]);
                    }
                }
            }
            else if (newPlayingItem.Type == ItemType.Episode)
            {
                if (newPlayingItem is FullEpisode episode)
                {
                    string creators            = episode.Show.Publisher;
                    SpotifyAPI.Web.Image image = S4UUtility.GetLowestResolutionImage(episode.Images);
                    UpdatePlayerInfo(episode.Name, creators, image?.Url);
                }
            }
        }
    }