From a04f0db29cb280eb45888d3a56967cf9adc6214d Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Sun, 4 Mar 2018 11:50:14 +0300 Subject: ChatViewController --- Juick/ViewControllers/ChatViewController.m | 65 ++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Juick/ViewControllers/ChatViewController.m (limited to 'Juick/ViewControllers/ChatViewController.m') 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 -- cgit v1.2.3