Revision 3a8071d4 Classes/ContainerDetailViewController.m

b/Classes/ContainerDetailViewController.m
22 22
#import "FolderViewController.h"
23 23
#import "OpenStackRequest.h"
24 24
#import "APICallback.h"
25
#import "NSString+Conveniences.h"
25 26

  
26 27
#define kOverview 0
27 28
#define kMetadata 1
......
120 121
    [self.tableView reloadData];
121 122
}
122 123

  
124
- (void)viewDidAppear:(BOOL)animated {
125
    [super viewDidAppear:animated];
126
    if (self.container && !container.metadata && (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone))
127
        [self reloadMetadataSection];
128
}
129

  
123 130
- (void)viewWillDisappear:(BOOL)animated {
124 131
    [super viewWillDisappear:animated];
125 132
}
......
623 630
        if (buttonIndex == 0) {
624 631
         
625 632
            NSString *activityMessage = @"Deleting container...";
633
            [activityIndicatorView release];
626 634
            activityIndicatorView = [[ActivityIndicatorView alloc] initWithFrame:[ActivityIndicatorView frameForText:activityMessage] text:activityMessage];
627 635
            [activityIndicatorView addToView:self.view scrollOffset:self.tableView.contentOffset.y];  
628 636
            
629 637
            [[self.account.manager deleteContainer:self.container] success:^(OpenStackRequest *request) {
630 638
                
631
                [activityIndicatorView removeFromSuperviewAndRelease];                
639
                [activityIndicatorView removeFromSuperview];                
632 640
                [self.account.containers removeObjectForKey:self.container.name];
633 641
                [self.account persist];
634 642
                if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
......
647 655
                    [self.account persist];
648 656
                    
649 657
                } else {
650
                    [activityIndicatorView removeFromSuperviewAndRelease];
658
                    [activityIndicatorView removeFromSuperview];
651 659
                    [self alert:@"There was a problem deleting this container." request:request];
652 660
                }
653 661
            }];
......
671 679
    [containersViewController release];
672 680
    [selectedContainerIndexPath release];
673 681
    [rootFolderViewController release];
682
    [activityIndicatorView release];
674 683
    [super dealloc];
675 684
}
676 685

  
......
679 688

  
680 689
- (void)reloadMetadataSection {
681 690
    NSString *activityMessage = @"Loading metadata...";
691
    [activityIndicatorView release];
682 692
    activityIndicatorView = [[ActivityIndicatorView alloc] initWithFrame:[ActivityIndicatorView frameForText:activityMessage] text:activityMessage];
683 693
    [activityIndicatorView addToView:self.view scrollOffset:self.tableView.contentOffset.y]; 
684 694
    [[self.account.manager getContainerInfo:container] 
685 695
     success:^(OpenStackRequest *request) {
686
         [activityIndicatorView removeFromSuperviewAndRelease];
696
         [activityIndicatorView removeFromSuperview];
687 697
         container.metadata = [NSMutableDictionary dictionary];
688 698
         for (NSString *header in request.responseHeaders) {
689 699
             NSString *metadataKey;
690 700
             NSString *metadataValue;
691 701
             if ([header rangeOfString:@"X-Container-Meta-"].location != NSNotFound) {
692
                 metadataKey = [header substringFromIndex:17];
693
                 metadataValue = [request.responseHeaders objectForKey:header];
702
                 metadataKey = [NSString decodeFromPercentEscape:[header substringFromIndex:17]];
703
                 metadataValue = [NSString decodeFromPercentEscape:[request.responseHeaders objectForKey:header]];
694 704
                 [container.metadata setObject:metadataValue forKey:metadataKey];
695 705
             }
696 706
         } 
......
698 708
         [self.tableView reloadSections:metadataSections withRowAnimation:UITableViewRowAnimationFade];
699 709
     }
700 710
     failure:^(OpenStackRequest *request) {
701
         [activityIndicatorView removeFromSuperviewAndRelease];
711
         [activityIndicatorView removeFromSuperview];
702 712
         [self alert:@"There was a problem retrieving the container's metadata." request:request]; 
703 713
     }];
704 714
}

Also available in: Unified diff