mirror of
https://github.com/viq/NewsBlur.git
synced 2025-09-18 21:43:31 +00:00
Correctly calculating unread counts in iphone app.
This commit is contained in:
parent
793ae279b3
commit
87a7b051f5
5 changed files with 117 additions and 17 deletions
|
@ -68,6 +68,7 @@
|
|||
- (int)indexOfActiveStory;
|
||||
- (void)setStories:(NSArray *)activeFeedStoriesValue;
|
||||
- (void)addStories:(NSArray *)stories;
|
||||
- (int)unreadCount;
|
||||
- (void)markActiveStoryRead;
|
||||
- (void)markActiveFeedAllRead;
|
||||
+ (int)computeStoryScore:(NSDictionary *)intelligence;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Add table
Reference in a new issue