From 7a69d21464d16e53ab559f5ee99030d7e29eb9d3 Mon Sep 17 00:00:00 2001 From: Bruno Omella Mainieri Date: Tue, 10 Mar 2015 17:02:03 -0300 Subject: [PATCH 01/10] Bronze 1 e 2 --- iTunesSearch/Entidades/Filme.h | 1 + iTunesSearch/TableView.xib | 44 +++++++++++++++++++++++------- iTunesSearch/TableViewCell.h | 2 ++ iTunesSearch/TableViewCell.xib | 44 +++++++++++++++++++++++++----- iTunesSearch/TableViewController.h | 6 ++++ iTunesSearch/TableViewController.m | 16 +++++++++++ iTunesSearch/iTunesManager.m | 1 + 7 files changed, 97 insertions(+), 17 deletions(-) diff --git a/iTunesSearch/Entidades/Filme.h b/iTunesSearch/Entidades/Filme.h index eb126dc..6702e34 100644 --- a/iTunesSearch/Entidades/Filme.h +++ b/iTunesSearch/Entidades/Filme.h @@ -16,5 +16,6 @@ @property (nonatomic, strong) NSString *duracao; @property (nonatomic, strong) NSString *genero; @property (nonatomic, strong) NSString *pais; +@property (nonatomic, strong) NSNumber *preco; @end diff --git a/iTunesSearch/TableView.xib b/iTunesSearch/TableView.xib index 55f128c..9a1013a 100644 --- a/iTunesSearch/TableView.xib +++ b/iTunesSearch/TableView.xib @@ -1,25 +1,49 @@ - + - - + + + - + + + + + + + + + + + + + - - - - - - + + + + + + + + + diff --git a/iTunesSearch/TableViewCell.h b/iTunesSearch/TableViewCell.h index b630349..0ea9657 100644 --- a/iTunesSearch/TableViewCell.h +++ b/iTunesSearch/TableViewCell.h @@ -12,6 +12,8 @@ @property (weak, nonatomic) IBOutlet UILabel *nome; @property (weak, nonatomic) IBOutlet UILabel *tipo; +@property (weak, nonatomic) IBOutlet UILabel *artista; +@property (weak, nonatomic) IBOutlet UILabel *preco; @end diff --git a/iTunesSearch/TableViewCell.xib b/iTunesSearch/TableViewCell.xib index bf8bd3f..444f5b6 100644 --- a/iTunesSearch/TableViewCell.xib +++ b/iTunesSearch/TableViewCell.xib @@ -1,5 +1,5 @@ - + @@ -7,40 +7,70 @@ - - + + - + + + + + + + + + + + + + + + - + diff --git a/iTunesSearch/TableViewController.h b/iTunesSearch/TableViewController.h index 0cbb5c4..b0effe1 100644 --- a/iTunesSearch/TableViewController.h +++ b/iTunesSearch/TableViewController.h @@ -11,7 +11,13 @@ @interface TableViewController : UIViewController + +@property (strong, nonatomic) IBOutlet UIView *view; +@property (strong, nonatomic) IBOutlet UITextField *busca; @property (strong, nonatomic) IBOutlet UITableView *tableview; +- (IBAction)buscar:(id)sender; + + @end diff --git a/iTunesSearch/TableViewController.m b/iTunesSearch/TableViewController.m index f689980..9afcba3 100644 --- a/iTunesSearch/TableViewController.m +++ b/iTunesSearch/TableViewController.m @@ -19,11 +19,16 @@ @interface TableViewController () { @implementation TableViewController +NSString *termo = @""; + - (void)viewDidLoad { [super viewDidLoad]; + [_tableview setDelegate: self]; + _tableview.dataSource = self; + UINib *nib = [UINib nibWithNibName:@"TableViewCell" bundle:nil]; [self.tableview registerNib:nib forCellReuseIdentifier:@"celulaPadrao"]; @@ -55,7 +60,9 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS Filme *filme = [midias objectAtIndex:indexPath.row]; [celula.nome setText:filme.nome]; + [celula.artista setText:filme.artista]; [celula.tipo setText:@"Filme"]; + [celula.preco setText:[NSString stringWithFormat:@"Preço: %@",filme.preco]]; return celula; } @@ -65,4 +72,13 @@ -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPat } +- (IBAction)buscar:(id)sender { + termo = [self.busca text]; + iTunesManager *itunes = [iTunesManager sharedInstance]; + midias =[itunes buscarMidias:termo]; + [self.tableview reloadData]; + [_busca resignFirstResponder]; + self.busca.text = @""; +} + @end diff --git a/iTunesSearch/iTunesManager.m b/iTunesSearch/iTunesManager.m index e2babda..c852a1c 100644 --- a/iTunesSearch/iTunesManager.m +++ b/iTunesSearch/iTunesManager.m @@ -57,6 +57,7 @@ - (NSArray *)buscarMidias:(NSString *)termo { [filme setDuracao:[item objectForKey:@"trackTimeMillis"]]; [filme setGenero:[item objectForKey:@"primaryGenreName"]]; [filme setPais:[item objectForKey:@"country"]]; + [filme setPreco:[item objectForKey:@"trackPrice"]]; [filmes addObject:filme]; } From 7be5d5f711c2ed04f15aa26569a6d35f221acb9a Mon Sep 17 00:00:00 2001 From: Bruno Omella Mainieri Date: Wed, 11 Mar 2015 16:30:13 -0300 Subject: [PATCH 02/10] =?UTF-8?q?Prata=201=20e=202=20(ainda=20faltam=20c?= =?UTF-8?q?=C3=A9lulas=20diferentes=20para=20Prata=202)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iTunesSearch.xcodeproj/project.pbxproj | 34 ++++++++ iTunesSearch/Entidades/Ebook.h | 18 +++++ iTunesSearch/Entidades/Ebook.m | 13 +++ iTunesSearch/Entidades/Filme.h | 7 +- iTunesSearch/Entidades/Midia.h | 18 +++++ iTunesSearch/Entidades/Midia.m | 13 +++ iTunesSearch/Entidades/Musica.h | 20 +++++ iTunesSearch/Entidades/Musica.m | 13 +++ iTunesSearch/Entidades/Podcast.h | 17 ++++ iTunesSearch/Entidades/Podcast.m | 13 +++ iTunesSearch/MusicTableViewCell.h | 19 +++++ iTunesSearch/MusicTableViewCell.m | 23 ++++++ iTunesSearch/MusicTableViewCell.xib | 91 +++++++++++++++++++++ iTunesSearch/TableView.xib | 6 +- iTunesSearch/TableViewController.m | 107 ++++++++++++++++++++++--- iTunesSearch/iTunesManager.m | 72 ++++++++++++++--- 16 files changed, 455 insertions(+), 29 deletions(-) create mode 100644 iTunesSearch/Entidades/Ebook.h create mode 100644 iTunesSearch/Entidades/Ebook.m create mode 100644 iTunesSearch/Entidades/Midia.h create mode 100644 iTunesSearch/Entidades/Midia.m create mode 100644 iTunesSearch/Entidades/Musica.h create mode 100644 iTunesSearch/Entidades/Musica.m create mode 100644 iTunesSearch/Entidades/Podcast.h create mode 100644 iTunesSearch/Entidades/Podcast.m create mode 100644 iTunesSearch/MusicTableViewCell.h create mode 100644 iTunesSearch/MusicTableViewCell.m create mode 100644 iTunesSearch/MusicTableViewCell.xib diff --git a/iTunesSearch.xcodeproj/project.pbxproj b/iTunesSearch.xcodeproj/project.pbxproj index 79e06d7..e0accfb 100644 --- a/iTunesSearch.xcodeproj/project.pbxproj +++ b/iTunesSearch.xcodeproj/project.pbxproj @@ -7,6 +7,12 @@ objects = { /* Begin PBXBuildFile section */ + 1531ED6B1AB0C54700CA5FCD /* MusicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1531ED691AB0C54700CA5FCD /* MusicTableViewCell.m */; }; + 1531ED6C1AB0C54700CA5FCD /* MusicTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1531ED6A1AB0C54700CA5FCD /* MusicTableViewCell.xib */; }; + 1531ED6F1AB0C95E00CA5FCD /* Midia.m in Sources */ = {isa = PBXBuildFile; fileRef = 1531ED6E1AB0C95E00CA5FCD /* Midia.m */; }; + 155A5F3B1AAF8884000ED33A /* Musica.m in Sources */ = {isa = PBXBuildFile; fileRef = 155A5F3A1AAF8884000ED33A /* Musica.m */; }; + 155A5F3E1AAF8896000ED33A /* Podcast.m in Sources */ = {isa = PBXBuildFile; fileRef = 155A5F3D1AAF8896000ED33A /* Podcast.m */; }; + 155A5F411AAF88A2000ED33A /* Ebook.m in Sources */ = {isa = PBXBuildFile; fileRef = 155A5F401AAF88A2000ED33A /* Ebook.m */; }; 92C21CB61AAE757A0052ABE6 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C21CB51AAE757A0052ABE6 /* main.m */; }; 92C21CB91AAE757A0052ABE6 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C21CB81AAE757A0052ABE6 /* AppDelegate.m */; }; 92C21CBC1AAE757A0052ABE6 /* TableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 92C21CBB1AAE757A0052ABE6 /* TableViewController.m */; }; @@ -30,6 +36,17 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 1531ED681AB0C54700CA5FCD /* MusicTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MusicTableViewCell.h; sourceTree = ""; }; + 1531ED691AB0C54700CA5FCD /* MusicTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MusicTableViewCell.m; sourceTree = ""; }; + 1531ED6A1AB0C54700CA5FCD /* MusicTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MusicTableViewCell.xib; sourceTree = ""; }; + 1531ED6D1AB0C95E00CA5FCD /* Midia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Midia.h; path = Entidades/Midia.h; sourceTree = ""; }; + 1531ED6E1AB0C95E00CA5FCD /* Midia.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Midia.m; path = Entidades/Midia.m; sourceTree = ""; }; + 155A5F391AAF8884000ED33A /* Musica.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Musica.h; path = Entidades/Musica.h; sourceTree = ""; }; + 155A5F3A1AAF8884000ED33A /* Musica.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Musica.m; path = Entidades/Musica.m; sourceTree = ""; }; + 155A5F3C1AAF8896000ED33A /* Podcast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Podcast.h; path = Entidades/Podcast.h; sourceTree = ""; }; + 155A5F3D1AAF8896000ED33A /* Podcast.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Podcast.m; path = Entidades/Podcast.m; sourceTree = ""; }; + 155A5F3F1AAF88A2000ED33A /* Ebook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Ebook.h; path = Entidades/Ebook.h; sourceTree = ""; }; + 155A5F401AAF88A2000ED33A /* Ebook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Ebook.m; path = Entidades/Ebook.m; sourceTree = ""; }; 92C21CB01AAE757A0052ABE6 /* iTunesSearch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iTunesSearch.app; sourceTree = BUILT_PRODUCTS_DIR; }; 92C21CB41AAE757A0052ABE6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 92C21CB51AAE757A0052ABE6 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; @@ -137,6 +154,9 @@ 92C21CDE1AAE76930052ABE6 /* TableViewCell.h */, 92C21CDF1AAE76930052ABE6 /* TableViewCell.m */, 92C21CE01AAE76930052ABE6 /* TableViewCell.xib */, + 1531ED681AB0C54700CA5FCD /* MusicTableViewCell.h */, + 1531ED691AB0C54700CA5FCD /* MusicTableViewCell.m */, + 1531ED6A1AB0C54700CA5FCD /* MusicTableViewCell.xib */, ); name = Celulas; sourceTree = ""; @@ -146,6 +166,14 @@ children = ( 92C21CE61AAE858E0052ABE6 /* Filme.h */, 92C21CE71AAE858E0052ABE6 /* Filme.m */, + 155A5F391AAF8884000ED33A /* Musica.h */, + 155A5F3A1AAF8884000ED33A /* Musica.m */, + 155A5F3C1AAF8896000ED33A /* Podcast.h */, + 155A5F3D1AAF8896000ED33A /* Podcast.m */, + 155A5F3F1AAF88A2000ED33A /* Ebook.h */, + 155A5F401AAF88A2000ED33A /* Ebook.m */, + 1531ED6D1AB0C95E00CA5FCD /* Midia.h */, + 1531ED6E1AB0C95E00CA5FCD /* Midia.m */, ); name = Entidades; sourceTree = ""; @@ -233,6 +261,7 @@ 92C21CC11AAE757A0052ABE6 /* Images.xcassets in Resources */, 92C21CE21AAE76930052ABE6 /* TableViewCell.xib in Resources */, 92C21CDD1AAE75DC0052ABE6 /* TableView.xib in Resources */, + 1531ED6C1AB0C54700CA5FCD /* MusicTableViewCell.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -250,11 +279,16 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 155A5F411AAF88A2000ED33A /* Ebook.m in Sources */, + 1531ED6B1AB0C54700CA5FCD /* MusicTableViewCell.m in Sources */, 92C21CBC1AAE757A0052ABE6 /* TableViewController.m in Sources */, + 155A5F3B1AAF8884000ED33A /* Musica.m in Sources */, + 155A5F3E1AAF8896000ED33A /* Podcast.m in Sources */, 92C21CDB1AAE75B30052ABE6 /* iTunesManager.m in Sources */, 92C21CB91AAE757A0052ABE6 /* AppDelegate.m in Sources */, 92C21CE81AAE858E0052ABE6 /* Filme.m in Sources */, 92C21CE11AAE76930052ABE6 /* TableViewCell.m in Sources */, + 1531ED6F1AB0C95E00CA5FCD /* Midia.m in Sources */, 92C21CB61AAE757A0052ABE6 /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/iTunesSearch/Entidades/Ebook.h b/iTunesSearch/Entidades/Ebook.h new file mode 100644 index 0000000..1c290e6 --- /dev/null +++ b/iTunesSearch/Entidades/Ebook.h @@ -0,0 +1,18 @@ +// +// Ebook.h +// iTunesSearch +// +// Created by Bruno Omella Mainieri on 3/10/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import +#import "Midia.h" + +@interface Ebook : Midia + + +@property (nonatomic, strong) NSNumber *rating; + + +@end diff --git a/iTunesSearch/Entidades/Ebook.m b/iTunesSearch/Entidades/Ebook.m new file mode 100644 index 0000000..012ee40 --- /dev/null +++ b/iTunesSearch/Entidades/Ebook.m @@ -0,0 +1,13 @@ +// +// Ebook.m +// iTunesSearch +// +// Created by Bruno Omella Mainieri on 3/10/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import "Ebook.h" + +@implementation Ebook + +@end diff --git a/iTunesSearch/Entidades/Filme.h b/iTunesSearch/Entidades/Filme.h index 6702e34..a35d7f4 100644 --- a/iTunesSearch/Entidades/Filme.h +++ b/iTunesSearch/Entidades/Filme.h @@ -7,15 +7,12 @@ // #import +#import "Midia.h" -@interface Filme : NSObject +@interface Filme : Midia -@property (nonatomic, strong) NSString *nome; -@property (nonatomic, strong) NSString *trackId; -@property (nonatomic, strong) NSString *artista; @property (nonatomic, strong) NSString *duracao; @property (nonatomic, strong) NSString *genero; @property (nonatomic, strong) NSString *pais; -@property (nonatomic, strong) NSNumber *preco; @end diff --git a/iTunesSearch/Entidades/Midia.h b/iTunesSearch/Entidades/Midia.h new file mode 100644 index 0000000..32d55a5 --- /dev/null +++ b/iTunesSearch/Entidades/Midia.h @@ -0,0 +1,18 @@ +// +// Midia.h +// iTunesSearch +// +// Created by Bruno Omella Mainieri on 3/11/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import + +@interface Midia : NSObject + +@property (nonatomic, strong) NSString *nome; +@property (nonatomic, strong) NSString *trackId; +@property (nonatomic, strong) NSString *artista; +@property (nonatomic, strong) NSNumber *preco; + +@end diff --git a/iTunesSearch/Entidades/Midia.m b/iTunesSearch/Entidades/Midia.m new file mode 100644 index 0000000..7a3c578 --- /dev/null +++ b/iTunesSearch/Entidades/Midia.m @@ -0,0 +1,13 @@ +// +// Midia.m +// iTunesSearch +// +// Created by Bruno Omella Mainieri on 3/11/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import "Midia.h" + +@implementation Midia + +@end diff --git a/iTunesSearch/Entidades/Musica.h b/iTunesSearch/Entidades/Musica.h new file mode 100644 index 0000000..ee92c2d --- /dev/null +++ b/iTunesSearch/Entidades/Musica.h @@ -0,0 +1,20 @@ +// +// Musica.h +// iTunesSearch +// +// Created by Bruno Omella Mainieri on 3/10/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import +#import "Midia.h" + +@interface Musica : Midia + +@property (nonatomic, strong) NSString *album; +//@property (nonatomic, strong) NSString *duracao; +//@property (nonatomic, strong) NSString *genero; +@property (nonatomic, strong) NSString *pais; + + +@end diff --git a/iTunesSearch/Entidades/Musica.m b/iTunesSearch/Entidades/Musica.m new file mode 100644 index 0000000..fe44e48 --- /dev/null +++ b/iTunesSearch/Entidades/Musica.m @@ -0,0 +1,13 @@ +// +// Musica.m +// iTunesSearch +// +// Created by Bruno Omella Mainieri on 3/10/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import "Musica.h" + +@implementation Musica + +@end diff --git a/iTunesSearch/Entidades/Podcast.h b/iTunesSearch/Entidades/Podcast.h new file mode 100644 index 0000000..5767b45 --- /dev/null +++ b/iTunesSearch/Entidades/Podcast.h @@ -0,0 +1,17 @@ +// +// Podcast.h +// iTunesSearch +// +// Created by Bruno Omella Mainieri on 3/10/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import +#import "Midia.h" + +@interface Podcast : Midia + +@property (nonatomic, strong) NSString *generoPrincipal; + + +@end diff --git a/iTunesSearch/Entidades/Podcast.m b/iTunesSearch/Entidades/Podcast.m new file mode 100644 index 0000000..cd7ffa5 --- /dev/null +++ b/iTunesSearch/Entidades/Podcast.m @@ -0,0 +1,13 @@ +// +// Podcast.m +// iTunesSearch +// +// Created by Bruno Omella Mainieri on 3/10/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import "Podcast.h" + +@implementation Podcast + +@end diff --git a/iTunesSearch/MusicTableViewCell.h b/iTunesSearch/MusicTableViewCell.h new file mode 100644 index 0000000..23885fc --- /dev/null +++ b/iTunesSearch/MusicTableViewCell.h @@ -0,0 +1,19 @@ +// +// MusicTableViewCell.h +// iTunesSearch +// +// Created by Bruno Omella Mainieri on 3/11/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import + +@interface MusicTableViewCell : UITableViewCell + +@property (weak, nonatomic) IBOutlet UILabel *nome; +@property (weak, nonatomic) IBOutlet UILabel *artista; +@property (weak, nonatomic) IBOutlet UILabel *album; +@property (weak, nonatomic) IBOutlet UILabel *tipo; +@property (weak, nonatomic) IBOutlet UILabel *preco; + +@end diff --git a/iTunesSearch/MusicTableViewCell.m b/iTunesSearch/MusicTableViewCell.m new file mode 100644 index 0000000..f1c8aae --- /dev/null +++ b/iTunesSearch/MusicTableViewCell.m @@ -0,0 +1,23 @@ +// +// MusicTableViewCell.m +// iTunesSearch +// +// Created by Bruno Omella Mainieri on 3/11/15. +// Copyright (c) 2015 joaquim. All rights reserved. +// + +#import "MusicTableViewCell.h" + +@implementation MusicTableViewCell + +- (void)awakeFromNib { + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +@end diff --git a/iTunesSearch/MusicTableViewCell.xib b/iTunesSearch/MusicTableViewCell.xib new file mode 100644 index 0000000..fa36e80 --- /dev/null +++ b/iTunesSearch/MusicTableViewCell.xib @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iTunesSearch/TableView.xib b/iTunesSearch/TableView.xib index 9a1013a..a83c1c2 100644 --- a/iTunesSearch/TableView.xib +++ b/iTunesSearch/TableView.xib @@ -21,13 +21,13 @@ - + + + + + + + + + + - + + + + + + + - + + + + + + + + + + + + + + + + diff --git a/iTunesSearch/DetailsViewController.m b/iTunesSearch/DetailsViewController.m index 45fd286..ff79a14 100644 --- a/iTunesSearch/DetailsViewController.m +++ b/iTunesSearch/DetailsViewController.m @@ -21,23 +21,23 @@ - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. if([midia isMemberOfClass:[Filme class]]){ - self.navigationItem.title = @"Filme"; - self.tipo.text = @"Filme"; + self.navigationItem.title = NSLocalizedString(@"Filme",nil); + self.tipo.text = NSLocalizedString(@"Filme",nil); } if([midia isMemberOfClass:[Musica class]]){ - self.navigationItem.title = @"Musica"; - self.tipo.text = @"Musica"; + self.navigationItem.title = NSLocalizedString(@"Musica",nil); + self.tipo.text = NSLocalizedString(@"Musica",nil); } if([midia isMemberOfClass:[Podcast class]]){ - self.navigationItem.title = @"Podcast"; - self.tipo.text = @"Podcast"; + self.navigationItem.title = NSLocalizedString(@"Podcast",nil); + self.tipo.text = NSLocalizedString(@"Podcast",nil); } if([midia isMemberOfClass:[Ebook class]]){ - self.navigationItem.title = @"Ebook"; - self.tipo.text = @"Ebook"; + self.navigationItem.title = NSLocalizedString(@"Ebook",nil); + self.tipo.text = NSLocalizedString(@"Ebook",nil); } self.nome.text = midia.nome; - self.preco.text = [NSString stringWithFormat:@"Preço: %@",midia.preco]; + self.preco.text = [NSString stringWithFormat:NSLocalizedString(@"Preço: %@",nil),midia.preco]; self.artista.text = midia.artista; NSURL *url = [NSURL URLWithString:midia.urlGrande]; NSData *imgData = [NSData dataWithContentsOfURL:url]; diff --git a/iTunesSearch/TableViewController.h b/iTunesSearch/TableViewController.h index b0effe1..5b85e7b 100644 --- a/iTunesSearch/TableViewController.h +++ b/iTunesSearch/TableViewController.h @@ -15,6 +15,7 @@ @property (strong, nonatomic) IBOutlet UIView *view; @property (strong, nonatomic) IBOutlet UITextField *busca; @property (strong, nonatomic) IBOutlet UITableView *tableview; +@property (weak, nonatomic) IBOutlet UIButton *botaoBusca; - (IBAction)buscar:(id)sender; diff --git a/iTunesSearch/TableViewController.m b/iTunesSearch/TableViewController.m index c38dfe2..08c7476 100644 --- a/iTunesSearch/TableViewController.m +++ b/iTunesSearch/TableViewController.m @@ -32,6 +32,7 @@ - (void)viewDidLoad { [super viewDidLoad]; self.navigationItem.title = @"iTunes Search"; + [self.botaoBusca setTitle:NSLocalizedString(@"Buscar", nil) forState:UIControlStateNormal]; useDef = [NSUserDefaults standardUserDefaults]; [useDef synchronize]; @@ -51,7 +52,7 @@ - (void)viewDidLoad { // } midias = [itunes buscarMidias:[useDef valueForKey:@"busca"]]; - _tableview.contentInset = UIEdgeInsetsMake(-64, 0, 0, 0); +// _tableview.contentInset = UIEdgeInsetsMake(-64, 0, 0, 0); @@ -83,8 +84,8 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS Filme *filme = [media objectAtIndex:[indexPath row]]; [celula.nome setText:filme.nome]; [celula.artista setText:filme.artista]; - [celula.tipo setText:@"Filme"]; - [celula.preco setText:[NSString stringWithFormat:@"Preço: %@",filme.preco]]; + [celula.tipo setText:NSLocalizedString(@"Filme",nil)]; + [celula.preco setText:[NSString stringWithFormat:NSLocalizedString(@"Preço: %@",nil),filme.preco]]; NSURL *url = [NSURL URLWithString:filme.urlImg]; NSData *imgData = [NSData dataWithContentsOfURL:url]; UIImage *img = [UIImage imageWithData:imgData]; @@ -96,8 +97,8 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS Musica *musica = [media objectAtIndex:[indexPath row]]; [celula.nome setText:musica.nome]; [celula.artista setText:musica.artista]; - [celula.tipo setText:@"Musica"]; - [celula.preco setText:[NSString stringWithFormat:@"Preço: %@",musica.preco]]; + [celula.tipo setText:NSLocalizedString(@"Musica",nil)]; + [celula.preco setText:[NSString stringWithFormat:NSLocalizedString(@"Preço: %@",nil),musica.preco]]; NSURL *url = [NSURL URLWithString:musica.urlImg]; NSData *imgData = [NSData dataWithContentsOfURL:url]; UIImage *img = [UIImage imageWithData:imgData]; @@ -109,8 +110,8 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS Podcast *podcast = [media objectAtIndex:[indexPath row]]; [celula.nome setText:podcast.nome]; [celula.artista setText:podcast.artista]; - [celula.tipo setText:@"Podcast"]; - [celula.preco setText:[NSString stringWithFormat:@"Preço: %@",podcast.preco]]; + [celula.tipo setText:NSLocalizedString(@"Podcast",nil)]; + [celula.preco setText:[NSString stringWithFormat:NSLocalizedString(@"Preço: %@",nil),podcast.preco]]; NSURL *url = [NSURL URLWithString:podcast.urlImg]; NSData *imgData = [NSData dataWithContentsOfURL:url]; UIImage *img = [UIImage imageWithData:imgData]; @@ -121,8 +122,8 @@ -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NS Ebook *ebook = [media objectAtIndex:[indexPath row]]; [celula.nome setText:ebook.nome]; [celula.artista setText:ebook.artista]; - [celula.tipo setText:@"Ebook"]; - [celula.preco setText:[NSString stringWithFormat:@"Preço: %@",ebook.preco]]; + [celula.tipo setText:NSLocalizedString(@"Ebook",nil)]; + [celula.preco setText:[NSString stringWithFormat:NSLocalizedString(@"Preço: %@",nil),ebook.preco]]; NSURL *url = [NSURL URLWithString:ebook.urlImg]; NSData *imgData = [NSData dataWithContentsOfURL:url]; UIImage *img = [UIImage imageWithData:imgData]; @@ -161,19 +162,19 @@ -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger) UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(25, 2, tableView.frame.size.width, 18)]; [label setFont:[UIFont boldSystemFontOfSize:12]]; if (section == 0){ - [label setText:@"Filmes"]; + [label setText:NSLocalizedString(@"Filmes", nil)]; imgView.image = [UIImage imageNamed:@"filme"]; } if (section == 1){ - [label setText:@"Musicas"]; + [label setText:NSLocalizedString(@"Musicas", nil)]; imgView.image = [UIImage imageNamed:@"music"]; } if (section == 2){ - [label setText:@"Podcasts"]; + [label setText:NSLocalizedString(@"Podcasts", nil)]; imgView.image = [UIImage imageNamed:@"podcast"]; } if (section == 3){ - [label setText:@"Ebooks"]; + [label setText:NSLocalizedString(@"Ebooks", nil)]; imgView.image = [UIImage imageNamed:@"ebook"]; } [header addSubview:label]; diff --git a/iTunesSearch/en.lproj/TableView.strings b/iTunesSearch/en.lproj/TableView.strings deleted file mode 100644 index e88b4db..0000000 --- a/iTunesSearch/en.lproj/TableView.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "UIButton"; normalTitle = "Buscar"; ObjectID = "TBw-br-Dbx"; */ -"TBw-br-Dbx.normalTitle" = "Search"; diff --git a/iTunesSearch/fr.lproj/TableView.strings b/iTunesSearch/fr.lproj/TableView.strings deleted file mode 100644 index bbf4e0a..0000000 --- a/iTunesSearch/fr.lproj/TableView.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "UIButton"; normalTitle = "Buscar"; ObjectID = "TBw-br-Dbx"; */ -"TBw-br-Dbx.normalTitle" = "Recherche"; diff --git a/iTunesSearch/pt.lproj/TableView.strings b/iTunesSearch/pt.lproj/TableView.strings deleted file mode 100644 index f807daa..0000000 --- a/iTunesSearch/pt.lproj/TableView.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "UIButton"; normalTitle = "Buscar"; ObjectID = "TBw-br-Dbx"; */ -"TBw-br-Dbx.normalTitle" = "Buscar"; diff --git a/pt.lproj/Localizable.strings b/pt.lproj/Localizable.strings new file mode 100644 index 0000000..b22b896 --- /dev/null +++ b/pt.lproj/Localizable.strings @@ -0,0 +1,20 @@ +/* + Localizable.strings + iTunesSearch + + Created by Bruno Omella Mainieri on 3/15/15. + Copyright (c) 2015 joaquim. All rights reserved. +*/ + +"Buscar"= "Buscar"; + +"Filmes"= "Filmes"; +"Filme"= "Filme"; +"Musica"= "Musica"; +"Musicas"= "Musicas"; +"Podcast"="Podcast"; +"Podcasts"="Podcasts"; +"Ebook"="Ebook"; +"Ebooks"="Ebooks"; + +"Preço: %@"="Preço: %@"; \ No newline at end of file From 491fc8107273dc0cb19a6446715a191dce5d098a Mon Sep 17 00:00:00 2001 From: Bruno Omella Mainieri Date: Sun, 15 Mar 2015 16:09:18 -0300 Subject: [PATCH 10/10] Regex simples implementado para validar busca, com localizacao para a string da mensagem de erro. --- en.lproj/Localizable.strings | 6 +++++- fr.lproj/Localizable.strings | 4 +++- iTunesSearch/TableViewController.m | 14 +++++++++++++- pt.lproj/Localizable.strings | 4 +++- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/en.lproj/Localizable.strings b/en.lproj/Localizable.strings index 89a7da2..4f86e37 100644 --- a/en.lproj/Localizable.strings +++ b/en.lproj/Localizable.strings @@ -17,4 +17,8 @@ "Ebook"="Ebook"; "Ebooks"="Ebooks"; -"Preço: %@"="Price: %@"; \ No newline at end of file +"Preço: %@"="Price: %@"; + +"Busca invalida!"="Invalid Query!"; + + diff --git a/fr.lproj/Localizable.strings b/fr.lproj/Localizable.strings index 45787d0..ac0f5f1 100644 --- a/fr.lproj/Localizable.strings +++ b/fr.lproj/Localizable.strings @@ -17,4 +17,6 @@ "Ebook"="Ebook"; "Ebooks"="Ebooks"; -"Preço: %@"="Prix: %@"; \ No newline at end of file +"Preço: %@"="Prix: %@"; + +"Busca invalida!"="Recherche non valide!"; \ No newline at end of file diff --git a/iTunesSearch/TableViewController.m b/iTunesSearch/TableViewController.m index 08c7476..adaa065 100644 --- a/iTunesSearch/TableViewController.m +++ b/iTunesSearch/TableViewController.m @@ -146,7 +146,19 @@ -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPat - (IBAction)buscar:(id)sender { iTunesManager *itunes = [iTunesManager sharedInstance]; - midias =[itunes buscarMidias:[self.busca.text stringByReplacingOccurrencesOfString:@" " withString:@"+"]]; + + NSError *erroRegex=nil; + NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[a-z]([a-z]| |\\+|\\(|\\)|'|\\^)*$" options:NSRegularExpressionCaseInsensitive error:&erroRegex]; + + termo = self.busca.text; + + if(![regex numberOfMatchesInString:termo options:0 range:NSMakeRange(0, termo.length)]){ + UIAlertView *termoInvalido = [[UIAlertView alloc]initWithTitle:NSLocalizedString(@"Busca invalida!",nil) message:nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; + [termoInvalido show]; + return; + } + + midias =[itunes buscarMidias:[termo stringByReplacingOccurrencesOfString:@" " withString:@"+"]]; //[self categorizaMidia]; [self.tableview reloadData]; [_busca resignFirstResponder]; diff --git a/pt.lproj/Localizable.strings b/pt.lproj/Localizable.strings index b22b896..22489cf 100644 --- a/pt.lproj/Localizable.strings +++ b/pt.lproj/Localizable.strings @@ -17,4 +17,6 @@ "Ebook"="Ebook"; "Ebooks"="Ebooks"; -"Preço: %@"="Preço: %@"; \ No newline at end of file +"Preço: %@"="Preço: %@"; + +"Busca invalida!"="Busca invalida!"; \ No newline at end of file