Correctly calculating unread counts in iphone app.

This commit is contained in:
Samuel Clay 2011-07-26 08:37:10 -07:00
parent 793ae279b3
commit 87a7b051f5
5 changed files with 117 additions and 17 deletions

View file

@ -68,6 +68,7 @@
- (int)indexOfActiveStory;
- (void)setStories:(NSArray *)activeFeedStoriesValue;
- (void)addStories:(NSArray *)stories;
- (int)unreadCount;
- (void)markActiveStoryRead;
- (void)markActiveFeedAllRead;
+ (int)computeStoryScore:(NSDictionary *)intelligence;

View file

@ -165,6 +165,13 @@
return -1;
}
- (int)unreadCount {
int ps = [[self.activeFeed objectForKey:@"ps"] intValue];
int nt = [[self.activeFeed objectForKey:@"nt"] intValue];
int ng = [[self.activeFeed objectForKey:@"ng"] intValue];
return ps + nt + ng;
}
- (void)addStories:(NSArray *)stories {
// NSLog(@"Adding: %d to %@", [stories count], stories);
self.activeFeedStories = [self.activeFeedStories arrayByAddingObjectsFromArray:stories];
@ -205,19 +212,19 @@
+ (int)computeStoryScore:(NSDictionary *)intelligence {
int score = 0;
int score_max = [MAX([intelligence objectForKey:@"title"],
MAX([intelligence objectForKey:@"author"],
[intelligence objectForKey:@"tags"])) integerValue];
int score_min = [MIN([intelligence objectForKey:@"title"],
MIN([intelligence objectForKey:@"author"],
[intelligence objectForKey:@"tags"])) integerValue];
int title = [[intelligence objectForKey:@"title"] intValue];
int author = [[intelligence objectForKey:@"author"] intValue];
int tags = [[intelligence objectForKey:@"tags"] intValue];
int score_max = MAX(title, MAX(author, tags));
int score_min = MIN(title, MIN(author, tags));
if (score_max > 0) score = score_max;
else if (score_min < 0) score = score_min;
if (score == 0) score = [[intelligence objectForKey:@"feed"] integerValue];
// NSLog(@"%d/%d -- %d: %@", score_max, score_min, score, intelligence);
NSLog(@"%d/%d -- %d: %@", score_max, score_min, score, intelligence);
return score;
}

View file

@ -14,17 +14,22 @@
<UIScrollViewDelegate> {
NewsBlurAppDelegate *appDelegate;
UIProgressView *progressView;
UIWebView *webView;
UIToolbar *toolbar;
UIBarButtonItem *buttonPrevious;
UIBarButtonItem *buttonNext;
int originalUnreadCount;
}
@property (nonatomic, retain) IBOutlet UIProgressView *progressView;
@property (nonatomic, retain) IBOutlet UIWebView *webView;
@property (nonatomic, retain) IBOutlet UIToolbar *toolbar;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *buttonPrevious;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *buttonNext;
@property (nonatomic, retain) IBOutlet NewsBlurAppDelegate *appDelegate;
@property (readwrite) int originalunreadCount;
- (void)setNextPreviousButtons;
- (void)markStoryAsRead;

View file

@ -15,6 +15,7 @@
@implementation StoryDetailViewController
@synthesize appDelegate;
@synthesize progressView;
@synthesize webView;
@synthesize toolbar;
@synthesize buttonNext;
@ -60,6 +61,12 @@
} else {
[buttonPrevious setTitle:@"Previous"];
}
float unreads = [appDelegate unreadCount];
float total = [appDelegate storyCount];
float progress = (total - unreads) / total;
NSLog(@"Total: %f / %f = %f", unreads, total, progress);
[progressView setProgress:progress];
}
- (void)markStoryAsRead {
@ -252,6 +259,7 @@
// e.g. self.myOutlet = nil;
self.webView = nil;
self.appDelegate = nil;
self.progressView = nil;
}

View file

