)key;
41 | - (id)objectForKeyedSubscript:(id)key;
42 |
43 | @end
44 | #endif
45 |
46 | #endif
47 |
48 |
--------------------------------------------------------------------------------
/Puttio/Puttio.xcdatamodeld/.xccurrentversion:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | _XCCurrentVersionName
6 | Puttio 5 (v1.5).xcdatamodel
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Puttio/Resources/Arabic@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Arabic@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Brazil@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Brazil@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Bulgaria@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Bulgaria@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/CCLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/CCLogo.png
--------------------------------------------------------------------------------
/Puttio/Resources/CCLogo@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/CCLogo@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/CCNext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/CCNext.png
--------------------------------------------------------------------------------
/Puttio/Resources/CCNext@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/CCNext@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/CloseSearch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/CloseSearch.png
--------------------------------------------------------------------------------
/Puttio/Resources/CloseSearch@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/CloseSearch@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Cutest_Cat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Cutest_Cat.jpg
--------------------------------------------------------------------------------
/Puttio/Resources/Czech@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Czech@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/DotSlash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/DotSlash.png
--------------------------------------------------------------------------------
/Puttio/Resources/DotSlash@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/DotSlash@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/English@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/English@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Exo-Bold.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Exo-Bold.otf
--------------------------------------------------------------------------------
/Puttio/Resources/Exo-Light.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Exo-Light.otf
--------------------------------------------------------------------------------
/Puttio/Resources/Finnish@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Finnish@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Folder.png
--------------------------------------------------------------------------------
/Puttio/Resources/Folder@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Folder@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/France@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/France@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Github.png
--------------------------------------------------------------------------------
/Puttio/Resources/Github@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Github@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Greek@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Greek@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Hand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Hand.png
--------------------------------------------------------------------------------
/Puttio/Resources/Hand@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Hand@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Hungry@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Hungry@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Indonesia@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Indonesia@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/LoadingSpinner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/LoadingSpinner.png
--------------------------------------------------------------------------------
/Puttio/Resources/LoadingSpinner@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/LoadingSpinner@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/MP4Indicator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/MP4Indicator.png
--------------------------------------------------------------------------------
/Puttio/Resources/MP4Indicator@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/MP4Indicator@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Media-Library-Long@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Media-Library-Long@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/MediaLibrary.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/MediaLibrary.png
--------------------------------------------------------------------------------
/Puttio/Resources/MediaPlayer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/MediaPlayer.png
--------------------------------------------------------------------------------
/Puttio/Resources/MediaPlayer@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/MediaPlayer@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Paper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Paper.png
--------------------------------------------------------------------------------
/Puttio/Resources/Paper@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Paper@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Placeholder.png
--------------------------------------------------------------------------------
/Puttio/Resources/Placeholder@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Placeholder@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Poland@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Poland@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Portuguese@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Portuguese@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/RefreshButton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/RefreshButton.png
--------------------------------------------------------------------------------
/Puttio/Resources/RefreshButton@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/RefreshButton@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Romania@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Romania@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Russian@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Russian@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Spain@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Spain@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/TransferComplete@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/TransferComplete@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/TransferDownloading@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/TransferDownloading@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/TransferError@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/TransferError@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/TransferUploading@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/TransferUploading@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Transfers-Long@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Transfers-Long@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Transfers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Transfers.png
--------------------------------------------------------------------------------
/Puttio/Resources/Transfers@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Transfers@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Turkey@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Turkey@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/TwitterBird.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/TwitterBird.png
--------------------------------------------------------------------------------
/Puttio/Resources/TwitterBird@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/TwitterBird@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/Ukeranian@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/Ukeranian@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/WatchedSash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/WatchedSash.png
--------------------------------------------------------------------------------
/Puttio/Resources/WatchedSash@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/WatchedSash@2x.png
--------------------------------------------------------------------------------
/Puttio/Resources/mail.html:
--------------------------------------------------------------------------------
1 |
2 | Put.IO Feedback
3 |
4 |
5 |
6 | Device Details
7 | Device : {{Device}} - {{iOS Version}}
Version : {{Version}}
--------------------------------------------------------------------------------
/Puttio/Resources/orta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/orta.png
--------------------------------------------------------------------------------
/Puttio/Resources/orta@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Puttio/Resources/orta@2x.png
--------------------------------------------------------------------------------
/Puttio/Utils/MoviePlayer.h:
--------------------------------------------------------------------------------
1 | //
2 | // MoviePlayer.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 27/03/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @class MoviePlayer;
13 |
14 | @protocol MoviePlayerDelegate
15 | - (void)moviePlayer:(MoviePlayer *)player didEndWithError:(NSString *)error;
16 | @end
17 |
18 | @interface MoviePlayer : NSObject
19 | @property MPMoviePlayerController *mediaPlayer;
20 | @property (weak) id delegate;
21 |
22 | + (void)streamMovieAtPath:(NSString *)path withFile:(File *)file;
23 | + (void)watchLocalMovieAtPath:(NSString *)path;
24 | + (MoviePlayer *)sharedPlayer;
25 | @end
26 |
--------------------------------------------------------------------------------
/Puttio/Utils/ORDefaults.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORDefaults.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 06/04/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ORDefaults : NSObject
12 | + (void)registerDefaults;
13 | @end
14 |
--------------------------------------------------------------------------------
/Puttio/Utils/ORDefaults.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORDefaults.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 06/04/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORDefaults.h"
10 |
11 | @implementation ORDefaults
12 | + (void)registerDefaults {
13 | @autoreleasepool {
14 | NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
15 |
16 | NSString *appVersion = [[NSBundle mainBundle] infoDictionary][@"CFBundleShortVersionString"];
17 | [defaults setObject:appVersion forKey:ORAppVersion];
18 | [defaults setBool:YES forKey:ORShowLeftSidebarDefault];
19 | [defaults setBool:YES forKey:ORShowRightSidebarDefault];
20 |
21 | // Mark defaults as loaded
22 | [defaults setBool:YES forKey:ORDefaultsAreLoaded];
23 | [defaults synchronize];
24 | }
25 | }
26 | @end
27 |
--------------------------------------------------------------------------------
/Puttio/Utils/ORDownloadCleanup.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORDownloadCleanup.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 03/12/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ORDownloadCleanup : NSObject
12 | + (void)cleanup;
13 | @end
14 |
--------------------------------------------------------------------------------
/Puttio/Utils/ORDownloadCleanup.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORDownloadCleanup.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 03/12/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORDownloadCleanup.h"
10 | #import "LocalFile.h"
11 | #import "StatusViewController.h"
12 |
13 | @implementation ORDownloadCleanup
14 |
15 | + (void)cleanup {
16 | NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
17 | NSString *documentsDirectory = paths[0];
18 | NSFileManager *fileManager = [NSFileManager defaultManager];
19 | NSError *error = nil;
20 | NSArray *filesInUserDocs = [fileManager contentsOfDirectoryAtPath:documentsDirectory error:&error];
21 | if (error) {
22 | NSLog(@"error %@", error.localizedDescription);
23 | return;
24 | }
25 |
26 | // Get all the txt files
27 | NSMutableArray *knownIDs = [NSMutableArray array];
28 | for (NSString *path in filesInUserDocs) {
29 | if ([path isEqualToString:@"Puttio.sqlite"]) continue;
30 | if ([path rangeOfString:@".txt"].location != NSNotFound){
31 | NSString *fileID = [path componentsSeparatedByString:@"."][0];
32 | [knownIDs addObject:fileID];
33 | }
34 | }
35 |
36 | // Get all the current download process IDs
37 | [knownIDs addObjectsFromArray:[StatusViewController.sharedController processIDs]];
38 |
39 | for (NSString *path in filesInUserDocs) {
40 | NSString *fileID = [path componentsSeparatedByString:@"."][0];
41 | if (![knownIDs containsObject:fileID]) {
42 | [[NSFileManager defaultManager] removeItemAtPath:[documentsDirectory stringByAppendingPathComponent:path] error:nil];
43 | }
44 | }
45 | }
46 |
47 | @end
48 |
--------------------------------------------------------------------------------
/Puttio/Utils/ORPasteboardParser.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORPasteboardParser.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 08/11/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ORPasteboardParser : NSObject
12 | + (NSSet *)submitableURLsInPasteboard;
13 | @end
14 |
--------------------------------------------------------------------------------
/Puttio/Utils/ORPasteboardParser.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORPasteboardParser.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 08/11/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORPasteboardParser.h"
10 |
11 | @implementation ORPasteboardParser
12 |
13 | + (NSSet *)submitableURLsInPasteboard {
14 | UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
15 | NSMutableSet *objects = [NSMutableSet setWithArray:pasteboard.strings];
16 | NSMutableSet *urlsToSubmit = [NSMutableSet set];
17 |
18 | [objects addObjectsFromArray:pasteboard.URLs];
19 |
20 | for (id object in objects.allObjects) {
21 | NSString *url = object;
22 | if ([object isMemberOfClass:[NSURL class]]) {
23 | url = [object absoluteString];
24 | }
25 |
26 | if ([url rangeOfString:@"magnet"].location != NSNotFound) {
27 | [urlsToSubmit addObject:url];
28 | }
29 | else if ([url rangeOfString:@".torrent"].location != NSNotFound){
30 | [urlsToSubmit addObject:url];
31 | }
32 | }
33 |
34 | if(urlsToSubmit.count){
35 | return urlsToSubmit;
36 | } else {
37 | return nil;
38 | }
39 | }
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/Puttio/Utils/SearchController.h:
--------------------------------------------------------------------------------
1 | //
2 | // SearchController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 14/04/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class SearchController;
12 | @protocol SearchResultsDelegate
13 | - (void)searchController:(SearchController *)controller foundResults:(NSArray *)searchResults;
14 | - (void)searchControllerFoundNoResults:(SearchController *)controller;
15 | @end
16 |
17 | @interface SearchController : NSObject
18 | @property (weak) NSObject *delegate;
19 | + (SearchController *)sharedInstance;
20 | + (void)searchForString:(NSString *)query;
21 | @end
22 |
--------------------------------------------------------------------------------
/Puttio/Utils/ThreeColumnViewManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // ThreeColumnViewManager.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 06/04/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ThreeColumnViewManager : NSObject
12 |
13 | @property UIView *leftSidebar;
14 | @property UIView *rightSidebar;
15 | @property UIView *centerView;
16 | @property (weak, nonatomic) IBOutlet UIView *view;
17 |
18 | - (void)setup;
19 | - (void)setupLayout;
20 | @end
21 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/AccountViewController.h:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // AccountViewController.h
4 | // Puttio
5 | //
6 | // Created by orta therox on 24/06/2012.
7 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
8 | //
9 |
10 | #import
11 |
12 | @class ORSimpleProgress, DCRoundSwitch;
13 | @interface AccountViewController : UIViewController
14 |
15 | @property (weak, nonatomic) IBOutlet ORSimpleProgress *accountSpaceLeftProgress;
16 | @property (weak, nonatomic) IBOutlet UILabel *searchInfoLabel;
17 | @property (weak, nonatomic) IBOutlet UILabel *welcomeAccountLabel;
18 | @property (weak, nonatomic) IBOutlet DCRoundSwitch *creativeCommonsSwitch;
19 | @property (weak, nonatomic) IBOutlet UILabel *percentageLabel;
20 |
21 | @property (weak, nonatomic) IBOutlet UILabel *accountSpaceLabel;
22 |
23 | - (IBAction)addToTwitter:(id)sender;
24 | - (IBAction)githubTapped:(id)sender;
25 | - (IBAction)ortaTapped:(id)sender;
26 | - (IBAction)feedbackTapped:(id)sender;
27 | - (IBAction)settingsTapped:(id)sender;
28 | - (IBAction)openPutIO:(id)sender;
29 |
30 | @property (weak, nonatomic) IBOutlet UIView *ortaInfoBackground;
31 | @property (weak, nonatomic) IBOutlet UILabel *ortaInfoTitleLabel;
32 | @property (weak, nonatomic) IBOutlet UILabel *ortaInfoBodyLAbel;
33 | - (IBAction)dbgrandiTapped:(id)sender;
34 | - (IBAction)putIOTapped:(id)sender;
35 |
36 | + (void)openTwitter:(NSString *)username;
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/AudioViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // AudioViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 31/08/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "ModalZoomView.h"
11 |
12 | @interface AudioViewController : UIViewController
13 |
14 | @property (nonatomic) NSObject *item;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/FeedbackViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // FeedbackViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 21/07/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "ModalZoomView.h"
11 | #import
12 | #import
13 |
14 | @interface FeedbackViewController : UIViewController
15 | - (IBAction)review:(id)sender;
16 | - (IBAction)emailDeveloper:(id)sender;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/FileInfoViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // FileInfoViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 01/04/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ModalZoomView.h"
10 | #import "ORSimpleProgress.h"
11 |
12 | @interface FileInfoViewController : UIViewController
13 |
14 | @property (weak, nonatomic) IBOutlet UILabel *titleLabel;
15 | @property (weak, nonatomic) IBOutlet UILabel *additionalInfoLabel;
16 | @property (weak, nonatomic) IBOutlet UILabel *fileSizeLabel;
17 |
18 | @property (weak, nonatomic) IBOutlet UIButton *primaryButton;
19 | @property (weak, nonatomic) IBOutlet UIButton *secondaryButton;
20 |
21 | @property (weak, nonatomic) IBOutlet UIImageView *thumbnailImageView;
22 | @property (weak, nonatomic) IBOutlet ORSimpleProgress *progressView;
23 |
24 | - (IBAction)primaryButtonTapped:(id)sender;
25 | - (IBAction)secondaryButtonTapped:(id)sender;
26 |
27 | @property File *item;
28 |
29 | - (void)setProgressInfoHidden:(BOOL)hidden;
30 |
31 | - (void)enableButtons;
32 | - (void)disableButtons;
33 |
34 | - (void)showProgress;
35 | - (void)hideProgress;
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/FolderViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // FolderViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 04/06/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "GMGridView.h"
11 | #import "TreemapView.h"
12 |
13 | @class BrowsingViewController;
14 | @interface FolderViewController : UIViewController
15 |
16 | @property (nonatomic, strong) Folder *folder;
17 | @property (nonatomic, strong) NSArray *folderItems;
18 | @property GMGridView *gridView;
19 | @property (weak) BrowsingViewController *browsingViewController;
20 |
21 | - (void)reloadItemsFromServer;
22 | - (void)highlightItemAtIndex:(int)position;
23 |
24 | - (void)showTreeMap;
25 | - (void)removeTreeMap;
26 | @end
27 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ItemDeletionViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ItemDeletionViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 04/06/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "ModalZoomView.h"
11 |
12 | @class ORFlatButton;
13 | @interface ItemDeletionViewController : UIViewController
14 |
15 | @property NSObject *item;
16 | @property (weak, nonatomic) IBOutlet UILabel *titleLabel;
17 | @property (weak, nonatomic) IBOutlet UIActivityIndicatorView *networkActivityView;
18 | @property (weak, nonatomic) IBOutlet ORFlatButton *deleteButton;
19 | @property (weak, nonatomic) IBOutlet ORFlatButton *cancelButton;
20 |
21 | - (IBAction)deleteTapped:(id)sender;
22 | - (IBAction)cancelTapped:(id)sender;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/LocalBrowsingViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // LocalBrowsingViewController.h
3 | // Puttio
4 | //
5 | // Created by David Grandinetti on 6/10/12.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "BrowsingViewController.h"
10 |
11 | @interface LocalBrowsingViewController : BrowsingViewController
12 |
13 | @property (strong, nonatomic) IBOutlet UIView *noItemsView;
14 | @property (weak, nonatomic) IBOutlet UILabel *deviceStoredLabel;
15 | @property (weak, nonatomic) IBOutlet UILabel *deviceSpaceLeftLabel;
16 | @property (weak, nonatomic) IBOutlet UIView *phoneBottomBarView;
17 | @property (weak, nonatomic) IBOutlet UILabel *phoneDeviceStoredLabel;
18 | @property (weak, nonatomic) IBOutlet UILabel *phoneDeviceLeftLabel;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ModalZoomView.h:
--------------------------------------------------------------------------------
1 | //
2 | // ModalZoomViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 01/04/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class ModalZoomView;
12 | @protocol ModalZoomViewControllerDelegate
13 |
14 | @optional
15 | - (void)setItem:(id)item;
16 | - (CGSize)sizeForZoomView:(ModalZoomView *)zoomView;
17 | - (void)zoomViewDidFinishZooming:(ModalZoomView *)zoomView;
18 | - (void)zoomViewWillDissapear:(ModalZoomView *)zoomView;
19 | @end
20 |
21 |
22 | @interface ModalZoomView : NSObject
23 | + (id)showWithViewControllerIdentifier:(NSString *)viewControllerID;
24 | + (id)showFromRect:(CGRect)initialFrame withViewControllerIdentifier:(NSString *)viewControllerID andItem:(id)item;
25 |
26 | + (void)fadeOutViewAnimated:(BOOL)animated;
27 | + (BOOL)isShowing;
28 |
29 | @property UIViewController *viewController;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORAddBookmarkViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORAddBookmarkViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 06/01/2013.
6 | // Copyright (c) 2013 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "ModalZoomView.h"
11 | #import "ORBookmarksViewController.h"
12 | @interface ORAddBookmarkViewController : UIViewController
13 |
14 | @property (assign, nonatomic) NSString *name;
15 | @property (assign, nonatomic) NSString *address;
16 | @property (weak) ORBookmarksViewController *bookmarksController;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORAddBookmarkViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORAddBookmarkViewController.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 06/01/2013.
6 | // Copyright (c) 2013 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORAddBookmarkViewController.h"
10 | #import "Bookmark.h"
11 |
12 | @interface ORAddBookmarkViewController ()
13 |
14 | @property (weak, nonatomic) IBOutlet UITextField *titleTextField;
15 | @property (weak, nonatomic) IBOutlet UITextField *addressTextField;
16 |
17 | @end
18 |
19 | @implementation ORAddBookmarkViewController
20 |
21 | - (IBAction)addButtonPressed:(id)sender {
22 | Bookmark *bookmark = [Bookmark object];
23 | bookmark.name = _titleTextField.text;
24 | bookmark.url = _addressTextField.text;
25 | bookmark.lastAccessed = [NSDate date];
26 | if ([[bookmark managedObjectContext] persistentStoreCoordinator].persistentStores.count) {
27 | [[bookmark managedObjectContext] save:nil];
28 | } else {
29 | NSLog(@"could not save");
30 | }
31 | [_bookmarksController reloadAndHideBookmarks];
32 | [ModalZoomView fadeOutViewAnimated:YES];
33 | }
34 |
35 | - (IBAction)cancelButtonPressed:(id)sender {
36 | [ModalZoomView fadeOutViewAnimated:YES];
37 | }
38 |
39 | - (void)zoomViewDidFinishZooming:(ModalZoomView *)zoomView {
40 | [UIView animateWithDuration:0.3 animations:^{
41 | if ([UIDevice deviceType] == DeviceIphone5Plus) {
42 | self.view.frame = CGRectOffset(self.view.frame, 0, -70);
43 | }
44 | else {
45 | self.view.frame = CGRectOffset(self.view.frame, 0, -105);
46 | }
47 | }];
48 | [_titleTextField becomeFirstResponder];
49 | }
50 |
51 | - (void)viewDidUnload {
52 | [self setTitleTextField:nil];
53 | [self setAddressTextField:nil];
54 | [super viewDidUnload];
55 | }
56 |
57 | - (CGSize)sizeForZoomView:(ModalZoomView *)zoomView {
58 | return CGSizeMake(320, 250);
59 | }
60 |
61 | - (void)setAddress:(NSString *)address {
62 | _addressTextField.text = address;
63 | }
64 |
65 | - (void)setName:(NSString *)name {
66 | _titleTextField.text = name;
67 | }
68 |
69 | @end
70 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORAddExternalViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORAddExternalViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 08/11/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ModalZoomView.h"
10 |
11 | @interface ORAddExternalViewController : UIViewController
12 | @end
13 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORAddTorrentFromBrowseViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORAddTorrentFromBrowseViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 02/12/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "ModalZoomView.h"
11 |
12 | @interface ORAddTorrentFromBrowseViewController : UIViewController
13 |
14 | @property (strong, nonatomic) NSString *address;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORAddTorrentFromBrowseViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORAddTorrentFromBrowseViewController.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 02/12/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORAddTorrentFromBrowseViewController.h"
10 | #import "ORTitleLabel.h"
11 |
12 | @interface ORAddTorrentFromBrowseViewController ()
13 | @property (weak, nonatomic) IBOutlet ORTitleLabel *addressLabel;
14 | @property (weak, nonatomic) IBOutlet ORTitleLabel *titleLabel;
15 | @property (weak, nonatomic) IBOutlet UIActivityIndicatorView *networkProgress;
16 |
17 | @end
18 |
19 | @implementation ORAddTorrentFromBrowseViewController
20 |
21 | - (IBAction)cancelButtonTapped:(id)sender {
22 | [ModalZoomView fadeOutViewAnimated:YES];
23 | }
24 |
25 | - (IBAction)addButtonTapped:(id)sender {
26 | [_networkProgress startAnimating];
27 | [[PutIOClient sharedClient] requestTorrentOrMagnetURLAtPath:_address :^(id userInfoObject) {
28 | [_networkProgress stopAnimating];
29 | _addressLabel.text = @"Added to Put.IO";
30 | [(UIButton *)sender setEnabled:NO];
31 | [self performSelector:@selector(cancelButtonTapped:) withObject:self afterDelay:3];
32 |
33 | } addFailure:^{
34 | [_networkProgress stopAnimating];
35 | _addressLabel.text = @"Failed to add file";
36 | } networkFailure:^(NSError *error) {
37 | [_networkProgress stopAnimating];
38 | _addressLabel.text = @"Put.IO seems to be down";
39 | }];
40 | }
41 |
42 | - (void)setAddress:(NSString *)address {
43 | _address = address;
44 | _addressLabel.text = address;
45 |
46 | if ([address hasPrefix:@"http"]) {
47 | _titleLabel.text = @"Add Torrent to Put.IO";
48 | } else {
49 | _titleLabel.text = @"Add Magnet to Put.IO";
50 | }
51 | }
52 |
53 | - (void)viewDidUnload {
54 | [self setAddressLabel:nil];
55 | [self setTitleLabel:nil];
56 | [self setNetworkProgress:nil];
57 | [super viewDidUnload];
58 | }
59 |
60 | - (CGSize)sizeForZoomView:(ModalZoomView *)zoomView {
61 | return CGSizeMake(320, 200);
62 | }
63 |
64 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
65 | return [UIDevice isPad];
66 | }
67 |
68 | @end
69 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORAddTorrentFromLinkViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORAddTorrentFromLinkViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 02/12/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "ModalZoomView.h"
11 |
12 | @interface ORAddTorrentFromLinkViewController : UIViewController
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORAddTorrentFromLinkViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORAddTorrentFromLinkViewController.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 02/12/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORAddTorrentFromLinkViewController.h"
10 |
11 | @interface ORAddTorrentFromLinkViewController (){
12 | __weak IBOutlet UITextField *_torrentTextField;
13 | __weak IBOutlet UILabel *_addedLabel;
14 | __weak IBOutlet UIActivityIndicatorView *_networkActivitySpinner;
15 | }
16 |
17 | @end
18 |
19 | @implementation ORAddTorrentFromLinkViewController
20 |
21 | - (IBAction)addButtonPressed:(id)sender {
22 | [_networkActivitySpinner startAnimating];
23 | _addedLabel.hidden = YES;
24 |
25 | [[PutIOClient sharedClient] requestTorrentOrMagnetURLAtPath:_torrentTextField.text :^(id userInfoObject) {
26 | [ARAnalytics incrementUserProperty:@"Added a torrent" byInt:1];
27 | [_networkActivitySpinner stopAnimating];
28 | _addedLabel.hidden = NO;
29 | _addedLabel.text = @"Added! :)";
30 | [_torrentTextField resignFirstResponder];
31 |
32 | }
33 | addFailure:^() {
34 | [_networkActivitySpinner stopAnimating];
35 | _addedLabel.hidden = NO;
36 | _addedLabel.text = @"Failed :(";
37 | }
38 | networkFailure:^(NSError *error) {
39 | [_networkActivitySpinner stopAnimating];
40 | _addedLabel.hidden = NO;
41 | _addedLabel.text = @"Failed :(";
42 |
43 | }];
44 | }
45 |
46 | - (IBAction)cancelButtonPressed:(id)sender {
47 | [ModalZoomView fadeOutViewAnimated:YES];
48 | }
49 |
50 | - (IBAction)pasteButtonPressed:(id)sender {
51 | _torrentTextField.text = @"";
52 | [_torrentTextField paste:self];
53 | }
54 |
55 | - (void)zoomViewDidFinishZooming:(ModalZoomView *)zoomView {
56 | [UIView animateWithDuration:0.3 animations:^{
57 | if ([UIDevice deviceType] == DeviceIphone5Plus) {
58 | self.view.frame = CGRectOffset(self.view.frame, 0, -28);
59 | }
60 | else {
61 | self.view.frame = CGRectOffset(self.view.frame, 0, -72);
62 | }
63 | }];
64 | [_torrentTextField becomeFirstResponder];
65 | }
66 |
67 | - (void)viewDidUnload {
68 | _torrentTextField = nil;
69 | _addedLabel = nil;
70 | _networkActivitySpinner = nil;
71 | [super viewDidUnload];
72 | }
73 |
74 | - (CGSize)sizeForZoomView:(ModalZoomView *)zoomView {
75 | return CGSizeMake(320, 207);
76 | }
77 |
78 | @end
79 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORBookmarksViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORBookmarksViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 27/12/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORInlineEditableTableViewController.h"
10 |
11 | @protocol ORBookmarkControllerDelegate
12 |
13 | - (NSString *)url;
14 | - (NSString *)name;
15 | - (void)setURL:(NSString *)url;
16 |
17 | @end
18 |
19 | @interface ORBookmarksViewController : UITableViewController
20 |
21 | @property (weak) NSObject *delegate;
22 | @property (weak) WEPopoverController *wePopoverController;
23 | - (void)reloadAndHideBookmarks;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORImageFileInfoViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORImageFileInfoViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 02/12/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ModalZoomView.h"
10 |
11 | @interface ORImageFileInfoViewController : UIViewController
12 |
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORInlineEditableTableViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORBookmarksViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 27/12/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "WEPopoverController.h"
11 |
12 | @interface ORInlineEditableTableViewController : UITableViewController
13 |
14 | @property (assign) NSInteger amountOfCellsToShowBeforeScrollingOnAdd;
15 |
16 | // It is expected that you override this function and add the offset in your version
17 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
18 |
19 | - (UITableViewCell *)setupNormalCell:(UITableViewCell *)cell ForIndexPath:(NSIndexPath *)indexPath;
20 | - (UIButton *)buttonForNewItemWithFrame:(CGRect)frame;
21 | - (UITextField *)textFieldForEditingWithFrame:(CGRect)frame;
22 |
23 | - (void)saveNewItemWithString:(NSString *)string;
24 |
25 | @property (assign) WEPopoverController *container;
26 | @property (assign) BOOL showingTextField;
27 | @end
28 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORMoviePlayerController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORMoviePlayerController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 15/05/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 | // From:
9 | // https://discussions.apple.com/thread/3425817?start=15&tstart=0
10 |
11 | #import
12 | #import "SubRip.h"
13 | #import "OROpenSubtitleDownloader.h"
14 |
15 | @interface ORMoviePlayerController : MPMoviePlayerViewController
16 |
17 | @property (strong, nonatomic) File *file;
18 | @property (strong, nonatomic) SubRip *currentSubtitles;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORPutIOViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORPutIOViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 16/01/2013.
6 | // Copyright (c) 2013 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ORPutIOViewController : UIViewController
12 | @property (weak, nonatomic) IBOutlet UIWebView *webView;
13 | - (IBAction)backTapped:(id)sender;
14 |
15 | - (IBAction)exitTapped:(id)sender;
16 | @end
17 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORPutIOViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORPutIOViewController.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 16/01/2013.
6 | // Copyright (c) 2013 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORPutIOViewController.h"
10 |
11 | @interface ORPutIOViewController ()
12 |
13 | @end
14 |
15 | @implementation ORPutIOViewController
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 | NSString *url = @"http://put.io";
20 | if ([UIDevice isPhone]) {
21 | url = @"http://m.put.io";
22 | }
23 | NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
24 | [_webView loadRequest:request];
25 | }
26 |
27 | - (void)viewDidUnload {
28 | [self setWebView:nil];
29 | [super viewDidUnload];
30 | }
31 |
32 |
33 | - (IBAction)backTapped:(id)sender {
34 | [_webView goBack];
35 | }
36 |
37 | - (IBAction)exitTapped:(id)sender {
38 | UIViewController *rootViewController = [UIApplication sharedApplication].keyWindow.rootViewController;
39 | [rootViewController dismissViewControllerAnimated:YES completion:nil];
40 | }
41 |
42 | @end
43 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORRemoveTransferPopoverViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORRemoveTransferPopoverViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 08/12/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "ORTransferViewController.h"
11 |
12 | @interface ORRemoveTransferPopoverViewController : UIViewController
13 |
14 | - (void)setTransfer:(Transfer *)transfer;
15 | - (void)setTransferViewController:(ORTransferViewController *)transferVC;
16 | @end
17 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORRemoveTransferPopoverViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORRemoveTransferPopoverViewController.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 08/12/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORRemoveTransferPopoverViewController.h"
10 | #import "ORDestructiveButton.h"
11 |
12 | @interface ORRemoveTransferPopoverViewController (){
13 | Transfer *_transfer;
14 | ORTransferViewController *_transferVC;
15 | }
16 | @property (weak, nonatomic) IBOutlet ORDestructiveButton *removeButton;
17 | @end
18 |
19 | @implementation ORRemoveTransferPopoverViewController
20 |
21 | - (void)setTransfer:(Transfer *)transfer {
22 | _transfer = transfer;
23 |
24 | _removeButton.enabled = YES;
25 | _removeButton.alpha = 1;
26 | [_removeButton setTitle:@"Remove" forState:UIControlStateNormal];
27 | }
28 |
29 | - (void)setTransferViewController:(ORTransferViewController *)transferVC {
30 | _transferVC = transferVC;
31 | }
32 |
33 | - (IBAction)removeTapped:(UIButton *)sender {
34 | [_transferVC deleteTapped:sender];
35 | [_removeButton setTitle:@"Cancelling.." forState:UIControlStateNormal];
36 | }
37 |
38 | - (void)viewDidUnload {
39 | [self setRemoveButton:nil];
40 | [super viewDidUnload];
41 | }
42 |
43 | @end
44 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORTorrentBrowserViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORTorrentBrowserViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 02/12/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 | #import "ORBookmarksViewController.h"
9 |
10 | @interface ORTorrentBrowserViewController : UIViewController
11 |
12 | @end
13 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ORTransferViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORTransferViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 14/11/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | @interface ORTransferViewController : UIViewController
10 | - (IBAction)deleteTapped:(UIButton *)sender;
11 | @end
12 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ProcessPopoverViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // TransferPopoverViewControllerViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 04/06/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class ORSimpleProgress;
12 | @interface ProcessPopoverViewController : UIViewController
13 |
14 | @property id item;
15 | @property (weak, nonatomic) IBOutlet UILabel *progressLabel;
16 | @property (weak, nonatomic) IBOutlet UILabel *titleLabel;
17 | @property (weak, nonatomic) IBOutlet ORSimpleProgress *progressView;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/ProcessPopoverViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // TransferPopoverViewControllerViewController.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 04/06/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ProcessPopoverViewController.h"
10 | #import "ORSimpleProgress.h"
11 | #import "BaseProcess.h"
12 |
13 | @interface ProcessPopoverViewController (){
14 | id _item;
15 | NSTimer *_timer;
16 | }
17 |
18 | @end
19 |
20 | @implementation ProcessPopoverViewController
21 |
22 | @dynamic item;
23 | @synthesize progressLabel;
24 | @synthesize titleLabel;
25 | @synthesize progressView;
26 |
27 | - (id)item {
28 | return _item;
29 | }
30 |
31 | - (void)setItem:(id)item {
32 | _item = item;
33 |
34 | if ([item respondsToSelector:@selector(displayName)]) {
35 | self.titleLabel.text = [item displayName];
36 | }
37 |
38 | if ([item respondsToSelector:@selector(primaryDescription)]) {
39 | self.titleLabel.text = [item primaryDescription];
40 | }
41 |
42 | [self updateProgress];
43 | self.progressView.isLandscape = YES;
44 |
45 | _timer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(tick) userInfo:nil repeats:YES];
46 | [_timer fire];
47 | }
48 |
49 | - (void)tick {
50 | [self updateProgress];
51 | }
52 |
53 | - (void)updateProgress {
54 | if ([_item respondsToSelector:@selector(percentDone)]) {
55 | self.progressLabel.text = [NSString stringWithFormat:@"%.0f%%", [[_item percentDone] floatValue]];
56 | self.progressView.progress = [[_item percentDone] floatValue]/100;
57 | }
58 |
59 | if ([_item respondsToSelector:@selector(processProgress)]) {
60 | self.progressLabel.text = [NSString stringWithFormat:@"%.0f%%", [_item processProgress] * 100 ];
61 | self.progressView.progress = [_item processProgress];
62 | }
63 |
64 | if ([_item respondsToSelector:@selector(message)]) {
65 | if ([_item message] != nil) {
66 | self.progressLabel.text = [_item message];
67 | }
68 | }
69 | }
70 |
71 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
72 | return YES;
73 | }
74 |
75 | - (void)viewDidUnload {
76 | [_timer invalidate];
77 | _timer = nil;
78 |
79 | // [self setProgressLabel:nil];
80 | // [self setTitleLabel:nil];
81 | // [self setProgressView:nil];
82 | // [self setItem:nil];
83 | [super viewDidUnload];
84 | }
85 | @end
86 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/SearchViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // SearchViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 25/03/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "SearchController.h"
11 |
12 | @class StatusViewController, ORRotatingButton;
13 |
14 | @interface SearchViewController : UIViewController
15 |
16 | @property (weak, nonatomic) IBOutlet ORRotatingButton *activitySpinner;
17 | @property (weak, nonatomic) IBOutlet UISearchBar *searchBar;
18 | @property (weak, nonatomic) IBOutlet UITableView *tableView;
19 | @property (weak, nonatomic) IBOutlet StatusViewController *statusViewController;
20 |
21 | @property (weak, nonatomic) IBOutlet UIView *noResultsFoundView;
22 | @property (weak, nonatomic) IBOutlet UIView *tryChangingSettingsView;
23 |
24 | - (IBAction)hideSearchInterface:(id)sender;
25 | - (void)reposition;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/StatusViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // StatusViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 25/03/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "ORSlidingTableView.h"
11 | #import "BaseProcess.h"
12 |
13 | @class ORSimpleProgress, DCKnob;
14 | @interface StatusViewController : UIViewController
15 |
16 | + (StatusViewController *)sharedController;
17 |
18 | @property (weak, nonatomic) IBOutlet UITableView *tableView;
19 | @property (weak, nonatomic) IBOutlet DCKnob *spaceProgressView;
20 | @property (weak, nonatomic) IBOutlet DCKnob *spaceProgressBG;
21 |
22 | - (void)setup;
23 | - (void)addProcess:(BaseProcess *)process;
24 | - (NSArray *)processIDs;
25 | @end
26 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/TextFileInfoViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // TextFileInfoViewController.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 05/08/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ModalZoomView.h"
10 |
11 | @class ORTitleLabel, ORRotatingButton, ORSimpleProgress;
12 |
13 | @interface TextFileInfoViewController : UIViewController
14 |
15 | @property (weak, nonatomic) IBOutlet ORRotatingButton *loadingIndicator;
16 | @property (weak, nonatomic) IBOutlet UITextView *textfield;
17 | @property (weak, nonatomic) IBOutlet ORTitleLabel *titleLabel;
18 | @property (weak, nonatomic) IBOutlet ORSimpleProgress *progressBar;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Puttio/ViewControllers/TextFileInfoViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // TextFileInfoViewController.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 05/08/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "TextFileInfoViewController.h"
10 | #import "AFHTTPRequestOperation.h"
11 | #import "ORTitleLabel.h"
12 | #import "ORRotatingButton.h"
13 | #import "ORSimpleProgress.h"
14 |
15 | @implementation TextFileInfoViewController
16 |
17 | - (void)setItem:(File *)item {
18 | _titleLabel.text = item.displayName;
19 | _loadingIndicator.alpha = 0;
20 | [_loadingIndicator fadeIn];
21 | _progressBar.isLandscape = YES;
22 |
23 | NSString *requestURL = [NSString stringWithFormat:@"https://put.io/v2/files/%@/download", item.id];
24 | NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[PutIOClient appendOauthToken:requestURL]]];
25 |
26 | AFHTTPRequestOperation *downloadOperation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
27 | _progressBar.progress = 0;
28 |
29 | [downloadOperation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
30 | CGFloat progress = (float)totalBytesRead/totalBytesExpectedToRead;
31 | _progressBar.progress = progress;
32 | }];
33 |
34 | [downloadOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
35 | _textfield.text = operation.responseString;
36 | [_loadingIndicator fadeOut];
37 | _progressBar.hidden = YES;
38 | } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
39 | _textfield.text = [ NSString stringWithFormat:@"Could not download text for %@", item.displayName];
40 | [_loadingIndicator fadeOut];
41 | _progressBar.hidden = YES;
42 | }];
43 |
44 | [downloadOperation start];
45 | }
46 |
47 | - (void)zoomViewWillDissapear:(ModalZoomView *)zoomView {
48 | [UIView animateWithDuration:0.1 animations:^{
49 | _textfield.alpha = 0;
50 | }];
51 | }
52 |
53 |
54 | - (void)viewDidUnload {
55 | [self setTextfield:nil];
56 | [self setTitleLabel:nil];
57 | [self setLoadingIndicator:nil];
58 | [super viewDidUnload];
59 | }
60 |
61 | - (IBAction)closeButtonTapped:(id)sender {
62 | [ModalZoomView fadeOutViewAnimated:YES];
63 | }
64 | @end
65 |
--------------------------------------------------------------------------------
/Puttio/Views/Cells/ORAddTorrentCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORAddTorrentCell.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 08/11/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORAnimatedTickView.h"
10 |
11 | @interface ORAddTorrentCell : UITableViewCell
12 | @property (weak, nonatomic) IBOutlet UILabel *title;
13 | @property (weak, nonatomic) IBOutlet ORAnimatedTickView *selectionTick;
14 | @end
15 |
--------------------------------------------------------------------------------
/Puttio/Views/Cells/ORAddTorrentCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORAddTorrentCell.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 08/11/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORAddTorrentCell.h"
10 |
11 | @implementation ORAddTorrentCell
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Puttio/Views/Cells/ORExtendedTransferCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORExtendedTransferCell.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 14/11/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | @interface ORExtendedTransferCell : UITableViewCell
10 |
11 | @property (nonatomic, strong) Transfer *transfer;
12 | @property (assign) BOOL isExpanded;
13 |
14 | - (void)showCancelButtonWithTarget:(id)target;
15 | - (void)deletedTransfer;
16 | @end
17 |
--------------------------------------------------------------------------------
/Puttio/Views/ORDestructiveButton.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORDestructiveButton.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 14/07/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORFlatButton.h"
10 |
11 | @interface ORDestructiveButton : ORFlatButton
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Puttio/Views/ORDestructiveButton.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORDestructiveButton.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 14/07/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORDestructiveButton.h"
10 | #import "ORFlatButton.h"
11 |
12 | @interface ORFlatButton (private)
13 | - (void)setup;
14 | - (void)setBackgroundColor:(UIColor *)backgroundColor forState:(UIControlState)state;
15 | @end
16 |
17 | @implementation ORDestructiveButton
18 |
19 | - (void)setup {
20 | [super setup];
21 | self.backgroundColor = [UIColor putioRed];
22 | [self setBackgroundColor:[UIColor putioDarkRed] forState:UIControlStateHighlighted];
23 | [self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
24 | }
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Puttio/Views/ORFlatButton.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORFlatButton.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 22/05/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ORFlatButton : UIButton
12 |
13 | - (UIImage *) imageFromColor:(UIColor *)color;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Puttio/Views/ORFlatButton.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORFlatButton.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 22/05/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORFlatButton.h"
10 | #import "UIColor+PutioColours.h"
11 |
12 | @implementation ORFlatButton
13 |
14 | - (id)initWithFrame:(CGRect)frame {
15 | self = [super initWithFrame:frame];
16 | if (self) {
17 | [self setup];
18 | }
19 | return self;
20 | }
21 |
22 | - (void)awakeFromNib {
23 | [self setup];
24 | }
25 |
26 | - (void)setup {
27 | self.adjustsImageWhenDisabled = NO;
28 |
29 | self.backgroundColor = [UIColor putioBlue];
30 | [self setBackgroundColor:[UIColor putioDarkBlue] forState:UIControlStateHighlighted];
31 | [self setBackgroundColor:[[UIColor putioBlue] colorWithAlphaComponent:0.3] forState:UIControlStateDisabled];
32 |
33 | [self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
34 | [self setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
35 | [[self titleLabel] setFont:[UIFont boldSystemFontOfSize:15]];
36 | }
37 |
38 | - (void)setBackgroundColor:(UIColor *)backgroundColor forState:(UIControlState)state {
39 | [self setBackgroundImage:[self imageFromColor:backgroundColor]
40 | forState:state];
41 |
42 | }
43 |
44 | // creates a 1x1 UIImage with a color
45 | // comes from http://stackoverflow.com/questions/2808888/is-it-even-possible-to-change-a-uibuttons-background-color
46 | - (UIImage *) imageFromColor:(UIColor *)color {
47 | CGRect rect = CGRectMake(0, 0, 1, 1);
48 | UIGraphicsBeginImageContext(rect.size);
49 | CGContextRef context = UIGraphicsGetCurrentContext();
50 | CGContextSetFillColorWithColor(context, [color CGColor]);
51 | CGContextFillRect(context, rect);
52 | UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
53 | UIGraphicsEndImageContext();
54 | return img;
55 | }
56 |
57 |
58 | @end
59 |
--------------------------------------------------------------------------------
/Puttio/Views/ORHorizontalImageViewCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORHorizontalImageViewCell.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 08/07/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORImageViewCell.h"
10 |
11 | @interface ORHorizontalImageViewCell : ORImageViewCell
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Puttio/Views/ORHorizontalImageViewCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORHorizontalImageViewCell.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 08/07/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORHorizontalImageViewCell.h"
10 |
11 | @implementation ORHorizontalImageViewCell
12 |
13 | + (CGFloat) cellHeight { return 60; }
14 | + (CGFloat) cellWidth { return 200; }
15 |
16 | - (id)initWithFrame:(CGRect)frame {
17 | if (self = [super initWithFrame:frame]) {
18 | [self layoutSubviews];
19 | }
20 | return self;
21 | }
22 |
23 | - (void)layoutSubviews {
24 | [super layoutSubviews];
25 | [imageView setFrame: CGRectMake(-4, 4, 60, 40)];
26 | [titleLabel setFrame:CGRectMake(64, -4, 140, 60)];
27 | titleLabel.textAlignment = UITextAlignmentLeft;
28 | }
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/Puttio/Views/ORImageViewCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORImageViewCell.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 27/03/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 |
10 | #import "GMGridViewCell.h"
11 |
12 | @interface ORImageViewCell : GMGridViewCell {
13 | UIImageView *imageView;
14 | UILabel *titleLabel;
15 | }
16 |
17 | + (CGFloat) cellHeight;
18 | + (CGFloat) cellWidth;
19 |
20 | @property (nonatomic) NSString *title;
21 | @property (nonatomic) UIImage *image;
22 | @property (nonatomic) NSURL *imageURL;
23 | @property (nonatomic) id item;
24 | @property (nonatomic, assign) BOOL watched;
25 | @property (nonatomic, assign) BOOL hasMP4;
26 |
27 | - (void)useUnknownImageForFileType:(NSString *)string;
28 | @end
29 |
--------------------------------------------------------------------------------
/Puttio/Views/ORMessageCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORMessageCell.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 02/04/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ORMessageCell : UITableViewCell
12 | @property (weak, nonatomic) IBOutlet UILabel *messageLabel;
13 | @end
14 |
--------------------------------------------------------------------------------
/Puttio/Views/ORMessageCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORMessageCell.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 02/04/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORMessageCell.h"
10 |
11 | @implementation ORMessageCell
12 | @synthesize messageLabel;
13 | @end
14 |
--------------------------------------------------------------------------------
/Puttio/Views/ORRotatingButton.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORRotatingButton.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 14/07/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ORRotatingButton : UIButton
12 |
13 | - (void)fadeIn;
14 | - (void)fadeOut;
15 |
16 | - (void)startAnimating;
17 | - (void)stopAnimating;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Puttio/Views/ORRotatingButton.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORRotatingButton.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 14/07/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORRotatingButton.h"
10 | #import
11 |
12 | @interface ORRotatingButton () {
13 | CABasicAnimation *rotationAnimation;
14 | }
15 | @end
16 |
17 |
18 |
19 | @implementation ORRotatingButton
20 |
21 | CGFloat RotationDuration = 0.9;
22 |
23 | - (void)fadeIn {
24 | [self startAnimating];
25 | if (self.alpha) return;
26 |
27 | [UIView animateWithDuration:0.3 animations:^{
28 | self.alpha = 1;
29 | }];
30 | }
31 |
32 | - (void)fadeOut {
33 | [self stopAnimating];
34 | if (!self.alpha) return;
35 |
36 | [UIView animateWithDuration:0.3 animations:^{
37 | self.alpha = 0;
38 | }];
39 | }
40 |
41 | - (void)startAnimating {
42 | [self animate:HUGE_VAL];
43 | }
44 |
45 | - (void)animate:(int)times{
46 | CATransform3D rotationTransform = CATransform3DMakeRotation(1.01f * M_PI, 0, 0, 1.0);
47 | rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform"];
48 |
49 | rotationAnimation.toValue = [NSValue valueWithCATransform3D:rotationTransform];
50 | rotationAnimation.duration = RotationDuration;
51 | rotationAnimation.cumulative = YES;
52 | rotationAnimation.repeatCount = times;
53 | [self.layer addAnimation:rotationAnimation forKey:@"transform"];
54 |
55 | }
56 |
57 | - (void)stopAnimating {
58 | [self.layer removeAllAnimations];
59 | [self animate:1];
60 | }
61 |
62 | @end
63 |
--------------------------------------------------------------------------------
/Puttio/Views/ORSearchCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORSearchCell.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 11/04/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ORSearchCell : UITableViewCell
12 | @property (weak, nonatomic) IBOutlet UILabel *fileNameLabel;
13 | @property (weak, nonatomic) IBOutlet UILabel *fileSizeLabel;
14 | @property (weak, nonatomic) IBOutlet UILabel *seedersLabel;
15 |
16 | - (void)userHasSelectedFile;
17 | - (void)userHasFailedToAddFile;
18 | - (void)userHasAddedFile;
19 | @end
20 |
--------------------------------------------------------------------------------
/Puttio/Views/ORSearchCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORSearchCell.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 11/04/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORSearchCell.h"
10 | #import "UIColor+PutioColours.h"
11 |
12 | @implementation ORSearchCell
13 |
14 | - (void)prepareForReuse {
15 | [super prepareForReuse];
16 | self.userInteractionEnabled = YES;
17 | self.contentView.backgroundColor = [UIColor whiteColor];
18 | self.seedersLabel.textColor = [UIColor putioLightGray];
19 | }
20 |
21 | - (void)userHasSelectedFile {
22 | self.contentView.backgroundColor = [UIColor putioBlue];
23 | self.seedersLabel.textColor = [UIColor whiteColor];
24 | self.seedersLabel.text = @"Requesting";
25 | self.fileSizeLabel.text = @"";
26 | self.userInteractionEnabled = NO;
27 | }
28 |
29 | - (void)userHasFailedToAddFile {
30 | self.contentView.backgroundColor = [UIColor putioRed];
31 | self.seedersLabel.textColor = [UIColor whiteColor];
32 | self.seedersLabel.text = @"Request failed";
33 | self.fileSizeLabel.text = @"";
34 | self.userInteractionEnabled = YES;
35 | }
36 |
37 | - (void)userHasAddedFile {
38 | self.contentView.backgroundColor = [UIColor putioDarkBlue];
39 | self.seedersLabel.textColor = [UIColor putioBlue];
40 | self.fileNameLabel.textColor = [UIColor whiteColor];
41 | self.seedersLabel.text = @"Request succeeded";
42 | self.fileSizeLabel.text = @"";
43 | }
44 |
45 | @end
46 |
--------------------------------------------------------------------------------
/Puttio/Views/ORSimpleProgress.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORSimpleProgress.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 25/03/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ORSimpleProgress : UIView {
12 | CGFloat _progress;
13 | }
14 |
15 | @property UILabel *label;
16 | @property UIColor *fillColour;
17 | @property (assign) BOOL isLandscape;
18 | @property CGFloat progress;
19 | @end
20 |
--------------------------------------------------------------------------------
/Puttio/Views/ORSimpleProgress.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORSimpleProgress.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 25/03/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORSimpleProgress.h"
10 |
11 | @implementation ORSimpleProgress
12 | @synthesize label, fillColour, isLandscape;
13 | @dynamic progress;
14 |
15 | - (void)awakeFromNib {
16 | self.alpha = .3;
17 | self.label = [[UILabel alloc] initWithFrame:self.frame];
18 | _progress = .3;
19 | self.backgroundColor = [[UIColor putioBlue] colorWithAlphaComponent:0.5];
20 | self.fillColour = [UIColor putioYellow];
21 | }
22 |
23 | - (void)drawRect:(CGRect)rect {
24 | CGContextRef c = UIGraphicsGetCurrentContext();
25 |
26 | CGContextSetFillColor(c, CGColorGetComponents(self.backgroundColor.CGColor));
27 | CGContextFillRect(c, self.bounds);
28 |
29 | CGRect filledRect = self.bounds;
30 | if (self.isLandscape) {
31 | filledRect.size.width = filledRect.size.width * _progress;
32 | }else{
33 | filledRect.size.height = filledRect.size.height * _progress;
34 | }
35 | CGContextSetFillColor(c, CGColorGetComponents(self.fillColour.CGColor));
36 | CGContextFillRect(c, filledRect);
37 | }
38 |
39 | - (void)setProgress:(CGFloat)progress {
40 | self.alpha = 1;
41 | _progress = progress;
42 | [self setNeedsDisplay];
43 | }
44 |
45 | @end
46 |
--------------------------------------------------------------------------------
/Puttio/Views/ORSlidingTableView.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORSlidingTableView.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 03/06/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class ORSlidingTableView;
12 | @protocol ORSlidingTableViewDelegate
13 | - (void)slidingTableDidBeginTouch:(ORSlidingTableView *)table;
14 | - (void)slidingTable:(ORSlidingTableView *)table didMoveToCellAtRow:(NSInteger)row inSection:(NSInteger)section;
15 | - (void)slidingTableDidEndTouch:(ORSlidingTableView *)table;
16 | @end
17 |
18 | @interface ORSlidingTableView : UITableView
19 |
20 | @property (weak) IBOutlet NSObject *slidingDelegate;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Puttio/Views/ORSwipeImageView.h:
--------------------------------------------------------------------------------
1 | //
2 | // ARSwipeImageView.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 06/08/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ORSwipeImageView : UIImageView
12 | - (void)startAnimation;
13 | @end
--------------------------------------------------------------------------------
/Puttio/Views/ORSyncView.h:
--------------------------------------------------------------------------------
1 | //
2 | // ORSyncView.h
3 | // Puttio
4 | //
5 | // Created by Orta on 09/11/2013.
6 | // Copyright (c) 2013 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "DCRoundSwitch.h"
10 |
11 | @interface ORSyncView : DCRoundSwitch
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Puttio/Views/ORSyncView.m:
--------------------------------------------------------------------------------
1 | //
2 | // ORSyncView.m
3 | // Puttio
4 | //
5 | // Created by Orta on 09/11/2013.
6 | // Copyright (c) 2013 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORSyncView.h"
10 |
11 | @interface DCRoundSwitch()
12 |
13 | - (void)setup;
14 |
15 | @end
16 |
17 | @implementation ORSyncView
18 |
19 | - (void)setup
20 | {
21 | [super setup];
22 |
23 | self.onText = @"OFF";
24 | self.offText = @"ON";
25 |
26 | }
27 | @end
28 |
--------------------------------------------------------------------------------
/Puttio/Views/ORTitleLabel.h:
--------------------------------------------------------------------------------
1 | //
2 | // ARTitleLabel.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 27/07/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ORTitleLabel : UILabel
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Puttio/Views/ORTitleLabel.m:
--------------------------------------------------------------------------------
1 | //
2 | // ARTitleLabel.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 27/07/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORTitleLabel.h"
10 |
11 | @implementation ORTitleLabel
12 |
13 | - (id)initWithFrame:(CGRect)frame
14 | {
15 | self = [super initWithFrame:frame];
16 | if (self) {
17 | [self setup];
18 | }
19 | return self;
20 | }
21 |
22 | - (void)awakeFromNib {
23 | [self setup];
24 | }
25 |
26 | - (void)setup {
27 | self.font = [UIFont titleFontWithSize:self.font.pointSize];
28 | }
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/Puttio/Views/ORTorrentLikeView.h:
--------------------------------------------------------------------------------
1 | //
2 | // TorrentLikeView.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 07/07/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface ORTorrentLikeView : UIView
13 | @end
14 |
--------------------------------------------------------------------------------
/Puttio/Views/ORTransferCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // ARTransferCell.h
3 | // Puttio
4 | //
5 | // Created by orta therox on 01/04/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class ORSimpleProgress;
12 | @interface ORTransferCell : UITableViewCell
13 | @property (weak, nonatomic) IBOutlet UILabel *nameLabel;
14 | @property (weak, nonatomic) IBOutlet UILabel *detailsLabel;
15 | @property (weak, nonatomic) IBOutlet ORSimpleProgress *progressView;
16 | @end
17 |
--------------------------------------------------------------------------------
/Puttio/Views/ORTransferCell.m:
--------------------------------------------------------------------------------
1 | //
2 | // ARTransferCell.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 01/04/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import "ORTransferCell.h"
10 |
11 | @implementation ORTransferCell
12 | @end
13 |
--------------------------------------------------------------------------------
/Puttio/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/Puttio/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Puttio
4 | //
5 | // Created by orta therox on 22/03/2012.
6 | // Copyright (c) 2012 ortatherox.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | #import "ORAppDelegate.h"
12 |
13 | int main(int argc, char *argv[]) {
14 | @autoreleasepool {
15 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([ORAppDelegate class]));
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/README.markdown:
--------------------------------------------------------------------------------
1 | Puttio. A nice experience for Put.io on iPad.
2 | ----
3 |
4 | This app makes it super easy to use Put.IO. See [AwesomePutIOApp.com](http://awesomeputioapp.com) for marketing jargon.
5 | It's built in Objective-C, is good readable code, but there's a lot of late-night code in here. You'll need Xcode 4.5 to compile. It uses Storyboards & ARC.
6 |
7 | iPhone
8 | ---
9 |
10 |
11 | -
12 | -
13 | 
14 |
15 |
16 |
17 | iPad
18 | ---
19 |
20 |
21 |
22 | -
23 | -
24 | 
25 |
26 |
27 |
28 | Licensed under a slightly modified BSD. I'd love Pull Requests, but app store submissions will be a rarity.
--------------------------------------------------------------------------------
/Resources/Flags.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Resources/Flags.psd
--------------------------------------------------------------------------------
/Resources/UI-Mockup.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Resources/UI-Mockup.pdf
--------------------------------------------------------------------------------
/Resources/puttio-folder.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Resources/puttio-folder.psd
--------------------------------------------------------------------------------
/Resources/puttio-paper.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/Resources/puttio-paper.psd
--------------------------------------------------------------------------------
/icon114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/icon114.png
--------------------------------------------------------------------------------
/icon144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/icon144.png
--------------------------------------------------------------------------------
/icon57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/icon57.png
--------------------------------------------------------------------------------
/icon72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/icon72.png
--------------------------------------------------------------------------------
/vendor/IGHTMLQuery.podspec:
--------------------------------------------------------------------------------
1 | Pod::Spec.new do |s|
2 | s.name = "IGHTMLQuery"
3 | s.version = "0.5.1"
4 | s.summary = "IGHTMLQuery is a lightweight XML/HTML parser for iOS, built on top of libxml."
5 |
6 | s.description = <<-DESC
7 | IGHTMLQuery is a lightweight XML/HTML parser for iOS, built on top of libxml.
8 |
9 | * XPath support for document searching.
10 | * jQuery style chainable syntax.
11 | * XML traversal and manipulation.
12 | DESC
13 |
14 | s.homepage = "https://github.com/siuying/IGHTMLQuery"
15 |
16 | s.license = { :type => 'MIT', :file => 'LICENSE.txt' }
17 |
18 | s.author = { "Francis Chong" => "francis@ignition.hk" }
19 |
20 | s.ios.deployment_target = '5.0'
21 | s.osx.deployment_target = '10.8'
22 |
23 | s.source = { :git => "https://github.com/siuying/IGHTMLQuery.git", :tag => s.version.to_s }
24 | s.source_files = 'IGHTMLQuery/Classes/**/*.{h,m}'
25 |
26 | s.library = 'xml2'
27 | s.requires_arc = true
28 |
29 | s.xcconfig = { 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2' }
30 |
31 | end
--------------------------------------------------------------------------------
/vendor/OROpenSubtitleDownloader.podspec:
--------------------------------------------------------------------------------
1 | Pod::Spec.new do |s|
2 | s.name = "OROpenSubtitleDownloader"
3 | s.version = "0.0.1"
4 | s.summary = "An Obj-C API for Searching and Downloading Subtitles from OpenSubtitles."
5 | s.homepage = "https://github.com/orta/OROpenSubtitleDownloader"
6 | s.license = { :type => 'BSD', :file => 'LICENSE' }
7 | s.author = { "orta" => "orta.therox@gmail.com" }
8 | s.source = { :git => "https://github.com/orta/OROpenSubtitleDownloader.git", :commit => :head }
9 | s.source_files = 'OROpenSubtitleDownloader.{h,m}'
10 | s.library = 'z'
11 | s.requires_arc = true
12 |
13 | s.platform = :ios
14 | s.ios.deployment_target = '5.0'
15 |
16 | s.dependency 'AFNetworking', "~> 1.0"
17 | s.dependency 'xmlrpc'
18 | end
19 |
--------------------------------------------------------------------------------
/vendor/kkgridview/.gitignore:
--------------------------------------------------------------------------------
1 | *.xcodeproj/*.pbxuser
2 | *.xcodeproj/*.perspectivev3
3 | *.xcodeproj/xcuserdata/
4 | *.xcodeproj/project.xcworkspace/xcuserdata/
5 | *.xcuserstate
6 | Examples/*/*.xcodeproj/xcuserdata
7 | build/
8 | .DS_Store
9 | Examples/GridViewDemo/GridViewDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
10 | *.xcuserdatad
11 |
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/docset-installed.txt:
--------------------------------------------------------------------------------
1 | Documentation set was installed to Xcode!
2 |
3 | Path: /Users/kxkdesign/Library/Developer/Shared/Documentation/DocSets/com.kolinkrewinkel.KKGridView.docset
4 | Time: 2011-10-25 05:06:43 +0000
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/docset/Contents/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleIdentifier
8 | com.kolinkrewinkel.KKGridView
9 | CFBundleName
10 | KKGridView Documentation
11 | CFBundleShortVersionString
12 | 1.0
13 | CFBundleVersion
14 | 1.0
15 |
16 |
17 |
18 |
19 | DocSetFeedName
20 | KKGridView Documentation
21 |
22 | DocSetMinimumXcodeVersion
23 | 3.0
24 |
25 | DocSetPublisherIdentifier
26 | com.kolinkrewinkel.documentation
27 | DocSetPublisherName
28 | Kolin Krewinkel
29 | NSHumanReadableCopyright
30 | Copyright © 2011 Kolin Krewinkel. All rights reserved.
31 |
32 |
33 |
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/docset/Contents/Resources/Documents/css/stylesPrint.css:
--------------------------------------------------------------------------------
1 |
2 | header {
3 | display: none;
4 | }
5 |
6 | div.main-navigation, div.navigation-top {
7 | display: none;
8 | }
9 |
10 | div#overview_contents, div#contents.isShowingTOC, div#contents {
11 | overflow: visible;
12 | position: relative;
13 | top: 0px;
14 | border: none;
15 | left: 0;
16 | }
17 | #tocContainer.isShowingTOC {
18 | display: none;
19 | }
20 | nav {
21 | display: none;
22 | }
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/docset/Contents/Resources/Documents/img/button_bar_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Documentation/docset/Contents/Resources/Documents/img/button_bar_background.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/docset/Contents/Resources/Documents/img/disclosure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Documentation/docset/Contents/Resources/Documents/img/disclosure.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/docset/Contents/Resources/Documents/img/disclosure_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Documentation/docset/Contents/Resources/Documents/img/disclosure_open.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/docset/Contents/Resources/Documents/img/library_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Documentation/docset/Contents/Resources/Documents/img/library_background.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/docset/Contents/Resources/Documents/img/title_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Documentation/docset/Contents/Resources/Documents/img/title_background.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/docset/Contents/Resources/Nodes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | KKGridView
6 | index.html
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/docset/Contents/Resources/docSet.dsidx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Documentation/docset/Contents/Resources/docSet.dsidx
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/docset/Contents/Resources/docSet.mom:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Documentation/docset/Contents/Resources/docSet.mom
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/docset/Contents/Resources/docSet.skidx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Documentation/docset/Contents/Resources/docSet.skidx
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/docset/Contents/Resources/docSet.toc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Documentation/docset/Contents/Resources/docSet.toc
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/html/css/stylesPrint.css:
--------------------------------------------------------------------------------
1 |
2 | header {
3 | display: none;
4 | }
5 |
6 | div.main-navigation, div.navigation-top {
7 | display: none;
8 | }
9 |
10 | div#overview_contents, div#contents.isShowingTOC, div#contents {
11 | overflow: visible;
12 | position: relative;
13 | top: 0px;
14 | border: none;
15 | left: 0;
16 | }
17 | #tocContainer.isShowingTOC {
18 | display: none;
19 | }
20 | nav {
21 | display: none;
22 | }
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/html/img/button_bar_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Documentation/html/img/button_bar_background.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/html/img/disclosure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Documentation/html/img/disclosure.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/html/img/disclosure_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Documentation/html/img/disclosure_open.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/html/img/library_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Documentation/html/img/library_background.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Documentation/html/img/title_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Documentation/html/img/title_background.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Examples/GridViewDemo/Default-Landscape@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Examples/GridViewDemo/Default-Landscape@2x.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Examples/GridViewDemo/Default@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Examples/GridViewDemo/Default@2x.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo.xcworkspace/xcshareddata/xcschemes/KKGridView.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
4 |
7 |
8 |
14 |
20 |
21 |
22 |
23 |
24 |
29 |
30 |
31 |
32 |
40 |
41 |
42 |
43 |
49 |
50 |
52 |
53 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo/GridViewDemo-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | KKGridDemo
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIconFile
12 |
13 | CFBundleIconFiles
14 |
15 | KKGridViewIcon.png
16 | KKGridViewIcon@2x.png
17 |
18 | CFBundleIcons
19 |
20 | CFBundlePrimaryIcon
21 |
22 | CFBundleIconFiles
23 |
24 | KKGridViewIcon.png
25 | KKGridViewIcon@2x.png
26 |
27 | UIPrerenderedIcon
28 |
29 |
30 |
31 | CFBundleIdentifier
32 | com.kolinkrewinkel.${PRODUCT_NAME:rfc1034identifier}
33 | CFBundleInfoDictionaryVersion
34 | 6.0
35 | CFBundleName
36 | ${PRODUCT_NAME}
37 | CFBundlePackageType
38 | APPL
39 | CFBundleShortVersionString
40 | 1.0
41 | CFBundleSignature
42 | ????
43 | CFBundleVersion
44 | 1.0
45 | LSRequiresIPhoneOS
46 |
47 | NSMainNibFile
48 | MainWindow
49 | UIStatusBarStyle
50 | UIStatusBarStyleBlackOpaque
51 | UISupportedInterfaceOrientations
52 |
53 | UIInterfaceOrientationPortrait
54 | UIInterfaceOrientationLandscapeLeft
55 | UIInterfaceOrientationLandscapeRight
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo/GridViewDemo-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'GridViewDemo' target in the 'GridViewDemo' project
3 | //
4 |
5 | #import
6 |
7 | #ifndef __IPHONE_3_0
8 | #warning "This project uses features only available in iPhone SDK 3.0 and later."
9 | #endif
10 |
11 | #ifdef __OBJC__
12 | #import
13 | #import
14 | #import
15 | #endif
16 |
--------------------------------------------------------------------------------
/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo/GridViewDemoAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // GridViewDemoAppDelegate.h
3 | // GridViewDemo
4 | //
5 | // Created by Kolin Krewinkel on 7.25.11.
6 | // Copyright 2011 Giulio Petek, Jonathan Sterling, and Kolin Krewinkel. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class GridViewDemoViewController;
12 |
13 | @interface GridViewDemoAppDelegate : NSObject
14 | @property (nonatomic, strong) IBOutlet UIWindow *window;
15 | @property (nonatomic, strong) IBOutlet GridViewDemoViewController *viewController;
16 | @end
17 |
--------------------------------------------------------------------------------
/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo/GridViewDemoAppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // GridViewDemoAppDelegate.m
3 | // GridViewDemo
4 | //
5 | // Created by Kolin Krewinkel on 7.25.11.
6 | // Copyright 2011 Giulio Petek, Jonathan Sterling, and Kolin Krewinkel. All rights reserved.
7 | //
8 |
9 | #import "GridViewDemoAppDelegate.h"
10 | #import "GridViewDemoViewController.h"
11 |
12 | @implementation GridViewDemoAppDelegate
13 |
14 | @synthesize window = _window;
15 | @synthesize viewController = _viewController;
16 |
17 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
18 | {
19 | // Override point for customization after application launch.
20 | UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
21 | self.window.rootViewController = navigationController;
22 | [self.window makeKeyAndVisible];
23 | return YES;
24 | }
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo/GridViewDemoViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // GridViewDemoViewController.h
3 | // GridViewDemo
4 | //
5 | // Created by Kolin Krewinkel on 7.25.11.
6 | // Copyright 2011 Giulio Petek, Jonathan Sterling, and Kolin Krewinkel. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface GridViewDemoViewController : KKGridViewController
12 |
13 | @property (nonatomic) NSUInteger firstSectionCount;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo/Resources/Default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo/Resources/Default.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo/Resources/KKGridViewIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo/Resources/KKGridViewIcon.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo/Resources/KKGridViewIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo/Resources/KKGridViewIcon@2x.png
--------------------------------------------------------------------------------
/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/vendor/kkgridview/Examples/GridViewDemo/GridViewDemo/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // GridViewDemo
4 | //
5 | // Created by Kolin Krewinkel on 7.25.11.
6 | // Copyright 2011 Giulio Petek, Jonathan Sterling, and Kolin Krewinkel. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[])
12 | {
13 | @autoreleasepool {
14 | int retVal = UIApplicationMain(argc, argv, nil, nil);
15 | return retVal;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/vendor/kkgridview/KKGridView.podspec:
--------------------------------------------------------------------------------
1 | Pod::Spec.new do |s|
2 | s.name = 'KKGridView'
3 | s.version = '0.6.8.2'
4 | s.license = 'MIT'
5 | s.platform = :ios
6 | s.summary = 'Gridview for iOS.'
7 | s.homepage = 'https://github.com/kolinkrewinkel/KKGridView'
8 | s.authors = { 'Kolin Krewinkel' => 'kolin@kolinkrewinkel.com',
9 | 'Giulio Petek' => 'gi-lo@touch-mania.com',
10 | 'Jonathan Sterling' => 'jonsterling@me.com',
11 | 'Kyle Hickinson' => 'kyle.hickinson@gmail.com',
12 | 'Matthias Tretter' => 'matthias.tretter@gmail.com',
13 | 'Peter Steinberger' => 'me@petersteinberger.com' }
14 |
15 | s.source = { :git => 'https://github.com/kolinkrewinkel/KKGridView.git', :tag => '0.6.8.2' }
16 |
17 | s.source_files = 'KKGridView'
18 | s.clean_paths = 'Examples', 'KKGridView.xcodeproj', 'Resources'
19 | s.library = 'stdc++'
20 | s.framework = 'QuartzCore'
21 | s.requires_arc = true
22 | end
23 |
--------------------------------------------------------------------------------
/vendor/kkgridview/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (C) 2011 by Kolin Krewinkel, Giulio Petek, Jonathan Sterling, Kyle
2 | Hickinson, Matthias Tretter, Kyle Hickinson.
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy
5 | of this software and associated documentation files (the "Software"), to deal
6 | in the Software without restriction, including without limitation the rights
7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the Software is
9 | furnished to do so, subject to the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included in
12 | all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | THE SOFTWARE.
21 |
22 |
--------------------------------------------------------------------------------
/vendor/kkgridview/Resources/Resources-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | com.kolinkrewinkel.${PRODUCT_NAME:rfc1034identifier}
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | BNDL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | CFPlugInDynamicRegisterFunction
26 |
27 | CFPlugInDynamicRegistration
28 | NO
29 | CFPlugInFactories
30 |
31 | 00000000-0000-0000-0000-000000000000
32 | MyFactoryFunction
33 |
34 | CFPlugInTypes
35 |
36 | 00000000-0000-0000-0000-000000000000
37 |
38 | 00000000-0000-0000-0000-000000000000
39 |
40 |
41 | CFPlugInUnloadFunction
42 |
43 | NSHumanReadableCopyright
44 | Copyright © 2011 Enkla. All rights reserved.
45 |
46 |
47 |
--------------------------------------------------------------------------------
/vendor/kkgridview/Resources/Resources-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'Resources' target in the 'Resources' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #endif
8 |
--------------------------------------------------------------------------------
/vendor/kkgridview/Resources/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/web/ipad1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/web/ipad1.png
--------------------------------------------------------------------------------
/web/ipad2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/web/ipad2.png
--------------------------------------------------------------------------------
/web/ipad3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/web/ipad3.png
--------------------------------------------------------------------------------
/web/ipad4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/web/ipad4.png
--------------------------------------------------------------------------------
/web/ipad5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/web/ipad5.png
--------------------------------------------------------------------------------
/web/iphone1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/web/iphone1.png
--------------------------------------------------------------------------------
/web/iphone2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/web/iphone2.png
--------------------------------------------------------------------------------
/web/iphone3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/web/iphone3.png
--------------------------------------------------------------------------------
/web/iphone4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/web/iphone4.png
--------------------------------------------------------------------------------
/web/iphone5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/orta/Puttio/ed503766c11d5737d759f60663e65ebad641ebff/web/iphone5.png
--------------------------------------------------------------------------------