From 5d0e97b3c1a1910a036f455b67205bc5eece1c29 Mon Sep 17 00:00:00 2001
From: Vitaly Takmazov
Date: Sat, 3 Mar 2018 21:33:11 +0300
Subject: discussions
---
Juick/APIClient.h | 3 +++
Juick/APIClient.m | 7 +++++++
Juick/Helpers/ColorScheme.m | 4 ++--
Juick/Supporting Files/Juick-Info.plist | 2 +-
Juick/ViewControllers/DiscoverViewController.h | 2 +-
Juick/ViewControllers/DiscoverViewController.m | 23 +++++++++++++++++++++++
Juick/ViewControllers/MessagesViewController.h | 7 +++++++
Juick/ViewControllers/MessagesViewController.m | 9 +--------
Juick/Views/MessageCell.m | 6 ++----
9 files changed, 47 insertions(+), 16 deletions(-)
diff --git a/Juick/APIClient.h b/Juick/APIClient.h
index a20998a..b336c8c 100644
--- a/Juick/APIClient.h
+++ b/Juick/APIClient.h
@@ -12,6 +12,8 @@
@interface APIClient : NSObject
@property (nonatomic, retain) AFHTTPSessionManager *manager;
+@property (nonatomic, strong) NSDateFormatter *dateFormatter;
+
+(APIClient *) sharedClient;
-(void) pullNextFromPath:(NSString *)path params:(NSDictionary *)params callback:(void(^)(NSArray *, NSError *))callback;
@@ -21,5 +23,6 @@
+(NSString *) messagesUrl;
+(NSString *) threadUrl;
+(NSString *) feedUrl;
++(NSString *) discussionsUrl;
@end
diff --git a/Juick/APIClient.m b/Juick/APIClient.m
index ecaf536..3190659 100644
--- a/Juick/APIClient.m
+++ b/Juick/APIClient.m
@@ -29,6 +29,9 @@
self.manager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:@"https://api.juick.com"]];
self.manager.requestSerializer = [AFJSONRequestSerializer new];
self.backgroundQueue = [NSOperationQueue new];
+ self.dateFormatter = [[NSDateFormatter alloc] init];
+ self.dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
+ [self.dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
}
return self;
}
@@ -104,6 +107,10 @@
return @"/messages";
}
++(NSString *) discussionsUrl {
+ return @"/messages/discussions";
+}
+
+(NSString *) threadUrl {
return @"/thread";
}
diff --git a/Juick/Helpers/ColorScheme.m b/Juick/Helpers/ColorScheme.m
index 39e3971..69fe98f 100644
--- a/Juick/Helpers/ColorScheme.m
+++ b/Juick/Helpers/ColorScheme.m
@@ -25,11 +25,11 @@
}
+ (UIColor *) headerBackground {
- return [self colorWithHex:0xf2f2ec];
+ return [self colorWithHex:0xffffff];
}
+ (UIColor *) mainBackground {
- return [self colorWithHex:0xeaeadf];
+ return [self colorWithHex:0xf8f8f8];
}
+ (UIColor *) textColor {
return [self colorWithHex:0x222222];
diff --git a/Juick/Supporting Files/Juick-Info.plist b/Juick/Supporting Files/Juick-Info.plist
index 0ef24a1..f04104f 100644
--- a/Juick/Supporting Files/Juick-Info.plist
+++ b/Juick/Supporting Files/Juick-Info.plist
@@ -21,7 +21,7 @@
CFBundleSignature
????
CFBundleVersion
- 1.0.45
+ 46
ITSAppUsesNonExemptEncryption
LSApplicationCategoryType
diff --git a/Juick/ViewControllers/DiscoverViewController.h b/Juick/ViewControllers/DiscoverViewController.h
index 6bec23d..9f96b98 100644
--- a/Juick/ViewControllers/DiscoverViewController.h
+++ b/Juick/ViewControllers/DiscoverViewController.h
@@ -9,6 +9,6 @@
#import
#import "MessagesViewController.h"
-@interface DiscoverViewController : MessagesViewController
+@interface DiscoverViewController : MessagesViewController
@end
diff --git a/Juick/ViewControllers/DiscoverViewController.m b/Juick/ViewControllers/DiscoverViewController.m
index c027ea7..1b1a0a1 100644
--- a/Juick/ViewControllers/DiscoverViewController.m
+++ b/Juick/ViewControllers/DiscoverViewController.m
@@ -22,6 +22,7 @@ AppDelegate *appDelegate;
-(void) viewDidLoad {
[super viewDidLoad];
+ self.messagesDelegate = self;
if ([User isAuthenticated]) {
[User checkIsValid:^(BOOL success) {
if (success) {
@@ -91,7 +92,29 @@ AppDelegate *appDelegate;
[self.tableView reloadData];
[self refreshData:NO];
}]];
+ [filterAlert addAction:[UIAlertAction actionWithTitle:@"Discussions" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
+ [self setTitle:@"Discussions"];
+ self.path = [APIClient discussionsUrl];
+ self.params = nil;
+ [self.messages removeAllObjects];
+ [self.tableView reloadData];
+ [self refreshData:NO];
+ }]];
[self presentViewController:filterAlert animated:YES completion:nil];
}
+-(void) loadMore {
+ Message *lastMsg = [self.messages lastObject];
+ if (lastMsg != nil) {
+ if ([self.path isEqualToString:[APIClient discussionsUrl]]) {
+ NSDate *msgDate = [[APIClient sharedClient].dateFormatter dateFromString:lastMsg.timestamp];
+ self.params = [@{@"to" : [NSString stringWithFormat:@"%.0f", [msgDate timeIntervalSince1970] * 1000]} mutableCopy];
+ } else if (![self.path isEqualToString:[APIClient threadUrl]]) {
+ NSNumber *lastMid = lastMsg.mid;
+ self.params = [@{@"before_mid":lastMid} mutableCopy];
+ }
+ [self refreshData:NO];
+ }
+}
+
@end
diff --git a/Juick/ViewControllers/MessagesViewController.h b/Juick/ViewControllers/MessagesViewController.h
index 9f47b57..2259b91 100644
--- a/Juick/ViewControllers/MessagesViewController.h
+++ b/Juick/ViewControllers/MessagesViewController.h
@@ -8,6 +8,10 @@
#import
+@protocol MessagesDelegate
+-(void) loadMore;
+@end
+
@interface MessagesViewController : UITableViewController
@property(nonatomic, strong) NSString *path;
@property(nonatomic, strong) NSDictionary *params;
@@ -16,4 +20,7 @@
@property(nonatomic, strong) NSMutableArray *messages;
@property(nonatomic, assign) Boolean dataLoading;
+@property(nonatomic, weak) id messagesDelegate;
@end
+
+
diff --git a/Juick/ViewControllers/MessagesViewController.m b/Juick/ViewControllers/MessagesViewController.m
index de79164..c718336 100644
--- a/Juick/ViewControllers/MessagesViewController.m
+++ b/Juick/ViewControllers/MessagesViewController.m
@@ -103,14 +103,7 @@
CGFloat actualPosition = scrollView_.contentOffset.y;
CGFloat contentHeight = scrollView_.contentSize.height - scrollView_.contentSize.height / 2;
if (actualPosition >= contentHeight && !self.dataLoading && ![self.tableView isTracking]) {
- Message *lastMsg = [self.messages lastObject];
- if (lastMsg != nil) {
- NSNumber *lastMid = lastMsg.mid;
- if (![self.path isEqualToString:[APIClient threadUrl]]) {
- self.params = [@{@"before_mid":lastMid} mutableCopy];
- }
- [self refreshData:NO];
- }
+ [_messagesDelegate loadMore];
}
}
diff --git a/Juick/Views/MessageCell.m b/Juick/Views/MessageCell.m
index ca84053..2f00d7e 100644
--- a/Juick/Views/MessageCell.m
+++ b/Juick/Views/MessageCell.m
@@ -9,6 +9,7 @@
#import "MessageCell.h"
#import "ColorScheme.h"
#import "UIImage+Utils.h"
+#import "APIClient.h"
@import DateTools;
@import MWFeedParser;
@@ -40,11 +41,8 @@
self.attach.image = nil;
}
self.title.text = msg.user.uname;
- NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
- formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
- [formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
- self.timestamp.text = [[formatter dateFromString:msg.timestamp] timeAgoSinceNow];
+ self.timestamp.text = [[[APIClient sharedClient].dateFormatter dateFromString:msg.timestamp] timeAgoSinceNow];
NSUInteger count = [msg.repliesCount unsignedIntegerValue];
if (count > 0) {
if ([msg.repliesBy length] > 0) {
--
cgit v1.2.3