SpotifyiOS.xcframework/ios-arm64_x86_64-simulator/SpotifyiOS.framework/Headers/SPTAppRemoteUserAPI.h (18 lines of code) (raw):
#import <Foundation/Foundation.h>
#import "SPTAppRemoteCommon.h"
@protocol SPTAppRemoteUserAPI;
@protocol SPTAppRemoteUserCapabilities;
NS_ASSUME_NONNULL_BEGIN
/**
* The `SPTAppRemoteUserAPIDelegate` gets notified whenever the user API receives new data from subscription events.
*/
@protocol SPTAppRemoteUserAPIDelegate <NSObject>
/**
* Called when the capabilities has been updated.
*
* @note This will only be called if there is an active capabilities subscription.
*
* @param userAPI The API that received updates.
* @param capabilities The new capabilities that was received.
*/
- (void)userAPI:(id<SPTAppRemoteUserAPI>)userAPI didReceiveCapabilities:(id<SPTAppRemoteUserCapabilities>)capabilities;
@end
/**
* The `SPTAppRemoteUserAPI` is used to get user data from, and interact with user features in, the Spotify app.
*/
@protocol SPTAppRemoteUserAPI <NSObject>
/// The User API delegate gets notified whenever the API receives new data from subscription events.
@property (nonatomic, weak, readwrite) id<SPTAppRemoteUserAPIDelegate> delegate;
/**
* Fetches the current users capabilities from the Spotify app.
*
* @param callback A callback block that will be invoked when the fetch request has completed.
* On success `result` will be an instance of `id<SPTAppRemoteUserCapabilities>`.
* On error `result` will be `nil` and `error` will be set.
*/
- (void)fetchCapabilitiesWithCallback:(nullable SPTAppRemoteCallback)callback;
/**
* Subscribes to capability changes from the Spotify app.
*
* @note Implement `SPTAppRemoteUserAPIDelegate` and set yourself as `delegate` in order to be notified when the
* the capabilities changes.
*
* @param callback A callback block that will be invoked when the subscription request has completed.
* On success `result` will `YES`.
* On error `result` will be `nil` and `error` will be set.
*/
- (void)subscribeToCapabilityChanges:(nullable SPTAppRemoteCallback)callback;
/**
* Stops subscribing to capability changes from the Spotify app.
*
* @param callback A callback block that will be invoked when the unsubscription request has completed.
* On success `result` will be `YES`.
* On error `result` will be `nil` and `error` will be set.
*/
- (void)unsubscribeToCapabilityChanges:(nullable SPTAppRemoteCallback)callback;
/**
* Fetches the current users library state for a given album or track uri.
*
* @param URI The URI of the album or track we are fetching the state for
* @param callback A callback block that will be invoked when the fetch request has completed.
* On success `result` will be an instance of `id<SPTAppRemoteLibraryState>`.
* On error `result` will be `nil` and `error` will be set.
*/
- (void)fetchLibraryStateForURI:(NSString *)URI callback:(SPTAppRemoteCallback)callback;
/**
* Add item to the users library.
* Currently supported uris include:
* Tracks - example: spotify:track:6rqhFgbbKwnb9MLmUQDhG6
* Albums - example: spotify:album:2VYSDvc0ZdcfkXDcYVjHs6
*
* @param URI The URI of the item to save
* @param callback A callback block that will be invoked when the fetch request has completed.
* On success `result` will be an instance of `id<SPTAppRemoteLibraryState>` that indicates the
* resulting state of the entity. On error `result` will be `nil` and `error` will be set.
*/
- (void)addItemToLibraryWithURI:(NSString *)URI callback:(nullable SPTAppRemoteCallback)callback;
/**
* Remove item from users library.
* Currently supported uris include:
* Tracks - example: spotify:track:6rqhFgbbKwnb9MLmUQDhG6
* Albums - example: spotify:album:2VYSDvc0ZdcfkXDcYVjHs6
*
* @param URI The URI of the item to remove
* @param callback A callback block that will be invoked when the fetch request has completed.
* On success `result` will be an instance of `id<SPTAppRemoteLibraryState>` that indicates the
* resulting state of the entity. On error `result` will be `nil` and `error` will be set.
*/
- (void)removeItemFromLibraryWithURI:(NSString *)URI callback:(nullable SPTAppRemoteCallback)callback;
@end
NS_ASSUME_NONNULL_END