Updated MatrixConsole to use the new MXRoomPowerLevels class

This commit is contained in:
manuroe
2014-12-04 10:59:14 +01:00
parent d062ddc487
commit 6e1fb068fd
2 changed files with 15 additions and 54 deletions

View File

@@ -117,9 +117,6 @@ static MatrixHandler *sharedHandler = nil;
kMXEventTypeStringRoomCreate,
kMXEventTypeStringRoomJoinRules,
kMXEventTypeStringRoomPowerLevels,
kMXEventTypeStringRoomAddStateLevel,
kMXEventTypeStringRoomSendEventLevel,
kMXEventTypeStringRoomOpsLevel,
kMXEventTypeStringRoomAliases,
kMXEventTypeStringRoomMessage,
kMXEventTypeStringRoomMessageFeedback,
@@ -573,27 +570,6 @@ static MatrixHandler *sharedHandler = nil;
}
break;
}
// case MXEventTypeRoomAddStateLevel: {
// NSString *minLevel = event.content[@"level"];
// if (minLevel) {
// displayText = [NSString stringWithFormat:@"The minimum power level a user needs to add state is: %@", minLevel];
// }
// break;
// }
// case MXEventTypeRoomSendEventLevel: {
// NSString *minLevel = event.content[@"level"];
// if (minLevel) {
// displayText = [NSString stringWithFormat:@"The minimum power level a user needs to send an event is: %@", minLevel];
// }
// break;
// }
// case MXEventTypeRoomOpsLevel: {
// displayText = @"The minimum power levels that a user must have before acting are:";
// for (NSString *key in event.content.allKeys) {
// displayText = [NSString stringWithFormat:@"%@\r\n%@:%@", displayText, key, [event.content objectForKey:key]];
// }
// break;
// }
case MXEventTypeRoomAliases: {
NSArray *aliases = event.content[@"aliases"];
if (aliases) {

View File

@@ -51,38 +51,23 @@
self.backgroundColor = [UIColor whiteColor];
// Handle power level display
self.userPowerLevel.hidden = NO;
NSDictionary *powerLevels;
if (room.state.powerLevels[@"users"]){
// In Matrix 0.5, users power levels are listed under the `users` dictionnary
powerLevels = room.state.powerLevels[@"users"];
}
else {
// @TODO: Remove this backward compatibility
powerLevels = room.state.powerLevels;
}
if (powerLevels) {
int maxLevel = 0;
for (NSString *powerLevel in powerLevels.allValues) {
int level = [powerLevel intValue];
if (level > maxLevel) {
maxLevel = level;
}
self.userPowerLevel.hidden = NO;
MXRoomPowerLevels *roomPowerLevels = room.state.powerLevels;
int maxLevel = 0;
for (NSString *powerLevel in roomPowerLevels.users.allValues) {
int level = [powerLevel intValue];
if (level > maxLevel) {
maxLevel = level;
}
NSString *userPowerLevel = [powerLevels objectForKey:roomMember.userId]; // CAUTION: we invoke objectForKey here because user_id starts with an '@' character
if (userPowerLevel == nil) {
userPowerLevel = [powerLevels valueForKey:@"default"];
}
float userPowerLevelFloat = 0.0;
if (userPowerLevel) {
userPowerLevelFloat = [userPowerLevel floatValue];
}
self.userPowerLevel.progress = maxLevel ? userPowerLevelFloat / maxLevel : 1;
} else {
self.userPowerLevel.progress = 0;
}
NSUInteger userPowerLevel = [roomPowerLevels powerLevelOfUserWithUserID:roomMember.userId];
float userPowerLevelFloat = 0.0;
if (userPowerLevel) {
userPowerLevelFloat = userPowerLevel;
}
self.userPowerLevel.progress = maxLevel ? userPowerLevelFloat / maxLevel : 1;
if (roomMember.membership == MXMembershipInvite) {
self.lastActiveAgoLabel.backgroundColor = [UIColor lightGrayColor];
self.lastActiveAgoLabel.text = @"invited";