From: <joh...@us...> - 2006-06-16 21:24:11
|
Revision: 539 Author: johnson1234 Date: 2006-06-16 14:24:05 -0700 (Fri, 16 Jun 2006) ViewCVS: http://svn.sourceforge.net/vienna-rss/?rev=539&view=rev Log Message: ----------- Adjust refresh check timer after waking from sleep to account for time asleep. Also, wait at least 15 seconds before refreshing to avoid connection errors. Modified Paths: -------------- trunk/2.1.0/AppController.m Modified: trunk/2.1.0/AppController.m =================================================================== --- trunk/2.1.0/AppController.m 2006-06-15 15:45:19 UTC (rev 538) +++ trunk/2.1.0/AppController.m 2006-06-16 21:24:05 UTC (rev 539) @@ -83,6 +83,7 @@ -(void)updateCloseCommands; -(void)loadOpenTabs; -(NSDictionary *)registrationDictionaryForGrowl; + -(NSTimer *)checkTimer; @end // Static constant strings that are typically never tweaked @@ -305,8 +306,31 @@ { AppController * app = (AppController *)[NSApp delegate]; Preferences * prefs = [Preferences standardPreferences]; - if ([prefs refreshFrequency] > 0) - [app refreshAllSubscriptions:app]; + int frequency = [prefs refreshFrequency]; + if (frequency > 0) + { + NSDate * lastRefresh = [prefs objectForKey:MAPref_LastRefreshDate]; + if ((lastRefresh == nil) || ([app checkTimer] == nil)) + [app handleCheckFrequencyChange:nil]; + else + { + // Wait at least 15 seconds after waking to avoid refresh errors. + NSTimeInterval interval = -[lastRefresh timeIntervalSinceNow]; + if (interval > frequency) + { + [NSTimer scheduledTimerWithTimeInterval:15.0 + target:app + selector:@selector(refreshOnTimer:) + userInfo:nil + repeats:NO]; + [app handleCheckFrequencyChange:nil]; + } + else + { + [[app checkTimer] setFireDate:[NSDate dateWithTimeIntervalSinceNow:15.0 + frequency - interval]]; + } + } + } } else if (messageType == kIOMessageCanSystemSleep) { @@ -1536,6 +1560,11 @@ } } +-(NSTimer *)checkTimer +{ + return checkTimer; +} + /* doViewColumn * Toggle whether or not a specified column is visible. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |