Implementing Registration checks and final touches.
authorJoseph Spiros <joseph.spiros@ithinksw.com>
Wed, 1 Oct 2003 21:09:20 +0000 (21:09 +0000)
committerJoseph Spiros <joseph.spiros@ithinksw.com>
Wed, 1 Oct 2003 21:09:20 +0000 (21:09 +0000)
MTShizzleWindow.m
MainController.h
MainController.m
StatusWindowController.m

index ede4cd2..a0903a5 100755 (executable)
@@ -1,4 +1,5 @@
 #import "MTShizzleWindow.h"
 #import "MTShizzleWindow.h"
+#import "MainController.h"
 
 @interface MTShizzleWindow (Private)
 - (void)setBling:(id)bling;
 
 @interface MTShizzleWindow (Private)
 - (void)setBling:(id)bling;
@@ -37,6 +38,15 @@ static MTShizzleWindow *_privateSharedWindow = nil;
     return self;
 }
 
     return self;
 }
 
+- (void)makeKeyAndOrderFront:(id)sender {
+    if ( ( [[NSDate date] timeIntervalSinceDate:[[MainController sharedController] getBlingTime]] >= 604800 ) && ([[regLater title] isEqualToString:@"Register Later"]) ) {
+        [regLater setTitle:@"Quit"];
+        [regLater setTarget:[NSApplication sharedApplication]];
+        [regLater setAction:@selector(terminate:)];
+    }
+    [super makeKeyAndOrderFront:sender];
+}        
+
 - (void)dealloc
 {
     [regMessage release];
 - (void)dealloc
 {
     [regMessage release];
index 1245103..5675471 100755 (executable)
     //Used in updating the menu automatically
     NSTimer *refreshTimer;
     NSString *_latestSongIdentifier;
     //Used in updating the menu automatically
     NSTimer *refreshTimer;
     NSString *_latestSongIdentifier;
-    
+
     StatusWindowController *statusWindowController; //Shows status windows
     MenuController *menuController;
     NSUserDefaults *df;
     
     StatusWindowController *statusWindowController; //Shows status windows
     MenuController *menuController;
     NSUserDefaults *df;
     
-    NSDate *blingDate;
     MTBlingController *bling;
     MTBlingController *bling;
+    NSTimer *registerTimer;
     BOOL timerUpdating;
 }
 + (MainController *)sharedController;
     BOOL timerUpdating;
 }
 + (MainController *)sharedController;
index edd1e78..09443c2 100755 (executable)
@@ -4,6 +4,7 @@
 #import <ITKit/ITHotKeyCenter.h>
 #import <ITKit/ITHotKey.h>
 #import <ITKit/ITKeyCombo.h>
 #import <ITKit/ITHotKeyCenter.h>
 #import <ITKit/ITHotKey.h>
 #import <ITKit/ITKeyCombo.h>
+#import "StatusWindow.h"
 #import "StatusWindowController.h"
 #import "StatusItemHack.h"
 
 #import "StatusWindowController.h"
 #import "StatusItemHack.h"
 
@@ -51,9 +52,6 @@ static MainController *sharedController;
         SetITDebugMode(YES);
     }
     
         SetITDebugMode(YES);
     }
     
-    bling = [[MTBlingController alloc] init];
-    blingDate = nil;
-    
     currentRemote = [self loadRemote];
     [currentRemote begin];
     
     currentRemote = [self loadRemote];
     [currentRemote begin];
     
@@ -79,6 +77,14 @@ static MainController *sharedController;
             initWithStatusBar:[NSStatusBar systemStatusBar]
             withLength:NSSquareStatusItemLength];
     
             initWithStatusBar:[NSStatusBar systemStatusBar]
             withLength:NSSquareStatusItemLength];
     
+    bling = [[MTBlingController alloc] init];
+    [self blingTime];
+    registerTimer = [[NSTimer scheduledTimerWithTimeInterval:10.0
+                             target:self
+                             selector:@selector(blingTime)
+                             userInfo:nil
+                             repeats:YES] retain];
+    
     if ([currentRemote playerRunningState] == ITMTRemotePlayerRunning) {
         [self applicationLaunched:nil];
     } else {
     if ([currentRemote playerRunningState] == ITMTRemotePlayerRunning) {
         [self applicationLaunched:nil];
     } else {
@@ -148,21 +154,45 @@ static MainController *sharedController;
     [pool release];
 }*/
 
     [pool release];
 }*/
 
