menuController = [[MenuController alloc] init];
df = [[NSUserDefaults standardUserDefaults] retain];
timerUpdating = NO;
+ blinged = NO;
}
return self;
}
NSMutableDictionary *globalPrefs;
[df synchronize];
globalPrefs = [[df persistentDomainForName:@".GlobalPreferences"] mutableCopy];
- [globalPrefs setObject:date forKey:@"ITMTTrialStart"];
+ if (date) {
+ [globalPrefs setObject:date forKey:@"ITMTTrialStart"];
+ } else {
+ [globalPrefs removeObjectForKey:@"ITMTTrialStart"];
+ }
[df setPersistentDomain:globalPrefs forName:@".GlobalPreferences"];
[df synchronize];
[globalPrefs release];
- (void)blingTime
{
NSDate *now = [NSDate date];
- if ( (! [self getBlingTime] ) ) {
- [self setBlingTime:now];
- }
- if ( ([now timeIntervalSinceDate:[self getBlingTime]] >= 604800) ) {
- [statusItem setEnabled:NO];
- [self clearHotKeys];
- if ([refreshTimer isValid]) {
- [refreshTimer invalidate];
+ if (![self blingBling]) {
+ if ( (! [self getBlingTime] ) || ([now timeIntervalSinceDate:[self getBlingTime]] < 0) ) {
+ [self setBlingTime:now];
}
- if ([registerTimer isValid]) {
- [registerTimer invalidate];
+ if ( ([now timeIntervalSinceDate:[self getBlingTime]] >= 604800) && (blinged != YES) ) {
+ blinged = YES;
+ [statusItem setEnabled:NO];
+ [self clearHotKeys];
+ if ([refreshTimer isValid]) {
+ [refreshTimer invalidate];
+ }
+ [statusWindowController showRegistrationQueryWindow];
}
- [statusWindowController showRegistrationQueryWindow];
+ } else {
+ if (blinged) {
+ [statusItem setEnabled:YES];
+ [self setupHotKeys];
+ if (![refreshTimer isValid]) {
+ [refreshTimer release];
+ refreshTimer = refreshTimer = [[NSTimer scheduledTimerWithTimeInterval:0.5
+ target:self
+ selector:@selector(timerUpdate)
+ userInfo:nil
+ repeats:YES] retain];
+ }
+ blinged = NO;
+ }
+ [self setBlingTime:nil];
}
}
{
if (!note || [[[note userInfo] objectForKey:@"NSApplicationName"] isEqualToString:[currentRemote playerFullName]]) {
ITDebugLog(@"Remote application launched.");
+ playerRunningState = ITMTRemotePlayerRunning;
[currentRemote begin];
[self setLatestSongIdentifier:@""];
[self timerUpdate];
repeats:YES] retain];
//[NSThread detachNewThreadSelector:@selector(startTimerInNewThread) toTarget:self withObject:nil];
[self setupHotKeys];
- playerRunningState = ITMTRemotePlayerRunning;
}
}
[refreshTimer invalidate];
[refreshTimer release];
refreshTimer = nil;
- [registerTimer invalidate];
- [registerTimer release];
- registerTimer = nil;
[self clearHotKeys];
playerRunningState = ITMTRemotePlayerNotRunning;
}