|
@@ -12,8 +12,13 @@
|
|
|
|
|
|
#import "VLCNetworkServerBrowserVLCMedia.h"
|
|
#import "VLCNetworkServerBrowserVLCMedia.h"
|
|
#import "NSString+SupportedMedia.h"
|
|
#import "NSString+SupportedMedia.h"
|
|
|
|
+#import "VLC-Swift.h"
|
|
|
|
|
|
@interface VLCNetworkServerBrowserVLCMedia () <VLCMediaListDelegate, VLCMediaDelegate>
|
|
@interface VLCNetworkServerBrowserVLCMedia () <VLCMediaListDelegate, VLCMediaDelegate>
|
|
|
|
+{
|
|
|
|
+ VLCDialogProvider *_dialogProvider;
|
|
|
|
+ VLCCustomDialogRendererHandler *_customDialogHandler;
|
|
|
|
+}
|
|
|
|
|
|
@property (nonatomic) VLCMedia *rootMedia;
|
|
@property (nonatomic) VLCMedia *rootMedia;
|
|
@property (nonatomic) VLCMediaList *mediaList;
|
|
@property (nonatomic) VLCMediaList *mediaList;
|
|
@@ -33,17 +38,39 @@
|
|
_mediaList = [[VLCMediaList alloc] init];
|
|
_mediaList = [[VLCMediaList alloc] init];
|
|
_rootMedia = media;
|
|
_rootMedia = media;
|
|
_rootMedia.delegate = self;
|
|
_rootMedia.delegate = self;
|
|
- [media parseWithOptions:VLCMediaParseNetwork];
|
|
|
|
|
|
+ [media parseWithOptions:VLCMediaParseNetwork|VLCMediaDoInteract];
|
|
_mediaListUnfiltered = [_rootMedia subitems];
|
|
_mediaListUnfiltered = [_rootMedia subitems];
|
|
_mediaListUnfiltered.delegate = self;
|
|
_mediaListUnfiltered.delegate = self;
|
|
NSMutableDictionary *mediaOptionsNoFilter = [mediaOptions mutableCopy];
|
|
NSMutableDictionary *mediaOptionsNoFilter = [mediaOptions mutableCopy];
|
|
[mediaOptionsNoFilter setObject:@" " forKey:@":ignore-filetypes"];
|
|
[mediaOptionsNoFilter setObject:@" " forKey:@":ignore-filetypes"];
|
|
_mediaOptions = [mediaOptionsNoFilter copy];
|
|
_mediaOptions = [mediaOptionsNoFilter copy];
|
|
[self _addMediaListRootItemsToList];
|
|
[self _addMediaListRootItemsToList];
|
|
|
|
+
|
|
|
|
+ _dialogProvider = [[VLCDialogProvider alloc] initWithLibrary:[VLCLibrary sharedLibrary] customUI:YES];
|
|
|
|
+ _customDialogHandler = [[VLCCustomDialogRendererHandler alloc]
|
|
|
|
+ initWithDialogProvider:_dialogProvider];
|
|
|
|
+
|
|
|
|
+ __weak typeof(self) weakSelf = self;
|
|
|
|
+ _customDialogHandler.completionHandler = ^(VLCCustomDialogRendererHandlerCompletionType status)
|
|
|
|
+ {
|
|
|
|
+ [weakSelf customDialogCompletionHandlerWithStatus:status];
|
|
|
|
+ };
|
|
|
|
+ _dialogProvider.customRenderer = _customDialogHandler;
|
|
}
|
|
}
|
|
return self;
|
|
return self;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+- (void)customDialogCompletionHandlerWithStatus:(VLCCustomDialogRendererHandlerCompletionType)status
|
|
|
|
+{
|
|
|
|
+ switch (status) {
|
|
|
|
+ case VLCCustomDialogRendererHandlerCompletionTypeError:
|
|
|
|
+ [self.delegate networkServerBrowserShouldPopView:self];
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
- (BOOL)shouldFilterMedia:(VLCMedia *)media
|
|
- (BOOL)shouldFilterMedia:(VLCMedia *)media
|
|
{
|
|
{
|
|
NSString *absoluteString = media.url.absoluteString;
|
|
NSString *absoluteString = media.url.absoluteString;
|