Expanded open file functionality to use available apps.
[pithos-ios] / Classes / MediaViewController.m
1 //
2 //  MediaViewController.m
3 //  OpenStack
4 //
5 //  Created by Mike Mayo on 1/8/11.
6 //  Copyright 2011 __MyCompanyName__. All rights reserved.
7 //
8
9 #import "MediaViewController.h"
10 #import "Container.h"
11 #import "StorageObject.h"
12
13
14 @implementation MediaViewController
15
16 @synthesize object, container;
17
18 - (void)viewDidLoad {
19     [super viewDidLoad];
20     
21     self.navigationItem.title = object.name;
22     
23     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
24     NSString *documentsDirectory = [paths objectAtIndex:0];        
25     NSString *shortPath = [NSString stringWithFormat:@"/%@/%@", self.container.name, self.object.fullPath];
26     NSString *filePath = [documentsDirectory stringByAppendingString:shortPath];
27     NSURL *url = [NSURL fileURLWithPath:filePath];
28     
29     player = [[MPMoviePlayerController alloc] initWithContentURL:url];
30     [[player view] setFrame:[self.view bounds]];  // frame must match parent view
31     
32     // private API, not App Store safe
33 //    if ([player respondsToSelector:@selector(setAllowsWirelessPlayback:)]) {
34 //        [player performSelector:@selector(setAllowsWirelessPlayback:) withObject:[NSNumber numberWithBool:YES]];
35 //    }
36
37     // public way that's App Store safe, works in iOS 4.3+
38     if ([player respondsToSelector:@selector(setAllowsAirPlay:)]) {
39         [player performSelector:@selector(setAllowsAirPlay:) withObject:[NSNumber numberWithBool:YES]];
40     }
41     
42     [self.view addSubview:[player view]];
43     //player.fullscreen = YES;
44     //player.controlStyle = MPMovieControlStyleFullscreen;
45     
46     observer = [[NSNotificationCenter defaultCenter] addObserverForName:MPMoviePlayerPlaybackDidFinishNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification* notification) 
47     {
48         player.initialPlaybackTime = -1;
49         [player stop];
50         //[self.navigationController popViewControllerAnimated:NO];
51         [[NSNotificationCenter defaultCenter] removeObserver:observer];
52     }];
53     
54     self.view = player.view;
55     
56     [player play];
57 }
58
59 - (void)viewWillDisappear:(BOOL)animated {
60     [player stop];
61 }
62
63 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
64     return YES;
65 }
66
67 - (void)dealloc {
68     [container release];
69     [object release];
70     [super dealloc];
71 }
72
73
74 @end