+- (void)setBlingTime:(NSDate*)date
+{
+    NSMutableDictionary *globalPrefs;
+    [df synchronize];
+    globalPrefs = [[df persistentDomainForName:@".GlobalPreferences"] mutableCopy];
+    [globalPrefs setObject:date forKey:@"ITMTTrialStart"];
+    [df setPersistentDomain:globalPrefs forName:@".GlobalPreferences"];
+    [df synchronize];
+    [globalPrefs release];
+}
+
+- (NSDate*)getBlingTime
+{
+    [df synchronize];
+    return [[df persistentDomainForName:@".GlobalPreferences"] objectForKey:@"ITMTTrialStart"];
+}
+
 - (void)blingTime
 {
     NSDate *now = [NSDate date];
 - (void)blingTime
 {
     NSDate *now = [NSDate date];
-    if ( (! blingDate) || ([now timeIntervalSinceDate:blingDate] >= 86400) ) {
-        [bling showPanelIfNeeded];
-        [blingDate autorelease];
-        blingDate = [now retain];
+    if ( (! [self getBlingTime] ) ) {
+        [self setBlingTime:now];
+    }
+    if ( ([now timeIntervalSinceDate:[self getBlingTime]] >= 604800) ) {
+        [statusItem setEnabled:NO];
+        [self clearHotKeys];
+        if ([refreshTimer isValid]) {
+        [refreshTimer invalidate];
+        }
+        if ([registerTimer isValid]) {
+        [registerTimer invalidate];
+        }
+        [statusWindowController showRegistrationQueryWindow];
     }
 }
 
 - (void)blingNow
 {
     [bling showPanel];
     }
 }
 
 - (void)blingNow
 {
     [bling showPanel];
-    [blingDate autorelease];
-    blingDate = [[NSDate date] retain];
 }
 
 - (BOOL)blingBling
 }
 
 - (BOOL)blingBling
@@ -710,7 +740,7 @@ static MainController *sharedController;
     [[StatusWindow sharedWindow] vanish:self];
     [[StatusWindow sharedWindow] setIgnoresMouseEvents:YES];
 
     [[StatusWindow sharedWindow] vanish:self];
     [[StatusWindow sharedWindow] setIgnoresMouseEvents:YES];
 
-    [NSApp terminate];
+    [NSApp terminate:self];
 }
 
 
 }
 
 
@@ -745,6 +775,9 @@ static MainController *sharedController;
         [refreshTimer invalidate];
         [refreshTimer release];
         refreshTimer = nil;
         [refreshTimer invalidate];
         [refreshTimer release];
         refreshTimer = nil;
+        [registerTimer invalidate];
+        [registerTimer release];
+        registerTimer = nil;
         [self clearHotKeys];
         playerRunningState = ITMTRemotePlayerNotRunning;
      }
         [self clearHotKeys];
         playerRunningState = ITMTRemotePlayerNotRunning;
      }
index b64bb76..573aac8 100755 (executable)
@@ -233,7 +233,7 @@ static StatusWindowController *sharedController;
     [_window setImage:[NSImage imageNamed:@"Register"]];
     [_window buildDialogWindowWithMessage:message
                             defaultButton:@"Register Now"
     [_window setImage:[NSImage imageNamed:@"Register"]];
     [_window buildDialogWindowWithMessage:message
                             defaultButton:@"Register Now"
-                          alternateButton:@"Quit MenuPrefs"
+                          alternateButton:@"Quit MenuTunes"
                                    target:[MainController sharedController]
                             defaultAction:@selector(registerNowOK)
                           alternateAction:@selector(registerNowCancel)];
                                    target:[MainController sharedController]
                             defaultAction:@selector(registerNowOK)
                           alternateAction:@selector(registerNowCancel)];