mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-05-18 05:33:32 +02:00
display_room_avatars
-> display the room avatars in the chat room
This commit is contained in:
@@ -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
|
||||
{
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user