mirror of
https://github.com/samsonjs/5by5Browser.git
synced 2026-04-27 15:07:39 +00:00
display the date on episodes
This commit is contained in:
parent
0cf01b669f
commit
22f6126f66
5 changed files with 27 additions and 12 deletions
|
|
@ -8,17 +8,20 @@
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
#import "Show.h"
|
#import "Show.h"
|
||||||
|
#import "MWFeedItem.h"
|
||||||
|
|
||||||
@class Show;
|
@class Show;
|
||||||
|
|
||||||
@interface Episode : NSObject
|
@interface Episode : NSObject
|
||||||
|
|
||||||
|
@property (nonatomic, retain) NSDate *date;
|
||||||
@property (nonatomic, retain) NSString *name;
|
@property (nonatomic, retain) NSString *name;
|
||||||
@property (nonatomic, retain) NSString *number;
|
@property (nonatomic, retain) NSString *number;
|
||||||
@property (nonatomic, retain) Show *show;
|
@property (nonatomic, retain) Show *show;
|
||||||
@property (nonatomic, retain) NSURL *url;
|
@property (nonatomic, retain) NSURL *url;
|
||||||
|
|
||||||
+ (id) episodeWithShow: (Show *)show name: (NSString *)name number: (NSString *)number url: (NSURL *)url;
|
+ (id) episodeWithShow: (Show *)show feedItem: (MWFeedItem *)item;
|
||||||
- (id) initWithShow: (Show *)show name: (NSString *)name number: (NSString *)number url: (NSURL *)url;
|
+ (id) episodeWithShow: (Show *)show name: (NSString *)name number: (NSString *)number date: (NSDate *)date url: (NSURL *)url;
|
||||||
|
- (id) initWithShow: (Show *)show name: (NSString *)name number: (NSString *)number date: (NSDate *)date url: (NSURL *)url;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
||||||
|
|
@ -10,23 +10,30 @@
|
||||||
|
|
||||||
@implementation Episode
|
@implementation Episode
|
||||||
|
|
||||||
|
@synthesize date = _date;
|
||||||
@synthesize name = _name;
|
@synthesize name = _name;
|
||||||
@synthesize number = _number;
|
@synthesize number = _number;
|
||||||
@synthesize show = _show;
|
@synthesize show = _show;
|
||||||
@synthesize url = _url;
|
@synthesize url = _url;
|
||||||
|
|
||||||
+ (id) episodeWithShow: (Show *)show name: (NSString *)name number: (NSString *)number url: (NSURL *)url
|
+ (id) episodeWithShow: (Show *)show feedItem: (MWFeedItem *)item
|
||||||
{
|
{
|
||||||
return [[self alloc] initWithShow: show name: name number: number url: url];
|
return [[self alloc] initWithShow: show name: item.title number: @"<n>" date: item.date url: [NSURL URLWithString: item.link]];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id) initWithShow: (Show *)show name: (NSString *)name number: (NSString *)number url: (NSURL *)url
|
+ (id) episodeWithShow: (Show *)show name: (NSString *)name number: (NSString *)number date: (NSDate *)date url: (NSURL *)url
|
||||||
|
{
|
||||||
|
return [[self alloc] initWithShow: show name: name number: number date: date url: url];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (id) initWithShow: (Show *)show name: (NSString *)name number: (NSString *)number date: (NSDate *)date url: (NSURL *)url
|
||||||
{
|
{
|
||||||
self = [super init];
|
self = [super init];
|
||||||
if (self) {
|
if (self) {
|
||||||
self.show = show;
|
self.show = show;
|
||||||
self.name = name;
|
self.name = name;
|
||||||
self.number = number;
|
self.number = number;
|
||||||
|
self.date = date;
|
||||||
self.url = url;
|
self.url = url;
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
#import "SSMasterViewController.h"
|
#import "SSMasterViewController.h"
|
||||||
#import "Show.h"
|
#import "Show.h"
|
||||||
#import "NSString+marshmallows.h"
|
#import "NSString+marshmallows.h"
|
||||||
|
#import "NSDate+relative.h"
|
||||||
|
|
||||||
@implementation SSMasterViewController
|
@implementation SSMasterViewController
|
||||||
|
|
||||||
|
|
@ -155,7 +156,7 @@
|
||||||
cell.textLabel.text = show.name;
|
cell.textLabel.text = show.name;
|
||||||
cell.imageView.image = show.image;
|
cell.imageView.image = show.image;
|
||||||
if (show.episodes.count > 0) {
|
if (show.episodes.count > 0) {
|
||||||
cell.detailTextLabel.text = [NSString stringWithFormat: @"%d episodes", show.episodes.count];
|
cell.detailTextLabel.text = [[[[show episodes] objectAtIndex: 0] date] relativeToNow];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
cell.detailTextLabel.text = nil;
|
cell.detailTextLabel.text = nil;
|
||||||
|
|
@ -168,7 +169,7 @@
|
||||||
{
|
{
|
||||||
if (self.currentShow && indexPath.section == 0) {
|
if (self.currentShow && indexPath.section == 0) {
|
||||||
NSURL *url = [NSURL URLWithString: [self.currentShow webURLForEpisodeNumber: self.currentEpisodeNumber]];
|
NSURL *url = [NSURL URLWithString: [self.currentShow webURLForEpisodeNumber: self.currentEpisodeNumber]];
|
||||||
Episode *episode = [Episode episodeWithShow: self.currentShow name: self.currentEpisodeName number: self.currentEpisodeNumber url: url];
|
Episode *episode = [Episode episodeWithShow: self.currentShow name: self.currentEpisodeName number: self.currentEpisodeNumber date: nil url: url];
|
||||||
self.showViewController.detailViewController.episode = episode;
|
self.showViewController.detailViewController.episode = episode;
|
||||||
[self.navigationController pushViewController: self.showViewController.detailViewController animated: YES];
|
[self.navigationController pushViewController: self.showViewController.detailViewController animated: YES];
|
||||||
}
|
}
|
||||||
|
|
@ -182,6 +183,7 @@
|
||||||
|
|
||||||
- (void) gotEpisodesForShow: (Show *)show
|
- (void) gotEpisodesForShow: (Show *)show
|
||||||
{
|
{
|
||||||
|
self.selectedCell.detailTextLabel.text = [[[[show episodes] objectAtIndex: 0] date] relativeToNow];
|
||||||
self.showViewController.show = show;
|
self.showViewController.show = show;
|
||||||
[self.navigationController pushViewController: self.showViewController animated: YES];
|
[self.navigationController pushViewController: self.showViewController animated: YES];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,7 @@
|
||||||
- (void) feedParser: (MWFeedParser *)parser didParseFeedItem: (MWFeedItem *)item
|
- (void) feedParser: (MWFeedParser *)parser didParseFeedItem: (MWFeedItem *)item
|
||||||
{
|
{
|
||||||
// NSLog(@"feed item: %@", item);
|
// NSLog(@"feed item: %@", item);
|
||||||
[self addEpisode: [Episode episodeWithShow: self name: item.title number: @"<n>" url: [NSURL URLWithString: item.link]]];
|
[self addEpisode: [Episode episodeWithShow: self feedItem: item]];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) feedParserDidFinish: (MWFeedParser *)parser
|
- (void) feedParserDidFinish: (MWFeedParser *)parser
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
#import "ShowViewController.h"
|
#import "ShowViewController.h"
|
||||||
#import "SSDetailViewController.h"
|
#import "SSDetailViewController.h"
|
||||||
#import "Episode.h"
|
#import "Episode.h"
|
||||||
|
#import "NSDate+relative.h"
|
||||||
|
|
||||||
@interface ShowViewController ()
|
@interface ShowViewController ()
|
||||||
|
|
||||||
|
|
@ -76,17 +77,19 @@
|
||||||
{
|
{
|
||||||
static NSString *CellIdentifier = @"Cell";
|
static NSString *CellIdentifier = @"Cell";
|
||||||
|
|
||||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
|
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier];
|
||||||
if (cell == nil) {
|
if (cell == nil) {
|
||||||
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
|
cell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleSubtitle reuseIdentifier: CellIdentifier];
|
||||||
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
|
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
|
||||||
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
|
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
|
||||||
}
|
}
|
||||||
|
cell.textLabel.adjustsFontSizeToFitWidth = YES;
|
||||||
|
cell.textLabel.textColor = [UIColor darkGrayColor];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Episode *episode = [self.show.episodes objectAtIndex: indexPath.row];
|
Episode *episode = [self.show.episodes objectAtIndex: indexPath.row];
|
||||||
cell.textLabel.text = episode.name;
|
cell.textLabel.text = episode.name;
|
||||||
|
cell.detailTextLabel.text = [episode.date relativeToNow];
|
||||||
return cell;
|
return cell;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -95,7 +98,7 @@
|
||||||
Episode *episode = [self.show.episodes objectAtIndex: indexPath.row];
|
Episode *episode = [self.show.episodes objectAtIndex: indexPath.row];
|
||||||
self.detailViewController.episode = episode;
|
self.detailViewController.episode = episode;
|
||||||
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
|
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
|
||||||
[self.navigationController pushViewController: self.detailViewController animated:YES];
|
[self.navigationController pushViewController: self.detailViewController animated: YES];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue