From dc73ee639bc902b7ef93cfa86630fa4ada758397 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Sun, 3 Dec 2017 12:15:52 +0300 Subject: Thread View --- Juick/Main.storyboard | 142 +++++++------------------ Juick/ViewControllers/MessagesViewController.h | 3 +- Juick/ViewControllers/MessagesViewController.m | 31 ++++-- Juick/ViewControllers/ThreadViewController.h | 5 +- Juick/ViewControllers/ThreadViewController.m | 13 +-- Juick/Views/MessageCell.h | 4 +- Juick/Views/MessageCell.m | 10 +- Juick/Views/MessageCell.xib | 123 +++++++++++++++++++++ 8 files changed, 190 insertions(+), 141 deletions(-) create mode 100644 Juick/Views/MessageCell.xib (limited to 'Juick') diff --git a/Juick/Main.storyboard b/Juick/Main.storyboard index 201ee3a..600b5ea 100644 --- a/Juick/Main.storyboard +++ b/Juick/Main.storyboard @@ -1,11 +1,11 @@ - + - + @@ -31,6 +31,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -40,114 +69,15 @@ - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/Juick/ViewControllers/MessagesViewController.h b/Juick/ViewControllers/MessagesViewController.h index fc3545a..33b86b6 100644 --- a/Juick/ViewControllers/MessagesViewController.h +++ b/Juick/ViewControllers/MessagesViewController.h @@ -7,9 +7,8 @@ // #import -@import PHFComposeBarView; -@interface MessagesViewController : UITableViewController +@interface MessagesViewController : UITableViewController @property(nonatomic, strong) NSString *path; @property(nonatomic, strong) NSMutableDictionary *params; - (void) refreshData; diff --git a/Juick/ViewControllers/MessagesViewController.m b/Juick/ViewControllers/MessagesViewController.m index b91f056..5a1521d 100644 --- a/Juick/ViewControllers/MessagesViewController.m +++ b/Juick/ViewControllers/MessagesViewController.m @@ -69,16 +69,18 @@ self.dataLoading = NO; [self.view setBackgroundColor:[ColorScheme mainBackground]]; + [self.tableView registerNib:[UINib nibWithNibName:@"MessageCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"messageCell"]; self.tableView.rowHeight = UITableViewAutomaticDimension; self.tableView.estimatedRowHeight = 500.0f; self.messages = [NSMutableArray array]; - self.params = [NSMutableDictionary new]; self.refreshControl = [UIRefreshControl new]; [self.refreshControl addTarget:self action:@selector(refreshData) forControlEvents:UIControlEventValueChanged]; if ([User isAuthenticated]) { [User checkIsValid:^(BOOL success) { if (success) { - self.path = [APIClient feedUrl]; + if ([self.path length] == 0) { + self.path = [APIClient feedUrl]; + } [self refreshData]; } else { [User throwUnableToLogin:self]; @@ -86,7 +88,9 @@ }]; } else { - self.path = [APIClient messagesUrl]; + if ([self.path length] == 0) { + self.path = [APIClient messagesUrl]; + } [self refreshData]; } } @@ -111,14 +115,19 @@ return cell; } -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - if ([self.path isEqualToString:[APIClient threadUrl]]) - return; - Message *msg = [self.messages objectAtIndex:indexPath.row]; - ThreadViewController *threadViewController = [[ThreadViewController alloc] init]; - [threadViewController setPath:[APIClient threadUrl]]; - [threadViewController setParams:[NSMutableDictionary dictionaryWithObjectsAndKeys:msg.mid, @"mid", nil]]; - [self.navigationController pushViewController:threadViewController animated:NO]; +-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + NSString * cellIdentifier = @"messageCell"; + MessageCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath]; + [self performSegueWithIdentifier:@"threadViewSegue" sender:cell]; +} + +-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + if ([segue.identifier isEqual: @"threadViewSegue"]) { + Message *msg = [self.messages objectAtIndex:[self.tableView indexPathForSelectedRow].row]; + ThreadViewController *threadVC = (ThreadViewController *)segue.destinationViewController; + [threadVC setPath:[APIClient threadUrl]]; + [threadVC setParams:[NSMutableDictionary dictionaryWithObjectsAndKeys:msg.mid, @"mid", nil]]; + } } -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView_ { diff --git a/Juick/ViewControllers/ThreadViewController.h b/Juick/ViewControllers/ThreadViewController.h index 3f2b59c..484e2fb 100644 --- a/Juick/ViewControllers/ThreadViewController.h +++ b/Juick/ViewControllers/ThreadViewController.h @@ -7,9 +7,8 @@ // #import +#include "MessagesViewController.h" @import PHFComposeBarView; -@interface ThreadViewController : UITableViewController -@property(nonatomic, strong) NSString *path; -@property(nonatomic, strong) NSMutableDictionary *params; +@interface ThreadViewController : MessagesViewController @end diff --git a/Juick/ViewControllers/ThreadViewController.m b/Juick/ViewControllers/ThreadViewController.m index 2ee4af5..893765b 100644 --- a/Juick/ViewControllers/ThreadViewController.m +++ b/Juick/ViewControllers/ThreadViewController.m @@ -8,6 +8,7 @@ #import "ThreadViewController.h" #import "ColorScheme.h" +#import "MessageCell.h" @interface ThreadViewController () @@ -27,18 +28,6 @@ // self.navigationItem.rightBarButtonItem = self.editButtonItem; } -#pragma mark - Table view data source - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { -#warning Incomplete implementation, return the number of sections - return 0; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { -#warning Incomplete implementation, return the number of rows - return 0; -} - - (BOOL) canBecomeFirstResponder { return YES; diff --git a/Juick/Views/MessageCell.h b/Juick/Views/MessageCell.h index 92345d6..737ec89 100644 --- a/Juick/Views/MessageCell.h +++ b/Juick/Views/MessageCell.h @@ -2,8 +2,8 @@ // MessageCell.h // Juick // -// Created by Vitaly Takmazov on 14/08/16. -// Copyright © 2016 com.juick. All rights reserved. +// Created by Vitaly Takmazov on 03/12/2017. +// Copyright © 2017 com.juick. All rights reserved. // #import diff --git a/Juick/Views/MessageCell.m b/Juick/Views/MessageCell.m index 236b4a3..ca84053 100644 --- a/Juick/Views/MessageCell.m +++ b/Juick/Views/MessageCell.m @@ -2,11 +2,10 @@ // MessageCell.m // Juick // -// Created by Vitaly Takmazov on 14/08/16. -// Copyright © 2016 com.juick. All rights reserved. +// Created by Vitaly Takmazov on 03/12/2017. +// Copyright © 2017 com.juick. All rights reserved. // - #import "MessageCell.h" #import "ColorScheme.h" #import "UIImage+Utils.h" @@ -23,11 +22,11 @@ self.text.enabledTextCheckingTypes = NSTextCheckingTypeLink; self.text.delegate = self; self.text.linkAttributes = @{ (id)kCTForegroundColorAttributeName: [ColorScheme linkColor], - (id)kCTUnderlineStyleAttributeName : [NSNumber numberWithInt:NSUnderlineStyleSingle] }; + (id)kCTUnderlineStyleAttributeName : [NSNumber numberWithInt:NSUnderlineStyleSingle] }; self.title.textColor = [ColorScheme linkColor]; self.timestamp.textColor = [UIColor grayColor]; self.summary.textColor = [UIColor grayColor]; - self.tags.textFont = [UIFont preferredFontForTextStyle:UIFontTextStyleFootnote]; + self.tags.textFont = [UIFont preferredFontForTextStyle:UIFontTextStyleFootnote]; } - (void) configureWithMessage:(Message *)msg { @@ -69,4 +68,5 @@ [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil]; } + @end diff --git a/Juick/Views/MessageCell.xib b/Juick/Views/MessageCell.xib new file mode 100644 index 0000000..7a08ca9 --- /dev/null +++ b/Juick/Views/MessageCell.xib @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3