@ -14,7 +14,7 @@
#pragma mark - Initialzation
#pragma mark - Initialzation
- ( instancetype ) initWithCallerId : ( NSString * ) senderId
- ( instancetype ) initWithCallerId : ( NSString * ) senderId
callerDisplayName : ( NSString * ) senderDisplayName
callerDisplayName : ( NSString * ) senderDisplayName
date : ( NSDate * ) date
date : ( NSDate * ) date
status : ( CallStatus ) status
status : ( CallStatus ) status
@ -31,25 +31,28 @@
_status = status ;
_status = status ;
_messageType = TSCallAdapter ;
_messageType = TSCallAdapter ;
_detailString = [ detailString stringByAppendingFormat : @ " "] ;
_detailString = [ detailString stringByAppendingFormat : @ " "] ;
}
}
return self ;
return self ;
}
}
- ( id ) init
- ( id ) init
{
{
NSAssert ( NO , @ "%s is not a valid initializer for %@. Use %@ instead", __PRETTY_FUNCTION__, [self class], NSStringFromSelector(@selector(initWithCallerId:callerDisplayName:date:status:displayString:)));
NSAssert ( NO ,
@ "%s is not a valid initializer for %@. Use %@ instead",
__PRETTY_FUNCTION__ ,
[ self class ] ,
NSStringFromSelector ( @ selector ( initWithCallerId : callerDisplayName : date : status : displayString : ) ) ) ;
return nil ;
return nil ;
}
}
- ( void ) dealloc
- ( void ) dealloc
{
{
_senderId = nil ;
_senderId = nil ;
_senderDisplayName = nil ;
_senderDisplayName = nil ;
_date = nil ;
_date = nil ;
}
}
- ( NSString * ) dateText
- ( NSString * ) dateText
{
{
NSDateFormatter * dateFormatter = [ [ NSDateFormatter alloc ] init ] ;
NSDateFormatter * dateFormatter = [ [ NSDateFormatter alloc ] init ] ;
dateFormatter . timeStyle = NSDateFormatterShortStyle ;
dateFormatter . timeStyle = NSDateFormatterShortStyle ;
@ -58,9 +61,10 @@
return [ dateFormatter stringFromDate : _date ] ;
return [ dateFormatter stringFromDate : _date ] ;
}
}
- ( UIImage * ) thumbnailImage {
- ( UIImage * ) thumbnailImage
{
/ / This relies on those assets being in the project
/ / This relies on those assets being in the project
if ( !_useThumbnail ) {
if ( !_useThumbnail ) {
return nil ;
return nil ;
}
}
switch ( _status ) {
switch ( _status ) {
@ -86,49 +90,47 @@
}
}
}
}
#pragma mark - NSObject
#pragma mark - NSObject
- ( BOOL ) isEqual : ( id ) object
- ( BOOL ) isEqual : ( id ) object
{
{
if ( self == object ) {
if ( self == object ) {
return YES ;
return YES ;
}
}
if ( ![ object isKindOfClass : [ self class ] ] )
if ( ![ object isKindOfClass : [ self class ] ] ) {
{
return NO ;
return NO ;
}
}
JSQCall * aCall = ( JSQCall * ) object ;
JSQCall * aCall = ( JSQCall * ) object ;
return [ self . senderId isEqualToString : aCall . senderId ]
return [ self . senderId isEqualToString : aCall . senderId ] &&
&& [ self . senderDisplayName isEqualToString : aCall . senderDisplayName ]
[ self . senderDisplayName isEqualToString : aCall . senderDisplayName ]
&& ( [ self . date compare : aCall . date ] == NSOrderedSame )
&& ( [ self . date compare : aCall . date ] == NSOrderedSame ) && self . status == aCall . status ;
&& self . status == aCall . status ;
}
}
- ( NSUInteger ) hash
- ( NSUInteger ) hash
{
{
return self . senderId . hash ^ self . date . hash ;
return self . senderId . hash ^ self . date . hash ;
}
}
- ( NSString * ) description
- ( NSString * ) description
{
{
return [ NSString stringWithFormat : @ "< %@: senderId=%@, senderDisplayName=%@, date=%@>",
return [ NSString stringWithFormat : @ "< %@: senderId=%@, senderDisplayName=%@, date=%@>",
[ self class ] , self . senderId , self . senderDisplayName , self . date ] ;
[ self class ] ,
self . senderId ,
self . senderDisplayName ,
self . date ] ;
}
}
#pragma mark - JSQMessageData
#pragma mark - JSQMessageData
/ / TODO I ' m not sure this is right . It affects bubble rendering .
/ / TODO I ' m not sure this is right . It affects bubble rendering .
- ( BOOL ) isMediaMessage {
- ( BOOL ) isMediaMessage
{
return NO ;
return NO ;
}
}
#pragma mark - NSCoding
#pragma mark - NSCoding
- ( instancetype ) initWithCoder : ( NSCoder * ) aDecoder
- ( instancetype ) initWithCoder : ( NSCoder * ) aDecoder
{
{
self = [ super init ] ;
self = [ super init ] ;
if ( self ) {
if ( self ) {
@ -150,21 +152,21 @@
#pragma mark - NSCopying
#pragma mark - NSCopying
- ( instancetype ) copyWithZone : ( NSZone * ) zone
- ( instancetype ) copyWithZone : ( NSZone * ) zone
{
{
return [ [ [ self class ] allocWithZone : zone ] initWithCallerId : self . senderId
return [ [ [ self class ] allocWithZone : zone ] initWithCallerId : self . senderId
callerDisplayName : self . senderDisplayName
callerDisplayName : self . senderDisplayName
date : self . date
date : self . date
status : self . status
status : self . status
displayString : self . detailString ] ;
displayString : self . detailString ] ;
}
}
- ( NSUInteger ) messageHash {
- ( NSUInteger ) messageHash
{
return self . hash ;
return self . hash ;
}
}
- ( NSString * ) text
- ( NSString * ) text {
{
return _detailString ;
return _detailString ;
}
}
@ end
@ end