JSQDisplayedMessage: Model + JSQInfoMessage: Model
This commit is contained in:
parent
b22b7a4caf
commit
e70cec697f
@ -105,6 +105,8 @@
|
||||
FC15B7B11A1F6AC800F59801 /* JSQMessagesCollectionViewCellOutgoing.xib in Resources */ = {isa = PBXBuildFile; fileRef = FC15B7AF1A1F6AC800F59801 /* JSQMessagesCollectionViewCellOutgoing.xib */; };
|
||||
FC4FA03A1A1E1BD100DA100A /* JSQCall.m in Sources */ = {isa = PBXBuildFile; fileRef = FC4FA0391A1E1BD100DA100A /* JSQCall.m */; };
|
||||
FC4FA03D1A1E81AF00DA100A /* JSQCallCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = FC4FA03C1A1E81AF00DA100A /* JSQCallCollectionViewCell.m */; };
|
||||
FCFA5E131A29FC1000C8E32E /* JSQDisplayedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = FCFA5E121A29FC1000C8E32E /* JSQDisplayedMessage.m */; };
|
||||
FCFA5E161A29FE3B00C8E32E /* JSQInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = FCFA5E151A29FE3B00C8E32E /* JSQInfoMessage.m */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
@ -280,6 +282,10 @@
|
||||
FC4FA03B1A1E81AF00DA100A /* JSQCallCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSQCallCollectionViewCell.h; sourceTree = "<group>"; };
|
||||
FC4FA03C1A1E81AF00DA100A /* JSQCallCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JSQCallCollectionViewCell.m; sourceTree = "<group>"; };
|
||||
FC5C727E4CCDA2B95A7BA30C /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
FCFA5E111A29FC1000C8E32E /* JSQDisplayedMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSQDisplayedMessage.h; sourceTree = "<group>"; };
|
||||
FCFA5E121A29FC1000C8E32E /* JSQDisplayedMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JSQDisplayedMessage.m; sourceTree = "<group>"; };
|
||||
FCFA5E141A29FE3B00C8E32E /* JSQInfoMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSQInfoMessage.h; sourceTree = "<group>"; };
|
||||
FCFA5E151A29FE3B00C8E32E /* JSQInfoMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JSQInfoMessage.m; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@ -528,6 +534,10 @@
|
||||
886C33FC19F4371E006B4997 /* JSQVideoMediaItem.m */,
|
||||
FC4FA0381A1E1BD100DA100A /* JSQCall.h */,
|
||||
FC4FA0391A1E1BD100DA100A /* JSQCall.m */,
|
||||
FCFA5E111A29FC1000C8E32E /* JSQDisplayedMessage.h */,
|
||||
FCFA5E121A29FC1000C8E32E /* JSQDisplayedMessage.m */,
|
||||
FCFA5E141A29FE3B00C8E32E /* JSQInfoMessage.h */,
|
||||
FCFA5E151A29FE3B00C8E32E /* JSQInfoMessage.m */,
|
||||
);
|
||||
path = Model;
|
||||
sourceTree = "<group>";
|
||||
@ -837,6 +847,7 @@
|
||||
8885734D19DE55D000E89D20 /* NSUserDefaults+DemoSettings.m in Sources */,
|
||||
883C11781A09FB100092A16D /* JSQMessagesCellTextView.m in Sources */,
|
||||
88A25FB919D8E01A00924534 /* UIView+JSQMessages.m in Sources */,
|
||||
FCFA5E131A29FC1000C8E32E /* JSQDisplayedMessage.m in Sources */,
|
||||
88A25FCA19D8E01A00924534 /* JSQMessagesCollectionView.m in Sources */,
|
||||
88A25FD219D8E01A00924534 /* JSQMessagesLabel.m in Sources */,
|
||||
88445B4019E1B4470014F889 /* JSQLocationMediaItem.m in Sources */,
|
||||
@ -866,6 +877,7 @@
|
||||
88A25FB719D8E01A00924534 /* UIColor+JSQMessages.m in Sources */,
|
||||
886C33FD19F4371E006B4997 /* JSQVideoMediaItem.m in Sources */,
|
||||
88A25FBA19D8E01A00924534 /* JSQMessagesKeyboardController.m in Sources */,
|
||||
FCFA5E161A29FE3B00C8E32E /* JSQInfoMessage.m in Sources */,
|
||||
88A25FC019D8E01A00924534 /* JSQMessagesToolbarButtonFactory.m in Sources */,
|
||||
88A25FC219D8E01A00924534 /* JSQMessagesCollectionViewFlowLayoutInvalidationContext.m in Sources */,
|
||||
88A25FE119D8E0C400924534 /* TableViewController.m in Sources */,
|
||||
|
||||
44
JSQMessagesViewController/Model/JSQDisplayedMessage.h
Normal file
44
JSQMessagesViewController/Model/JSQDisplayedMessage.h
Normal file
@ -0,0 +1,44 @@
|
||||
//
|
||||
// JSQDisplayedMessage.h
|
||||
// JSQMessages
|
||||
//
|
||||
// Created by Dylan Bourgeois on 29/11/14.
|
||||
// Copyright (c) 2014 Hexed Bits. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "JSQMessageData.h"
|
||||
|
||||
/* JSQDisplayed message is the parent class for displaying information to the user
|
||||
* from within the conversation view. Do not use directly :
|
||||
*
|
||||
* @see JSQInfoMessage
|
||||
* @see JSQErrorMessage
|
||||
*
|
||||
*/
|
||||
|
||||
@interface JSQDisplayedMessage : NSObject <JSQMessageData>
|
||||
|
||||
/*
|
||||
* Returns the unique identifier of the person affected by the displayed message
|
||||
*/
|
||||
@property (copy, nonatomic, readonly) NSString *senderId;
|
||||
|
||||
|
||||
/*
|
||||
* Returns the name of the person affected by the displayed message
|
||||
*/
|
||||
@property (copy, nonatomic, readonly) NSString *senderDisplayName;
|
||||
|
||||
/*
|
||||
* Returns date of the displayed message
|
||||
*/
|
||||
@property (copy, nonatomic, readonly) NSDate *date;
|
||||
|
||||
#pragma mark - Initializer
|
||||
|
||||
-(instancetype)initWithSenderId:(NSString*)senderId
|
||||
senderDisplayName:(NSString*)senderDisplayName
|
||||
date:(NSDate*)date;
|
||||
|
||||
@end
|
||||
35
JSQMessagesViewController/Model/JSQDisplayedMessage.m
Normal file
35
JSQMessagesViewController/Model/JSQDisplayedMessage.m
Normal file
@ -0,0 +1,35 @@
|
||||
//
|
||||
// JSQDisplayedMessage.m
|
||||
// JSQMessages
|
||||
//
|
||||
// Created by Dylan Bourgeois on 29/11/14.
|
||||
// Copyright (c) 2014 Hexed Bits. All rights reserved.
|
||||
//
|
||||
|
||||
#import "JSQDisplayedMessage.h"
|
||||
|
||||
@implementation JSQDisplayedMessage
|
||||
|
||||
-(id)init
|
||||
{
|
||||
NSAssert(NO,@"%s is not a valid initializer for %@. Use %@ instead", __PRETTY_FUNCTION__, [self class], NSStringFromSelector(@selector(initWithSenderId:senderDisplayName:date:)));
|
||||
return nil;
|
||||
}
|
||||
|
||||
-(instancetype)initWithSenderId:(NSString*)senderId
|
||||
senderDisplayName:(NSString*)senderDisplayName
|
||||
date:(NSDate*)date
|
||||
{
|
||||
self = [super init];
|
||||
|
||||
if (self) {
|
||||
_senderId = [senderId copy];
|
||||
_senderDisplayName = [senderDisplayName copy];
|
||||
_date = [date copy];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
28
JSQMessagesViewController/Model/JSQInfoMessage.h
Normal file
28
JSQMessagesViewController/Model/JSQInfoMessage.h
Normal file
@ -0,0 +1,28 @@
|
||||
//
|
||||
// JSQInfoMessage.h
|
||||
// JSQMessages
|
||||
//
|
||||
// Created by Dylan Bourgeois on 29/11/14.
|
||||
// Copyright (c) 2014 Hexed Bits. All rights reserved.
|
||||
//
|
||||
|
||||
#import "JSQDisplayedMessage.h"
|
||||
|
||||
typedef NS_ENUM(NSInteger, JSQInfoMessageType){
|
||||
InfoMessageTypeSessionDidEnd,
|
||||
};
|
||||
|
||||
@interface JSQInfoMessage : JSQDisplayedMessage
|
||||
|
||||
@property (nonatomic) JSQInfoMessageType infoMessageType;
|
||||
|
||||
#pragma mark - Initialization
|
||||
|
||||
- (instancetype)initWithType:(JSQInfoMessageType)messageType
|
||||
senderId:(NSString*)senderId
|
||||
senderDisplayName:(NSString*)senderDisplayName
|
||||
date:(NSDate*)date;
|
||||
|
||||
- (NSString*)text;
|
||||
|
||||
@end
|
||||
53
JSQMessagesViewController/Model/JSQInfoMessage.m
Normal file
53
JSQMessagesViewController/Model/JSQInfoMessage.m
Normal file
@ -0,0 +1,53 @@
|
||||
//
|
||||
// JSQInfoMessage.m
|
||||
// JSQMessages
|
||||
//
|
||||
// Created by Dylan Bourgeois on 29/11/14.
|
||||
// Copyright (c) 2014 Hexed Bits. All rights reserved.
|
||||
//
|
||||
|
||||
#import "JSQInfoMessage.h"
|
||||
|
||||
@implementation JSQInfoMessage
|
||||
|
||||
- (instancetype)initWithType:(JSQInfoMessageType)messageType
|
||||
senderId:(NSString *)senderId
|
||||
senderDisplayName:(NSString *)senderDisplayName
|
||||
date:(NSDate *)date
|
||||
{
|
||||
//@discussion: NSParameterAssert() ?
|
||||
|
||||
self = [super initWithSenderId:senderId senderDisplayName:senderDisplayName date:date];
|
||||
|
||||
if (self) {
|
||||
_infoMessageType = messageType;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
-(NSString*)text
|
||||
{
|
||||
switch (self.infoMessageType) {
|
||||
case InfoMessageTypeSessionDidEnd:
|
||||
return [NSString stringWithFormat:@"Session with %@ ended.", self.senderDisplayName];
|
||||
break;
|
||||
|
||||
default:
|
||||
return nil;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
-(NSUInteger)hash
|
||||
{
|
||||
return self.senderId.hash ^ self.date.hash;
|
||||
}
|
||||
|
||||
-(NSString*)description
|
||||
{
|
||||
return [NSString stringWithFormat:@"<%@: senderId=%@, senderDisplayName=%@, date=%@, type=%ld>",
|
||||
[self class], self.senderId, self.senderDisplayName, self.date, self.infoMessageType];
|
||||
}
|
||||
|
||||
@end
|
||||
Loading…
Reference in New Issue
Block a user