Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
VLC-iOS
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
310
Issues
310
List
Boards
Labels
Service Desk
Milestones
Merge Requests
6
Merge Requests
6
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
VideoLAN
VLC-iOS
Commits
79397cbb
Commit
79397cbb
authored
Jun 16, 2013
by
Felix Paul Kühne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add basic http download UI with the ability to schedule downloads
parent
1b1116c9
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
809 additions
and
43 deletions
+809
-43
AspenProject/VLCHTTPDownloadViewController.h
AspenProject/VLCHTTPDownloadViewController.h
+27
-0
AspenProject/VLCHTTPDownloadViewController.m
AspenProject/VLCHTTPDownloadViewController.m
+172
-0
AspenProject/VLCMenuViewController.m
AspenProject/VLCMenuViewController.m
+5
-43
Resources/VLCHTTPDownloadViewController.xib
Resources/VLCHTTPDownloadViewController.xib
+595
-0
VLC for iOS.xcodeproj/project.pbxproj
VLC for iOS.xcodeproj/project.pbxproj
+10
-0
No files found.
AspenProject/VLCHTTPDownloadViewController.h
0 → 100644
View file @
79397cbb
//
// VLCHTTPDownloadViewController.h
// VLC for iOS
//
// Created by Felix Paul Kühne on 16.06.13.
// Copyright (c) 2013 VideoLAN. All rights reserved.
//
// Refer to the COPYING file of the official project for license.
//
#import "VLCHTTPFileDownloader.h"
@interface
VLCHTTPDownloadViewController
:
UIViewController
<
UITableViewDataSource
,
UITableViewDelegate
,
VLCHTTPFileDownloader
>
@property
(
nonatomic
,
strong
)
IBOutlet
UIButton
*
downloadButton
;
@property
(
nonatomic
,
strong
)
IBOutlet
UITextField
*
urlField
;
@property
(
nonatomic
,
strong
)
IBOutlet
UITableView
*
downloadsTable
;
@property
(
nonatomic
,
strong
)
IBOutlet
UIProgressView
*
progressView
;
@property
(
nonatomic
,
strong
)
IBOutlet
UIButton
*
cancelButton
;
@property
(
nonatomic
,
strong
)
IBOutlet
UILabel
*
currentDownloadLabel
;
@property
(
nonatomic
,
strong
)
IBOutlet
UIActivityIndicatorView
*
activityIndicator
;
-
(
IBAction
)
downloadAction
:(
id
)
sender
;
-
(
IBAction
)
cancelDownload
:(
id
)
sender
;
@end
AspenProject/VLCHTTPDownloadViewController.m
0 → 100644
View file @
79397cbb
//
// VLCHTTPDownloadViewController.m
// VLC for iOS
//
// Created by Felix Paul Kühne on 16.06.13.
// Copyright (c) 2013 VideoLAN. All rights reserved.
//
// Refer to the COPYING file of the official project for license.
//
#import "VLCHTTPDownloadViewController.h"
#import "VLCHTTPFileDownloader.h"
@interface
VLCHTTPDownloadViewController
()
{
VLCHTTPFileDownloader
*
_httpDownloader
;
NSMutableArray
*
_currentDownloads
;
}
@end
@implementation
VLCHTTPDownloadViewController
-
(
void
)
viewDidLoad
{
[
self
.
downloadButton
setTitle
:
@"Download"
forState
:
UIControlStateNormal
];
//FIXME l10n
_currentDownloads
=
[[
NSMutableArray
alloc
]
init
];
[
super
viewDidLoad
];
}
-
(
void
)
viewWillAppear
:(
BOOL
)
animated
{
self
.
navigationController
.
navigationBarHidden
=
NO
;
if
([[
UIPasteboard
generalPasteboard
]
containsPasteboardTypes
:@[
@"public.url"
,
@"public.text"
]])
{
NSURL
*
pasteURL
=
[[
UIPasteboard
generalPasteboard
]
valueForPasteboardType
:
@"public.url"
];
if
(
!
pasteURL
||
[[
pasteURL
absoluteString
]
isEqualToString
:
@""
])
{
NSString
*
pasteString
=
[[
UIPasteboard
generalPasteboard
]
valueForPasteboardType
:
@"public.text"
];
pasteURL
=
[
NSURL
URLWithString
:
pasteString
];
}
if
(
pasteURL
&&
!
[[
pasteURL
scheme
]
isEqualToString
:
@""
]
&&
!
[[
pasteURL
absoluteString
]
isEqualToString
:
@""
])
self
.
urlField
.
text
=
[
pasteURL
absoluteString
];
}
[
super
viewWillAppear
:
animated
];
}
-
(
void
)
viewWillDisappear
:(
BOOL
)
animated
{
if
(
UI_USER_INTERFACE_IDIOM
()
==
UIUserInterfaceIdiomPad
)
self
.
navigationController
.
navigationBarHidden
=
YES
;
[
super
viewWillDisappear
:
animated
];
}
#pragma mark - UI interaction
-
(
IBAction
)
downloadAction
:(
id
)
sender
{
if
([
self
.
urlField
.
text
length
]
>
0
)
{
NSURL
*
URLtoSave
=
[
NSURL
URLWithString
:
self
.
urlField
.
text
];
if
(([
URLtoSave
.
scheme
isEqualToString
:
@"http"
]
||
[
URLtoSave
.
scheme
isEqualToString
:
@"https"
])
&&
!
[
URLtoSave
.
lastPathComponent
.
pathExtension
isEqualToString
:
@""
])
{
if
(
!
_httpDownloader
)
{
_httpDownloader
=
[[
VLCHTTPFileDownloader
alloc
]
init
];
_httpDownloader
.
delegate
=
self
;
}
[
_currentDownloads
addObject
:
URLtoSave
];
self
.
urlField
.
text
=
@""
;
[
self
_triggerNextDownload
];
}
}
}
#pragma mark - download management
-
(
void
)
_triggerNextDownload
{
if
(
!
_httpDownloader
.
downloadInProgress
&&
_currentDownloads
.
count
>
0
)
{
[
_httpDownloader
downloadFileFromURL
:
_currentDownloads
[
0
]];
[
self
.
activityIndicator
startAnimating
];
[
_currentDownloads
removeObjectAtIndex
:
0
];
[
self
.
downloadsTable
reloadData
];
}
}
-
(
IBAction
)
cancelDownload
:(
id
)
sender
{
if
(
_httpDownloader
.
downloadInProgress
)
[
_httpDownloader
cancelDownload
];
}
#pragma mark - VLC HTTP Downloader delegate
-
(
void
)
downloadStarted
{
[
self
.
activityIndicator
stopAnimating
];
self
.
currentDownloadLabel
.
text
=
_httpDownloader
.
userReadableDownloadName
;
self
.
progressView
.
progress
=
0
.;
self
.
currentDownloadLabel
.
hidden
=
NO
;
self
.
progressView
.
hidden
=
NO
;
self
.
cancelButton
.
hidden
=
NO
;
APLog
(
@"download started"
);
}
-
(
void
)
downloadEnded
{
self
.
currentDownloadLabel
.
hidden
=
YES
;
self
.
progressView
.
hidden
=
YES
;
self
.
cancelButton
.
hidden
=
YES
;
APLog
(
@"download ended"
);
[
self
_triggerNextDownload
];
}
-
(
void
)
downloadFailedWithErrorDescription
:(
NSString
*
)
description
{
APLog
(
@"download failed: %@"
,
description
);
}
-
(
void
)
progressUpdatedTo
:(
CGFloat
)
percentage
{
[
self
.
progressView
setProgress
:
percentage
animated
:
YES
];
}
#pragma mark - table view data source
-
(
NSInteger
)
numberOfSectionsInTableView
:(
UITableView
*
)
tableView
{
return
1
;
}
-
(
NSInteger
)
tableView
:(
UITableView
*
)
tableView
numberOfRowsInSection
:(
NSInteger
)
section
{
return
_currentDownloads
.
count
;
}
-
(
UITableViewCell
*
)
tableView
:(
UITableView
*
)
tableView
cellForRowAtIndexPath
:(
NSIndexPath
*
)
indexPath
{
static
NSString
*
CellIdentifier
=
@"ScheduledDownloadsCell"
;
UITableViewCell
*
cell
=
(
UITableViewCell
*
)[
tableView
dequeueReusableCellWithIdentifier
:
CellIdentifier
];
if
(
cell
==
nil
)
{
cell
=
[[
UITableViewCell
alloc
]
initWithStyle
:
UITableViewCellStyleSubtitle
reuseIdentifier
:
CellIdentifier
];
cell
.
textLabel
.
textColor
=
[
UIColor
whiteColor
];
cell
.
detailTextLabel
.
textColor
=
[
UIColor
colorWithWhite
:.
72
alpha
:
1
.];
}
NSInteger
row
=
indexPath
.
row
;
cell
.
textLabel
.
text
=
[
_currentDownloads
[
row
]
lastPathComponent
];
cell
.
detailTextLabel
.
text
=
_currentDownloads
[
row
];
return
cell
;
}
#pragma mark - table view delegate
-
(
void
)
tableView
:(
UITableView
*
)
tableView
willDisplayCell
:(
UITableViewCell
*
)
cell
forRowAtIndexPath
:(
NSIndexPath
*
)
indexPath
{
cell
.
backgroundColor
=
(
indexPath
.
row
%
2
==
0
)?
[
UIColor
blackColor
]:
[
UIColor
colorWithWhite
:.
122
alpha
:
1
.];
}
-
(
BOOL
)
tableView
:(
UITableView
*
)
tableView
canEditRowAtIndexPath
:(
NSIndexPath
*
)
indexPath
{
return
YES
;
}
-
(
void
)
tableView
:(
UITableView
*
)
tableView
commitEditingStyle
:(
UITableViewCellEditingStyle
)
editingStyle
forRowAtIndexPath
:(
NSIndexPath
*
)
indexPath
{
if
(
editingStyle
==
UITableViewCellEditingStyleDelete
)
{
[
_currentDownloads
removeObjectAtIndex
:
indexPath
.
row
];
[
tableView
reloadData
];
}
}
@end
AspenProject/VLCMenuViewController.m
View file @
79397cbb
...
...
@@ -20,16 +20,16 @@
#import "VLCHTTPFileDownloader.h"
#import "IASKAppSettingsViewController.h"
#import "VLCOpenNetworkStreamViewController.h"
#import "VLCHTTPDownloadViewController.h"
#import <ifaddrs.h>
#import <arpa/inet.h>
@interface
VLCMenuViewController
()
{
VLCHTTPUploaderController
*
_uploadController
;
VLCHTTPDownloadViewController
*
_downloadViewController
;
Reachability
*
_reachability
;
VLCHTTPFileDownloader
*
_httpDownloader
;
}
-
(
void
)
_presentOpenURLViewFromView
:(
UIView
*
)
view
forSelector
:(
SEL
)
selector
;
@end
@implementation
VLCMenuViewController
...
...
@@ -142,27 +142,10 @@
-
(
IBAction
)
downloadFromHTTPServer
:(
id
)
sender
{
if
(
_httpDownloader
)
{
if
(
_httpDownloader
.
downloadInProgress
)
return
;
}
if
(
!
_downloadViewController
)
_downloadViewController
=
[[
VLCHTTPDownloadViewController
alloc
]
initWithNibName
:
nil
bundle
:
nil
];
if
(
sender
==
self
.
downloadFromHTTPServerButton
)
{
[
self
_presentOpenURLViewFromView
:
self
.
downloadFromHTTPServerButton
forSelector
:
@selector
(
downloadFromHTTPServer
:
)];
}
else
{
NSURL
*
URLtoSave
=
[
NSURL
URLWithString
:
self
.
openURLField
.
text
];
if
(([
URLtoSave
.
scheme
isEqualToString
:
@"http"
]
||
[
URLtoSave
.
scheme
isEqualToString
:
@"https"
])
&&
!
[
URLtoSave
.
lastPathComponent
.
pathExtension
isEqualToString
:
@""
])
{
if
(
!
_httpDownloader
)
{
_httpDownloader
=
[[
VLCHTTPFileDownloader
alloc
]
init
];
_httpDownloader
.
mediaViewController
=
self
;
}
[
_httpDownloader
downloadFileFromURL
:
URLtoSave
];
[
self
.
openURLView
removeFromSuperview
];
}
else
{
APLog
(
@"URL is not a file download"
);
[
self
_hideAnimated
:
YES
];
}
}
[
self
.
navigationController
pushViewController
:
_downloadViewController
animated
:
YES
];
}
-
(
IBAction
)
showSettings
:(
id
)
sender
...
...
@@ -243,25 +226,4 @@
[
self
presentModalViewController
:
navController
animated
:
YES
];
}
#pragma mark - Private methods
-
(
void
)
_presentOpenURLViewFromView
:(
UIView
*
)
view
forSelector
:(
SEL
)
selector
{
if
([[
UIPasteboard
generalPasteboard
]
containsPasteboardTypes
:@[
@"public.url"
,
@"public.text"
]])
{
NSURL
*
pasteURL
=
[[
UIPasteboard
generalPasteboard
]
valueForPasteboardType
:
@"public.url"
];
if
(
!
pasteURL
||
[[
pasteURL
absoluteString
]
isEqualToString
:
@""
])
{
NSString
*
pasteString
=
[[
UIPasteboard
generalPasteboard
]
valueForPasteboardType
:
@"public.text"
];
pasteURL
=
[
NSURL
URLWithString
:
pasteString
];
}
if
(
pasteURL
&&
!
[[
pasteURL
scheme
]
isEqualToString
:
@""
]
&&
!
[[
pasteURL
absoluteString
]
isEqualToString
:
@""
])
self
.
openURLField
.
text
=
[
pasteURL
absoluteString
];
}
if
(
self
.
openURLView
.
superview
)
[
self
.
openURLView
removeFromSuperview
];
[
self
.
openURLButton
removeTarget
:
nil
action
:
NULL
forControlEvents
:
UIControlEventTouchUpInside
];
[
self
.
openURLButton
addTarget
:
self
action
:
selector
forControlEvents
:
UIControlEventTouchUpInside
];
[
view
addSubview
:
self
.
openURLView
];
}
@end
Resources/VLCHTTPDownloadViewController.xib
0 → 100644
View file @
79397cbb
<?xml version="1.0" encoding="UTF-8"?>
<archive
type=
"com.apple.InterfaceBuilder3.CocoaTouch.XIB"
version=
"8.00"
>
<data>
<int
key=
"IBDocument.SystemTarget"
>
1296
</int>
<string
key=
"IBDocument.SystemVersion"
>
12E55
</string>
<string
key=
"IBDocument.InterfaceBuilderVersion"
>
3084
</string>
<string
key=
"IBDocument.AppKitVersion"
>
1187.39
</string>
<string
key=
"IBDocument.HIToolboxVersion"
>
626.00
</string>
<object
class=
"NSMutableDictionary"
key=
"IBDocument.PluginVersions"
>
<string
key=
"NS.key.0"
>
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
</string>
<string
key=
"NS.object.0"
>
2083
</string>
</object>
<array
key=
"IBDocument.IntegratedClassDependencies"
>
<string>
IBProxyObject
</string>
<string>
IBUIActivityIndicatorView
</string>
<string>
IBUIButton
</string>
<string>
IBUIImageView
</string>
<string>
IBUILabel
</string>
<string>
IBUIProgressView
</string>
<string>
IBUITableView
</string>
<string>
IBUITextField
</string>
<string>
IBUIView
</string>
</array>
<array
key=
"IBDocument.PluginDependencies"
>
<string>
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
</string>
</array>
<object
class=
"NSMutableDictionary"
key=
"IBDocument.Metadata"
>
<string
key=
"NS.key.0"
>
PluginDependencyRecalculationVersion
</string>
<integer
value=
"1"
key=
"NS.object.0"
/>
</object>
<array
class=
"NSMutableArray"
key=
"IBDocument.RootObjects"
id=
"1000"
>
<object
class=
"IBProxyObject"
id=
"372490531"
>
<string
key=
"IBProxiedObjectIdentifier"
>
IBFilesOwner
</string>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
</object>
<object
class=
"IBProxyObject"
id=
"975951072"
>
<string
key=
"IBProxiedObjectIdentifier"
>
IBFirstResponder
</string>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
</object>
<object
class=
"IBUIView"
id=
"191373211"
>
<reference
key=
"NSNextResponder"
/>
<int
key=
"NSvFlags"
>
274
</int>
<array
class=
"NSMutableArray"
key=
"NSSubviews"
>
<object
class=
"IBUIView"
id=
"234033301"
>
<reference
key=
"NSNextResponder"
ref=
"191373211"
/>
<int
key=
"NSvFlags"
>
293
</int>
<array
class=
"NSMutableArray"
key=
"NSSubviews"
>
<object
class=
"IBUIImageView"
id=
"433654949"
>
<reference
key=
"NSNextResponder"
ref=
"234033301"
/>
<int
key=
"NSvFlags"
>
292
</int>
<string
key=
"NSFrameSize"
>
{320, 60}
</string>
<reference
key=
"NSSuperview"
ref=
"234033301"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"205664075"
/>
<string
key=
"NSReuseIdentifierKey"
>
_NS:9
</string>
<bool
key=
"IBUIUserInteractionEnabled"
>
NO
</bool>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
<object
class=
"NSCustomResource"
key=
"IBUIImage"
id=
"348971812"
>
<string
key=
"NSClassName"
>
NSImage
</string>
<string
key=
"NSResourceName"
>
menuBtnBck.png
</string>
</object>
</object>
<object
class=
"IBUITextField"
id=
"205664075"
>
<reference
key=
"NSNextResponder"
ref=
"234033301"
/>
<int
key=
"NSvFlags"
>
290
</int>
<string
key=
"NSFrame"
>
{{10, 15}, {182, 30}}
</string>
<reference
key=
"NSSuperview"
ref=
"234033301"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"209774297"
/>
<string
key=
"NSReuseIdentifierKey"
>
_NS:9
</string>
<bool
key=
"IBUIOpaque"
>
NO
</bool>
<bool
key=
"IBUIClipsSubviews"
>
YES
</bool>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
<int
key=
"IBUIContentVerticalAlignment"
>
0
</int>
<string
key=
"IBUIText"
/>
<int
key=
"IBUIBorderStyle"
>
3
</int>
<object
class=
"NSColor"
key=
"IBUITextColor"
>
<int
key=
"NSColorSpace"
>
3
</int>
<bytes
key=
"NSWhite"
>
MAA
</bytes>
<object
class=
"NSColorSpace"
key=
"NSCustomColorSpace"
id=
"913995005"
>
<int
key=
"NSID"
>
2
</int>
</object>
</object>
<bool
key=
"IBUIAdjustsFontSizeToFit"
>
YES
</bool>
<float
key=
"IBUIMinimumFontSize"
>
17
</float>
<object
class=
"IBUITextInputTraits"
key=
"IBUITextInputTraits"
>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
</object>
<object
class=
"NSCustomResource"
key=
"IBUIBackground"
>
<string
key=
"NSClassName"
>
NSImage
</string>
<string
key=
"NSResourceName"
>
input.png
</string>
</object>
<object
class=
"IBUIFontDescription"
key=
"IBUIFontDescription"
>
<int
key=
"type"
>
1
</int>
<double
key=
"pointSize"
>
14
</double>
</object>
<object
class=
"NSFont"
key=
"IBUIFont"
>
<string
key=
"NSName"
>
Helvetica
</string>
<double
key=
"NSSize"
>
14
</double>
<int
key=
"NSfFlags"
>
16
</int>
</object>
</object>
<object
class=
"IBUIButton"
id=
"209774297"
>
<reference
key=
"NSNextResponder"
ref=
"234033301"
/>
<int
key=
"NSvFlags"
>
289
</int>
<string
key=
"NSFrame"
>
{{200, 11}, {110, 37}}
</string>
<reference
key=
"NSSuperview"
ref=
"234033301"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"1066205493"
/>
<string
key=
"NSReuseIdentifierKey"
>
_NS:9
</string>
<bool
key=
"IBUIOpaque"
>
NO
</bool>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
<int
key=
"IBUIContentHorizontalAlignment"
>
0
</int>
<int
key=
"IBUIContentVerticalAlignment"
>
0
</int>
<int
key=
"IBUIButtonType"
>
1
</int>
<string
key=
"IBUINormalTitle"
>
Télécharger
</string>
<object
class=
"NSColor"
key=
"IBUIHighlightedTitleColor"
id=
"1064176833"
>
<int
key=
"NSColorSpace"
>
3
</int>
<bytes
key=
"NSWhite"
>
MQA
</bytes>
</object>
<object
class=
"NSColor"
key=
"IBUINormalTitleColor"
>
<int
key=
"NSColorSpace"
>
1
</int>
<bytes
key=
"NSRGB"
>
MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA
</bytes>
</object>
<object
class=
"NSColor"
key=
"IBUINormalTitleShadowColor"
id=
"433689442"
>
<int
key=
"NSColorSpace"
>
3
</int>
<bytes
key=
"NSWhite"
>
MC41AA
</bytes>
</object>
<object
class=
"NSCustomResource"
key=
"IBUINormalBackgroundImage"
>
<string
key=
"NSClassName"
>
NSImage
</string>
<string
key=
"NSResourceName"
>
menuButton.png
</string>
</object>
<object
class=
"IBUIFontDescription"
key=
"IBUIFontDescription"
id=
"896947105"
>
<int
key=
"type"
>
2
</int>
<double
key=
"pointSize"
>
15
</double>
</object>
<object
class=
"NSFont"
key=
"IBUIFont"
id=
"621582664"
>
<string
key=
"NSName"
>
Helvetica-Bold
</string>
<double
key=
"NSSize"
>
15
</double>
<int
key=
"NSfFlags"
>
16
</int>
</object>
</object>
</array>
<string
key=
"NSFrameSize"
>
{320, 60}
</string>
<reference
key=
"NSSuperview"
ref=
"191373211"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"433654949"
/>
<string
key=
"NSReuseIdentifierKey"
>
_NS:9
</string>
<object
class=
"NSColor"
key=
"IBUIBackgroundColor"
id=
"130677336"
>
<int
key=
"NSColorSpace"
>
3
</int>
<bytes
key=
"NSWhite"
>
MC42NjY2NjY2NjY3AA
</bytes>
</object>
<object
class=
"IBUISimulatedSizeMetrics"
key=
"IBUISimulatedDestinationMetrics"
id=
"211842947"
>
<string
key=
"IBUISimulatedSizeMetricsClass"
>
IBUISimulatedFreeformSizeMetricsSentinel
</string>
<string
key=
"IBUIDisplayName"
>
Freeform
</string>
</object>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
</object>
<object
class=
"IBUIView"
id=
"1066205493"
>
<reference
key=
"NSNextResponder"
ref=
"191373211"
/>
<int
key=
"NSvFlags"
>
293
</int>
<array
class=
"NSMutableArray"
key=
"NSSubviews"
>
<object
class=
"IBUIImageView"
id=
"1005679980"
>
<reference
key=
"NSNextResponder"
ref=
"1066205493"
/>
<int
key=
"NSvFlags"
>
292
</int>
<string
key=
"NSFrameSize"
>
{320, 60}
</string>
<reference
key=
"NSSuperview"
ref=
"1066205493"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"761747136"
/>
<string
key=
"NSReuseIdentifierKey"
>
_NS:9
</string>
<bool
key=
"IBUIUserInteractionEnabled"
>
NO
</bool>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
<reference
key=
"IBUIImage"
ref=
"348971812"
/>
</object>
<object
class=
"IBUILabel"
id=
"761747136"
>
<reference
key=
"NSNextResponder"
ref=
"1066205493"
/>
<int
key=
"NSvFlags"
>
-2147483356
</int>
<string
key=
"NSFrame"
>
{{11, 9}, {280, 21}}
</string>
<reference
key=
"NSSuperview"
ref=
"1066205493"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"250280512"
/>
<string
key=
"NSReuseIdentifierKey"
>
_NS:9
</string>
<bool
key=
"IBUIOpaque"
>
NO
</bool>
<bool
key=
"IBUIClipsSubviews"
>
YES
</bool>
<int
key=
"IBUIContentMode"
>
7
</int>
<bool
key=
"IBUIUserInteractionEnabled"
>
NO
</bool>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
<string
key=
"IBUIText"
>
Current Download.mpg
</string>
<object
class=
"NSColor"
key=
"IBUITextColor"
>
<int
key=
"NSColorSpace"
>
3
</int>
<bytes
key=
"NSWhite"
>
MC43MgA
</bytes>
</object>
<nil
key=
"IBUIHighlightedColor"
/>
<int
key=
"IBUIBaselineAdjustment"
>
0
</int>
<object
class=
"IBUIFontDescription"
key=
"IBUIFontDescription"
>
<int
key=
"type"
>
1
</int>
<double
key=
"pointSize"
>
17
</double>
</object>
<object
class=
"NSFont"
key=
"IBUIFont"
>
<string
key=
"NSName"
>
Helvetica
</string>
<double
key=
"NSSize"
>
17
</double>
<int
key=
"NSfFlags"
>
16
</int>
</object>
<bool
key=
"IBUIAdjustsFontSizeToFit"
>
NO
</bool>
</object>
<object
class=
"IBUIProgressView"
id=
"802027691"
>
<reference
key=
"NSNextResponder"
ref=
"1066205493"
/>
<int
key=
"NSvFlags"
>
-2147483356
</int>
<string
key=
"NSFrame"
>
{{11, 38}, {299, 9}}
</string>
<reference
key=
"NSSuperview"
ref=
"1066205493"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"831264216"
/>
<string
key=
"NSReuseIdentifierKey"
>
_NS:9
</string>
<bool
key=
"IBUIOpaque"
>
NO
</bool>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
<float
key=
"IBUIProgress"
>
0.5
</float>
</object>
<object
class=
"IBUIButton"
id=
"250280512"
>
<reference
key=
"NSNextResponder"
ref=
"1066205493"
/>
<int
key=
"NSvFlags"
>
-2147483356
</int>
<string
key=
"NSFrame"
>
{{283, 5}, {29, 31}}
</string>
<reference
key=
"NSSuperview"
ref=
"1066205493"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"802027691"
/>
<string
key=
"NSReuseIdentifierKey"
>
_NS:9
</string>
<bool
key=
"IBUIOpaque"
>
NO
</bool>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
<int
key=
"IBUIContentHorizontalAlignment"
>
0
</int>
<int
key=
"IBUIContentVerticalAlignment"
>
0
</int>
<reference
key=
"IBUIHighlightedTitleColor"
ref=
"1064176833"
/>
<object
class=
"NSColor"
key=
"IBUINormalTitleColor"
>
<int
key=
"NSColorSpace"
>
1
</int>
<bytes
key=
"NSRGB"
>
MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA
</bytes>
</object>
<reference
key=
"IBUINormalTitleShadowColor"
ref=
"433689442"
/>
<object
class=
"NSCustomResource"
key=
"IBUINormalImage"
>
<string
key=
"NSClassName"
>
NSImage
</string>
<string
key=
"NSResourceName"
>
DeleteButton.png
</string>
</object>
<reference
key=
"IBUIFontDescription"
ref=
"896947105"
/>
<reference
key=
"IBUIFont"
ref=
"621582664"
/>
</object>
<object
class=
"IBUIActivityIndicatorView"
id=
"277705480"
>
<reference
key=
"NSNextResponder"
ref=
"1066205493"
/>
<int
key=
"NSvFlags"
>
292
</int>
<string
key=
"NSFrame"
>
{{142, 11}, {37, 37}}
</string>
<reference
key=
"NSSuperview"
ref=
"1066205493"
/>
<reference
key=
"NSWindow"
/>
<string
key=
"NSReuseIdentifierKey"
>
_NS:9
</string>
<bool
key=
"IBUIOpaque"
>
NO
</bool>
<bool
key=
"IBUIUserInteractionEnabled"
>
NO
</bool>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
<int
key=
"IBUIStyle"
>
0
</int>
</object>
</array>
<string
key=
"NSFrame"
>
{{0, 59}, {320, 60}}
</string>
<reference
key=
"NSSuperview"
ref=
"191373211"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"1005679980"
/>
<string
key=
"NSReuseIdentifierKey"
>
_NS:9
</string>
<reference
key=
"IBUIBackgroundColor"
ref=
"130677336"
/>
<reference
key=
"IBUISimulatedDestinationMetrics"
ref=
"211842947"
/>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
</object>
<object
class=
"IBUITableView"
id=
"831264216"
>
<reference
key=
"NSNextResponder"
ref=
"191373211"
/>
<int
key=
"NSvFlags"
>
274
</int>
<string
key=
"NSFrame"
>
{{0, 119}, {320, 264}}
</string>
<reference
key=
"NSSuperview"
ref=
"191373211"
/>
<reference
key=
"NSWindow"
/>
<string
key=
"NSReuseIdentifierKey"
>
_NS:9
</string>
<object
class=
"NSColor"
key=
"IBUIBackgroundColor"
>
<int
key=
"NSColorSpace"
>
3
</int>
<bytes
key=
"NSWhite"
>
MCAwLjYxAA
</bytes>
<reference
key=
"NSCustomColorSpace"
ref=
"913995005"
/>
</object>
<bool
key=
"IBUIClipsSubviews"
>
YES
</bool>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
<bool
key=
"IBUIAlwaysBounceVertical"
>
YES
</bool>
<bool
key=
"IBUIShowsVerticalScrollIndicator"
>
NO
</bool>
<int
key=
"IBUISeparatorStyle"
>
1
</int>
<object
class=
"NSColor"
key=
"IBUISeparatorColor"
>
<int
key=
"NSColorSpace"
>
3
</int>
<bytes
key=
"NSWhite"
>
MCAwLjYxAA
</bytes>
<reference
key=
"NSCustomColorSpace"
ref=
"913995005"
/>
</object>
<int
key=
"IBUISectionIndexMinimumDisplayRowCount"
>
0
</int>
<bool
key=
"IBUIShowsSelectionImmediatelyOnTouchBegin"
>
YES
</bool>
<float
key=
"IBUIRowHeight"
>
44
</float>
<float
key=
"IBUISectionHeaderHeight"
>
22
</float>
<float
key=
"IBUISectionFooterHeight"
>
22
</float>
</object>
</array>
<string
key=
"NSFrameSize"
>
{320, 383}
</string>
<reference
key=
"NSSuperview"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"234033301"
/>
<object
class=
"NSColor"
key=
"IBUIBackgroundColor"
>
<int
key=
"NSColorSpace"
>
3
</int>
<bytes
key=
"NSWhite"
>
MQA
</bytes>
<reference
key=
"NSCustomColorSpace"
ref=
"913995005"
/>
</object>
<reference
key=
"IBUISimulatedDestinationMetrics"
ref=
"211842947"
/>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
</object>
</array>
<object
class=
"IBObjectContainer"
key=
"IBDocument.Objects"
>
<array
class=
"NSMutableArray"
key=
"connectionRecords"
>
<object
class=
"IBConnectionRecord"
>
<object
class=
"IBCocoaTouchOutletConnection"
key=
"connection"
>
<string
key=
"label"
>
view
</string>
<reference
key=
"source"
ref=
"372490531"
/>
<reference
key=
"destination"
ref=
"191373211"
/>
</object>
<int
key=
"connectionID"
>
3
</int>
</object>
<object
class=
"IBConnectionRecord"
>
<object
class=
"IBCocoaTouchOutletConnection"
key=
"connection"
>
<string
key=
"label"
>
downloadsTable
</string>
<reference
key=
"source"
ref=
"372490531"
/>
<reference
key=
"destination"
ref=
"831264216"
/>
</object>
<int
key=
"connectionID"
>
75
</int>
</object>
<object
class=
"IBConnectionRecord"
>
<object
class=
"IBCocoaTouchOutletConnection"
key=
"connection"
>
<string
key=
"label"
>
downloadButton
</string>
<reference
key=
"source"
ref=
"372490531"
/>
<reference
key=
"destination"
ref=
"209774297"
/>
</object>
<int
key=
"connectionID"
>
76
</int>
</object>
<object
class=
"IBConnectionRecord"
>
<object
class=
"IBCocoaTouchOutletConnection"
key=
"connection"
>
<string
key=
"label"
>
urlField
</string>
<reference
key=
"source"
ref=
"372490531"
/>
<reference
key=
"destination"
ref=
"205664075"
/>
</object>
<int
key=
"connectionID"
>
77
</int>
</object>
<object
class=
"IBConnectionRecord"
>
<object
class=
"IBCocoaTouchOutletConnection"
key=
"connection"
&g