|
|
@ -8,10 +8,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
#import "InboxTableViewCell.h"
|
|
|
|
#import "InboxTableViewCell.h"
|
|
|
|
#import "Util.h"
|
|
|
|
#import "Util.h"
|
|
|
|
|
|
|
|
#import "UIImage+JSQMessages.h"
|
|
|
|
|
|
|
|
|
|
|
|
#define ARCHIVE_IMAGE_VIEW_WIDTH 22.0f
|
|
|
|
#define ARCHIVE_IMAGE_VIEW_WIDTH 22.0f
|
|
|
|
#define DELETE_IMAGE_VIEW_WIDTH 19.0f
|
|
|
|
#define DELETE_IMAGE_VIEW_WIDTH 19.0f
|
|
|
|
#define TIME_LABEL_SIZE 10
|
|
|
|
#define TIME_LABEL_SIZE 11
|
|
|
|
#define DATE_LABEL_SIZE 13
|
|
|
|
#define DATE_LABEL_SIZE 13
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -28,10 +29,11 @@
|
|
|
|
CGRectGetHeight(_scrollView.frame));
|
|
|
|
CGRectGetHeight(_scrollView.frame));
|
|
|
|
|
|
|
|
|
|
|
|
[UIUtil applyRoundedBorderToImageView:&_contactPictureView];
|
|
|
|
[UIUtil applyRoundedBorderToImageView:&_contactPictureView];
|
|
|
|
|
|
|
|
|
|
|
|
_scrollView.contentOffset = CGPointMake(CGRectGetWidth(_archiveView.frame), 0);
|
|
|
|
_scrollView.contentOffset = CGPointMake(CGRectGetWidth(_archiveView.frame), 0);
|
|
|
|
_deleteImageView.image = [_deleteImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
|
|
|
|
_deleteImageView.image = [_deleteImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
|
|
|
|
_archiveImageView.image = [_archiveImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
|
|
|
|
_archiveImageView.image = [_archiveImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
|
|
|
|
|
|
|
|
_lastActionImageView.image = [_lastActionImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return self;
|
|
|
|
return self;
|
|
|
@ -55,10 +57,9 @@
|
|
|
|
{
|
|
|
|
{
|
|
|
|
switch (state) {
|
|
|
|
switch (state) {
|
|
|
|
case kArchiveState:
|
|
|
|
case kArchiveState:
|
|
|
|
_scrollView.userInteractionEnabled=NO;
|
|
|
|
_archiveImageView.image = [[UIImage imageNamed:@"reply"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case kInboxState:
|
|
|
|
case kInboxState:
|
|
|
|
_scrollView.userInteractionEnabled=YES;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
default:
|
|
|
@ -101,15 +102,41 @@
|
|
|
|
case TSLastActionMessageDelivered:
|
|
|
|
case TSLastActionMessageDelivered:
|
|
|
|
_lastActionImageView.image = [UIImage imageNamed:@"checkmark_light"];
|
|
|
|
_lastActionImageView.image = [UIImage imageNamed:@"checkmark_light"];
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case TSLastActionMessageIncoming:
|
|
|
|
case TSLastActionMessageIncomingRead:
|
|
|
|
|
|
|
|
_lastActionImageView.image = nil;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case TSLastActionMessageIncomingUnread:
|
|
|
|
|
|
|
|
[self updateCellForUnreadMessage];
|
|
|
|
_lastActionImageView.image = nil;
|
|
|
|
_lastActionImageView.image = nil;
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case TSLastActionInfoMessage:
|
|
|
|
|
|
|
|
_lastActionImageView.image = [UIImage imageNamed:@"warning_white"];
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case TSLastActionErrorMessage:
|
|
|
|
|
|
|
|
_lastActionImageView.image = [UIImage imageNamed:@"error_white"];
|
|
|
|
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
default:
|
|
|
|
_lastActionImageView.image = nil;
|
|
|
|
_lastActionImageView.image = nil;
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-(void)updateCellForUnreadMessage
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_nameLabel.font = [UIFont ows_mediumFontWithSize:17.0f];
|
|
|
|
|
|
|
|
_snippetLabel.textColor = [UIColor blackColor];
|
|
|
|
|
|
|
|
_timeLabel.textColor = [UIColor ows_blueColor];
|
|
|
|
|
|
|
|
[_contactPictureView.layer setBorderWidth:1.0f];
|
|
|
|
|
|
|
|
[_contactPictureView.layer setBorderColor:[[UIColor ows_blueColor] CGColor]];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-(void)updateCellForReadMessage
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_nameLabel.font = [UIFont ows_lightFontWithSize:17.0f];
|
|
|
|
|
|
|
|
_snippetLabel.textColor = [UIColor lightGrayColor];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#pragma mark - Date formatting
|
|
|
|
#pragma mark - Date formatting
|
|
|
|
|
|
|
|
|
|
|
|
- (NSAttributedString *)dateAttributedString:(NSDate *)date {
|
|
|
|
- (NSAttributedString *)dateAttributedString:(NSDate *)date {
|
|
|
@ -137,31 +164,32 @@
|
|
|
|
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
|
|
|
|
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
|
|
|
|
|
|
|
|
|
|
|
|
if (_scrollView.contentOffset.x < 0) {
|
|
|
|
if (_scrollView.contentOffset.x < 0) {
|
|
|
|
_archiveImageView.image = [UIImage imageNamed:@"blue-archive"];
|
|
|
|
_archiveImageView.image = [_archiveImageView.image jsq_imageMaskedWithColor:[UIColor ows_blueColor]];
|
|
|
|
_archiveImageView.bounds = CGRectMake(_archiveImageView.bounds.origin.x,
|
|
|
|
_archiveImageView.bounds = CGRectMake(_archiveImageView.bounds.origin.x,
|
|
|
|
_archiveImageView.bounds.origin.y,
|
|
|
|
_archiveImageView.bounds.origin.y,
|
|
|
|
ARCHIVE_IMAGE_VIEW_WIDTH,
|
|
|
|
ARCHIVE_IMAGE_VIEW_WIDTH,
|
|
|
|
_archiveImageView.bounds.size.height);
|
|
|
|
_archiveImageView.bounds.size.height);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_archiveImageView.image = [_archiveImageView.image jsq_imageMaskedWithColor:[UIColor ows_darkGrayColor]];
|
|
|
|
double ratio = (_archiveView.frame.size.width/2.0f - _scrollView.contentOffset.x) / (_archiveView.frame.size.width/2.0f);
|
|
|
|
double ratio = (_archiveView.frame.size.width/2.0f - _scrollView.contentOffset.x) / (_archiveView.frame.size.width/2.0f);
|
|
|
|
double newWidth = ARCHIVE_IMAGE_VIEW_WIDTH/2.0f + (ARCHIVE_IMAGE_VIEW_WIDTH * ratio)/2.0f;
|
|
|
|
double newWidth = ARCHIVE_IMAGE_VIEW_WIDTH/2.0f + (ARCHIVE_IMAGE_VIEW_WIDTH * ratio)/2.0f;
|
|
|
|
_archiveImageView.bounds = CGRectMake(_archiveImageView.bounds.origin.x,
|
|
|
|
_archiveImageView.bounds = CGRectMake(_archiveImageView.bounds.origin.x,
|
|
|
|
_archiveImageView.bounds.origin.y,
|
|
|
|
_archiveImageView.bounds.origin.y,
|
|
|
|
(CGFloat)newWidth,
|
|
|
|
(CGFloat)newWidth,
|
|
|
|
_archiveImageView.bounds.size.height);
|
|
|
|
_archiveImageView.bounds.size.height);
|
|
|
|
_archiveImageView.tintColor = UIColor.whiteColor;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (scrollView.contentOffset.x > CGRectGetWidth(_archiveView.frame)*2) {
|
|
|
|
if (scrollView.contentOffset.x > CGRectGetWidth(_archiveView.frame)*2) {
|
|
|
|
_deleteImageView.image = [UIImage imageNamed:@"red-delete"];
|
|
|
|
_deleteImageView.image = [_deleteImageView.image jsq_imageMaskedWithColor:[UIColor ows_redColor]];
|
|
|
|
_deleteImageView.bounds = CGRectMake(_deleteImageView.bounds.origin.x,
|
|
|
|
_deleteImageView.bounds = CGRectMake(_deleteImageView.bounds.origin.x,
|
|
|
|
_deleteImageView.bounds.origin.y,
|
|
|
|
_deleteImageView.bounds.origin.y,
|
|
|
|
DELETE_IMAGE_VIEW_WIDTH,
|
|
|
|
DELETE_IMAGE_VIEW_WIDTH,
|
|
|
|
_deleteImageView.bounds.size.height);
|
|
|
|
_deleteImageView.bounds.size.height);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_deleteImageView.image = [_deleteImageView.image jsq_imageMaskedWithColor:[UIColor ows_darkGrayColor]];
|
|
|
|
double ratio = _scrollView.contentOffset.x / (CGRectGetWidth(_deleteView.frame)*2);
|
|
|
|
double ratio = _scrollView.contentOffset.x / (CGRectGetWidth(_deleteView.frame)*2);
|
|
|
|
double newWidth = DELETE_IMAGE_VIEW_WIDTH/2.0f + (DELETE_IMAGE_VIEW_WIDTH * ratio)/2.0f;
|
|
|
|
double newWidth = DELETE_IMAGE_VIEW_WIDTH/2.0f + (DELETE_IMAGE_VIEW_WIDTH * ratio)/2.0f;
|
|
|
|
|
|
|
|
|
|
|
@ -169,7 +197,6 @@
|
|
|
|
_deleteImageView.bounds.origin.y,
|
|
|
|
_deleteImageView.bounds.origin.y,
|
|
|
|
(CGFloat)newWidth,
|
|
|
|
(CGFloat)newWidth,
|
|
|
|
_deleteImageView.bounds.size.height);
|
|
|
|
_deleteImageView.bounds.size.height);
|
|
|
|
_deleteImageView.tintColor = UIColor.whiteColor;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|