Tags loading from server
This commit is contained in:
parent
cdd3a1c121
commit
5d601d1b6a
14 changed files with 594 additions and 7 deletions
6
.gitmodules
vendored
6
.gitmodules
vendored
|
@ -13,3 +13,9 @@
|
|||
[submodule "Frameworks/ShareKit"]
|
||||
path = Frameworks/ShareKit
|
||||
url = git://github.com/ShareKit/ShareKit
|
||||
[submodule "Frameworks/MBProgressHUD"]
|
||||
path = Frameworks/MBProgressHUD
|
||||
url = https://github.com/jdg/MBProgressHUD.git
|
||||
[submodule "Frameworks/TSAlertView"]
|
||||
path = Frameworks/TSAlertView
|
||||
url = git://github.com/TomSwift/TSAlertView.git
|
||||
|
|
|
@ -53,6 +53,18 @@
|
|||
CD899287161F08AB00026DBB /* OpenPhotoService.m in Sources */ = {isa = PBXBuildFile; fileRef = CD899284161F08AB00026DBB /* OpenPhotoService.m */; };
|
||||
CD899288161F08AB00026DBB /* OpenPhotoServiceFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = CD899286161F08AB00026DBB /* OpenPhotoServiceFactory.m */; };
|
||||
CD8992F2161F4E4F00026DBB /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = CD8992F1161F4E4F00026DBB /* Reachability.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
||||
CD8D9CBA162341FF00A76811 /* Tag.m in Sources */ = {isa = PBXBuildFile; fileRef = CD8D9CB7162341FF00A76811 /* Tag.m */; };
|
||||
CD8D9CBE162343E400A76811 /* TagViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CD8D9CBD162343E400A76811 /* TagViewController.m */; };
|
||||
CD91157316234A5A0099204B /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = CD91157216234A5A0099204B /* MBProgressHUD.m */; };
|
||||
CD91157C16234A820099204B /* TSAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = CD91157516234A820099204B /* TSAlertView.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
|
||||
CD91157D16234A820099204B /* TSAlertViewBackground.png in Resources */ = {isa = PBXBuildFile; fileRef = CD91157616234A820099204B /* TSAlertViewBackground.png */; };
|
||||
CD91157E16234A820099204B /* TSAlertViewBackground2.png in Resources */ = {isa = PBXBuildFile; fileRef = CD91157716234A820099204B /* TSAlertViewBackground2.png */; };
|
||||
CD91157F16234A820099204B /* TSAlertViewButtonBackground_Highlighted.png in Resources */ = {isa = PBXBuildFile; fileRef = CD91157816234A820099204B /* TSAlertViewButtonBackground_Highlighted.png */; };
|
||||
CD91158016234A820099204B /* TSAlertViewButtonBackground.png in Resources */ = {isa = PBXBuildFile; fileRef = CD91157916234A820099204B /* TSAlertViewButtonBackground.png */; };
|
||||
CD91158116234A820099204B /* TSAlertViewCancelButtonBackground.png in Resources */ = {isa = PBXBuildFile; fileRef = CD91157A16234A820099204B /* TSAlertViewCancelButtonBackground.png */; };
|
||||
CD91158216234A820099204B /* TSAlertViewMessageListViewShadow.png in Resources */ = {isa = PBXBuildFile; fileRef = CD91157B16234A820099204B /* TSAlertViewMessageListViewShadow.png */; };
|
||||
CD91158516234D7D0099204B /* Background.png in Resources */ = {isa = PBXBuildFile; fileRef = CD91158316234D7D0099204B /* Background.png */; };
|
||||
CD91158616234D7D0099204B /* Background@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = CD91158416234D7D0099204B /* Background@2x.png */; };
|
||||
CDAFB9D316122262002D6E86 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CDAFB9D216122262002D6E86 /* UIKit.framework */; };
|
||||
CDAFB9D516122262002D6E86 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CDAFB9D416122262002D6E86 /* Foundation.framework */; };
|
||||
CDAFB9D716122262002D6E86 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CDAFB9D616122262002D6E86 /* CoreGraphics.framework */; };
|
||||
|
@ -415,6 +427,22 @@
|
|||
CD899286161F08AB00026DBB /* OpenPhotoServiceFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OpenPhotoServiceFactory.m; sourceTree = "<group>"; };
|
||||
CD8992F0161F4E4F00026DBB /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Reachability.h; path = Frameworks/ASIHTTPRequest/External/Reachability/Reachability.h; sourceTree = "<group>"; };
|
||||
CD8992F1161F4E4F00026DBB /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Reachability.m; path = Frameworks/ASIHTTPRequest/External/Reachability/Reachability.m; sourceTree = "<group>"; };
|
||||
CD8D9CB6162341FF00A76811 /* Tag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tag.h; sourceTree = "<group>"; };
|
||||
CD8D9CB7162341FF00A76811 /* Tag.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Tag.m; sourceTree = "<group>"; };
|
||||
CD8D9CBC162343E400A76811 /* TagViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagViewController.h; sourceTree = "<group>"; };
|
||||
CD8D9CBD162343E400A76811 /* TagViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TagViewController.m; sourceTree = "<group>"; };
|
||||
CD91157116234A5A0099204B /* MBProgressHUD.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MBProgressHUD.h; path = Frameworks/MBProgressHUD/MBProgressHUD.h; sourceTree = "<group>"; };
|
||||
CD91157216234A5A0099204B /* MBProgressHUD.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MBProgressHUD.m; path = Frameworks/MBProgressHUD/MBProgressHUD.m; sourceTree = "<group>"; };
|
||||
CD91157416234A820099204B /* TSAlertView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TSAlertView.h; path = Frameworks/TSAlertView/TSAlertView/TSAlertView.h; sourceTree = "<group>"; };
|
||||
CD91157516234A820099204B /* TSAlertView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TSAlertView.m; path = Frameworks/TSAlertView/TSAlertView/TSAlertView.m; sourceTree = "<group>"; };
|
||||
CD91157616234A820099204B /* TSAlertViewBackground.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TSAlertViewBackground.png; path = Frameworks/TSAlertView/TSAlertView/TSAlertViewBackground.png; sourceTree = "<group>"; };
|
||||
CD91157716234A820099204B /* TSAlertViewBackground2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TSAlertViewBackground2.png; path = Frameworks/TSAlertView/TSAlertView/TSAlertViewBackground2.png; sourceTree = "<group>"; };
|
||||
CD91157816234A820099204B /* TSAlertViewButtonBackground_Highlighted.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TSAlertViewButtonBackground_Highlighted.png; path = Frameworks/TSAlertView/TSAlertView/TSAlertViewButtonBackground_Highlighted.png; sourceTree = "<group>"; };
|
||||
CD91157916234A820099204B /* TSAlertViewButtonBackground.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TSAlertViewButtonBackground.png; path = Frameworks/TSAlertView/TSAlertView/TSAlertViewButtonBackground.png; sourceTree = "<group>"; };
|
||||
CD91157A16234A820099204B /* TSAlertViewCancelButtonBackground.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TSAlertViewCancelButtonBackground.png; path = Frameworks/TSAlertView/TSAlertView/TSAlertViewCancelButtonBackground.png; sourceTree = "<group>"; };
|
||||
CD91157B16234A820099204B /* TSAlertViewMessageListViewShadow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = TSAlertViewMessageListViewShadow.png; path = Frameworks/TSAlertView/TSAlertView/TSAlertViewMessageListViewShadow.png; sourceTree = "<group>"; };
|
||||
CD91158316234D7D0099204B /* Background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Background.png; path = images/Background.png; sourceTree = "<group>"; };
|
||||
CD91158416234D7D0099204B /* Background@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Background@2x.png"; path = "images/Background@2x.png"; sourceTree = "<group>"; };
|
||||
CDAFB9CE16122262002D6E86 /* Photo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Photo.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
CDAFB9D216122262002D6E86 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
CDAFB9D416122262002D6E86 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
|
@ -589,6 +617,8 @@
|
|||
CD4613DD161C7C7C0028619D /* Default-568h@2x.png */,
|
||||
CD4613DE161C7C7C0028619D /* Default.png */,
|
||||
CD4613DF161C7C7C0028619D /* Default@2x.png */,
|
||||
CD91158316234D7D0099204B /* Background.png */,
|
||||
CD91158416234D7D0099204B /* Background@2x.png */,
|
||||
);
|
||||
name = Images;
|
||||
sourceTree = "<group>";
|
||||
|
@ -719,6 +749,39 @@
|
|||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CD8D9CBF1623446B00A76811 /* TSAlertView */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CD91157416234A820099204B /* TSAlertView.h */,
|
||||
CD91157516234A820099204B /* TSAlertView.m */,
|
||||
CD91157616234A820099204B /* TSAlertViewBackground.png */,
|
||||
CD91157716234A820099204B /* TSAlertViewBackground2.png */,
|
||||
CD91157816234A820099204B /* TSAlertViewButtonBackground_Highlighted.png */,
|
||||
CD91157916234A820099204B /* TSAlertViewButtonBackground.png */,
|
||||
CD91157A16234A820099204B /* TSAlertViewCancelButtonBackground.png */,
|
||||
CD91157B16234A820099204B /* TSAlertViewMessageListViewShadow.png */,
|
||||
);
|
||||
name = TSAlertView;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CD8D9CC01623447C00A76811 /* Reachability */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CD8992F0161F4E4F00026DBB /* Reachability.h */,
|
||||
CD8992F1161F4E4F00026DBB /* Reachability.m */,
|
||||
);
|
||||
name = Reachability;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CD8D9CC1162344A700A76811 /* MBProgressHUD */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CD91157116234A5A0099204B /* MBProgressHUD.h */,
|
||||
CD91157216234A5A0099204B /* MBProgressHUD.m */,
|
||||
);
|
||||
name = MBProgressHUD;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CDAFB9C316122262002D6E86 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -741,8 +804,9 @@
|
|||
CDAFB9D116122262002D6E86 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CD8992F0161F4E4F00026DBB /* Reachability.h */,
|
||||
CD8992F1161F4E4F00026DBB /* Reachability.m */,
|
||||
CD8D9CC1162344A700A76811 /* MBProgressHUD */,
|
||||
CD8D9CC01623447C00A76811 /* Reachability */,
|
||||
CD8D9CBF1623446B00A76811 /* TSAlertView */,
|
||||
CD76435F161EFE4C00E0B657 /* ShareKit */,
|
||||
CD7642B3161EDF0D00E0B657 /* TestFlight */,
|
||||
CD76428A161ED9E600E0B657 /* ASIHTTPRequest */,
|
||||
|
@ -823,6 +887,10 @@
|
|||
CDE0B11E1622DB1A00CB4FBC /* Tag */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CD8D9CB6162341FF00A76811 /* Tag.h */,
|
||||
CD8D9CB7162341FF00A76811 /* Tag.m */,
|
||||
CD8D9CBC162343E400A76811 /* TagViewController.h */,
|
||||
CD8D9CBD162343E400A76811 /* TagViewController.m */,
|
||||
);
|
||||
name = Tag;
|
||||
path = ..;
|
||||
|
@ -1192,6 +1260,14 @@
|
|||
CD7642CC161EE1F600E0B657 /* register-button-login@2x.png in Resources */,
|
||||
CD7642CD161EE1F600E0B657 /* register-input-server.png in Resources */,
|
||||
CD7642CE161EE1F600E0B657 /* register-input-server@2x.png in Resources */,
|
||||
CD91157D16234A820099204B /* TSAlertViewBackground.png in Resources */,
|
||||
CD91157E16234A820099204B /* TSAlertViewBackground2.png in Resources */,
|
||||
CD91157F16234A820099204B /* TSAlertViewButtonBackground_Highlighted.png in Resources */,
|
||||
CD91158016234A820099204B /* TSAlertViewButtonBackground.png in Resources */,
|
||||
CD91158116234A820099204B /* TSAlertViewCancelButtonBackground.png in Resources */,
|
||||
CD91158216234A820099204B /* TSAlertViewMessageListViewShadow.png in Resources */,
|
||||
CD91158516234D7D0099204B /* Background.png in Resources */,
|
||||
CD91158616234D7D0099204B /* Background@2x.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -1253,6 +1329,10 @@
|
|||
CD899287161F08AB00026DBB /* OpenPhotoService.m in Sources */,
|
||||
CD899288161F08AB00026DBB /* OpenPhotoServiceFactory.m in Sources */,
|
||||
CD8992F2161F4E4F00026DBB /* Reachability.m in Sources */,
|
||||
CD8D9CBA162341FF00A76811 /* Tag.m in Sources */,
|
||||
CD8D9CBE162343E400A76811 /* TagViewController.m in Sources */,
|
||||
CD91157316234A5A0099204B /* MBProgressHUD.m in Sources */,
|
||||
CD91157C16234A820099204B /* TSAlertView.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "AuthenticationService.h"
|
||||
#import "TagViewController.h"
|
||||
|
||||
@interface MenuViewController : UITableViewController
|
||||
|
||||
|
|
|
@ -32,6 +32,11 @@
|
|||
selector:@selector(eventHandler:)
|
||||
name:kNotificationNeededsUpdate
|
||||
object:nil ];
|
||||
|
||||
self.tableView.backgroundColor = [[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"Background.png"]] autorelease];
|
||||
|
||||
// color separator
|
||||
self.tableView.separatorColor = UIColorFromRGB(0xC8BEA0);
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
@ -244,9 +249,11 @@
|
|||
AuthenticationViewController *controller = [[AuthenticationViewController alloc]initWithNibName:@"AuthenticationViewController" bundle:nil];
|
||||
[cc presentViewController:controller animated:YES completion:nil];
|
||||
}
|
||||
}else if ( indexPath.section == 1 && indexPath.row == 4){
|
||||
}else if ( indexPath.section == 0 && indexPath.row == 3){
|
||||
// Tags
|
||||
|
||||
UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:[[TagViewController alloc] init]];
|
||||
nav.title=[tableView cellForRowAtIndexPath:indexPath].textLabel.text;
|
||||
controller.centerController = nav;
|
||||
}
|
||||
|
||||
if ([cc respondsToSelector:@selector(tableView)]) {
|
||||
|
|
|
@ -55,4 +55,10 @@
|
|||
|
||||
+ (BOOL) isMessageValid:(NSDictionary *)response;
|
||||
|
||||
// get pictures to be used in the gallery
|
||||
- (NSArray*) loadGallery:(int) pageSize onPage:(int) page;
|
||||
|
||||
// get pictures by tag
|
||||
- (NSArray*) loadGallery:(int) pageSize withTag:(NSString*) tag onPage:(int) page;
|
||||
|
||||
@end
|
||||
|
|
|
@ -311,6 +311,19 @@
|
|||
signatureProvider:nil] autorelease];
|
||||
}
|
||||
|
||||
// get 25 pictures
|
||||
- (NSArray*) loadGallery:(int) pageSize onPage:(int) page
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
// get pictures by tag
|
||||
-(NSArray*) loadGallery:(int) pageSize withTag:(NSString*) tag onPage:(int) page
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
|
||||
+ (BOOL) isMessageValid:(NSDictionary *)response{
|
||||
// get the content of code
|
||||
NSString* code = [response objectForKey:@"code"];
|
||||
|
|
|
@ -24,11 +24,11 @@
|
|||
+ (OpenPhotoService*) createOpenPhotoService{
|
||||
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
|
||||
|
||||
return [[[OpenPhotoService alloc] initForServer:[standardUserDefaults valueForKey:kOpenPhotoServer]
|
||||
return [[OpenPhotoService alloc] initForServer:[standardUserDefaults valueForKey:kOpenPhotoServer]
|
||||
oAuthKey:[standardUserDefaults valueForKey:kAuthenticationOAuthToken]
|
||||
oAuthSecret:[standardUserDefaults valueForKey:kAuthenticationOAuthSecret]
|
||||
consumerKey:[standardUserDefaults valueForKey:kAuthenticationConsumerKey]
|
||||
consumerSecret:[standardUserDefaults valueForKey:kAuthenticationConsumerSecret]] autorelease] ;
|
||||
consumerSecret:[standardUserDefaults valueForKey:kAuthenticationConsumerSecret]] ;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
{
|
||||
self = [super initWithStyle:style];
|
||||
if (self) {
|
||||
// Custom initialization
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
@ -45,6 +44,13 @@
|
|||
else {
|
||||
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Sync" style:UIBarButtonItemStyleBordered target:self.viewDeckController action:@selector(toggleRightView)];
|
||||
}
|
||||
|
||||
// Custom initialization
|
||||
self.tableView.backgroundColor = [[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"Background.png"]] autorelease];
|
||||
|
||||
// color separator
|
||||
self.tableView.separatorColor = UIColorFromRGB(0xC8BEA0);
|
||||
|
||||
}
|
||||
|
||||
- (void)viewDidUnload
|
||||
|
|
BIN
Photo/images/Background.png
Normal file
BIN
Photo/images/Background.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 83 KiB |
BIN
Photo/images/Background@2x.png
Normal file
BIN
Photo/images/Background@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
29
Tag.h
Normal file
29
Tag.h
Normal file
|
@ -0,0 +1,29 @@
|
|||
//
|
||||
// Tag.h
|
||||
// OpenPhoto
|
||||
//
|
||||
// Created by Patrick Santana on 11/08/11.
|
||||
// Copyright 2012 OpenPhoto
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
@interface Tag : NSObject
|
||||
|
||||
// constructor with tag name
|
||||
- (id)initWithTagName:(NSString*) name Quantity:(NSInteger) qtd;
|
||||
|
||||
@property (nonatomic, copy) NSString *tagName;
|
||||
@property (nonatomic) NSInteger quantity;
|
||||
@property (nonatomic) BOOL selected;
|
||||
|
||||
@end
|
39
Tag.m
Normal file
39
Tag.m
Normal file
|
@ -0,0 +1,39 @@
|
|||
//
|
||||
// Tag.m
|
||||
// OpenPhoto
|
||||
//
|
||||
// Created by Patrick Santana on 11/08/11.
|
||||
// Copyright 2012 OpenPhoto
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#import "Tag.h"
|
||||
|
||||
@implementation Tag
|
||||
|
||||
@synthesize tagName=_tagName,quantity=_quantity,selected=_selected;
|
||||
|
||||
- (id)initWithTagName:(NSString*) name Quantity:(NSInteger) qtd{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
// Initialization code here.
|
||||
self.tagName=name;
|
||||
self.quantity = qtd;
|
||||
// by default no tag is selected. This is used for READ ONLY proposal
|
||||
self.selected = NO;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
@end
|
35
TagViewController.h
Normal file
35
TagViewController.h
Normal file
|
@ -0,0 +1,35 @@
|
|||
//
|
||||
// TagViewController.h
|
||||
// OpenPhoto
|
||||
//
|
||||
// Created by Patrick Santana on 11/08/11.
|
||||
// Copyright 2012 OpenPhoto
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#import "Tag.h"
|
||||
//#import "GalleryViewController.h"
|
||||
#import "TSAlertView.h"
|
||||
#import "OpenPhotoServiceFactory.h"
|
||||
#import "MBProgressHUD.h"
|
||||
#import "PhotoAlertView.h"
|
||||
|
||||
@interface TagViewController : UITableViewController<TSAlertViewDelegate, UINavigationControllerDelegate>
|
||||
|
||||
@property (nonatomic, strong) NSMutableArray *tags;
|
||||
|
||||
-(void) setReadOnly;
|
||||
-(NSArray*) getSelectedTags;
|
||||
-(NSString *) getSelectedTagsInJsonFormat;
|
||||
|
||||
@end
|
365
TagViewController.m
Normal file
365
TagViewController.m
Normal file
|
@ -0,0 +1,365 @@
|
|||
//
|
||||
// TagViewController.m
|
||||
// OpenPhoto
|
||||
//
|
||||
// Created by Patrick Santana on 11/08/11.
|
||||
// Copyright 2012 OpenPhoto
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#import "TagViewController.h"
|
||||
|
||||
@interface TagViewController()
|
||||
- (void) loadTags;
|
||||
@property (nonatomic) BOOL readOnly;
|
||||
|
||||
// to avoid multiples loading
|
||||
@property (nonatomic) BOOL isLoading;
|
||||
|
||||
@end
|
||||
|
||||
@implementation TagViewController
|
||||
|
||||
@synthesize tags = _tags;
|
||||
@synthesize readOnly = _readOnly;
|
||||
@synthesize isLoading = _isLoading;
|
||||
|
||||
- (id)initWithStyle:(UITableViewStyle)style
|
||||
{
|
||||
self = [super initWithStyle:style];
|
||||
if (self) {
|
||||
|
||||
self.tableView.backgroundColor = [[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"Background.png"]] autorelease];
|
||||
|
||||
// initialize the object tags
|
||||
self.tags = [NSMutableArray array];
|
||||
|
||||
// set the read only by default as NO
|
||||
self.readOnly = NO;
|
||||
|
||||
// color separator
|
||||
self.tableView.separatorColor = UIColorFromRGB(0xC8BEA0);
|
||||
|
||||
// is loading tags
|
||||
self.isLoading = NO;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) setReadOnly
|
||||
{
|
||||
self.readOnly = YES;
|
||||
}
|
||||
|
||||
// this method return only the tag's name.
|
||||
- (NSArray*) getSelectedTags
|
||||
{
|
||||
NSMutableArray *array = [NSMutableArray array];
|
||||
|
||||
for (id object in self.tags) {
|
||||
Tag *tag = (Tag*) object;
|
||||
if (tag.selected == YES){
|
||||
[array addObject:tag.tagName];
|
||||
}
|
||||
}
|
||||
|
||||
return array;
|
||||
}
|
||||
|
||||
// this method return the tag's name but in the format to send to openphoto server
|
||||
- (NSString *) getSelectedTagsInJsonFormat
|
||||
{
|
||||
NSMutableString *result = [NSMutableString string];
|
||||
|
||||
NSArray *array = [self getSelectedTags];
|
||||
int counter = 1;
|
||||
|
||||
if (array != nil && [array count]>0){
|
||||
for (id string in array) {
|
||||
[result appendFormat:@"%@",string];
|
||||
|
||||
// add the ,
|
||||
if ( counter < [array count]){
|
||||
[result appendFormat:@", "];
|
||||
}
|
||||
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark - View lifecycle
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
|
||||
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Menu" style:UIBarButtonItemStyleBordered target:self.viewDeckController action:@selector(toggleLeftView)];
|
||||
|
||||
if ([self.navigationItem respondsToSelector:@selector(rightBarButtonItems)]) {
|
||||
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:
|
||||
[[UIBarButtonItem alloc] initWithTitle:@"Sync" style:UIBarButtonItemStyleBordered target:self.viewDeckController action:@selector(toggleRightView)],
|
||||
nil];
|
||||
}
|
||||
else {
|
||||
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Sync" style:UIBarButtonItemStyleBordered target:self.viewDeckController action:@selector(toggleRightView)];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewDidUnload
|
||||
{
|
||||
[super viewDidUnload];
|
||||
// Release any retained subviews of the main view.
|
||||
// e.g. self.myOutlet = nil;
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated
|
||||
{
|
||||
[super viewWillAppear:animated];
|
||||
// load all tags
|
||||
[self loadTags];
|
||||
}
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated
|
||||
{
|
||||
[super viewDidAppear:animated];
|
||||
}
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated
|
||||
{
|
||||
[super viewWillDisappear:animated];
|
||||
}
|
||||
|
||||
- (void)viewDidDisappear:(BOOL)animated
|
||||
{
|
||||
[super viewDidDisappear:animated];
|
||||
}
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
||||
{
|
||||
// Return YES for supported orientations
|
||||
return YES;
|
||||
}
|
||||
|
||||
/*
|
||||
-(void) viewWillAppear:(BOOL)animated
|
||||
{
|
||||
[super viewWillAppear:animated];
|
||||
|
||||
// Uncomment the following line to preserve selection between presentations.
|
||||
self.clearsSelectionOnViewWillAppear = NO;
|
||||
|
||||
|
||||
|
||||
// wanna add new tag name
|
||||
if (self.readOnly == YES){
|
||||
UIBarButtonItem *addNewTagButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addNewTag)];
|
||||
self.navigationItem.rightBarButtonItem = addNewTagButton;
|
||||
[addNewTagButton release];
|
||||
|
||||
if ([self.tags count] == 0 ){
|
||||
// just load in case there is no tags.
|
||||
// we do that to keep the past selection
|
||||
[self loadTags];
|
||||
}
|
||||
}else{
|
||||
UIBarButtonItem *refreshButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(loadTags)];
|
||||
self.navigationItem.rightBarButtonItem = refreshButton;
|
||||
[refreshButton release];
|
||||
|
||||
// load all tags
|
||||
[self loadTags];
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
-(void) addNewTag
|
||||
{
|
||||
#ifdef DEVELOPMENT_ENABLED
|
||||
NSLog(@"Adding new tag");
|
||||
#endif
|
||||
|
||||
TSAlertView* av = [[TSAlertView alloc] initWithTitle:@"Enter new tag name" message:nil delegate:self
|
||||
cancelButtonTitle:@"Cancel"
|
||||
otherButtonTitles:@"OK",nil];
|
||||
av.style = TSAlertViewStyleInput;
|
||||
[av show];
|
||||
[av release];
|
||||
}
|
||||
|
||||
// after animation
|
||||
- (void) alertView: (TSAlertView *) alertView didDismissWithButtonIndex: (NSInteger) buttonIndex
|
||||
{
|
||||
// cancel
|
||||
if( buttonIndex == 0 || alertView.inputTextField.text == nil || alertView.inputTextField.text.length==0)
|
||||
return;
|
||||
|
||||
// add the new tag in the list and select it
|
||||
Tag *newTag = [[Tag alloc]initWithTagName:alertView.inputTextField.text Quantity:0];
|
||||
newTag.selected = YES;
|
||||
[self.tags addObject:newTag];
|
||||
|
||||
// we don't need it anymore.
|
||||
[newTag release];
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
|
||||
#pragma mark - Table view data source
|
||||
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
|
||||
{
|
||||
// Return the number of sections.
|
||||
return 1;
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
|
||||
{
|
||||
// Return the number of rows in the section.
|
||||
return self.tags.count;
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
static NSString *CellIdentifier = @"Cell";
|
||||
|
||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
|
||||
if (cell == nil) {
|
||||
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
|
||||
}
|
||||
NSUInteger row = [indexPath row];
|
||||
|
||||
Tag *tag = [self.tags objectAtIndex:row];
|
||||
cell.textLabel.text=tag.tagName;
|
||||
if (self.readOnly == NO){
|
||||
|
||||
// details quantity
|
||||
cell.detailTextLabel.text=[NSString stringWithFormat:@"%d", tag.quantity];
|
||||
cell.detailTextLabel.textColor = UIColorFromRGB(0xE6501E);
|
||||
|
||||
cell.accessoryType = UITableViewCellAccessoryNone;
|
||||
}else{
|
||||
// check if it selected or not
|
||||
if(tag.selected == YES)
|
||||
cell.accessoryType = UITableViewCellAccessoryCheckmark;
|
||||
else
|
||||
cell.accessoryType = UITableViewCellAccessoryNone;
|
||||
}
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
#pragma mark - Table view delegate
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
// get the tag
|
||||
NSUInteger row = [indexPath row];
|
||||
Tag *tag = [self.tags objectAtIndex:row];
|
||||
|
||||
if (tag.quantity >0 && self.readOnly == NO){
|
||||
|
||||
/*
|
||||
// open the gallery with a tag that contains at least one picture.
|
||||
GalleryViewController *galleryController = [[GalleryViewController alloc]initWithTagName:[tag.tagName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
|
||||
[self.navigationController pushViewController:galleryController animated:YES];
|
||||
[galleryController release];
|
||||
|
||||
*/
|
||||
}
|
||||
|
||||
if (self.readOnly == YES){
|
||||
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
|
||||
NSUInteger row = [indexPath row];
|
||||
Tag *tag = [self.tags objectAtIndex:row];
|
||||
|
||||
if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
|
||||
cell.accessoryType = UITableViewCellAccessoryNone;
|
||||
tag.selected = NO;
|
||||
} else {
|
||||
cell.accessoryType = UITableViewCellAccessoryCheckmark;
|
||||
tag.selected = YES;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#pragma mark
|
||||
#pragma mark - Methods to get Tags via json
|
||||
- (void) loadTags
|
||||
{
|
||||
|
||||
if (self.isLoading == NO){
|
||||
self.isLoading = YES;
|
||||
// if there isn't netwok
|
||||
/*
|
||||
if ( [AppDelegate internetActive] == NO ){
|
||||
// problem with internet, show message to user
|
||||
PhotoAlertView *alert = [[PhotoAlertView alloc] initWithMessage:@"Failed! Check your internet connection" duration:5000];
|
||||
[alert showAlert];
|
||||
|
||||
self.isLoading = NO;
|
||||
}else {
|
||||
*/
|
||||
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
|
||||
hud.labelText = @"Loading";
|
||||
|
||||
dispatch_queue_t loadTags = dispatch_queue_create("loadTags", NULL);
|
||||
dispatch_async(loadTags, ^{
|
||||
// call the method and get the details
|
||||
@try {
|
||||
// get factory for OpenPhoto Service
|
||||
OpenPhotoService *service = [OpenPhotoServiceFactory createOpenPhotoService];
|
||||
NSArray *result = [service getTags];
|
||||
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[self.tags removeAllObjects];
|
||||
if ([result class] != [NSNull class]) {
|
||||
// Loop through each entry in the dictionary and create an array Tags
|
||||
for (NSDictionary *tagDetails in result){
|
||||
// tag name
|
||||
NSString *name = [tagDetails objectForKey:@"id"];
|
||||
name = [name stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
|
||||
|
||||
// how many images
|
||||
NSString *qtd = [tagDetails objectForKey:@"count"];
|
||||
|
||||
// create a tag and add to the list
|
||||
Tag *tag = [[Tag alloc]initWithTagName:name Quantity:[qtd integerValue]];
|
||||
tag.selected = NO;
|
||||
[self.tags addObject:tag];
|
||||
|
||||
// we don't need it anymore.
|
||||
[tag release];
|
||||
}}
|
||||
|
||||
[self.tableView reloadData];
|
||||
[MBProgressHUD hideHUDForView:self.view animated:YES];
|
||||
self.isLoading = NO;
|
||||
|
||||
});
|
||||
}@catch (NSException *exception) {
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[MBProgressHUD hideHUDForView:self.navigationController.view animated:YES];
|
||||
PhotoAlertView *alert = [[PhotoAlertView alloc] initWithMessage:exception.description duration:5000];
|
||||
[alert showAlert];
|
||||
self.isLoading = NO;
|
||||
});
|
||||
}
|
||||
});
|
||||
dispatch_release(loadTags);
|
||||
//}
|
||||
}
|
||||
|
||||
}
|
||||
@end
|
Loading…
Add table
Add a link
Reference in a new issue