mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-05-12 10:50:00 +02:00
room_photo_selection
-> add the public / private status -> factorize the room avatar management. -> the room avatar was rendered in scaleToFit instead of scaleToFill.
This commit is contained in:
@@ -39,4 +39,15 @@
|
||||
*/
|
||||
- (void)toggleRoomNotifications:(BOOL)mute;
|
||||
|
||||
/**
|
||||
Set the room avatar in the dedicated MXKImageView.
|
||||
The vector style implies to use in order :
|
||||
1 - the default avatar if there is one
|
||||
2 - the member avatar for < 3 members rooms
|
||||
3 - the first later of the room name.
|
||||
|
||||
@param mxkImageView the destinated MXKImageView.
|
||||
*/
|
||||
- (void)setRoomAvatarImageIn:(MXKImageView*)mxkImageView;
|
||||
|
||||
@end
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
#import "MXRoom+Vector.h"
|
||||
|
||||
#import "AvatarGenerator.h"
|
||||
|
||||
@interface MXRoom ()
|
||||
|
||||
// create property for the extensions
|
||||
@@ -197,4 +199,45 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setRoomAvatarImageIn:(MXKImageView*)mxkImageView
|
||||
{
|
||||
NSString* roomAvatarUrl = self.state.avatar;
|
||||
|
||||
// detect if it is a room with no more than 2 members (i.e. an alone or a 1:1 chat)
|
||||
if (!roomAvatarUrl)
|
||||
{
|
||||
NSString* myUserId = self.mxSession.myUser.userId;
|
||||
|
||||
NSArray* members = self.state.members;
|
||||
|
||||
if (members.count < 3)
|
||||
{
|
||||
// use the member avatar only it is an active member
|
||||
for (MXRoomMember *roomMember in members)
|
||||
{
|
||||
if ((MXMembershipJoin == roomMember.membership) && ((members.count == 1) || ![roomMember.userId isEqualToString:myUserId]))
|
||||
{
|
||||
roomAvatarUrl = roomMember.avatarUrl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UIImage* avatarImage = [AvatarGenerator generateRoomAvatar:self];
|
||||
|
||||
if (roomAvatarUrl)
|
||||
{
|
||||
mxkImageView.enableInMemoryCache = YES;
|
||||
|
||||
[mxkImageView setImageURL:[self.mxSession.matrixRestClient urlOfContentThumbnail:roomAvatarUrl toFitViewSize:mxkImageView.frame.size withMethod:MXThumbnailingMethodCrop] withType:nil andImageOrientation:UIImageOrientationUp previewImage:avatarImage];
|
||||
}
|
||||
else
|
||||
{
|
||||
mxkImageView.image = avatarImage;
|
||||
}
|
||||
|
||||
mxkImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user