diff options
author | Vitaly Takmazov | 2018-03-04 11:50:14 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2018-03-04 11:50:22 +0300 |
commit | a04f0db29cb280eb45888d3a56967cf9adc6214d (patch) | |
tree | b1625107b75a906b7b402296b3a93ca11a578633 /Juick/ViewControllers/ChatViewController.m | |
parent | 782219f3cdc8cac644cc33657813a5f8319dbae7 (diff) |
ChatViewController
Diffstat (limited to 'Juick/ViewControllers/ChatViewController.m')
-rw-r--r-- | Juick/ViewControllers/ChatViewController.m | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/Juick/ViewControllers/ChatViewController.m b/Juick/ViewControllers/ChatViewController.m new file mode 100644 index 0000000..f88bfa5 --- /dev/null +++ b/Juick/ViewControllers/ChatViewController.m @@ -0,0 +1,65 @@ +// +// ChatViewController.m +// Juick +// +// Created by Vitaly Takmazov on 04/03/2018. +// Copyright © 2018 com.juick. All rights reserved. +// + +#import "ChatViewController.h" +#import "BubbleMessageCell.h" +#import "APIClient.h" + +@interface ChatViewController () + +@end + +@implementation ChatViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + [self.tableView registerNib:[UINib nibWithNibName:@"BubbleMessageCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"bubbleMessageCell"]; + self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + self.tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive; + self.tableView.allowsSelection = NO; + self.messages = [NSMutableArray array]; + [[APIClient sharedClient] fetchChatWithUser:self.uname callback:^(NSArray *messages, NSError *err) { + if (err == nil) { + [self.messages addObjectsFromArray:[[messages reverseObjectEnumerator] allObjects]]; + NSMutableArray *indexPaths = [NSMutableArray new]; + for (NSUInteger index = 0; index < [messages count]; index++) { + [indexPaths addObject:[NSIndexPath indexPathForRow:index inSection: 0]]; + } + [self.tableView beginUpdates]; + [self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:YES]; + [self.tableView endUpdates]; + [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:[self.messages count]-1 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:NO]; + } + }]; +} + +- (void)didReceiveMemoryWarning { + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +#pragma mark - Table view data source + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return [self.messages count]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + BubbleMessageCell *cell = [tableView dequeueReusableCellWithIdentifier:@"bubbleMessageCell" forIndexPath:indexPath]; + + [cell configureWithMessage:[self.messages objectAtIndex:indexPath.row]]; + + return cell; +} + +@end |