From b6bff29445c420914f857d59050475197dd1a32f Mon Sep 17 00:00:00 2001 From: Justine Gartner Date: Sun, 4 Oct 2015 17:37:00 -0400 Subject: [PATCH 01/17] First commit for MarsWater --- .DS_Store | Bin 0 -> 6148 bytes MarsWater/.DS_Store | Bin 0 -> 6148 bytes MarsWater/MarsWater.xcodeproj/project.pbxproj | 361 ++++++++++++++++++ .../contents.xcworkspacedata | 2 +- .../MarsWater}/AppDelegate.h | 6 +- .../MarsWater}/AppDelegate.m | 12 +- .../AppIcon.appiconset/Contents.json | 0 .../Base.lproj/LaunchScreen.storyboard | 0 .../MarsWater/Base.lproj/Main.storyboard | 201 ++++++++++ .../MarsWater}/Info.plist | 0 MarsWater/MarsWater/List+CoreDataProperties.h | 25 ++ MarsWater/MarsWater/List+CoreDataProperties.m | 21 + MarsWater/MarsWater/List.h | 24 ++ MarsWater/MarsWater/List.m | 16 + .../ListCreationTableViewController.h | 13 + .../ListCreationTableViewController.m | 69 ++++ MarsWater/MarsWater/ListTableViewController.h | 13 + MarsWater/MarsWater/ListTableViewController.m | 120 ++++++ .../MarsWater.xcdatamodeld}/.xccurrentversion | 2 +- .../MarsWater.xcdatamodel/contents | 22 ++ MarsWater/MarsWater/Task+CoreDataProperties.h | 28 ++ MarsWater/MarsWater/Task+CoreDataProperties.m | 24 ++ MarsWater/MarsWater/Task.h | 22 ++ MarsWater/MarsWater/Task.m | 15 + .../MarsWater}/main.m | 6 +- .../SavingForever.xcodeproj/project.pbxproj | 322 ---------------- .../SavingForever/Base.lproj/Main.storyboard | 25 -- .../SavingForever.xcdatamodel/contents | 4 - SavingForever/SavingForever/ViewController.h | 15 - SavingForever/SavingForever/ViewController.m | 27 -- 30 files changed, 988 insertions(+), 407 deletions(-) create mode 100644 .DS_Store create mode 100644 MarsWater/.DS_Store create mode 100644 MarsWater/MarsWater.xcodeproj/project.pbxproj rename {SavingForever/SavingForever.xcodeproj => MarsWater/MarsWater.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (68%) rename {SavingForever/SavingForever => MarsWater/MarsWater}/AppDelegate.h (81%) rename {SavingForever/SavingForever => MarsWater/MarsWater}/AppDelegate.m (93%) rename {SavingForever/SavingForever => MarsWater/MarsWater}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {SavingForever/SavingForever => MarsWater/MarsWater}/Base.lproj/LaunchScreen.storyboard (100%) create mode 100644 MarsWater/MarsWater/Base.lproj/Main.storyboard rename {SavingForever/SavingForever => MarsWater/MarsWater}/Info.plist (100%) create mode 100644 MarsWater/MarsWater/List+CoreDataProperties.h create mode 100644 MarsWater/MarsWater/List+CoreDataProperties.m create mode 100644 MarsWater/MarsWater/List.h create mode 100644 MarsWater/MarsWater/List.m create mode 100644 MarsWater/MarsWater/ListCreationTableViewController.h create mode 100644 MarsWater/MarsWater/ListCreationTableViewController.m create mode 100644 MarsWater/MarsWater/ListTableViewController.h create mode 100644 MarsWater/MarsWater/ListTableViewController.m rename {SavingForever/SavingForever/SavingForever.xcdatamodeld => MarsWater/MarsWater/MarsWater.xcdatamodeld}/.xccurrentversion (83%) create mode 100644 MarsWater/MarsWater/MarsWater.xcdatamodeld/MarsWater.xcdatamodel/contents create mode 100644 MarsWater/MarsWater/Task+CoreDataProperties.h create mode 100644 MarsWater/MarsWater/Task+CoreDataProperties.m create mode 100644 MarsWater/MarsWater/Task.h create mode 100644 MarsWater/MarsWater/Task.m rename {SavingForever/SavingForever => MarsWater/MarsWater}/main.m (64%) delete mode 100644 SavingForever/SavingForever.xcodeproj/project.pbxproj delete mode 100644 SavingForever/SavingForever/Base.lproj/Main.storyboard delete mode 100644 SavingForever/SavingForever/SavingForever.xcdatamodeld/SavingForever.xcdatamodel/contents delete mode 100644 SavingForever/SavingForever/ViewController.h delete mode 100644 SavingForever/SavingForever/ViewController.m diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0i>5d% zL}V6r-|T$s&OS(X2Y@WL^&FT1n6fL13L{O`qoxCQo)9Ikaf3T-aE~=kM;7{vD$V^E z*UWp3XYA(xf(k8ao~EO%#p>x{zO34&vtzu!?jPB-Wm#`G74UX(ewpL<+_P!xA4YbM zJK4&aB^_fh5DWwZ!9XyO?`)-EdK6>?1HnKr@Pz@s>5 + location = "self:MarsWater.xcodeproj"> diff --git a/SavingForever/SavingForever/AppDelegate.h b/MarsWater/MarsWater/AppDelegate.h similarity index 81% rename from SavingForever/SavingForever/AppDelegate.h rename to MarsWater/MarsWater/AppDelegate.h index 6657831..7fe5645 100644 --- a/SavingForever/SavingForever/AppDelegate.h +++ b/MarsWater/MarsWater/AppDelegate.h @@ -1,9 +1,9 @@ // // AppDelegate.h -// SavingForever +// MarsWater // -// Created by Michael Kavouras on 10/4/15. -// Copyright © 2015 Michael Kavouras. All rights reserved. +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. // #import diff --git a/SavingForever/SavingForever/AppDelegate.m b/MarsWater/MarsWater/AppDelegate.m similarity index 93% rename from SavingForever/SavingForever/AppDelegate.m rename to MarsWater/MarsWater/AppDelegate.m index 29b2305..1c0869a 100644 --- a/SavingForever/SavingForever/AppDelegate.m +++ b/MarsWater/MarsWater/AppDelegate.m @@ -1,9 +1,9 @@ // // AppDelegate.m -// SavingForever +// MarsWater // -// Created by Michael Kavouras on 10/4/15. -// Copyright © 2015 Michael Kavouras. All rights reserved. +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. // #import "AppDelegate.h" @@ -51,7 +51,7 @@ - (void)applicationWillTerminate:(UIApplication *)application { @synthesize persistentStoreCoordinator = _persistentStoreCoordinator; - (NSURL *)applicationDocumentsDirectory { - // The directory the application uses to store the Core Data store file. This code uses a directory named "com.mikekavouras.SavingForever" in the application's documents directory. + // The directory the application uses to store the Core Data store file. This code uses a directory named "nyc.c4q.justinekay.MarsWater" in the application's documents directory. return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; } @@ -60,7 +60,7 @@ - (NSManagedObjectModel *)managedObjectModel { if (_managedObjectModel != nil) { return _managedObjectModel; } - NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"SavingForever" withExtension:@"momd"]; + NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"MarsWater" withExtension:@"momd"]; _managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]; return _managedObjectModel; } @@ -74,7 +74,7 @@ - (NSPersistentStoreCoordinator *)persistentStoreCoordinator { // Create the coordinator and store _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]; - NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"SavingForever.sqlite"]; + NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"MarsWater.sqlite"]; NSError *error = nil; NSString *failureReason = @"There was an error creating or loading the application's saved data."; if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) { diff --git a/SavingForever/SavingForever/Assets.xcassets/AppIcon.appiconset/Contents.json b/MarsWater/MarsWater/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from SavingForever/SavingForever/Assets.xcassets/AppIcon.appiconset/Contents.json rename to MarsWater/MarsWater/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/SavingForever/SavingForever/Base.lproj/LaunchScreen.storyboard b/MarsWater/MarsWater/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from SavingForever/SavingForever/Base.lproj/LaunchScreen.storyboard rename to MarsWater/MarsWater/Base.lproj/LaunchScreen.storyboard diff --git a/MarsWater/MarsWater/Base.lproj/Main.storyboard b/MarsWater/MarsWater/Base.lproj/Main.storyboard new file mode 100644 index 0000000..950b32a --- /dev/null +++ b/MarsWater/MarsWater/Base.lproj/Main.storyboard @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SavingForever/SavingForever/Info.plist b/MarsWater/MarsWater/Info.plist similarity index 100% rename from SavingForever/SavingForever/Info.plist rename to MarsWater/MarsWater/Info.plist diff --git a/MarsWater/MarsWater/List+CoreDataProperties.h b/MarsWater/MarsWater/List+CoreDataProperties.h new file mode 100644 index 0000000..cd8e39d --- /dev/null +++ b/MarsWater/MarsWater/List+CoreDataProperties.h @@ -0,0 +1,25 @@ +// +// List+CoreDataProperties.h +// MarsWater +// +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. +// +// Choose "Create NSManagedObject Subclass…" from the Core Data editor menu +// to delete and recreate this implementation file for your updated model. +// + +#import "List.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface List (CoreDataProperties) + +@property (nullable, nonatomic, retain) NSString *title; +@property (nullable, nonatomic, retain) NSDate *createdAt; +@property (nullable, nonatomic, retain) id color; +@property (nullable, nonatomic, retain) NSArray *task; + +@end + +NS_ASSUME_NONNULL_END diff --git a/MarsWater/MarsWater/List+CoreDataProperties.m b/MarsWater/MarsWater/List+CoreDataProperties.m new file mode 100644 index 0000000..6e9e7c8 --- /dev/null +++ b/MarsWater/MarsWater/List+CoreDataProperties.m @@ -0,0 +1,21 @@ +// +// List+CoreDataProperties.m +// MarsWater +// +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. +// +// Choose "Create NSManagedObject Subclass…" from the Core Data editor menu +// to delete and recreate this implementation file for your updated model. +// + +#import "List+CoreDataProperties.h" + +@implementation List (CoreDataProperties) + +@dynamic title; +@dynamic createdAt; +@dynamic color; +@dynamic task; + +@end diff --git a/MarsWater/MarsWater/List.h b/MarsWater/MarsWater/List.h new file mode 100644 index 0000000..cc84526 --- /dev/null +++ b/MarsWater/MarsWater/List.h @@ -0,0 +1,24 @@ +// +// List.h +// MarsWater +// +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. +// + +#import +#import + +@class Task; + +NS_ASSUME_NONNULL_BEGIN + +@interface List : NSManagedObject + +// Insert code here to declare functionality of your managed object subclass + +@end + +NS_ASSUME_NONNULL_END + +#import "List+CoreDataProperties.h" diff --git a/MarsWater/MarsWater/List.m b/MarsWater/MarsWater/List.m new file mode 100644 index 0000000..98eaa9c --- /dev/null +++ b/MarsWater/MarsWater/List.m @@ -0,0 +1,16 @@ +// +// List.m +// MarsWater +// +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. +// + +#import "List.h" +#import "Task.h" + +@implementation List + +// Insert code here to add functionality to your managed object subclass + +@end diff --git a/MarsWater/MarsWater/ListCreationTableViewController.h b/MarsWater/MarsWater/ListCreationTableViewController.h new file mode 100644 index 0000000..3210ab6 --- /dev/null +++ b/MarsWater/MarsWater/ListCreationTableViewController.h @@ -0,0 +1,13 @@ +// +// ListCreationTableViewController.h +// MarsWater +// +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. +// + +#import + +@interface ListCreationTableViewController : UITableViewController + +@end diff --git a/MarsWater/MarsWater/ListCreationTableViewController.m b/MarsWater/MarsWater/ListCreationTableViewController.m new file mode 100644 index 0000000..06c943c --- /dev/null +++ b/MarsWater/MarsWater/ListCreationTableViewController.m @@ -0,0 +1,69 @@ +// +// ListCreationTableViewController.m +// MarsWater +// +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. +// + +#import +#import "ListCreationTableViewController.h" +#import "List.h" +#import "AppDelegate.h" + +@interface ListCreationTableViewController () + +@property (weak, nonatomic) IBOutlet UITextField *titleTextField; + +@property (nonatomic)List *list; + +@end + +@implementation ListCreationTableViewController + +-(void)viewDidLoad{ + + [super viewDidLoad]; + + [self setupNavigationBar]; + + AppDelegate *delegate = [UIApplication sharedApplication].delegate; + + self.list = [NSEntityDescription insertNewObjectForEntityForName:@"List" inManagedObjectContext:delegate.managedObjectContext]; + +} + +-(void)setupNavigationBar{ + + self.navigationItem.title = @"Create New List"; + + self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancel)]; + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(save)]; +} + +-(void)cancel{ + + [self dismissViewControllerAnimated:YES completion:nil]; +} + +-(void)save{ + + self.list.title = self.titleTextField.text; + self.list.createdAt = [NSDate date]; + + AppDelegate *delegate = [UIApplication sharedApplication].delegate; + [delegate.managedObjectContext save:nil]; + + [self dismissViewControllerAnimated:YES completion:nil]; + + NSLog(@"%@", self.list); +} + +- (IBAction)colorButtonTapped:(UIButton *)sender { + + self.list.color = sender.backgroundColor; + + +} + +@end diff --git a/MarsWater/MarsWater/ListTableViewController.h b/MarsWater/MarsWater/ListTableViewController.h new file mode 100644 index 0000000..851d655 --- /dev/null +++ b/MarsWater/MarsWater/ListTableViewController.h @@ -0,0 +1,13 @@ +// +// ListTableViewController.h +// MarsWater +// +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. +// + +#import + +@interface ListTableViewController : UITableViewController + +@end diff --git a/MarsWater/MarsWater/ListTableViewController.m b/MarsWater/MarsWater/ListTableViewController.m new file mode 100644 index 0000000..d3e6073 --- /dev/null +++ b/MarsWater/MarsWater/ListTableViewController.m @@ -0,0 +1,120 @@ +// +// ListTableViewController.m +// MarsWater +// +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. +// + +#import +#import "ListTableViewController.h" +#import "AppDelegate.h" +#import "List.h" + +@interface ListTableViewController () + +@property(nonatomic) NSFetchedResultsController *fetchedResultsController; + +@end + +@implementation ListTableViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + AppDelegate *delegate = [UIApplication sharedApplication].delegate; + + //Create an instance of NSFetchRequest with an entity name + NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"List"]; + + //create a sort descriptor + NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"createdAt" ascending:NO]; + + //set the sort descriptors on the fetchRequest + fetchRequest.sortDescriptors = @[sort]; + + //create a fetchedResultsController with a fetchRequest and a managedObjectContext + self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:delegate.managedObjectContext sectionNameKeyPath:nil cacheName:nil]; + + self.fetchedResultsController.delegate = self; + + [self.fetchedResultsController performFetch:nil]; + + [self.tableView reloadData]; +} + +#pragma mark - Table view data source + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + + return self.fetchedResultsController.fetchedObjects.count; +} + + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ListCellIdentifier" forIndexPath:indexPath]; + + List *list = self.fetchedResultsController.fetchedObjects[indexPath.row]; + cell.textLabel.text = list.title; + cell.detailTextLabel.text = [list.createdAt description]; + cell.backgroundColor = (UIColor *)list.color; + + return cell; +} + + +-(void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath{ + + [self.tableView reloadData]; +} + +/* +// Override to support conditional editing of the table view. +- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { + // Return NO if you do not want the specified item to be editable. + return YES; +} +*/ + +/* +// Override to support editing the table view. +- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { + if (editingStyle == UITableViewCellEditingStyleDelete) { + // Delete the row from the data source + [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; + } else if (editingStyle == UITableViewCellEditingStyleInsert) { + // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view + } +} +*/ + +/* +// Override to support rearranging the table view. +- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath { +} +*/ + +/* +// Override to support conditional rearranging of the table view. +- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { + // Return NO if you do not want the item to be re-orderable. + return YES; +} +*/ + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/SavingForever/SavingForever/SavingForever.xcdatamodeld/.xccurrentversion b/MarsWater/MarsWater/MarsWater.xcdatamodeld/.xccurrentversion similarity index 83% rename from SavingForever/SavingForever/SavingForever.xcdatamodeld/.xccurrentversion rename to MarsWater/MarsWater/MarsWater.xcdatamodeld/.xccurrentversion index 352ed15..5c0cbd5 100644 --- a/SavingForever/SavingForever/SavingForever.xcdatamodeld/.xccurrentversion +++ b/MarsWater/MarsWater/MarsWater.xcdatamodeld/.xccurrentversion @@ -3,6 +3,6 @@ _XCCurrentVersionName - SavingForever.xcdatamodel + MarsWater.xcdatamodel diff --git a/MarsWater/MarsWater/MarsWater.xcdatamodeld/MarsWater.xcdatamodel/contents b/MarsWater/MarsWater/MarsWater.xcdatamodeld/MarsWater.xcdatamodel/contents new file mode 100644 index 0000000..a2fd0bb --- /dev/null +++ b/MarsWater/MarsWater/MarsWater.xcdatamodeld/MarsWater.xcdatamodel/contents @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MarsWater/MarsWater/Task+CoreDataProperties.h b/MarsWater/MarsWater/Task+CoreDataProperties.h new file mode 100644 index 0000000..9d5fe52 --- /dev/null +++ b/MarsWater/MarsWater/Task+CoreDataProperties.h @@ -0,0 +1,28 @@ +// +// Task+CoreDataProperties.h +// MarsWater +// +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. +// +// Choose "Create NSManagedObject Subclass…" from the Core Data editor menu +// to delete and recreate this implementation file for your updated model. +// + +#import "Task.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Task (CoreDataProperties) + +@property (nullable, nonatomic, retain) NSString *taskDescription; +@property (nullable, nonatomic, retain) NSDate *createdAt; +@property (nullable, nonatomic, retain) NSDate *dueDate; +@property (nullable, nonatomic, retain) NSDate *updatedAt; +@property (nullable, nonatomic, retain) NSNumber *priority; +@property (nullable, nonatomic, retain) NSDate *completedAt; +@property (nullable, nonatomic, retain) NSManagedObject *list; + +@end + +NS_ASSUME_NONNULL_END diff --git a/MarsWater/MarsWater/Task+CoreDataProperties.m b/MarsWater/MarsWater/Task+CoreDataProperties.m new file mode 100644 index 0000000..527f35b --- /dev/null +++ b/MarsWater/MarsWater/Task+CoreDataProperties.m @@ -0,0 +1,24 @@ +// +// Task+CoreDataProperties.m +// MarsWater +// +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. +// +// Choose "Create NSManagedObject Subclass…" from the Core Data editor menu +// to delete and recreate this implementation file for your updated model. +// + +#import "Task+CoreDataProperties.h" + +@implementation Task (CoreDataProperties) + +@dynamic taskDescription; +@dynamic createdAt; +@dynamic dueDate; +@dynamic updatedAt; +@dynamic priority; +@dynamic completedAt; +@dynamic list; + +@end diff --git a/MarsWater/MarsWater/Task.h b/MarsWater/MarsWater/Task.h new file mode 100644 index 0000000..748cff5 --- /dev/null +++ b/MarsWater/MarsWater/Task.h @@ -0,0 +1,22 @@ +// +// Task.h +// MarsWater +// +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface Task : NSManagedObject + +// Insert code here to declare functionality of your managed object subclass + +@end + +NS_ASSUME_NONNULL_END + +#import "Task+CoreDataProperties.h" diff --git a/MarsWater/MarsWater/Task.m b/MarsWater/MarsWater/Task.m new file mode 100644 index 0000000..e916539 --- /dev/null +++ b/MarsWater/MarsWater/Task.m @@ -0,0 +1,15 @@ +// +// Task.m +// MarsWater +// +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. +// + +#import "Task.h" + +@implementation Task + +// Insert code here to add functionality to your managed object subclass + +@end diff --git a/SavingForever/SavingForever/main.m b/MarsWater/MarsWater/main.m similarity index 64% rename from SavingForever/SavingForever/main.m rename to MarsWater/MarsWater/main.m index 0d1314d..5c2db3b 100644 --- a/SavingForever/SavingForever/main.m +++ b/MarsWater/MarsWater/main.m @@ -1,9 +1,9 @@ // // main.m -// SavingForever +// MarsWater // -// Created by Michael Kavouras on 10/4/15. -// Copyright © 2015 Michael Kavouras. All rights reserved. +// Created by Justine Gartner on 10/4/15. +// Copyright © 2015 Justine Gartner. All rights reserved. // #import diff --git a/SavingForever/SavingForever.xcodeproj/project.pbxproj b/SavingForever/SavingForever.xcodeproj/project.pbxproj deleted file mode 100644 index cbf89e2..0000000 --- a/SavingForever/SavingForever.xcodeproj/project.pbxproj +++ /dev/null @@ -1,322 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 8D2949671BC1D06E00FDC81F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D2949661BC1D06E00FDC81F /* main.m */; }; - 8D29496A1BC1D06E00FDC81F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D2949691BC1D06E00FDC81F /* AppDelegate.m */; }; - 8D29496D1BC1D06E00FDC81F /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D29496C1BC1D06E00FDC81F /* ViewController.m */; }; - 8D2949701BC1D06E00FDC81F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8D29496E1BC1D06E00FDC81F /* Main.storyboard */; }; - 8D2949731BC1D06E00FDC81F /* SavingForever.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 8D2949711BC1D06E00FDC81F /* SavingForever.xcdatamodeld */; }; - 8D2949751BC1D06E00FDC81F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8D2949741BC1D06E00FDC81F /* Assets.xcassets */; }; - 8D2949781BC1D06E00FDC81F /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8D2949761BC1D06E00FDC81F /* LaunchScreen.storyboard */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 8D2949621BC1D06E00FDC81F /* SavingForever.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SavingForever.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 8D2949661BC1D06E00FDC81F /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 8D2949681BC1D06E00FDC81F /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 8D2949691BC1D06E00FDC81F /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 8D29496B1BC1D06E00FDC81F /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; - 8D29496C1BC1D06E00FDC81F /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; - 8D29496F1BC1D06E00FDC81F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 8D2949721BC1D06E00FDC81F /* SavingForever.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = SavingForever.xcdatamodel; sourceTree = ""; }; - 8D2949741BC1D06E00FDC81F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 8D2949771BC1D06E00FDC81F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 8D2949791BC1D06E00FDC81F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D29495F1BC1D06E00FDC81F /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 8D2949591BC1D06D00FDC81F = { - isa = PBXGroup; - children = ( - 8D2949641BC1D06E00FDC81F /* SavingForever */, - 8D2949631BC1D06E00FDC81F /* Products */, - ); - sourceTree = ""; - }; - 8D2949631BC1D06E00FDC81F /* Products */ = { - isa = PBXGroup; - children = ( - 8D2949621BC1D06E00FDC81F /* SavingForever.app */, - ); - name = Products; - sourceTree = ""; - }; - 8D2949641BC1D06E00FDC81F /* SavingForever */ = { - isa = PBXGroup; - children = ( - 8D2949681BC1D06E00FDC81F /* AppDelegate.h */, - 8D2949691BC1D06E00FDC81F /* AppDelegate.m */, - 8D29496B1BC1D06E00FDC81F /* ViewController.h */, - 8D29496C1BC1D06E00FDC81F /* ViewController.m */, - 8D29496E1BC1D06E00FDC81F /* Main.storyboard */, - 8D2949741BC1D06E00FDC81F /* Assets.xcassets */, - 8D2949761BC1D06E00FDC81F /* LaunchScreen.storyboard */, - 8D2949791BC1D06E00FDC81F /* Info.plist */, - 8D2949711BC1D06E00FDC81F /* SavingForever.xcdatamodeld */, - 8D2949651BC1D06E00FDC81F /* Supporting Files */, - ); - path = SavingForever; - sourceTree = ""; - }; - 8D2949651BC1D06E00FDC81F /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 8D2949661BC1D06E00FDC81F /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D2949611BC1D06E00FDC81F /* SavingForever */ = { - isa = PBXNativeTarget; - buildConfigurationList = 8D29497C1BC1D06E00FDC81F /* Build configuration list for PBXNativeTarget "SavingForever" */; - buildPhases = ( - 8D29495E1BC1D06E00FDC81F /* Sources */, - 8D29495F1BC1D06E00FDC81F /* Frameworks */, - 8D2949601BC1D06E00FDC81F /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SavingForever; - productName = SavingForever; - productReference = 8D2949621BC1D06E00FDC81F /* SavingForever.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 8D29495A1BC1D06D00FDC81F /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = "Michael Kavouras"; - TargetAttributes = { - 8D2949611BC1D06E00FDC81F = { - CreatedOnToolsVersion = 7.0.1; - }; - }; - }; - buildConfigurationList = 8D29495D1BC1D06D00FDC81F /* Build configuration list for PBXProject "SavingForever" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 8D2949591BC1D06D00FDC81F; - productRefGroup = 8D2949631BC1D06E00FDC81F /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D2949611BC1D06E00FDC81F /* SavingForever */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D2949601BC1D06E00FDC81F /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D2949781BC1D06E00FDC81F /* LaunchScreen.storyboard in Resources */, - 8D2949751BC1D06E00FDC81F /* Assets.xcassets in Resources */, - 8D2949701BC1D06E00FDC81F /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D29495E1BC1D06E00FDC81F /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D29496D1BC1D06E00FDC81F /* ViewController.m in Sources */, - 8D29496A1BC1D06E00FDC81F /* AppDelegate.m in Sources */, - 8D2949671BC1D06E00FDC81F /* main.m in Sources */, - 8D2949731BC1D06E00FDC81F /* SavingForever.xcdatamodeld in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 8D29496E1BC1D06E00FDC81F /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 8D29496F1BC1D06E00FDC81F /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 8D2949761BC1D06E00FDC81F /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 8D2949771BC1D06E00FDC81F /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 8D29497A1BC1D06E00FDC81F /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 8D29497B1BC1D06E00FDC81F /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 8D29497D1BC1D06E00FDC81F /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = SavingForever/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.mikekavouras.SavingForever; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 8D29497E1BC1D06E00FDC81F /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = SavingForever/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.mikekavouras.SavingForever; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 8D29495D1BC1D06D00FDC81F /* Build configuration list for PBXProject "SavingForever" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8D29497A1BC1D06E00FDC81F /* Debug */, - 8D29497B1BC1D06E00FDC81F /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 8D29497C1BC1D06E00FDC81F /* Build configuration list for PBXNativeTarget "SavingForever" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8D29497D1BC1D06E00FDC81F /* Debug */, - 8D29497E1BC1D06E00FDC81F /* Release */, - ); - defaultConfigurationIsVisible = 0; - }; -/* End XCConfigurationList section */ - -/* Begin XCVersionGroup section */ - 8D2949711BC1D06E00FDC81F /* SavingForever.xcdatamodeld */ = { - isa = XCVersionGroup; - children = ( - 8D2949721BC1D06E00FDC81F /* SavingForever.xcdatamodel */, - ); - currentVersion = 8D2949721BC1D06E00FDC81F /* SavingForever.xcdatamodel */; - path = SavingForever.xcdatamodeld; - sourceTree = ""; - versionGroupType = wrapper.xcdatamodel; - }; -/* End XCVersionGroup section */ - }; - rootObject = 8D29495A1BC1D06D00FDC81F /* Project object */; -} diff --git a/SavingForever/SavingForever/Base.lproj/Main.storyboard b/SavingForever/SavingForever/Base.lproj/Main.storyboard deleted file mode 100644 index f56d2f3..0000000 --- a/SavingForever/SavingForever/Base.lproj/Main.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SavingForever/SavingForever/SavingForever.xcdatamodeld/SavingForever.xcdatamodel/contents b/SavingForever/SavingForever/SavingForever.xcdatamodeld/SavingForever.xcdatamodel/contents deleted file mode 100644 index 193f33c..0000000 --- a/SavingForever/SavingForever/SavingForever.xcdatamodeld/SavingForever.xcdatamodel/contents +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/SavingForever/SavingForever/ViewController.h b/SavingForever/SavingForever/ViewController.h deleted file mode 100644 index b193f94..0000000 --- a/SavingForever/SavingForever/ViewController.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// ViewController.h -// SavingForever -// -// Created by Michael Kavouras on 10/4/15. -// Copyright © 2015 Michael Kavouras. All rights reserved. -// - -#import - -@interface ViewController : UIViewController - - -@end - diff --git a/SavingForever/SavingForever/ViewController.m b/SavingForever/SavingForever/ViewController.m deleted file mode 100644 index 5f1f663..0000000 --- a/SavingForever/SavingForever/ViewController.m +++ /dev/null @@ -1,27 +0,0 @@ -// -// ViewController.m -// SavingForever -// -// Created by Michael Kavouras on 10/4/15. -// Copyright © 2015 Michael Kavouras. All rights reserved. -// - -#import "ViewController.h" - -@interface ViewController () - -@end - -@implementation ViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - // Do any additional setup after loading the view, typically from a nib. -} - -- (void)didReceiveMemoryWarning { - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -@end From 6987dfcb24001975bb4ce5ccd5fc511bc586ae64 Mon Sep 17 00:00:00 2001 From: Justine Gartner Date: Sun, 4 Oct 2015 17:55:35 -0400 Subject: [PATCH 02/17] updated ListTableViewController custom class in storyboard ;) --- MarsWater/.DS_Store | Bin 6148 -> 6148 bytes .../MarsWater/Base.lproj/Main.storyboard | 4 ++-- MarsWater/MarsWater/ListTableViewController.m | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/MarsWater/.DS_Store b/MarsWater/.DS_Store index b78edbec4cdd9ffe5e2a097c513a085d205852b3..a191a481bd600e9c510ad998fff753ae37329582 100644 GIT binary patch delta 33 pcmZoMXffE}!pQWkZgK;o&g3G-hRt6^_?b5gFtIUjX6N|J4*<$g3j_cF delta 33 pcmZoMXffE}!pQXd@Z<(YoykRv4U7hx8JXDFCN}VGX6N|J4* - + @@ -60,7 +60,6 @@ - @@ -178,6 +177,7 @@ + diff --git a/MarsWater/MarsWater/ListTableViewController.m b/MarsWater/MarsWater/ListTableViewController.m index d3e6073..d368e8f 100644 --- a/MarsWater/MarsWater/ListTableViewController.m +++ b/MarsWater/MarsWater/ListTableViewController.m @@ -40,7 +40,6 @@ - (void)viewDidLoad { [self.fetchedResultsController performFetch:nil]; - [self.tableView reloadData]; } #pragma mark - Table view data source From f17a162c04dbccaa97d1974dc881f9eed929ebd7 Mon Sep 17 00:00:00 2001 From: Justine Gartner Date: Mon, 5 Oct 2015 22:02:39 -0400 Subject: [PATCH 03/17] added TaskTableViewController and TaskCreationTableViewController, must fix segue between the two --- MarsWater/MarsWater.xcodeproj/project.pbxproj | 13 ++ .../MarsWater/Base.lproj/Main.storyboard | 181 +++++++++++++++++- MarsWater/MarsWater/ListTableViewController.m | 57 ++---- .../TaskCreationTableViewController.h | 16 ++ .../TaskCreationTableViewController.m | 85 ++++++++ MarsWater/MarsWater/TaskTableViewController.h | 16 ++ MarsWater/MarsWater/TaskTableViewController.m | 77 ++++++++ 7 files changed, 397 insertions(+), 48 deletions(-) create mode 100644 MarsWater/MarsWater/TaskCreationTableViewController.h create mode 100644 MarsWater/MarsWater/TaskCreationTableViewController.m create mode 100644 MarsWater/MarsWater/TaskTableViewController.h create mode 100644 MarsWater/MarsWater/TaskTableViewController.m diff --git a/MarsWater/MarsWater.xcodeproj/project.pbxproj b/MarsWater/MarsWater.xcodeproj/project.pbxproj index e7da506..a5f6395 100644 --- a/MarsWater/MarsWater.xcodeproj/project.pbxproj +++ b/MarsWater/MarsWater.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + 6B765BC51BC337D1002DC96B /* TaskTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B765BC41BC337D1002DC96B /* TaskTableViewController.m */; settings = {ASSET_TAGS = (); }; }; + 6B765BC81BC337F2002DC96B /* TaskCreationTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B765BC71BC337F2002DC96B /* TaskCreationTableViewController.m */; settings = {ASSET_TAGS = (); }; }; 6B80EDD91BC1AE4300283EB5 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B80EDD81BC1AE4300283EB5 /* main.m */; }; 6B80EDDC1BC1AE4300283EB5 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B80EDDB1BC1AE4300283EB5 /* AppDelegate.m */; }; 6B80EDE21BC1AE4300283EB5 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6B80EDE01BC1AE4300283EB5 /* Main.storyboard */; }; @@ -22,6 +24,10 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 6B765BC31BC337D1002DC96B /* TaskTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TaskTableViewController.h; sourceTree = ""; }; + 6B765BC41BC337D1002DC96B /* TaskTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TaskTableViewController.m; sourceTree = ""; }; + 6B765BC61BC337F2002DC96B /* TaskCreationTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TaskCreationTableViewController.h; sourceTree = ""; }; + 6B765BC71BC337F2002DC96B /* TaskCreationTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TaskCreationTableViewController.m; sourceTree = ""; }; 6B80EDD41BC1AE4300283EB5 /* MarsWater.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MarsWater.app; sourceTree = BUILT_PRODUCTS_DIR; }; 6B80EDD81BC1AE4300283EB5 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 6B80EDDA1BC1AE4300283EB5 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; @@ -78,6 +84,10 @@ 6B80EDF41BC1B2B600283EB5 /* Model */, 6B80EDDA1BC1AE4300283EB5 /* AppDelegate.h */, 6B80EDDB1BC1AE4300283EB5 /* AppDelegate.m */, + 6B765BC31BC337D1002DC96B /* TaskTableViewController.h */, + 6B765BC41BC337D1002DC96B /* TaskTableViewController.m */, + 6B765BC61BC337F2002DC96B /* TaskCreationTableViewController.h */, + 6B765BC71BC337F2002DC96B /* TaskCreationTableViewController.m */, 6B80EE011BC1B92300283EB5 /* ListTableViewController.h */, 6B80EE021BC1B92300283EB5 /* ListTableViewController.m */, 6B80EE041BC1B93700283EB5 /* ListCreationTableViewController.h */, @@ -188,6 +198,8 @@ files = ( 6B80EDE51BC1AE4300283EB5 /* MarsWater.xcdatamodeld in Sources */, 6B80EDFD1BC1B32700283EB5 /* Task+CoreDataProperties.m in Sources */, + 6B765BC81BC337F2002DC96B /* TaskCreationTableViewController.m in Sources */, + 6B765BC51BC337D1002DC96B /* TaskTableViewController.m in Sources */, 6B80EDDC1BC1AE4300283EB5 /* AppDelegate.m in Sources */, 6B80EDFE1BC1B32700283EB5 /* Task.m in Sources */, 6B80EE001BC1B32700283EB5 /* List.m in Sources */, @@ -341,6 +353,7 @@ 6B80EDF01BC1AE4300283EB5 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ diff --git a/MarsWater/MarsWater/Base.lproj/Main.storyboard b/MarsWater/MarsWater/Base.lproj/Main.storyboard index 1f42317..52da37c 100644 --- a/MarsWater/MarsWater/Base.lproj/Main.storyboard +++ b/MarsWater/MarsWater/Base.lproj/Main.storyboard @@ -20,6 +20,9 @@ + + + @@ -57,11 +60,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -107,9 +276,9 @@ - - - - + + + + + + + + + + + + + + + + + diff --git a/MarsWater/MarsWater/ListCreationTableViewController.m b/MarsWater/MarsWater/ListCreationTableViewController.m index 06c943c..1b8dfb6 100644 --- a/MarsWater/MarsWater/ListCreationTableViewController.m +++ b/MarsWater/MarsWater/ListCreationTableViewController.m @@ -39,6 +39,9 @@ -(void)setupNavigationBar{ self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancel)]; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(save)]; + + self.navigationItem.leftBarButtonItem.tintColor = [UIColor grayColor]; + self.navigationItem.rightBarButtonItem.tintColor = [UIColor colorWithRed:224.0/255.0 green:35.0/255.0 blue:70.0/255.0 alpha:1.0]; } -(void)cancel{ diff --git a/MarsWater/MarsWater/ListTableViewController.m b/MarsWater/MarsWater/ListTableViewController.m index 58847ec..d5d6564 100644 --- a/MarsWater/MarsWater/ListTableViewController.m +++ b/MarsWater/MarsWater/ListTableViewController.m @@ -23,6 +23,8 @@ @implementation ListTableViewController - (void)viewDidLoad { [super viewDidLoad]; + self.tableView.backgroundColor = [UIColor groupTableViewBackgroundColor]; + AppDelegate *delegate = [UIApplication sharedApplication].delegate; //Create an instance of NSFetchRequest with an entity name diff --git a/MarsWater/MarsWater/TaskCreationTableViewController.m b/MarsWater/MarsWater/TaskCreationTableViewController.m index 44d9a1e..8fd5906 100644 --- a/MarsWater/MarsWater/TaskCreationTableViewController.m +++ b/MarsWater/MarsWater/TaskCreationTableViewController.m @@ -13,6 +13,8 @@ @interface TaskCreationTableViewController () @property (weak, nonatomic) IBOutlet UITextField *taskTextField; +@property (weak, nonatomic) IBOutlet UIButton *highButton; +@property (weak, nonatomic) IBOutlet UIButton *lowButton; @property (nonatomic) Task *task; @@ -26,10 +28,7 @@ -(void)viewDidLoad{ [super viewDidLoad]; - - - self.listTasks = [[NSMutableOrderedSet alloc] init]; - + self.listTasks = self.list.task.mutableCopy; [self setupNavigationBar]; @@ -45,6 +44,9 @@ -(void)setupNavigationBar{ self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancel)]; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(save)]; + + self.navigationItem.leftBarButtonItem.tintColor = [UIColor grayColor]; + self.navigationItem.rightBarButtonItem.tintColor = [UIColor colorWithRed:224.0/255.0 green:35.0/255.0 blue:70.0/255.0 alpha:1.0]; } -(void)cancel{ @@ -54,6 +56,8 @@ -(void)cancel{ -(void)save{ + //set task properties + self.task.taskDescription = self.taskTextField.text; if (self.task.createdAt == nil) { @@ -65,18 +69,27 @@ -(void)save{ self.task.updatedAt = [NSDate date]; } - [self updateListOfTasks]; + + //update List's Task (NSOrderedSet) + + self.list.task = self.listTasks; + //save to task to core data context + AppDelegate *delegate = [UIApplication sharedApplication].delegate; [delegate.managedObjectContext save:nil]; [self dismissViewControllerAnimated:YES completion:nil]; - NSLog(@"%@", self.task); } +#pragma mark - update list task +//not currently in use, but was +//keeping for reference + +/* -(void)updateListOfTasks{ self.listTasks = self.list.task.mutableCopy; @@ -85,17 +98,20 @@ -(void)updateListOfTasks{ self.list.task = self.listTasks; -} +}*/ + +#pragma mark - priority button - (IBAction)priorityButtonTapped:(UIButton *)sender { - //set tag property of each button - //use that property here - sender.tag - //to add the new task to the top (HIGH priority) - //or bottom (LOW priority) of the list - - NSLog(@"priority button tapped"); + if (sender == self.highButton) { + + [self.listTasks insertObject:self.task atIndex:0]; + }else if (sender == self.lowButton){ + + [self.listTasks insertObject:self.task atIndex:self.listTasks.count]; + } } diff --git a/MarsWater/MarsWater/TaskTableViewController.m b/MarsWater/MarsWater/TaskTableViewController.m index 7b867a3..6b1b771 100644 --- a/MarsWater/MarsWater/TaskTableViewController.m +++ b/MarsWater/MarsWater/TaskTableViewController.m @@ -27,8 +27,8 @@ - (void)viewDidLoad { [self.tableView reloadData]; - NSLog(@"list tasks: %@", self.list.task); - + self.tableView.backgroundColor = self.list.color; + self.tableView.backgroundView.backgroundColor = self.list.color; } -(void)viewDidAppear:(BOOL)animated{ @@ -55,11 +55,8 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N Task *task = self.list.task[indexPath.row]; - NSLog(@"self.list.task: %@", self.list.task[indexPath.row]); - cell.textLabel.text = task.taskDescription; - cell.backgroundColor = (UIColor *)self.list.color; - + cell.backgroundColor = self.list.color; return cell; } From 2a328e07a45de49c9bc13819e36d1b5fa1082bed Mon Sep 17 00:00:00 2001 From: Justine Gartner Date: Thu, 8 Oct 2015 18:38:22 -0400 Subject: [PATCH 12/17] changed the name of the NSManagedObjectContext method --- MarsWater/MarsWater/ListTableViewController.m | 6 +++--- MarsWater/MarsWater/TaskCreationTableViewController.m | 4 ++-- MarsWater/MarsWater/TaskTableViewController.m | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/MarsWater/MarsWater/ListTableViewController.m b/MarsWater/MarsWater/ListTableViewController.m index d5d6564..ea5c172 100644 --- a/MarsWater/MarsWater/ListTableViewController.m +++ b/MarsWater/MarsWater/ListTableViewController.m @@ -79,7 +79,7 @@ -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEdi if (editingStyle == UITableViewCellEditingStyleDelete) { List *selectedList = self.fetchedResultsController.fetchedObjects[indexPath.row]; - [self removeObjectFromCoreDataContext:selectedList]; + [self removeObjectFromNSManagedObjectContext:selectedList]; } @@ -110,9 +110,9 @@ -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ } -#pragma mark - Core Data +#pragma mark - NSManagedObjectContext --(void)removeObjectFromCoreDataContext:(List *)selectedList { +-(void)removeObjectFromNSManagedObjectContext:(List *)selectedList { AppDelegate *delegate = [UIApplication sharedApplication].delegate; NSManagedObjectContext *context = delegate.managedObjectContext; diff --git a/MarsWater/MarsWater/TaskCreationTableViewController.m b/MarsWater/MarsWater/TaskCreationTableViewController.m index 8fd5906..7af9a90 100644 --- a/MarsWater/MarsWater/TaskCreationTableViewController.m +++ b/MarsWater/MarsWater/TaskCreationTableViewController.m @@ -86,8 +86,8 @@ -(void)save{ } #pragma mark - update list task -//not currently in use, but was -//keeping for reference +//Not currently in use, but was. +//Keeping for reference. /* -(void)updateListOfTasks{ diff --git a/MarsWater/MarsWater/TaskTableViewController.m b/MarsWater/MarsWater/TaskTableViewController.m index 6b1b771..4f59de1 100644 --- a/MarsWater/MarsWater/TaskTableViewController.m +++ b/MarsWater/MarsWater/TaskTableViewController.m @@ -31,7 +31,7 @@ - (void)viewDidLoad { self.tableView.backgroundView.backgroundColor = self.list.color; } --(void)viewDidAppear:(BOOL)animated{ +-(void)viewWillAppear:(BOOL)animated{ [self.tableView reloadData]; } @@ -71,7 +71,7 @@ -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEdi if (editingStyle == UITableViewCellEditingStyleDelete) { Task *selectedTask = self.list.task[indexPath.row]; - [self removeObjectFromCoreDataContext:selectedTask]; + [self removeObjectFromNSManagedObjectContext:selectedTask]; [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; @@ -90,9 +90,9 @@ -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ taskCreationTVC.list = self.list; } -#pragma mark - Core Data +#pragma mark - NSManagedObjectContext --(void)removeObjectFromCoreDataContext:(Task *)selectedTask { +-(void)removeObjectFromNSManagedObjectContext:(Task *)selectedTask { AppDelegate *delegate = [UIApplication sharedApplication].delegate; NSManagedObjectContext *context = delegate.managedObjectContext; From bfe4ab078d07a1113c6c11545d579d1d04dca0ed Mon Sep 17 00:00:00 2001 From: Justine Gartner Date: Fri, 9 Oct 2015 16:39:11 -0400 Subject: [PATCH 13/17] Added alert to taskCreationTableViewController for priority selection --- .../TaskCreationTableViewController.m | 135 ++++++++++++++---- MarsWater/MarsWater/TaskTableViewController.h | 12 +- MarsWater/MarsWater/TaskTableViewController.m | 65 +++++++++ 3 files changed, 180 insertions(+), 32 deletions(-) diff --git a/MarsWater/MarsWater/TaskCreationTableViewController.m b/MarsWater/MarsWater/TaskCreationTableViewController.m index 7af9a90..f39ccc8 100644 --- a/MarsWater/MarsWater/TaskCreationTableViewController.m +++ b/MarsWater/MarsWater/TaskCreationTableViewController.m @@ -7,16 +7,20 @@ // #import "TaskCreationTableViewController.h" +#import "TaskTableViewController.h" #import "Task.h" #import "AppDelegate.h" -@interface TaskCreationTableViewController () +@interface TaskCreationTableViewController () @property (weak, nonatomic) IBOutlet UITextField *taskTextField; @property (weak, nonatomic) IBOutlet UIButton *highButton; @property (weak, nonatomic) IBOutlet UIButton *lowButton; +@property (nonatomic) BOOL priorityButtonSelected; + @property (nonatomic) Task *task; +@property (nonatomic) Task *selectedTask; @property (nonatomic) NSMutableOrderedSet *listTasks; @@ -28,6 +32,8 @@ -(void)viewDidLoad{ [super viewDidLoad]; + self.priorityButtonSelected = NO; + self.listTasks = self.list.task.mutableCopy; [self setupNavigationBar]; @@ -38,6 +44,22 @@ -(void)viewDidLoad{ } +/* +-(void)viewWillAppear:(BOOL)animated{ + + if (self.task == nil) { + + AppDelegate *delegate = [UIApplication sharedApplication].delegate; + + self.task = [NSEntityDescription insertNewObjectForEntityForName:@"Task" inManagedObjectContext:delegate.managedObjectContext]; + }else{ + + + } +}*/ + + + -(void)setupNavigationBar{ self.navigationItem.title = [NSString stringWithFormat:@"Add New Task to %@", self.list.title]; @@ -56,54 +78,71 @@ -(void)cancel{ -(void)save{ - //set task properties - - self.task.taskDescription = self.taskTextField.text; + if (self.priorityButtonSelected == NO) { + + [self alertController]; - if (self.task.createdAt == nil) { + }else { - self.task.createdAt = [NSDate date]; + //set task properties - }else { + [self setTaskProperties]; - self.task.updatedAt = [NSDate date]; + + //update List's Task (NSOrderedSet) + + self.list.task = self.listTasks; + + + //save task with NSManagedObjectContext + + AppDelegate *delegate = [UIApplication sharedApplication].delegate; + + [delegate.managedObjectContext save:nil]; + + + //clear self.task + + self.task = nil; + + + [self dismissViewControllerAnimated:YES completion:nil]; } - - //update List's Task (NSOrderedSet) - - self.list.task = self.listTasks; - - - //save to task to core data context - - AppDelegate *delegate = [UIApplication sharedApplication].delegate; - - [delegate.managedObjectContext save:nil]; - - [self dismissViewControllerAnimated:YES completion:nil]; - } -#pragma mark - update list task -//Not currently in use, but was. -//Keeping for reference. +#pragma mark - taskTableViewControllerDelegate protocol methods -/* --(void)updateListOfTasks{ +-(void)didSelectTask:(Task *)selectedTask atIndexPath:(NSIndexPath *)indexPath{ - self.listTasks = self.list.task.mutableCopy; + self.selectedTask = selectedTask; - [self.listTasks addObject:self.task]; + NSLog(@"selected task: %@", selectedTask); +} + +#pragma mark - task properties + +-(void)setTaskProperties{ - self.list.task = self.listTasks; + self.task.taskDescription = self.taskTextField.text; -}*/ + if (self.task.createdAt == nil) { + + self.task.createdAt = [NSDate date]; + + }else { + + self.task.updatedAt = [NSDate date]; + } +} + #pragma mark - priority button - (IBAction)priorityButtonTapped:(UIButton *)sender { + self.priorityButtonSelected = YES; + if (sender == self.highButton) { [self.listTasks insertObject:self.task atIndex:0]; @@ -115,4 +154,38 @@ - (IBAction)priorityButtonTapped:(UIButton *)sender { } +#pragma mark - alertController + +-(void)alertController{ + + UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Oops" + message:@"Please select a priority level." + preferredStyle:UIAlertControllerStyleAlert]; + + UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault + handler:^(UIAlertAction * action) {}]; + + [alert addAction:defaultAction]; + [self presentViewController:alert animated:YES completion:nil]; + +} + + +#pragma mark - update list task +//Not currently in use, but was. +//Keeping for reference. + +/* + -(void)updateListOfTasks{ + + self.listTasks = self.list.task.mutableCopy; + + [self.listTasks addObject:self.task]; + + self.list.task = self.listTasks; + + }*/ + + + @end diff --git a/MarsWater/MarsWater/TaskTableViewController.h b/MarsWater/MarsWater/TaskTableViewController.h index 157d52c..d97c850 100644 --- a/MarsWater/MarsWater/TaskTableViewController.h +++ b/MarsWater/MarsWater/TaskTableViewController.h @@ -9,7 +9,17 @@ #import #import "List.h" -@interface TaskTableViewController : UITableViewController +@protocol TaskTableViewControllerDelegate + +-(void)didSelectTask: (Task *)selectedTask atIndexPath: (NSIndexPath *)indexPath; + +@end + +@interface TaskTableViewController : UITableViewController + +@property (nonatomic, weak)id delegate; + +@property (nonatomic) NSIndexPath *selectedTaskIndexPath; @property (nonatomic) List *list; diff --git a/MarsWater/MarsWater/TaskTableViewController.m b/MarsWater/MarsWater/TaskTableViewController.m index 4f59de1..68dc461 100644 --- a/MarsWater/MarsWater/TaskTableViewController.m +++ b/MarsWater/MarsWater/TaskTableViewController.m @@ -79,6 +79,18 @@ -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEdi } +-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ + + Task *selectedTask = self.list.task[indexPath.row]; + + [self.delegate didSelectTask:selectedTask atIndexPath:self.selectedTaskIndexPath]; + +} + +-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{ + +} + #pragma mark - segue @@ -101,5 +113,58 @@ -(void)removeObjectFromNSManagedObjectContext:(Task *)selectedTask { } +#pragma mark - alert controller + +-(void)showAlertActions{ + + UIAlertController * view= [UIAlertController + alertControllerWithTitle:@"What would you like to do?" + message:@"Select One" + preferredStyle:UIAlertControllerStyleActionSheet]; + + UIAlertAction *markAsDone = [UIAlertAction + actionWithTitle:@"Mark Done" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction * action) + { + //Give task a check mark image + //Move task to bottom of list.task + //change background color of cell + //set task's completedAt property + + [view dismissViewControllerAnimated:YES completion:nil]; + + }]; + + UIAlertAction *edit = [UIAlertAction + actionWithTitle:@"Edit" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction * action) + { + //push a taskCreationTableViewController + //add functionality on tCTVC to replace object at index? + + [view dismissViewControllerAnimated:YES completion:nil]; + + }]; + + + UIAlertAction* cancel = [UIAlertAction + actionWithTitle:@"Cancel" + style:UIAlertActionStyleDefault + handler:^(UIAlertAction * action) + { + [view dismissViewControllerAnimated:YES completion:nil]; + + }]; + + + [view addAction:markAsDone]; + [view addAction:edit]; + [view addAction:cancel]; + + [self presentViewController:view animated:YES completion:nil]; +} + @end From 7c942febc18c7946dce079d676e1c596eacef406 Mon Sep 17 00:00:00 2001 From: Justine Gartner Date: Fri, 9 Oct 2015 17:45:17 -0400 Subject: [PATCH 14/17] added alert action to TaskTableViewController, not fully functioning yet --- .../MarsWater/Base.lproj/Main.storyboard | 6 +- .../TaskCreationTableViewController.m | 124 +++++++++++++----- MarsWater/MarsWater/TaskTableViewController.m | 16 ++- 3 files changed, 110 insertions(+), 36 deletions(-) diff --git a/MarsWater/MarsWater/Base.lproj/Main.storyboard b/MarsWater/MarsWater/Base.lproj/Main.storyboard index 8dd91f8..197128d 100644 --- a/MarsWater/MarsWater/Base.lproj/Main.storyboard +++ b/MarsWater/MarsWater/Base.lproj/Main.storyboard @@ -135,7 +135,7 @@ - + @@ -185,7 +185,7 @@ - +