[mediaplayer] Update for iOS 10.3 beta 1 (#1627)

* introspection-ios

MPMusicPlayerControllerMutableQueue and MPMusicPlayerControllerQueue's headers show no trace of NSCoding, NSSecureCoding or NSMutableCopying therefore we're skipping them.
This commit is contained in:
Vincent Dondain 2017-02-06 16:04:48 -05:00 коммит произвёл Sebastien Pouliot
Родитель b7dd01c770
Коммит b15d2e256b
7 изменённых файлов: 92 добавлений и 0 удалений

Просмотреть файл

@ -292,6 +292,13 @@ namespace XamCore.MediaPlayer {
return (ValueForProperty (DateAddedProperty) as NSDate);
}
}
[iOS (10,3)]
public NSString PlaybackStoreID {
get {
return (ValueForProperty (PlaybackStoreIDProperty) as NSString);
}
}
}
}

Просмотреть файл

@ -50,6 +50,8 @@ namespace XamCore.MediaPlayer {
public MPNowPlayingInfoMediaType? MediaType { get; set; }
[iOS (10,0)]
public bool? IsLiveStream { get; set; }
[iOS (10,3)]
public NSUrl AssetUrl { get; set; }
public string AlbumTitle;
public string Artist;
@ -93,6 +95,8 @@ namespace XamCore.MediaPlayer {
Add (dict, MPNowPlayingInfoCenter.PropertyMediaType, new NSNumber ((int)MediaType.Value));
if (IsLiveStream.HasValue)
Add (dict, MPNowPlayingInfoCenter.PropertyIsLiveStream, new NSNumber (IsLiveStream.Value));
if (AssetUrl != null)
Add (dict, MPNowPlayingInfoCenter.PropertyAssetUrl, AssetUrl);
if (AlbumTrackCount.HasValue)
dict.Add (MPMediaItem.AlbumTrackCountProperty, new NSNumber (AlbumTrackCount.Value));
@ -167,6 +171,8 @@ namespace XamCore.MediaPlayer {
MediaType = (MPNowPlayingInfoMediaType) (result as NSNumber).UInt32Value;
if (TryGetValue (source, MPNowPlayingInfoCenter.PropertyIsLiveStream, out result))
IsLiveStream = (bool) (result as NSNumber).BoolValue;
if (TryGetValue (source, MPNowPlayingInfoCenter.PropertyAssetUrl, out result))
AssetUrl = result as NSUrl;
if (source.TryGetValue (MPMediaItem.AlbumTrackCountProperty, out result))
AlbumTrackCount = (int) (result as NSNumber).UInt32Value;

Просмотреть файл

@ -303,6 +303,7 @@ namespace XamCore.MediaPlayer {
NotSupported,
[iOS (10,1)]
Cancelled,
RequestTimedOut,
}
[NoMac]

Просмотреть файл

@ -249,6 +249,11 @@ namespace XamCore.MediaPlayer {
[Field ("MPMediaItemPropertyDateAdded")]
[EditorBrowsable (EditorBrowsableState.Advanced)]
NSString DateAddedProperty { get; }
[iOS (10,3)]
[Field ("MPMediaItemPropertyPlaybackStoreID")]
[EditorBrowsable (EditorBrowsableState.Advanced)]
NSString PlaybackStoreIDProperty { get; }
}
[Mac (10,12,2, onlyOn64: true)]
@ -1132,6 +1137,11 @@ namespace XamCore.MediaPlayer {
[Static, Export ("applicationMusicPlayer")]
MPMusicPlayerController ApplicationMusicPlayer { get; }
[iOS (10,3)]
[Static]
[Export ("applicationQueuePlayer")]
MPMusicPlayerApplicationController ApplicationQueuePlayer { get; }
[Static, Export ("iPodMusicPlayer")]
[Availability (Deprecated = Platform.iOS_8_0, Message="Use SystemMusicPlayer starting with iOS 8.0")]
MPMusicPlayerController iPodMusicPlayer { get; }
@ -1174,6 +1184,14 @@ namespace XamCore.MediaPlayer {
[Export ("setQueueWithDescriptor:")]
void SetQueue (MPMusicPlayerQueueDescriptor descriptor);
[iOS (10,3)]
[Export ("prependQueueDescriptor:")]
void Prepend (MPMusicPlayerQueueDescriptor descriptor);
[iOS (10,3)]
[Export ("appendQueueDescriptor:")]
void Append (MPMusicPlayerQueueDescriptor descriptor);
[iOS (10,1)]
[Async]
[Export ("prepareToPlayWithCompletionHandler:")]
@ -1389,6 +1407,10 @@ namespace XamCore.MediaPlayer {
[TV (10,0)]
[Field ("MPNowPlayingInfoPropertyIsLiveStream")]
NSString PropertyIsLiveStream { get; }
[iOS (10,3)]
[Field ("MPNowPlayingInfoPropertyAssetURL")]
NSString PropertyAssetUrl { get; }
}
[Mac (10,12,2, onlyOn64: true)]
@ -2024,4 +2046,43 @@ namespace XamCore.MediaPlayer {
void SetEndTime (double endTime, string storeID);
}
#endif
[NoTV]
[NoMac]
[iOS (10,3)]
[BaseType (typeof(NSObject))]
[DisableDefaultCtor]
interface MPMusicPlayerControllerQueue
{
[Export ("items", ArgumentSemantic.Copy)]
MPMediaItem[] Items { get; }
[Field ("MPMusicPlayerControllerQueueDidChangeNotification")]
[Notification]
NSString DidChangeNotification { get; }
}
[NoTV]
[NoMac]
[iOS (10,3)]
[BaseType (typeof(MPMusicPlayerControllerQueue))]
interface MPMusicPlayerControllerMutableQueue
{
[Export ("insertQueueDescriptor:afterItem:")]
void InsertAfter (MPMusicPlayerQueueDescriptor queueDescriptor, [NullAllowed] MPMediaItem item);
[Export ("removeItem:")]
void RemoveItem (MPMediaItem item);
}
[NoTV]
[NoMac]
[iOS (10,3)]
[BaseType (typeof(MPMusicPlayerController))]
interface MPMusicPlayerApplicationController
{
[Async]
[Export ("performQueueTransaction:completionHandler:")]
void Perform (Action<MPMusicPlayerControllerMutableQueue> queueTransaction, Action<MPMusicPlayerControllerQueue, NSError> completionHandler);
}
}

Просмотреть файл

@ -179,6 +179,9 @@ namespace Introspection {
case "VSAccountMetadataRequest":
// iOS 10.2
case "VSAccountProviderResponse":
// iOS 10.3
case "MPMusicPlayerControllerMutableQueue":
case "MPMusicPlayerControllerQueue":
return true;
#if __WATCHOS__
case "CLKComplicationTemplate":
@ -278,6 +281,9 @@ namespace Introspection {
case "VSAccountMetadataRequest":
// iOS 10.2
case "VSAccountProviderResponse":
// iOS 10.3
case "MPMusicPlayerControllerMutableQueue":
case "MPMusicPlayerControllerQueue":
return true;
#if __WATCHOS__
case "CLKComplicationTemplate":
@ -366,6 +372,9 @@ namespace Introspection {
case "NSMutableCopying":
switch (type.Name) {
case "UNNotificationSound":
// iOS 10.3
case "MPMusicPlayerControllerMutableQueue":
case "MPMusicPlayerControllerQueue":
return true;
}
break;

Просмотреть файл

@ -37,6 +37,7 @@ namespace MonoTouchFixtures.MediaPlayer {
var six_dot_oh = TestRuntime.CheckSystemAndSDKVersion (6, 0);
var nine_dot_two = TestRuntime.CheckSystemAndSDKVersion (9, 2);
var ten_dot_oh = TestRuntime.CheckSystemAndSDKVersion (10, 0);
var ten_dot_three = TestRuntime.CheckSystemAndSDKVersion (10, 3);
foreach (var i in items) {
object dummy;
@ -81,6 +82,8 @@ namespace MonoTouchFixtures.MediaPlayer {
Assert.DoesNotThrow (() => dummy = i.IsExplicitItem, "IsExplicitItem");
Assert.DoesNotThrow (() => dummy = i.DateAdded, "DateAdded");
}
if (ten_dot_three)
Assert.DoesNotThrow (() => dummy = i.PlaybackStoreID, "PlaybackStoreID");
}
}
}

Просмотреть файл

@ -30,6 +30,7 @@ namespace MonoTouchFixtures.MediaPlayer
bool v8_0 = TestRuntime.CheckSystemAndSDKVersion (8, 0);
bool v9_0 = TestRuntime.CheckSystemAndSDKVersion (9, 0);
bool v10_0 = TestRuntime.CheckSystemAndSDKVersion (10, 0);
bool v10_3 = TestRuntime.CheckSystemAndSDKVersion (10, 3);
[SetUp]
public void SetUp ()
@ -59,6 +60,7 @@ namespace MonoTouchFixtures.MediaPlayer
PlaybackProgress = 0.5f,
MediaType = MPNowPlayingInfoMediaType.Audio,
IsLiveStream = false,
AssetUrl = new NSUrl ("https://developer.xamarin.com"),
//MPMediaItem
AlbumTitle = "AlbumTitle",
@ -118,6 +120,9 @@ namespace MonoTouchFixtures.MediaPlayer
Assert.IsInstanceOfType (typeof (ulong), np.PersistentID, "#25");
Assert.IsInstanceOfType (typeof (double), np.PlaybackDuration, "#26");
Assert.IsInstanceOfType (typeof (string), (object)np.Title, "#27");
if (v10_3)
Assert.IsInstanceOfType (typeof (NSUrl), np.AssetUrl, "#28");
}
}
}