Skip to content

Commit 34810dc

Browse files
committed
Added tracking manager
Signed-off-by: Kendall Helmstetter Gelner <[email protected]>
1 parent 21d73bc commit 34810dc

File tree

2 files changed

+125
-0
lines changed

2 files changed

+125
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//
2+
// DATrackingManager.h
3+
// DebuggingApp
4+
//
5+
// Created by Kendall Gelner on 9/9/11.
6+
// Copyright 2011 KiGi Software. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
11+
#import "DAVCTracker.h"
12+
#import "DATabTracker.h"
13+
14+
@interface DATrackingManager : NSObject
15+
16+
+ (void) trackTabPressed:(NSInteger)tabNumber;
17+
18+
+ (DAVCTracker *) trackingForVC:(Class)vcClass;
19+
20+
+ (void) saveVCTrackingResults;
21+
22+
@end
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
//
2+
// DATrackingManager.m
3+
// DebuggingApp
4+
//
5+
// Created by Kendall Gelner on 9/9/11.
6+
// Copyright 2011 KiGi Software. All rights reserved.
7+
//
8+
9+
#import "DATrackingManager.h"
10+
11+
#import "DACoreDataManager.h"
12+
13+
@implementation DATrackingManager
14+
15+
- (id)init
16+
{
17+
self = [super init];
18+
if (self) {
19+
// Initialization code here.
20+
}
21+
22+
return self;
23+
}
24+
25+
+ (DATabTracker *) loadExistingOrNewInstanceOfTabTracker
26+
{
27+
DATabTracker *tabTrackerObject = nil;
28+
29+
NSManagedObjectContext *moc = [[DACoreDataManager sharedInstance] managedObjectContext];
30+
NSEntityDescription *entityDescription = [NSEntityDescription
31+
entityForName:@"TabTracker" inManagedObjectContext:moc];
32+
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
33+
[request setEntity:entityDescription];
34+
35+
NSError *error = nil;
36+
NSArray *array = [moc executeFetchRequest:request error:&error];
37+
if (array.count == 0)
38+
{
39+
tabTrackerObject = [DATabTracker insertInManagedObjectContext:moc];
40+
}
41+
else
42+
{
43+
tabTrackerObject = [array objectAtIndex:0];
44+
}
45+
return tabTrackerObject;
46+
}
47+
48+
+ (void) trackTabPressed:(NSInteger)tabNumber
49+
{
50+
NSManagedObjectContext *moc = [[DACoreDataManager sharedInstance] managedObjectContext];
51+
DATabTracker *tracker = [DATabTracker insertInManagedObjectContext:moc];
52+
tracker.tabNumberValue = tabNumber;
53+
tracker.datePressed = [NSDate date];
54+
NSLog(@"Tracked Tab: %d", tabNumber);
55+
}
56+
57+
58+
+ (DAVCTracker *) loadExistingOrNewInstanceOfVCTrackerforName:(NSString *)vcName
59+
{
60+
DAVCTracker *vcTracker = nil;
61+
62+
NSManagedObjectContext *moc = [[DACoreDataManager sharedInstance] managedObjectContext];
63+
NSEntityDescription *entityDescription = [NSEntityDescription
64+
entityForName:@"VCTracker" inManagedObjectContext:moc];
65+
66+
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
67+
[request setEntity:entityDescription];
68+
69+
NSPredicate *predicate = [NSPredicate predicateWithFormat:
70+
@"VCName = %@", vcName];
71+
[request setPredicate:predicate];
72+
73+
NSError *error = nil;
74+
NSArray *array = [moc executeFetchRequest:request error:&error];
75+
if (array.count == 0)
76+
{
77+
vcTracker = [DAVCTracker insertInManagedObjectContext:moc];
78+
vcTracker.VCName = vcName;
79+
}
80+
else
81+
{
82+
vcTracker = [array objectAtIndex:0];
83+
}
84+
return vcTracker;
85+
}
86+
87+
+ (DAVCTracker *) trackingForVC:(Class)vcClass
88+
{
89+
return [self loadExistingOrNewInstanceOfVCTrackerforName:NSStringFromClass(vcClass)];
90+
}
91+
92+
+ (void) saveVCTrackingResults
93+
{
94+
NSError *error = nil;
95+
NSManagedObjectContext *moc = [[DACoreDataManager sharedInstance] managedObjectContext];
96+
[moc save:&error];
97+
if ( error )
98+
{
99+
NSLog(@"Data Error is %@", error);
100+
}
101+
}
102+
103+
@end

0 commit comments

Comments
 (0)