display_room_avatars

-> display the room avatars in the chat room
This commit is contained in:
yannick
2015-12-04 14:28:15 +01:00
parent fa0cb4001b
commit eb371f7d8e
6 changed files with 35 additions and 9 deletions
+1 -1
View File
@@ -27,7 +27,7 @@
// replace the identicon icon by the Vector style one
if (_mxMember && ([_mxMember.avatarUrl rangeOfString:@"identicon"].location != NSNotFound))
{
thumbnail = [AvatarGenerator generateRoomMemberAvatar:_mxMember];
thumbnail = [AvatarGenerator generateRoomMemberAvatar:_mxMember.userId displayName:_mxMember.displayname];
}
else
{
+3 -2
View File
@@ -30,10 +30,11 @@
/**
Generate an avatar for a room member.
@param mxMember the room member
@param userId the member userId
@param displayname the member displayname
@return the avatar image
*/
+ (UIImage*)generateRoomMemberAvatar:(MXRoomMember*)mxMember;
+ (UIImage*)generateRoomMemberAvatar:(NSString*)userId displayName:(NSString*)displayname;
/**
Generate an avatar for a text.
+6 -5
View File
@@ -144,18 +144,19 @@ static UILabel* backgroundLabel = nil;
/**
Generate an avatar for a room member.
@param mxMember the room member
@param userId the member userId
@param displayname the member displayname
@return the avatar image
*/
+ (UIImage*)generateRoomMemberAvatar:(MXRoomMember*)mxMember
+ (UIImage*)generateRoomMemberAvatar:(NSString*)userId displayName:(NSString*)displayname
{
// the selected color is based on the userId
NSUInteger index = [AvatarGenerator colorIndexForText:mxMember.userId];
NSString* text = mxMember.displayname ? mxMember.displayname : mxMember.userId;
NSUInteger index = [AvatarGenerator colorIndexForText:userId];
NSString* text = displayname ? displayname : userId;
// if the displayname is the userID
// skip the @
if (!mxMember.displayname && [text hasPrefix:@"@"])
if (!displayname && [text hasPrefix:@"@"])
{
text = [text substringFromIndex:1];
}
@@ -390,6 +390,7 @@
MXKRoomDataSourceManager *roomDataSourceManager = [MXKRoomDataSourceManager sharedManagerForMatrixSession:selectedRoomSession];
MXKRoomDataSource *roomDataSource = [roomDataSourceManager roomDataSourceForRoom:selectedRoomId create:YES];
roomDataSource.roomBubbleTableViewCellDelegate = currentRoomViewController;
[currentRoomViewController displayRoom:roomDataSource];
}
+3 -1
View File
@@ -16,7 +16,9 @@
#import <MatrixKit/MatrixKit.h>
@interface RoomViewController : MXKRoomViewController
#import "MXKRoomBubbleTableViewCell.h"
@interface RoomViewController : MXKRoomViewController<MXKRoomBubbleTableViewCellDelegate>
@end
@@ -30,6 +30,8 @@
#import "SegmentedViewController.h"
#import "RoomSettingsViewController.h"
#import "AvatarGenerator.h"
@interface RoomViewController ()
{
// the user taps on a member thumbnail
@@ -414,5 +416,24 @@
}
}
#pragma mark - MXKRoomBubbleTableViewCell delegate
- (UIImage*)pictureViewImage:(MXKRoomBubbleTableViewCell*)cell
{
// replace the identicon icon by the Vector style one
if (!cell.bubbleData.senderAvatarUrl || ([cell.bubbleData.senderAvatarUrl rangeOfString:@"identicon"].location != NSNotFound))
{
return [AvatarGenerator generateRoomMemberAvatar:cell.bubbleData.senderId displayName:cell.bubbleData.senderDisplayName];
}
return nil;
}
- (UIImage*)pictureViewPreviewImage:(MXKRoomBubbleTableViewCell*)cell
{
return [AvatarGenerator generateRoomMemberAvatar:cell.bubbleData.senderId displayName:cell.bubbleData.senderDisplayName];
}
@end