public AuthorizationManager(AppleMusicManager appleMusicManager) { AppleMusicManager = appleMusicManager; CloudServiceController = new SKCloudServiceController(); CloudServiceCapabilities = new SKCloudServiceCapability(); /* * It is important that your application listens to the * `CloudServiceCapabilitiesDidChangeNotification` and * `StorefrontCountryCodeDidChangeNotification` notifications * so that your application can update its state and * functionality when these values change if needed. */ var notificationCenter = NSNotificationCenter.DefaultCenter; CloudServiceCapabilitiesDidChangeNotificationToken = notificationCenter.AddObserver(SKCloudServiceController.CloudServiceCapabilitiesDidChangeNotification, async(obj) => await RequestCloudServiceCapabilitiesAsync()); if (UIDevice.CurrentDevice.CheckSystemVersion(11, 0)) { StorefrontCountryCodeDidChangeNotificationToken = notificationCenter.AddObserver(SKCloudServiceController.StorefrontCountryCodeDidChangeNotification, async(obj) => await RequestStorefrontCountryCodeAsync()); } /* * If the application has already been authorized in a * previous run or manually by the user then it can * request the current set of `SKCloudServiceCapability` * and Storefront Identifier. */ if (SKCloudServiceController.AuthorizationStatus == SKCloudServiceAuthorizationStatus.Authorized) { Task.Factory.StartNew(async() => { await RequestCloudServiceCapabilitiesAsync(); // Retrieve the Music User Token for use in the application // if it was stored from a previous run. if (NSUserDefaults.StandardUserDefaults.StringForKey(UserTokenUserDefaultsKey) is string token) { UserToken = token; await RequestStorefrontCountryCodeAsync(); } else // The token was not stored previously then request one. { await RequestUserTokenAsync(); } }); } }
string GetStringValue(SKCloudServiceCapability capability) { switch (capability) { case SKCloudServiceCapability.MusicCatalogPlayback: return("Music Catalog Playback"); case SKCloudServiceCapability.MusicCatalogSubscriptionEligible: return("Music Catalog Subscription Eligible"); case SKCloudServiceCapability.AddToCloudMusicLibrary: return("Add To Cloud Music Library"); default: return(string.Empty); } }