Skip to content

Commit

Permalink
支持点击文章点击后记录已看,显示已看的效果
Browse files Browse the repository at this point in the history
  • Loading branch information
daiming committed Aug 24, 2016
1 parent 8c18116 commit 912d27d
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 2 deletions.
3 changes: 2 additions & 1 deletion GCDFetchFeed/GCDFetchFeed/SMDB.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,6 @@
- (RACSignal *)insertWithFeedModel:(SMFeedModel *)feedModel; //插入feed内容
- (RACSignal *)selectAllFeeds; //读取所有feeds
- (RACSignal *)selectFeedItemsWithPage:(NSUInteger)page fid:(NSUInteger)fid;

- (RACSignal *)markFeedItemAsRead:(NSUInteger)iid;
- (RACSignal *)markFeedAllItemsAsRead:(NSUInteger)fid;
@end
31 changes: 31 additions & 0 deletions GCDFetchFeed/GCDFetchFeed/SMDB.m
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,37 @@ - (RACSignal *)selectFeedItemsWithPage:(NSUInteger)page fid:(NSUInteger)fid {
return nil;
}];
}
//标注已读
- (RACSignal *)markFeedItemAsRead:(NSUInteger)iid {
@weakify(self);
return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
@strongify(self);
FMDatabase *db = [FMDatabase databaseWithPath:self.feedDBPath];
if ([db open]) {
[db executeUpdate:@"update feeditem set isread = ? where iid = ?", @(1), @(iid)];
[subscriber sendNext:nil];
[subscriber sendCompleted];
[db close];
}
return nil;
}];
}

//标注全部已读
- (RACSignal *)markFeedAllItemsAsRead:(NSUInteger)fid {
@weakify(self);
return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
@strongify(self);
FMDatabase *db = [FMDatabase databaseWithPath:self.feedDBPath];
if ([db open]) {
[db executeUpdate:@"update feeditem set isread = ? where fid = ?", @(1), @(fid)];
[subscriber sendNext:nil];
[subscriber sendCompleted];
[db close];
}
return nil;
}];
}



Expand Down
5 changes: 5 additions & 0 deletions GCDFetchFeed/GCDFetchFeed/SMFeedListCell.m
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,11 @@ - (void)buildUI {
- (void)updateWithViewModel:(SMFeedListCellViewModel *)viewModel {
self.titleLabel.text = viewModel.titleString;
self.contentLabel.text = viewModel.contentString;
if (viewModel.itemModel.isRead > 0) {
self.titleLabel.textColor = [SMStyle colorGrayLight];
} else {
self.titleLabel.textColor = [SMStyle colorGrayDark];
}
self.itemModel = viewModel.itemModel;
}

Expand Down
14 changes: 13 additions & 1 deletion GCDFetchFeed/GCDFetchFeed/SMFeedListViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,18 @@ - (void)selectFeedItems {
#pragma mark - Delegate
#pragma mark - SMFeedListCell Delegate
- (void)smFeedListCellView:(SMFeedListCell *)cell clickWithItemModel:(SMFeedItemModel *)itemModel {
RACScheduler *scheduler = [RACScheduler schedulerWithPriority:RACSchedulerPriorityBackground];
@weakify(self);
[[[[[SMDB shareInstance] markFeedItemAsRead:itemModel.iid] subscribeOn:scheduler] deliverOn:[RACScheduler mainThreadScheduler]] subscribeNext:^(id x) {
@strongify(self);
if (itemModel.isRead > 0) {
//
} else {
itemModel.isRead = 1;
[self.tableView reloadData];
self.feedModel.unReadCount -= 1;
}
}];
SMArticleViewController *articleVC = [[SMArticleViewController alloc] initWithFeedModel:itemModel];
[self.navigationController pushViewController:articleVC animated:YES];
}
Expand Down Expand Up @@ -123,7 +135,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N
viewModel.titleString = itemModel.title;
NSDate *date = [NSDate dateFromInternetDateTimeString:itemModel.pubDate formatHint:DateFormatHintRFC822];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM-dd HH点"];
[dateFormatter setDateFormat:@"MM-dd HH:mm"];
NSString *authorString = @"";
if (itemModel.author.length > 0) {
authorString = itemModel.author;
Expand Down
4 changes: 4 additions & 0 deletions GCDFetchFeed/GCDFetchFeed/SMRootViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ - (instancetype)init {
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.tableView reloadData];
}
- (void)viewDidLoad {
[super viewDidLoad];
//Notification
Expand Down
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,13 @@
* FMDB本地存储 feed
* Atom解析
* 阅读原文
* feed列表的样式调整
* 首页fetch中的效果
* 支持点击文章点击后记录已看,显示已看的效果

#Todo List:
* 支持标记全部已读
* 支持系统分享
* 详细页添加一个图片一张张下载的百分比进度条。
* 首页提供一个fetch中的进度条。
* 判断4g和wifi环境,wifi下可串行下载离线浏览图片
Expand Down

0 comments on commit 912d27d

Please sign in to comment.