@ -2,13 +2,13 @@
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">1024</int>
<string key="IBDocument.SystemVersion">10J869</string>
<string key="IBDocument.InterfaceBuilderVersion">1305</string>
<string key="IBDocument.AppKitVersion">1038.35</string>
<string key="IBDocument.HIToolboxVersion">461.00</string>
<string key="IBDocument.SystemVersion">11A511</string>
<string key="IBDocument.InterfaceBuilderVersion">1617</string>
<string key="IBDocument.AppKitVersion">1138</string>
<string key="IBDocument.HIToolboxVersion">566.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="NS.object.0">300</string>
<string key="NS.object.0">534</string>
</object>
<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -68,7 +68,7 @@
<object class="IBUIProgressView" id="484194819">
<reference key="NSNextResponder" ref="155973878"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{111, 17}, {78, 11}}</string>
<string key="NSFrame">{{122, 17}, {56, 11}}</string>
<reference key="NSSuperview" ref="155973878"/>
<reference key="NSWindow"/>
<bool key="IBUIOpaque">NO</bool>
@ -205,6 +205,14 @@
</object>
<int key="connectionID">58</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">progressView</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="484194819"/>
</object>
<int key="connectionID">59</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@ -295,8 +303,9 @@
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.CustomClassName</string>
<string>-1.IBPluginDependency</string>
<string>-2.CustomClassName</string>
<string>1.IBEditorWindowLastContentRect</string>
<string>-2.IBPluginDependency</string>
<string>1.IBPluginDependency</string>
<string>39.IBPluginDependency</string>
<string>42.IBPluginDependency</string>
@ -304,13 +313,16 @@
<string>44.IBPluginDependency</string>
<string>45.IBPluginDependency</string>
<string>46.IBPluginDependency</string>
<string>47.IBPluginDependency</string>
<string>48.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>StoryDetailViewController</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UIResponder</string>
<string>{{751, 380}, {320, 480}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -333,7 +345,7 @@
<reference key="dict.values" ref="0"/>
</object>
<nil key="sourceID"/>
<int key="maxID">58</int>
<int key="maxID">59</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -341,6 +353,17 @@
<object class="IBPartialClassDescription">
<string key="className">FeedDetailViewController</string>
<string key="superclassName">UIViewController</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">markAllRead</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<string key="NS.key.0">markAllRead</string>
<object class="IBActionInfo" key="NS.object.0">
<string key="name">markAllRead</string>
<string key="candidateClassName">id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
@ -638,13 +661,27 @@
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>appDelegate</string>
<string>back</string>
<string>closeButton</string>
<string>forward</string>
<string>pageAction</string>
<string>pageTitle</string>
<string>pageUrl</string>
<string>refresh</string>
<string>toolbar</string>
<string>webView</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>NewsBlurAppDelegate</string>
<string>UIBarButtonItem</string>
<string>UIBarButtonItem</string>
<string>UIBarButtonItem</string>
<string>UIBarButtonItem</string>
<string>UILabel</string>
<string>UITextField</string>
<string>UIBarButtonItem</string>
<string>UIToolbar</string>
<string>UIWebView</string>
</object>
</object>
@ -653,7 +690,14 @@
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>appDelegate</string>
<string>back</string>
<string>closeButton</string>
<string>forward</string>
<string>pageAction</string>
<string>pageTitle</string>
<string>pageUrl</string>
<string>refresh</string>
<string>toolbar</string>
<string>webView</string>
</object>
<object class="NSMutableArray" key="dict.values">
@ -662,10 +706,38 @@
<string key="name">appDelegate</string>
<string key="candidateClassName">NewsBlurAppDelegate</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">back</string>
<string key="candidateClassName">UIBarButtonItem</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">closeButton</string>
<string key="candidateClassName">UIBarButtonItem</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">forward</string>
<string key="candidateClassName">UIBarButtonItem</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">pageAction</string>
<string key="candidateClassName">UIBarButtonItem</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">pageTitle</string>
<string key="candidateClassName">UILabel</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">pageUrl</string>
<string key="candidateClassName">UITextField</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">refresh</string>
<string key="candidateClassName">UIBarButtonItem</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">toolbar</string>
<string key="candidateClassName">UIToolbar</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">webView</string>
<string key="candidateClassName">UIWebView</string>
@ -719,6 +791,7 @@
<string>appDelegate</string>
<string>buttonNext</string>
<string>buttonPrevious</string>
<string>progressView</string>
<string>toolbar</string>
<string>webView</string>
</object>
@ -727,6 +800,7 @@
<string>NewsBlurAppDelegate</string>
<string>UIBarButtonItem</string>
<string>UIBarButtonItem</string>
<string>UIProgressView</string>
<string>UIToolbar</string>
<string>UIWebView</string>
</object>
@ -738,6 +812,7 @@
<string>appDelegate</string>
<string>buttonNext</string>
<string>buttonPrevious</string>
<string>progressView</string>
<string>toolbar</string>
<string>webView</string>
</object>
@ -755,6 +830,10 @@
<string key="name">buttonPrevious</string>
<string key="candidateClassName">UIBarButtonItem</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">progressView</string>
<string key="candidateClassName">UIProgressView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">toolbar</string>
<string key="candidateClassName">UIToolbar</string>
@ -784,6 +863,6 @@
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">300</string>
<string key="IBCocoaTouchPluginVersion">534</string>
</data>
</archive>