perkeep/clients/ios-objc/photobackup/LAViewController.m

124 lines
4.4 KiB
Mathematica
Raw Normal View History

//
// LAViewController.m
// photobackup
//
// Created by Nick O'Neill on 10/20/13.
// Copyright (c) 2013 The Camlistore Authors. All rights reserved.
//
#import "LAViewController.h"
#import "LACamliClient.h"
#import "LAAppDelegate.h"
#import "LACamliUtil.h"
#import "SettingsViewController.h"
#import "ProgressViewController.h"
@implementation LAViewController
- (void)viewDidLoad
{
[super viewDidLoad];
UIBarButtonItem *settingsItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(showSettings)];
[self.navigationItem setRightBarButtonItem:settingsItem];
NSURL *serverURL = [NSURL URLWithString:[[NSUserDefaults standardUserDefaults] stringForKey:CamliServerKey]];
NSString *username = [[NSUserDefaults standardUserDefaults] stringForKey:CamliUsernameKey];
NSString *password = nil;
if (username) {
password = [LACamliUtil passwordForUsername:username];
}
if (!serverURL || !username || !password) {
[self showSettings];
}
self.progress = [[self storyboard] instantiateViewControllerWithIdentifier:@"uploadBar"];
self.progress.view.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height+self.progress.view.frame.size.height, self.progress.view.frame.size.width, self.progress.view.frame.size.height);
[self.view addSubview:self.progress.view];
[[NSNotificationCenter defaultCenter] addObserverForName:CamliNotificationUploadStart object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
[UIView animateWithDuration:1.0 animations:^{
self.progress.view.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height-self.progress.view.frame.size.height, self.progress.view.frame.size.width, self.progress.view.frame.size.height);
}];
}];
[[NSNotificationCenter defaultCenter] addObserverForName:CamliNotificationUploadProgress object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
LALog(@"got progress %@ %@",note.userInfo[@"total"],note.userInfo[@"remain"]);
NSUInteger total = [note.userInfo[@"total"] intValue];
NSUInteger remain = [note.userInfo[@"remain"] intValue];
self.progress.uploadLabel.text = [NSString stringWithFormat:@"Uploading %lu of %lu",total-remain,total];
self.progress.uploadProgress.progress = (float)(total-remain)/(float)total;
}];
[[NSNotificationCenter defaultCenter] addObserverForName:CamliNotificationUploadEnd object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
[UIView animateWithDuration:1.0 animations:^{
self.progress.view.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height+self.progress.view.frame.size.height, self.progress.view.frame.size.width, self.progress.view.frame.size.height);
}];
}];
[[NSNotificationCenter defaultCenter] addObserverForName:@"logtext" object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
self.logtext.text = [self.logtext.text stringByAppendingFormat:@"\r\n%@",note.object[@"text"]];
}];
// [self.client getRecentItemsWithCompletion:^(NSArray *objects) {
// LALog(@"got objects: %@",objects);
// }];
}
- (void)showSettings
{
SettingsViewController *settings = [self.storyboard instantiateViewControllerWithIdentifier:@"settings"];
[settings setParent:self];
[self presentViewController:settings animated:YES completion:nil];
}
- (void)dismissSettings
{
[self dismissViewControllerAnimated:YES completion:nil];
[(LAAppDelegate *)[[UIApplication sharedApplication] delegate] loadCredentials];
}
#pragma mark - collection methods
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 5;
}
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"collectionCell" forIndexPath:indexPath];
cell.backgroundColor = [UIColor redColor];
return cell;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
@end