Banned user list should be shown in room settings #450

This commit is contained in:
manuroe
2016-08-02 11:06:31 +02:00
parent e828541611
commit e6024e0e54
2 changed files with 70 additions and 2 deletions
@@ -36,8 +36,9 @@
#define ROOM_SETTINGS_ROOM_ACCESS_SECTION_INDEX 1
#define ROOM_SETTINGS_HISTORY_VISIBILITY_SECTION_INDEX 2
#define ROOM_SETTINGS_ROOM_ADDRESSES_SECTION_INDEX 3
#define ROOM_SETTINGS_ADVANCED_SECTION_INDEX 4
#define ROOM_SETTINGS_SECTION_COUNT 5
#define ROOM_SETTINGS_BANNED_USERS_SECTION_INDEX 4
#define ROOM_SETTINGS_ADVANCED_SECTION_INDEX 5
#define ROOM_SETTINGS_SECTION_COUNT 6
#define ROOM_SETTINGS_MAIN_SECTION_ROW_PHOTO 0
#define ROOM_SETTINGS_MAIN_SECTION_ROW_NAME 1
@@ -60,6 +61,8 @@
#define ROOM_TOPIC_CELL_HEIGHT 124
#define SECTION_TITLE_PADDING_WHEN_HIDDEN 0.01f
NSString *const kRoomSettingsAvatarKey = @"kRoomSettingsAvatarKey";
NSString *const kRoomSettingsAvatarURLKey = @"kRoomSettingsAvatarURLKey";
NSString *const kRoomSettingsNameKey = @"kRoomSettingsNameKey";
@@ -1504,6 +1507,10 @@ NSString *const kRoomSettingsAdvancedCellViewIdentifier = @"kRoomSettingsAdvance
}
}
}
else if (section == ROOM_SETTINGS_BANNED_USERS_SECTION_INDEX)
{
count = [mxRoomState membersWithMembership:MXMembershipBan].count;
}
else if (section == ROOM_SETTINGS_ADVANCED_SECTION_INDEX)
{
count = 1;
@@ -1526,6 +1533,18 @@ NSString *const kRoomSettingsAdvancedCellViewIdentifier = @"kRoomSettingsAdvance
{
return NSLocalizedStringFromTable(@"room_details_addresses_section", @"Vector", nil);
}
else if (section == ROOM_SETTINGS_BANNED_USERS_SECTION_INDEX)
{
if ([mxRoomState membersWithMembership:MXMembershipBan].count)
{
return NSLocalizedStringFromTable(@"room_details_banned_users_section", @"Vector", nil);
}
else
{
// Hide this section
return nil;
}
}
else if (section == ROOM_SETTINGS_ADVANCED_SECTION_INDEX)
{
return NSLocalizedStringFromTable(@"room_details_advanced_section", @"Vector", nil);
@@ -1534,6 +1553,32 @@ NSString *const kRoomSettingsAdvancedCellViewIdentifier = @"kRoomSettingsAdvance
return nil;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == ROOM_SETTINGS_BANNED_USERS_SECTION_INDEX && [mxRoomState membersWithMembership:MXMembershipBan].count == 0)
{
// Hide this section
return SECTION_TITLE_PADDING_WHEN_HIDDEN;
}
else
{
return [super tableView:tableView heightForHeaderInSection:section];
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
if (section == ROOM_SETTINGS_BANNED_USERS_SECTION_INDEX && [mxRoomState membersWithMembership:MXMembershipBan].count == 0)
{
// Hide this section
return SECTION_TITLE_PADDING_WHEN_HIDDEN;
}
else
{
return [super tableView:tableView heightForFooterInSection:section];
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == ROOM_SETTINGS_MAIN_SECTION_INDEX)
@@ -2000,6 +2045,28 @@ NSString *const kRoomSettingsAdvancedCellViewIdentifier = @"kRoomSettingsAdvance
cell = addressCell;
}
}
else if (indexPath.section == ROOM_SETTINGS_BANNED_USERS_SECTION_INDEX)
{
UITableViewCell *addressCell = [tableView dequeueReusableCellWithIdentifier:kRoomSettingsAddressCellViewIdentifier forIndexPath:indexPath];
addressCell.textLabel.font = [UIFont systemFontOfSize:16];
addressCell.textLabel.textColor = kVectorTextColorBlack;
addressCell.textLabel.lineBreakMode = NSLineBreakByTruncatingMiddle;
addressCell.accessoryView = nil;
addressCell.accessoryType = UITableViewCellAccessoryNone;
addressCell.selectionStyle = UITableViewCellSelectionStyleNone;
while (addressCell.textLabel.gestureRecognizers.count)
{
[addressCell.textLabel removeGestureRecognizer:addressCell.textLabel.gestureRecognizers[0]];
}
addressCell.textLabel.userInteractionEnabled = NO;
MXRoomMember *bannedMember = [mxRoomState membersWithMembership:MXMembershipBan][indexPath.row];
addressCell.textLabel.text = bannedMember.userId;
cell = addressCell;
}
else if (indexPath.section == ROOM_SETTINGS_ADVANCED_SECTION_INDEX)
{
cell = [tableView dequeueReusableCellWithIdentifier:kRoomSettingsAdvancedCellViewIdentifier];