From 5e8e81d0190e16eb78fd7dd70faa28549aa0b05c Mon Sep 17 00:00:00 2001 From: yannick Date: Fri, 11 Dec 2015 09:11:44 +0100 Subject: [PATCH 01/21] recents_category_drag_drop Implement the cell selection and its moving (with tableview); --- Vector/ViewController/RecentsViewController.m | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/Vector/ViewController/RecentsViewController.m b/Vector/ViewController/RecentsViewController.m index f3c3c07db..4cb0fe764 100644 --- a/Vector/ViewController/RecentsViewController.m +++ b/Vector/ViewController/RecentsViewController.m @@ -36,6 +36,9 @@ // The "parent" segmented view controller HomeViewController *homeViewController; + + // recents drag and drop management + UIView *cellSnapshot; } @end @@ -65,6 +68,9 @@ // Register here the customized cell view class used to render recents [self.recentsTableView registerNib:RecentTableViewCell.nib forCellReuseIdentifier:RecentTableViewCell.defaultReuseIdentifier]; [self.recentsTableView registerNib:InviteRecentTableViewCell.nib forCellReuseIdentifier:InviteRecentTableViewCell.defaultReuseIdentifier]; + + UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(onRecentsLongPress:)]; + [self.recentsTableView addGestureRecognizer:longPress]; } - (void)destroy @@ -460,4 +466,109 @@ static NSMutableDictionary* backgroundByImageNameDict; [self performSegueWithIdentifier:@"presentSearch" sender:self]; } +#pragma mark - recents drag & drop management +- (IBAction) onRecentsLongPress:(id)sender +{ + UILongPressGestureRecognizer *longPress = (UILongPressGestureRecognizer *)sender; + UIGestureRecognizerState state = longPress.state; + + CGPoint location = [longPress locationInView:self.recentsTableView]; + NSIndexPath *indexPath = [self.recentsTableView indexPathForRowAtPoint:location]; + + switch (state) + { + // step 1 : display the selected cell + case UIGestureRecognizerStateBegan: + { + if (indexPath) + { + UITableViewCell *cell = [self.recentsTableView cellForRowAtIndexPath:indexPath]; + + // snapshot the cell + UIGraphicsBeginImageContextWithOptions(cell.bounds.size, NO, 0); + [cell.layer renderInContext:UIGraphicsGetCurrentContext()]; + UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + cellSnapshot = [[UIImageView alloc] initWithImage:image]; + + // display the selected cell over the tableview + CGPoint center = cell.center; + center.y = location.y; + cellSnapshot.center = center; + cellSnapshot.alpha = 0.5f; + [self.recentsTableView addSubview:cellSnapshot]; + } + break; + } + + // step 2 : the cell must follow the finger + case UIGestureRecognizerStateChanged: + { + CGPoint center = cellSnapshot.center; + CGFloat halfHeight = cellSnapshot.frame.size.height / 2.0f; + CGFloat cellTop = location.y - halfHeight; + CGFloat cellBottom = location.y + halfHeight; + + CGPoint contentOffset = self.recentsTableView.contentOffset; + CGFloat height = MIN(self.recentsTableView.frame.size.height, self.recentsTableView.contentSize.height); + CGFloat bottomOffset = contentOffset.y + height; + + // check if the moving cell is trying to move under the tableview + if (cellBottom > self.recentsTableView.contentSize.height) + { + // force the cell to stay at the tableview bottom + location.y = self.recentsTableView.contentSize.height - halfHeight; + } + // check if the cell is moving over the displayed tableview bottom + else if (cellBottom > bottomOffset) + { + CGFloat diff = cellBottom - bottomOffset; + + // moving down the cell + location.y -= diff; + // scroll up the tableview + contentOffset.y += diff; + } + // the moving is tryin to move over the tableview topmost + else if (cellTop < 0) + { + // force to stay in the topmost + contentOffset.y = 0; + location.y = contentOffset.y + halfHeight; + } + // the moving cell is displayed over the current scroll top + else if (cellTop < contentOffset.y) + { + CGFloat diff = contentOffset.y - cellTop; + + // move up the cell and the table up + location.y -= diff; + contentOffset.y -= diff; + } + + // move the cell to follow the user finger + center.y = location.y; + cellSnapshot.center = center; + + // scroll the tableview if it is required + if (contentOffset.y != self.recentsTableView.contentOffset.y) + { + [self.recentsTableView setContentOffset:contentOffset animated:NO]; + } + + break; + } + + // step 3 : remove the view + // and insert when it is possible. + case UIGestureRecognizerStateEnded: + { + [cellSnapshot removeFromSuperview]; + break; + } + } +} + + @end From 27a72ae7db0e213b6611bfdfa18b500e2b975fe2 Mon Sep 17 00:00:00 2001 From: yannick Date: Fri, 11 Dec 2015 11:50:13 +0100 Subject: [PATCH 02/21] recents_category_drag_drop the drag and drop is implemented : the cell can be move in the recents sections. --- Vector/Model/RoomList/RecentsDataSource.h | 11 +++ Vector/Model/RoomList/RecentsDataSource.m | 72 +++++++++++++++++++ Vector/ViewController/RecentsViewController.m | 59 +++++++++++++-- 3 files changed, 136 insertions(+), 6 deletions(-) diff --git a/Vector/Model/RoomList/RecentsDataSource.h b/Vector/Model/RoomList/RecentsDataSource.h index b03bb3ccd..1d02a4860 100644 --- a/Vector/Model/RoomList/RecentsDataSource.h +++ b/Vector/Model/RoomList/RecentsDataSource.h @@ -36,4 +36,15 @@ */ - (CGFloat)heightForHeaderInSection:(NSInteger)section; +/** + Return true of the cell can be moved from a section to another one. + */ +- (BOOL)isDraggableCellAt:(NSIndexPath*)path; + +/** + Move a cell from a path to another one. + It is based on room Tag. + */ +- (void)moveCellFrom:(NSIndexPath*)oldPath to:(NSIndexPath*)newPath; + @end diff --git a/Vector/Model/RoomList/RecentsDataSource.m b/Vector/Model/RoomList/RecentsDataSource.m index fe928376f..3ededfdcc 100644 --- a/Vector/Model/RoomList/RecentsDataSource.m +++ b/Vector/Model/RoomList/RecentsDataSource.m @@ -482,4 +482,76 @@ [super destroy]; } + +#pragma mark - drag and drop managemenent + +- (BOOL)isDraggableCellAt:(NSIndexPath*)path +{ + return (path && ((path.section == favoritesSection) || (path.section == lowPrioritySection) || (path.section == conversationSection))); +} + +- (BOOL)canCellMoveFrom:(NSIndexPath*)oldPath to:(NSIndexPath*)newPath +{ + BOOL res = [self isDraggableCellAt:oldPath] && [self isDraggableCellAt:newPath]; + + // the both index pathes are movable + if (res) + { + // cannot move conversation rooms in the same section + res &= !((oldPath.section == conversationSection) && (newPath.section == conversationSection)); + + // other cases ? + } + + return res; +} + +- (NSString*)roomTagAt:(NSIndexPath*)path +{ + if (path.section == favoritesSection) + { + return kMXRoomTagFavourite; + } + else if (path.section == lowPrioritySection) + { + return kMXRoomTagLowPriority; + } + + return nil; +} + +- (void)moveCellFrom:(NSIndexPath*)oldPath to:(NSIndexPath*)newPath +{ + if ([self canCellMoveFrom:oldPath to:newPath] && ![newPath isEqual:oldPath]) + { + NSString* oldRoomTag = [self roomTagAt:oldPath]; + NSString* dstRoomTag = [self roomTagAt:newPath]; + + MXRoom* room = [self getRoomAtIndexPath:oldPath]; + + NSString* tagOrder = [room.mxSession tagOrderToBeAtIndex:newPath.row withTag:dstRoomTag]; + + NSLog(@"[MXKRecentsDataSource] Update the room %@ tag from %@ to %@ with tag order %@", room.state.roomId, oldRoomTag, dstRoomTag, tagOrder); + + [room replaceTag:oldRoomTag + byTag:dstRoomTag + withOrder:tagOrder + success: ^{ + + // Refresh table display + if (self.delegate) + { + [self.delegate dataSource:self didCellChange:nil]; + } + + } failure:^(NSError *error) { + + NSLog(@"[MXKRecentsDataSource] Failed to update the tag %@ of room (%@) failed: %@", dstRoomTag, room.state.roomId, error); + + // Notify MatrixKit user + [[NSNotificationCenter defaultCenter] postNotificationName:kMXKErrorNotification object:error]; + }]; + } +} + @end diff --git a/Vector/ViewController/RecentsViewController.m b/Vector/ViewController/RecentsViewController.m index 4cb0fe764..0874c87c2 100644 --- a/Vector/ViewController/RecentsViewController.m +++ b/Vector/ViewController/RecentsViewController.m @@ -39,6 +39,7 @@ // recents drag and drop management UIView *cellSnapshot; + NSIndexPath* movingCellPath; } @end @@ -323,7 +324,6 @@ static NSMutableDictionary* backgroundByImageNameDict; { NSString* title = @" "; - // pushes settings BOOL isMuted = ![self.dataSource isRoomNotifiedAtIndexPath:indexPath]; @@ -416,9 +416,6 @@ static NSMutableDictionary* backgroundByImageNameDict; [self.recentsTableView setEditing:NO]; } - - - #pragma mark - Override UISearchBarDelegate - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText @@ -467,20 +464,42 @@ static NSMutableDictionary* backgroundByImageNameDict; } #pragma mark - recents drag & drop management + - (IBAction) onRecentsLongPress:(id)sender { + RecentsDataSource* recentsDataSource = nil; + + if ([self.dataSource isKindOfClass:[RecentsDataSource class]]) + { + recentsDataSource = (RecentsDataSource*)self.dataSource; + } + + // only support RecentsDataSource + if (!recentsDataSource) + { + return; + } + UILongPressGestureRecognizer *longPress = (UILongPressGestureRecognizer *)sender; UIGestureRecognizerState state = longPress.state; + // check if there is a moving cell during the long press managemnt + if ((state != UIGestureRecognizerStateBegan) && !movingCellPath) + { + return; + } + CGPoint location = [longPress locationInView:self.recentsTableView]; - NSIndexPath *indexPath = [self.recentsTableView indexPathForRowAtPoint:location]; switch (state) { // step 1 : display the selected cell case UIGestureRecognizerStateBegan: { - if (indexPath) + NSIndexPath *indexPath = [self.recentsTableView indexPathForRowAtPoint:location]; + + // check if the cell can be moved + if (indexPath && [recentsDataSource isDraggableCellAt:indexPath]) { UITableViewCell *cell = [self.recentsTableView cellForRowAtIndexPath:indexPath]; @@ -498,6 +517,8 @@ static NSMutableDictionary* backgroundByImageNameDict; cellSnapshot.center = center; cellSnapshot.alpha = 0.5f; [self.recentsTableView addSubview:cellSnapshot]; + + movingCellPath = indexPath; } break; } @@ -565,6 +586,32 @@ static NSMutableDictionary* backgroundByImageNameDict; case UIGestureRecognizerStateEnded: { [cellSnapshot removeFromSuperview]; + cellSnapshot = nil; + + NSIndexPath *indexPath = [self.recentsTableView indexPathForRowAtPoint:location]; + NSInteger section = indexPath.section; + + UITableViewCell* cell = [self.recentsTableView cellForRowAtIndexPath:indexPath]; + + // the destinated row is retrieved from the moving cell (center comparison) + int row = (location.y > cell.center.y) ? indexPath.row + 1 : indexPath.row; + + [recentsDataSource moveCellFrom:movingCellPath to: [NSIndexPath indexPathForRow:row inSection:section]]; + + [cellSnapshot removeFromSuperview]; + cellSnapshot = nil; + movingCellPath = nil; + + break; + } + + // default behaviour + // remove the cell and cancel the insertion + default: + { + [cellSnapshot removeFromSuperview]; + cellSnapshot = nil; + movingCellPath = nil; break; } } From 7d790e4a2fe77849e9a5523e9b4817dfc50252d6 Mon Sep 17 00:00:00 2001 From: yannick Date: Fri, 11 Dec 2015 12:03:05 +0100 Subject: [PATCH 03/21] recents_category_drag_drop add traces. --- Vector/Model/RoomList/RecentsDataSource.m | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Vector/Model/RoomList/RecentsDataSource.m b/Vector/Model/RoomList/RecentsDataSource.m index 3ededfdcc..e9cba04a6 100644 --- a/Vector/Model/RoomList/RecentsDataSource.m +++ b/Vector/Model/RoomList/RecentsDataSource.m @@ -522,6 +522,8 @@ - (void)moveCellFrom:(NSIndexPath*)oldPath to:(NSIndexPath*)newPath { + NSLog(@"[RecentsDataSource] moveCellFrom (%d, %d) to (%d, %d)", oldPath.section, oldPath.row, newPath.section, newPath.row); + if ([self canCellMoveFrom:oldPath to:newPath] && ![newPath isEqual:oldPath]) { NSString* oldRoomTag = [self roomTagAt:oldPath]; @@ -531,7 +533,7 @@ NSString* tagOrder = [room.mxSession tagOrderToBeAtIndex:newPath.row withTag:dstRoomTag]; - NSLog(@"[MXKRecentsDataSource] Update the room %@ tag from %@ to %@ with tag order %@", room.state.roomId, oldRoomTag, dstRoomTag, tagOrder); + NSLog(@"[RecentsDataSource] Update the room %@ tag from %@ to %@ with tag order %@", room.state.roomId, oldRoomTag, dstRoomTag, tagOrder); [room replaceTag:oldRoomTag byTag:dstRoomTag @@ -546,12 +548,16 @@ } failure:^(NSError *error) { - NSLog(@"[MXKRecentsDataSource] Failed to update the tag %@ of room (%@) failed: %@", dstRoomTag, room.state.roomId, error); + NSLog(@"[RecentsDataSource] Failed to update the tag %@ of room (%@) failed: %@", dstRoomTag, room.state.roomId, error); // Notify MatrixKit user [[NSNotificationCenter defaultCenter] postNotificationName:kMXKErrorNotification object:error]; }]; } + else + { + NSLog(@"[RecentsDataSource] cannot move this cell"); + } } @end From 922607d52195dc5699f2f51b16c8f1fecfe08648 Mon Sep 17 00:00:00 2001 From: yannick Date: Fri, 11 Dec 2015 14:59:55 +0100 Subject: [PATCH 04/21] recents_category_drag_drop Add the cell drag and drop. --- Vector/Model/RoomList/RecentsDataSource.h | 11 +++ Vector/Model/RoomList/RecentsDataSource.m | 76 ++++++++++++++++--- Vector/ViewController/RecentsViewController.m | 45 ++++++++++- 3 files changed, 119 insertions(+), 13 deletions(-) diff --git a/Vector/Model/RoomList/RecentsDataSource.h b/Vector/Model/RoomList/RecentsDataSource.h index 1d02a4860..c2a652974 100644 --- a/Vector/Model/RoomList/RecentsDataSource.h +++ b/Vector/Model/RoomList/RecentsDataSource.h @@ -31,6 +31,17 @@ */ @property (nonatomic, copy) void (^onRoomInvitationAccept)(MXRoom*); +/** + There is a pending drag and drop cell. + It defines its path. + */ +@property (nonatomic, copy) NSIndexPath* movingCellIndexPath; + +/** + The movingCellBackgroundImage; + */ +@property (nonatomic) UIImageView* movingCellBackGroundView; + /** Return the header height from the section. */ diff --git a/Vector/Model/RoomList/RecentsDataSource.m b/Vector/Model/RoomList/RecentsDataSource.m index e9cba04a6..e8bfec229 100644 --- a/Vector/Model/RoomList/RecentsDataSource.m +++ b/Vector/Model/RoomList/RecentsDataSource.m @@ -41,6 +41,7 @@ @implementation RecentsDataSource @synthesize onRoomInvitationReject, onRoomInvitationAccept; +@synthesize movingCellIndexPath, movingCellBackGroundView; - (instancetype)init { @@ -166,6 +167,10 @@ count = invitesCellDataArray.count; } + if (self.movingCellIndexPath && (self.movingCellIndexPath.section == section)) + { + count++; + } return count; } @@ -207,10 +212,44 @@ return [super viewForHeaderInSection:section withFrame:frame]; } -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)anIndexPath { - UITableViewCell* cell = [super tableView:tableView cellForRowAtIndexPath:indexPath]; + NSIndexPath* indexPath = anIndexPath; + if (self.movingCellIndexPath && (self.movingCellIndexPath.section == indexPath.section)) + { + if ([anIndexPath isEqual:self.movingCellIndexPath]) + { + static NSString* cellIdentifier = @"VectorRecentsMovingCell"; + + UITableViewCell* cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"VectorRecentsMovingCell"]; + + UIImageView* imageView = [cell viewWithTag:[cellIdentifier hash]]; + + if (!imageView || (imageView != self.movingCellBackGroundView)) + { + if (imageView) + { + [imageView removeFromSuperview]; + } + self.movingCellBackGroundView.tag = [cellIdentifier hash]; + [cell.contentView addSubview:self.movingCellBackGroundView]; + } + + self.movingCellBackGroundView.frame = self.movingCellBackGroundView.frame; + cell.contentView.backgroundColor = [UIColor greenColor]; + cell.backgroundColor = [UIColor redColor]; + + return cell; + } + + if (anIndexPath.row > self.movingCellIndexPath.row) + { + indexPath = [NSIndexPath indexPathForRow:anIndexPath.row-1 inSection:anIndexPath.section]; + } + } + + UITableViewCell* cell = [super tableView:tableView cellForRowAtIndexPath:indexPath]; // on invite cell, add listeners on accept / reject buttons if (cell && [cell isKindOfClass:[InviteRecentTableViewCell class]]) @@ -236,25 +275,35 @@ return cell; } -- (id)cellDataAtIndexPath:(NSIndexPath *)indexPath +- (id)cellDataAtIndexPath:(NSIndexPath *)anIndexPath { id cellData = nil; + NSInteger row = anIndexPath.row; + NSInteger section = anIndexPath.section; - if (indexPath.section == favoritesSection) + if (self.movingCellIndexPath && (self.movingCellIndexPath.section == section)) { - cellData = [favoriteCellDataArray objectAtIndex:indexPath.row]; + if (anIndexPath.row > self.movingCellIndexPath.row) + { + row = anIndexPath.row - 1; + } } - else if (indexPath.section == conversationSection) + + if (section == favoritesSection) { - cellData = [conversationCellDataArray objectAtIndex:indexPath.row]; + cellData = [favoriteCellDataArray objectAtIndex:row]; } - else if (indexPath.section == lowPrioritySection) + else if (section== conversationSection) { - cellData = [lowPriorityCellDataArray objectAtIndex:indexPath.row]; + cellData = [conversationCellDataArray objectAtIndex:row]; } - else if (indexPath.section == invitesSection) + else if (section == lowPrioritySection) { - cellData = [invitesCellDataArray objectAtIndex:indexPath.row]; + cellData = [lowPriorityCellDataArray objectAtIndex:row]; + } + else if (section == invitesSection) + { + cellData = [invitesCellDataArray objectAtIndex:row]; } return cellData; @@ -262,6 +311,11 @@ - (CGFloat)cellHeightAtIndexPath:(NSIndexPath *)indexPath { + if (self.movingCellIndexPath && [indexPath isEqual:self.movingCellIndexPath]) + { + return self.movingCellBackGroundView.frame.size.height; + } + // Override this method here to use our own cellDataAtIndexPath id cellData = [self cellDataAtIndexPath:indexPath]; diff --git a/Vector/ViewController/RecentsViewController.m b/Vector/ViewController/RecentsViewController.m index 0874c87c2..6188452f7 100644 --- a/Vector/ViewController/RecentsViewController.m +++ b/Vector/ViewController/RecentsViewController.m @@ -38,8 +38,10 @@ HomeViewController *homeViewController; // recents drag and drop management - UIView *cellSnapshot; + UIImageView *cellSnapshot; NSIndexPath* movingCellPath; + + NSIndexPath* lastPotentialCellPath; } @end @@ -465,6 +467,8 @@ static NSMutableDictionary* backgroundByImageNameDict; #pragma mark - recents drag & drop management +static UITableViewCell* cell = nil; + - (IBAction) onRecentsLongPress:(id)sender { RecentsDataSource* recentsDataSource = nil; @@ -510,6 +514,7 @@ static NSMutableDictionary* backgroundByImageNameDict; UIGraphicsEndImageContext(); cellSnapshot = [[UIImageView alloc] initWithImage:image]; + recentsDataSource.movingCellBackGroundView = [[UIImageView alloc] initWithImage:image]; // display the selected cell over the tableview CGPoint center = cell.center; @@ -518,7 +523,19 @@ static NSMutableDictionary* backgroundByImageNameDict; cellSnapshot.alpha = 0.5f; [self.recentsTableView addSubview:cellSnapshot]; + cell = [[UITableViewCell alloc] init]; + cell.frame = CGRectMake(0, 0, 100, 80); + cell.backgroundColor = [UIColor redColor]; + + [self.recentsTableView beginUpdates]; + lastPotentialCellPath = indexPath; + recentsDataSource.movingCellIndexPath = indexPath; + + [self.recentsTableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; + [self.recentsTableView endUpdates]; + movingCellPath = indexPath; + } break; } @@ -578,6 +595,18 @@ static NSMutableDictionary* backgroundByImageNameDict; [self.recentsTableView setContentOffset:contentOffset animated:NO]; } + NSIndexPath *indexPath = [self.recentsTableView indexPathForRowAtPoint:location]; + + + if (![indexPath isEqual:lastPotentialCellPath]) + { + [self.recentsTableView beginUpdates]; + [self.recentsTableView moveRowAtIndexPath:lastPotentialCellPath toIndexPath:indexPath]; + lastPotentialCellPath = indexPath; + recentsDataSource.movingCellIndexPath = indexPath; + [self.recentsTableView endUpdates]; + } + break; } @@ -596,12 +625,18 @@ static NSMutableDictionary* backgroundByImageNameDict; // the destinated row is retrieved from the moving cell (center comparison) int row = (location.y > cell.center.y) ? indexPath.row + 1 : indexPath.row; - [recentsDataSource moveCellFrom:movingCellPath to: [NSIndexPath indexPathForRow:row inSection:section]]; + [recentsDataSource moveCellFrom:movingCellPath to: lastPotentialCellPath]; [cellSnapshot removeFromSuperview]; cellSnapshot = nil; movingCellPath = nil; + [self.recentsTableView beginUpdates]; + [self.recentsTableView deleteRowsAtIndexPaths:@[lastPotentialCellPath] withRowAnimation:UITableViewRowAnimationNone]; + lastPotentialCellPath = nil; + recentsDataSource.movingCellIndexPath = nil; + [self.recentsTableView endUpdates]; + break; } @@ -612,6 +647,12 @@ static NSMutableDictionary* backgroundByImageNameDict; [cellSnapshot removeFromSuperview]; cellSnapshot = nil; movingCellPath = nil; + + [self.recentsTableView beginUpdates]; + [self.recentsTableView deleteRowsAtIndexPaths:@[lastPotentialCellPath] withRowAnimation:UITableViewRowAnimationNone]; + lastPotentialCellPath = nil; + recentsDataSource.movingCellIndexPath = nil; + [self.recentsTableView endUpdates]; break; } } From 26fe1ba0ba432f891930ee18878ae647a7b70107 Mon Sep 17 00:00:00 2001 From: yannick Date: Fri, 11 Dec 2015 15:30:26 +0100 Subject: [PATCH 05/21] recents_category_drag_drop fix a refresh issue. --- Vector/Model/RoomList/RecentsDataSource.h | 2 +- Vector/Model/RoomList/RecentsDataSource.m | 31 +++++++++-- Vector/ViewController/RecentsViewController.m | 52 +++++++++---------- 3 files changed, 52 insertions(+), 33 deletions(-) diff --git a/Vector/Model/RoomList/RecentsDataSource.h b/Vector/Model/RoomList/RecentsDataSource.h index c2a652974..3e3d28a36 100644 --- a/Vector/Model/RoomList/RecentsDataSource.h +++ b/Vector/Model/RoomList/RecentsDataSource.h @@ -56,6 +56,6 @@ Move a cell from a path to another one. It is based on room Tag. */ -- (void)moveCellFrom:(NSIndexPath*)oldPath to:(NSIndexPath*)newPath; +- (void)moveCellFrom:(NSIndexPath*)oldPath to:(NSIndexPath*)newPath success:(void (^)())moveSuccess failure:(void (^)(NSError *error))moveFailure; @end diff --git a/Vector/Model/RoomList/RecentsDataSource.m b/Vector/Model/RoomList/RecentsDataSource.m index e8bfec229..190f5bf93 100644 --- a/Vector/Model/RoomList/RecentsDataSource.m +++ b/Vector/Model/RoomList/RecentsDataSource.m @@ -511,6 +511,12 @@ - (void)dataSource:(MXKDataSource*)dataSource didCellChange:(id)changes { + // lock any refresh until the + if (self.movingCellIndexPath) + { + return; + } + // FIXME : manage multi accounts // to manage multi accounts // this method in MXKInterleavedRecentsDataSource must be split in two parts @@ -574,7 +580,7 @@ return nil; } -- (void)moveCellFrom:(NSIndexPath*)oldPath to:(NSIndexPath*)newPath +- (void)moveCellFrom:(NSIndexPath*)oldPath to:(NSIndexPath*)newPath success:(void (^)())moveSuccess failure:(void (^)(NSError *error))moveFailure { NSLog(@"[RecentsDataSource] moveCellFrom (%d, %d) to (%d, %d)", oldPath.section, oldPath.row, newPath.section, newPath.row); @@ -594,15 +600,25 @@ withOrder:tagOrder success: ^{ - // Refresh table display - if (self.delegate) + NSLog(@"[RecentsDataSource] move is done"); + + [self dataSource:self didCellChange:nil]; + + if (moveSuccess) { - [self.delegate dataSource:self didCellChange:nil]; + moveSuccess(); } } failure:^(NSError *error) { NSLog(@"[RecentsDataSource] Failed to update the tag %@ of room (%@) failed: %@", dstRoomTag, room.state.roomId, error); + + [self dataSource:self didCellChange:nil]; + + if (moveFailure) + { + moveFailure(error); + } // Notify MatrixKit user [[NSNotificationCenter defaultCenter] postNotificationName:kMXKErrorNotification object:error]; @@ -611,6 +627,13 @@ else { NSLog(@"[RecentsDataSource] cannot move this cell"); + + [self dataSource:self didCellChange:nil]; + + if (moveFailure) + { + moveFailure(nil); + } } } diff --git a/Vector/ViewController/RecentsViewController.m b/Vector/ViewController/RecentsViewController.m index 6188452f7..b198561ad 100644 --- a/Vector/ViewController/RecentsViewController.m +++ b/Vector/ViewController/RecentsViewController.m @@ -467,7 +467,18 @@ static NSMutableDictionary* backgroundByImageNameDict; #pragma mark - recents drag & drop management -static UITableViewCell* cell = nil; + +- (void)onRecentsDragEnd +{ + [cellSnapshot removeFromSuperview]; + cellSnapshot = nil; + movingCellPath = nil; + + lastPotentialCellPath = nil; + ((RecentsDataSource*)self.dataSource).movingCellIndexPath = nil; + + [self.recentsTableView reloadData]; +} - (IBAction) onRecentsLongPress:(id)sender { @@ -617,26 +628,19 @@ static UITableViewCell* cell = nil; [cellSnapshot removeFromSuperview]; cellSnapshot = nil; - NSIndexPath *indexPath = [self.recentsTableView indexPathForRowAtPoint:location]; - NSInteger section = indexPath.section; + [self.activityIndicator startAnimating]; + [recentsDataSource moveCellFrom:movingCellPath to: lastPotentialCellPath success:^{ + + [self onRecentsDragEnd]; + [self.activityIndicator stopAnimating]; - UITableViewCell* cell = [self.recentsTableView cellForRowAtIndexPath:indexPath]; + } failure:^(NSError *error) { + + [self onRecentsDragEnd]; + [self.activityIndicator stopAnimating]; + + }]; - // the destinated row is retrieved from the moving cell (center comparison) - int row = (location.y > cell.center.y) ? indexPath.row + 1 : indexPath.row; - - [recentsDataSource moveCellFrom:movingCellPath to: lastPotentialCellPath]; - - [cellSnapshot removeFromSuperview]; - cellSnapshot = nil; - movingCellPath = nil; - - [self.recentsTableView beginUpdates]; - [self.recentsTableView deleteRowsAtIndexPaths:@[lastPotentialCellPath] withRowAnimation:UITableViewRowAnimationNone]; - lastPotentialCellPath = nil; - recentsDataSource.movingCellIndexPath = nil; - [self.recentsTableView endUpdates]; - break; } @@ -644,15 +648,7 @@ static UITableViewCell* cell = nil; // remove the cell and cancel the insertion default: { - [cellSnapshot removeFromSuperview]; - cellSnapshot = nil; - movingCellPath = nil; - - [self.recentsTableView beginUpdates]; - [self.recentsTableView deleteRowsAtIndexPaths:@[lastPotentialCellPath] withRowAnimation:UITableViewRowAnimationNone]; - lastPotentialCellPath = nil; - recentsDataSource.movingCellIndexPath = nil; - [self.recentsTableView endUpdates]; + [self onRecentsDragEnd]; break; } } From 3ed9696716cfc1fb78ef74c429665f45cf9857f5 Mon Sep 17 00:00:00 2001 From: yannick Date: Fri, 11 Dec 2015 16:20:26 +0100 Subject: [PATCH 06/21] recents_category_drag_drop fix some crashes --- Vector/Model/RoomList/RecentsDataSource.h | 5 +++ Vector/Model/RoomList/RecentsDataSource.m | 15 +++++--- Vector/ViewController/RecentsViewController.m | 37 ++++++++++++++++--- 3 files changed, 45 insertions(+), 12 deletions(-) diff --git a/Vector/Model/RoomList/RecentsDataSource.h b/Vector/Model/RoomList/RecentsDataSource.h index 3e3d28a36..2073825c1 100644 --- a/Vector/Model/RoomList/RecentsDataSource.h +++ b/Vector/Model/RoomList/RecentsDataSource.h @@ -52,6 +52,11 @@ */ - (BOOL)isDraggableCellAt:(NSIndexPath*)path; +/** + Return true of the cell can be moved from a section to another one. + */ +- (BOOL)canCellMoveFrom:(NSIndexPath*)oldPath to:(NSIndexPath*)newPath; + /** Move a cell from a path to another one. It is based on room Tag. diff --git a/Vector/Model/RoomList/RecentsDataSource.m b/Vector/Model/RoomList/RecentsDataSource.m index 190f5bf93..9eed6b627 100644 --- a/Vector/Model/RoomList/RecentsDataSource.m +++ b/Vector/Model/RoomList/RecentsDataSource.m @@ -98,10 +98,13 @@ { dispatch_async(dispatch_get_main_queue(), ^{ - [self refreshRoomsSections]; - - // And inform the delegate about the update - [self.delegate dataSource:self didCellChange:nil]; + if (!self.movingCellIndexPath) + { + [self refreshRoomsSections]; + + // And inform the delegate about the update + [self.delegate dataSource:self didCellChange:nil]; + } }); } @@ -557,8 +560,8 @@ // the both index pathes are movable if (res) { - // cannot move conversation rooms in the same section - res &= !((oldPath.section == conversationSection) && (newPath.section == conversationSection)); + // only the favorites cell can be moved within the same section + res &= (oldPath.section == favoritesSection) || (newPath.section != oldPath.section); // other cases ? } diff --git a/Vector/ViewController/RecentsViewController.m b/Vector/ViewController/RecentsViewController.m index b198561ad..2647989c1 100644 --- a/Vector/ViewController/RecentsViewController.m +++ b/Vector/ViewController/RecentsViewController.m @@ -223,6 +223,12 @@ - (void)dataSource:(MXKDataSource *)dataSource didCellChange:(id)changes { + // do not refresh if there is a pending recent drag and drop + if (movingCellPath) + { + return; + } + if ([dataSource isKindOfClass:[RecentsDataSource class]]) { RecentsDataSource* recentsDataSource = (RecentsDataSource*)dataSource; @@ -467,7 +473,6 @@ static NSMutableDictionary* backgroundByImageNameDict; #pragma mark - recents drag & drop management - - (void)onRecentsDragEnd { [cellSnapshot removeFromSuperview]; @@ -608,14 +613,34 @@ static NSMutableDictionary* backgroundByImageNameDict; NSIndexPath *indexPath = [self.recentsTableView indexPathForRowAtPoint:location]; - if (![indexPath isEqual:lastPotentialCellPath]) { - [self.recentsTableView beginUpdates]; - [self.recentsTableView moveRowAtIndexPath:lastPotentialCellPath toIndexPath:indexPath]; + if ([recentsDataSource canCellMoveFrom:movingCellPath to:indexPath]) + { + [self.recentsTableView beginUpdates]; + if (recentsDataSource.movingCellIndexPath) + { + [self.recentsTableView moveRowAtIndexPath:lastPotentialCellPath toIndexPath:indexPath]; + } + else if (indexPath) + { + [self.recentsTableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; + } + recentsDataSource.movingCellIndexPath = indexPath; + [self.recentsTableView endUpdates]; + } + // the cell cannot be moved + else if (recentsDataSource.movingCellIndexPath) + { + NSIndexPath* pathToDelete = recentsDataSource.movingCellIndexPath; + // remove it + [self.recentsTableView beginUpdates]; + [self.recentsTableView deleteRowsAtIndexPaths:@[pathToDelete] withRowAnimation:UITableViewRowAnimationNone]; + recentsDataSource.movingCellIndexPath = nil; + [self.recentsTableView endUpdates]; + } + lastPotentialCellPath = indexPath; - recentsDataSource.movingCellIndexPath = indexPath; - [self.recentsTableView endUpdates]; } break; From 513a54f7a028a0a72bcad48121b1f6248691af96 Mon Sep 17 00:00:00 2001 From: yannick Date: Mon, 14 Dec 2015 10:47:10 +0100 Subject: [PATCH 07/21] recents_category_drag_drop Hide the moving cell. --- Vector/Model/RoomList/RecentsDataSource.h | 8 ++++- Vector/Model/RoomList/RecentsDataSource.m | 34 ++++++++++++++++--- Vector/ViewController/RecentsViewController.m | 15 ++++---- 3 files changed, 46 insertions(+), 11 deletions(-) diff --git a/Vector/Model/RoomList/RecentsDataSource.h b/Vector/Model/RoomList/RecentsDataSource.h index 2073825c1..69d042d23 100644 --- a/Vector/Model/RoomList/RecentsDataSource.h +++ b/Vector/Model/RoomList/RecentsDataSource.h @@ -33,7 +33,13 @@ /** There is a pending drag and drop cell. - It defines its path. + It defines its path of the source cell. + */ +@property (nonatomic, copy) NSIndexPath* hiddenCellIndexPath; + +/** + There is a pending drag and drop cell. + It defines its path of the destination cell. */ @property (nonatomic, copy) NSIndexPath* movingCellIndexPath; diff --git a/Vector/Model/RoomList/RecentsDataSource.m b/Vector/Model/RoomList/RecentsDataSource.m index 9eed6b627..89976bfa7 100644 --- a/Vector/Model/RoomList/RecentsDataSource.m +++ b/Vector/Model/RoomList/RecentsDataSource.m @@ -41,7 +41,7 @@ @implementation RecentsDataSource @synthesize onRoomInvitationReject, onRoomInvitationAccept; -@synthesize movingCellIndexPath, movingCellBackGroundView; +@synthesize hiddenCellIndexPath, movingCellIndexPath, movingCellBackGroundView; - (instancetype)init { @@ -119,7 +119,13 @@ MXSession *mxSession = notif.object; if (mxSession == self.mxSession) { - [self.delegate dataSource:self didCellChange:nil]; + if (!self.movingCellIndexPath) + { + [self refreshRoomsSections]; + + // And inform the delegate about the update + [self.delegate dataSource:self didCellChange:nil]; + } } } @@ -149,6 +155,16 @@ return 0; } +- (BOOL)isMovingCellSection:(NSInteger)section +{ + return self.movingCellIndexPath && (self.movingCellIndexPath.section == section); +} + +- (BOOL)isHiddenCellSection:(NSInteger)section +{ + return self.hiddenCellIndexPath && (self.hiddenCellIndexPath.section == section); +} + - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { NSUInteger count = 0; @@ -170,11 +186,16 @@ count = invitesCellDataArray.count; } - if (self.movingCellIndexPath && (self.movingCellIndexPath.section == section)) + if ([self isMovingCellSection:section]) { count++; } - + + if ([self isHiddenCellSection:section]) + { + count--; + } + return count; } @@ -252,6 +273,11 @@ } } + if (self.hiddenCellIndexPath && [anIndexPath isEqual:self.hiddenCellIndexPath]) + { + indexPath = [NSIndexPath indexPathForRow:anIndexPath.row-1 inSection:anIndexPath.section]; + } + UITableViewCell* cell = [super tableView:tableView cellForRowAtIndexPath:indexPath]; // on invite cell, add listeners on accept / reject buttons diff --git a/Vector/ViewController/RecentsViewController.m b/Vector/ViewController/RecentsViewController.m index 2647989c1..271802dda 100644 --- a/Vector/ViewController/RecentsViewController.m +++ b/Vector/ViewController/RecentsViewController.m @@ -249,7 +249,6 @@ [self.delegate recentListViewController:self didSelectRoom:room.state.roomId inMatrixSession:room.mxSession]; }; } - [self.recentsTableView reloadData]; @@ -481,6 +480,7 @@ static NSMutableDictionary* backgroundByImageNameDict; lastPotentialCellPath = nil; ((RecentsDataSource*)self.dataSource).movingCellIndexPath = nil; + ((RecentsDataSource*)self.dataSource).hiddenCellIndexPath = nil; [self.recentsTableView reloadData]; } @@ -543,14 +543,11 @@ static NSMutableDictionary* backgroundByImageNameDict; cell.frame = CGRectMake(0, 0, 100, 80); cell.backgroundColor = [UIColor redColor]; - [self.recentsTableView beginUpdates]; lastPotentialCellPath = indexPath; recentsDataSource.movingCellIndexPath = indexPath; - [self.recentsTableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; - [self.recentsTableView endUpdates]; - movingCellPath = indexPath; + recentsDataSource.hiddenCellIndexPath = movingCellPath; } break; @@ -618,14 +615,16 @@ static NSMutableDictionary* backgroundByImageNameDict; if ([recentsDataSource canCellMoveFrom:movingCellPath to:indexPath]) { [self.recentsTableView beginUpdates]; - if (recentsDataSource.movingCellIndexPath) + if (recentsDataSource.movingCellIndexPath && recentsDataSource.hiddenCellIndexPath) { [self.recentsTableView moveRowAtIndexPath:lastPotentialCellPath toIndexPath:indexPath]; } else if (indexPath) { [self.recentsTableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; + [self.recentsTableView deleteRowsAtIndexPaths:@[movingCellPath] withRowAnimation:UITableViewRowAnimationNone]; } + recentsDataSource.hiddenCellIndexPath = movingCellPath; recentsDataSource.movingCellIndexPath = indexPath; [self.recentsTableView endUpdates]; } @@ -633,10 +632,14 @@ static NSMutableDictionary* backgroundByImageNameDict; else if (recentsDataSource.movingCellIndexPath) { NSIndexPath* pathToDelete = recentsDataSource.movingCellIndexPath; + NSIndexPath* pathToAdd = recentsDataSource.hiddenCellIndexPath; + // remove it [self.recentsTableView beginUpdates]; [self.recentsTableView deleteRowsAtIndexPaths:@[pathToDelete] withRowAnimation:UITableViewRowAnimationNone]; + [self.recentsTableView insertRowsAtIndexPaths:@[pathToAdd] withRowAnimation:UITableViewRowAnimationNone]; recentsDataSource.movingCellIndexPath = nil; + recentsDataSource.hiddenCellIndexPath = nil; [self.recentsTableView endUpdates]; } From 644996aa1e1c8e5336135ab19cbe01ec86bcdc9a Mon Sep 17 00:00:00 2001 From: yannick Date: Mon, 14 Dec 2015 11:08:57 +0100 Subject: [PATCH 08/21] recents_category_drag_drop fix a refresh issue / crash after updating the room order. --- Vector/Model/RoomList/RecentsDataSource.m | 36 +++++++++---------- Vector/ViewController/RecentsViewController.m | 2 -- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/Vector/Model/RoomList/RecentsDataSource.m b/Vector/Model/RoomList/RecentsDataSource.m index 89976bfa7..7fd975c95 100644 --- a/Vector/Model/RoomList/RecentsDataSource.m +++ b/Vector/Model/RoomList/RecentsDataSource.m @@ -98,13 +98,8 @@ { dispatch_async(dispatch_get_main_queue(), ^{ - if (!self.movingCellIndexPath) - { - [self refreshRoomsSections]; - - // And inform the delegate about the update - [self.delegate dataSource:self didCellChange:nil]; - } + [self refreshRoomsSectionsAndReload]; + }); } @@ -114,18 +109,23 @@ } } +- (void)refreshRoomsSectionsAndReload +{ + if (!self.movingCellIndexPath) + { + [self refreshRoomsSections]; + + // And inform the delegate about the update + [self.delegate dataSource:self didCellChange:nil]; + } +} + - (void)didMXSessionInviteRoomUpdate:(NSNotification *)notif { MXSession *mxSession = notif.object; if (mxSession == self.mxSession) { - if (!self.movingCellIndexPath) - { - [self refreshRoomsSections]; - - // And inform the delegate about the update - [self.delegate dataSource:self didCellChange:nil]; - } + [self refreshRoomsSectionsAndReload]; } } @@ -631,24 +631,24 @@ NSLog(@"[RecentsDataSource] move is done"); - [self dataSource:self didCellChange:nil]; - if (moveSuccess) { moveSuccess(); } + [self refreshRoomsSectionsAndReload]; + } failure:^(NSError *error) { NSLog(@"[RecentsDataSource] Failed to update the tag %@ of room (%@) failed: %@", dstRoomTag, room.state.roomId, error); - - [self dataSource:self didCellChange:nil]; if (moveFailure) { moveFailure(error); } + [self refreshRoomsSectionsAndReload]; + // Notify MatrixKit user [[NSNotificationCenter defaultCenter] postNotificationName:kMXKErrorNotification object:error]; }]; diff --git a/Vector/ViewController/RecentsViewController.m b/Vector/ViewController/RecentsViewController.m index 271802dda..6784b4fb3 100644 --- a/Vector/ViewController/RecentsViewController.m +++ b/Vector/ViewController/RecentsViewController.m @@ -481,8 +481,6 @@ static NSMutableDictionary* backgroundByImageNameDict; lastPotentialCellPath = nil; ((RecentsDataSource*)self.dataSource).movingCellIndexPath = nil; ((RecentsDataSource*)self.dataSource).hiddenCellIndexPath = nil; - - [self.recentsTableView reloadData]; } - (IBAction) onRecentsLongPress:(id)sender From 00c0cc9a5cc320515e09d90256de5bb6124c46a5 Mon Sep 17 00:00:00 2001 From: yannick Date: Mon, 14 Dec 2015 11:14:58 +0100 Subject: [PATCH 09/21] recents_category_drag_drop remove the debug background color. --- Vector/Model/RoomList/RecentsDataSource.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Vector/Model/RoomList/RecentsDataSource.m b/Vector/Model/RoomList/RecentsDataSource.m index 7fd975c95..2c27ef5e5 100644 --- a/Vector/Model/RoomList/RecentsDataSource.m +++ b/Vector/Model/RoomList/RecentsDataSource.m @@ -261,8 +261,8 @@ } self.movingCellBackGroundView.frame = self.movingCellBackGroundView.frame; - cell.contentView.backgroundColor = [UIColor greenColor]; - cell.backgroundColor = [UIColor redColor]; + cell.contentView.backgroundColor = [UIColor clearColor]; + cell.backgroundColor = [UIColor clearColor]; return cell; } From b8a340ff456728bccb719517072e02b56cec6ec1 Mon Sep 17 00:00:00 2001 From: yannick Date: Mon, 14 Dec 2015 13:06:25 +0100 Subject: [PATCH 10/21] recents_category_drap_drop fix a crash when the move is cancelled. --- Vector/Model/RoomList/RecentsDataSource.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Vector/Model/RoomList/RecentsDataSource.m b/Vector/Model/RoomList/RecentsDataSource.m index 2c27ef5e5..6a58bdebf 100644 --- a/Vector/Model/RoomList/RecentsDataSource.m +++ b/Vector/Model/RoomList/RecentsDataSource.m @@ -657,12 +657,12 @@ { NSLog(@"[RecentsDataSource] cannot move this cell"); - [self dataSource:self didCellChange:nil]; - if (moveFailure) { moveFailure(nil); } + + [self refreshRoomsSectionsAndReload]; } } From 2010554782d2a026e4226bf325f165cdfaa9ced1 Mon Sep 17 00:00:00 2001 From: yannick Date: Tue, 15 Dec 2015 08:34:46 +0100 Subject: [PATCH 11/21] recents_category_drag_drop -> the moving room was not always the expected one -> update after SDK update (room tag order computation) --- Vector/Model/RoomList/RecentsDataSource.h | 2 +- Vector/Model/RoomList/RecentsDataSource.m | 13 ++++++------- Vector/ViewController/RecentsViewController.m | 13 ++++++++----- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/Vector/Model/RoomList/RecentsDataSource.h b/Vector/Model/RoomList/RecentsDataSource.h index 69d042d23..26f562824 100644 --- a/Vector/Model/RoomList/RecentsDataSource.h +++ b/Vector/Model/RoomList/RecentsDataSource.h @@ -67,6 +67,6 @@ Move a cell from a path to another one. It is based on room Tag. */ -- (void)moveCellFrom:(NSIndexPath*)oldPath to:(NSIndexPath*)newPath success:(void (^)())moveSuccess failure:(void (^)(NSError *error))moveFailure; +- (void)moveRoomCell:(MXRoom*)room from:(NSIndexPath*)oldPath to:(NSIndexPath*)newPath success:(void (^)())moveSuccess failure:(void (^)(NSError *error))moveFailure; @end diff --git a/Vector/Model/RoomList/RecentsDataSource.m b/Vector/Model/RoomList/RecentsDataSource.m index 6a58bdebf..9cc479d50 100644 --- a/Vector/Model/RoomList/RecentsDataSource.m +++ b/Vector/Model/RoomList/RecentsDataSource.m @@ -609,7 +609,7 @@ return nil; } -- (void)moveCellFrom:(NSIndexPath*)oldPath to:(NSIndexPath*)newPath success:(void (^)())moveSuccess failure:(void (^)(NSError *error))moveFailure +- (void)moveRoomCell:(MXRoom*)room from:(NSIndexPath*)oldPath to:(NSIndexPath*)newPath success:(void (^)())moveSuccess failure:(void (^)(NSError *error))moveFailure; { NSLog(@"[RecentsDataSource] moveCellFrom (%d, %d) to (%d, %d)", oldPath.section, oldPath.row, newPath.section, newPath.row); @@ -617,12 +617,11 @@ { NSString* oldRoomTag = [self roomTagAt:oldPath]; NSString* dstRoomTag = [self roomTagAt:newPath]; + NSUInteger oldPos = (oldPath.section == newPath.section) ? oldPath.row : NSNotFound; - MXRoom* room = [self getRoomAtIndexPath:oldPath]; + NSString* tagOrder = [room.mxSession tagOrderToBeAtIndex:newPath.row from:oldPos withTag:dstRoomTag]; - NSString* tagOrder = [room.mxSession tagOrderToBeAtIndex:newPath.row withTag:dstRoomTag]; - - NSLog(@"[RecentsDataSource] Update the room %@ tag from %@ to %@ with tag order %@", room.state.roomId, oldRoomTag, dstRoomTag, tagOrder); + NSLog(@"[RecentsDataSource] Update the room %@ [%@] tag from %@ to %@ with tag order %@", room.state.roomId, room.state.displayname, oldRoomTag, dstRoomTag, tagOrder); [room replaceTag:oldRoomTag byTag:dstRoomTag @@ -635,8 +634,8 @@ { moveSuccess(); } - - [self refreshRoomsSectionsAndReload]; + + // wait the server echo to reload the tableview. } failure:^(NSError *error) { diff --git a/Vector/ViewController/RecentsViewController.m b/Vector/ViewController/RecentsViewController.m index 6784b4fb3..65d12a197 100644 --- a/Vector/ViewController/RecentsViewController.m +++ b/Vector/ViewController/RecentsViewController.m @@ -40,6 +40,7 @@ // recents drag and drop management UIImageView *cellSnapshot; NSIndexPath* movingCellPath; + MXRoom* movingRoom; NSIndexPath* lastPotentialCellPath; } @@ -477,10 +478,13 @@ static NSMutableDictionary* backgroundByImageNameDict; [cellSnapshot removeFromSuperview]; cellSnapshot = nil; movingCellPath = nil; + movingRoom = nil; lastPotentialCellPath = nil; ((RecentsDataSource*)self.dataSource).movingCellIndexPath = nil; ((RecentsDataSource*)self.dataSource).hiddenCellIndexPath = nil; + + [self.activityIndicator stopAnimating]; } - (IBAction) onRecentsLongPress:(id)sender @@ -546,7 +550,7 @@ static NSMutableDictionary* backgroundByImageNameDict; movingCellPath = indexPath; recentsDataSource.hiddenCellIndexPath = movingCellPath; - + movingRoom = [recentsDataSource getRoomAtIndexPath:movingCellPath]; } break; } @@ -655,16 +659,15 @@ static NSMutableDictionary* backgroundByImageNameDict; cellSnapshot = nil; [self.activityIndicator startAnimating]; - [recentsDataSource moveCellFrom:movingCellPath to: lastPotentialCellPath success:^{ + + [recentsDataSource moveRoomCell:movingRoom from:movingCellPath to:lastPotentialCellPath success:^{ [self onRecentsDragEnd]; - [self.activityIndicator stopAnimating]; } failure:^(NSError *error) { [self onRecentsDragEnd]; - [self.activityIndicator stopAnimating]; - + }]; break; From c1402cc7e45eadd01688d61cafbf4d25c3b8e9b4 Mon Sep 17 00:00:00 2001 From: manuroe Date: Tue, 15 Dec 2015 16:20:21 +0100 Subject: [PATCH 12/21] SegmentedVC improvement: Make SegmentedVC call viewWillAppear on the currently selected child. This fixes the handling of keyboard which is centrally managed in [MXKViewController viewWillAppear] --- Vector/ViewController/HomeViewController.m | 3 --- Vector/ViewController/SegmentedViewController.m | 6 +++++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Vector/ViewController/HomeViewController.m b/Vector/ViewController/HomeViewController.m index 80f04b6aa..274dc948e 100644 --- a/Vector/ViewController/HomeViewController.m +++ b/Vector/ViewController/HomeViewController.m @@ -184,9 +184,6 @@ [tap setDelegate:self]; [createNewRoomImageView addGestureRecognizer:tap]; } - - // Forward the event to the child - [self.displayedViewController viewWillAppear:animated]; } - (void)viewDidAppear:(BOOL)animated diff --git a/Vector/ViewController/SegmentedViewController.m b/Vector/ViewController/SegmentedViewController.m index a85d31928..d3f9a3c5b 100644 --- a/Vector/ViewController/SegmentedViewController.m +++ b/Vector/ViewController/SegmentedViewController.m @@ -322,7 +322,10 @@ label.font = [UIFont boldSystemFontOfSize:17]; displayedViewController = [viewControllers objectAtIndex:selectedIndex]; - + + // Make iOS invoke child viewWillAppear + [displayedViewController beginAppearanceTransition:YES animated:YES]; + [self addChildViewController:displayedViewController]; [displayedViewController.view setTranslatesAutoresizingMaskIntoConstraints:NO]; @@ -367,6 +370,7 @@ [self addConstraint:displayedViewController.view constraint:displayedVCHeightConstraint]; [displayedViewController didMoveToParentViewController:self]; + [displayedViewController endAppearanceTransition]; // refresh the navbar background color // to display if the homeserver is reachable. From b74975cf49314a8d16e6ad0513112f4ea518040a Mon Sep 17 00:00:00 2001 From: manuroe Date: Tue, 15 Dec 2015 17:13:59 +0100 Subject: [PATCH 13/21] SegmentedVC improvement: Made `selectedIndex` public so that it can be changed outside. Use it from the HomeVC --- Vector/ViewController/HomeViewController.m | 19 ++++--- .../ViewController/SegmentedViewController.h | 5 ++ .../ViewController/SegmentedViewController.m | 53 +++++++++++-------- 3 files changed, 48 insertions(+), 29 deletions(-) diff --git a/Vector/ViewController/HomeViewController.m b/Vector/ViewController/HomeViewController.m index 274dc948e..0ded141ba 100644 --- a/Vector/ViewController/HomeViewController.m +++ b/Vector/ViewController/HomeViewController.m @@ -431,6 +431,8 @@ self.navigationItem.rightBarButtonItem = backupRightBarButtonItem; } + [recentsDataSource searchWithPatterns:nil]; + // Hide the tabs header if (animated) { @@ -440,18 +442,23 @@ self.selectionContainerHeightConstraint.constant = 0; [self.view layoutIfNeeded]; } - completion:nil]; + completion:^(BOOL finished) { + // Go back to the recents tab + // Do it at the end of the animation when the tabs header of the SegmentedVC is hidden + // so that the user cannot see the selection bar of this header moving + self.selectedIndex = 0; + self.displayedViewController.view.hidden = NO; + }]; } else { self.selectionContainerHeightConstraint.constant = 0; [self.view layoutIfNeeded]; - } - // Go back under the recents tab - // TODO: Open the feature in SegmentedVC - [recentsDataSource searchWithPatterns:nil]; - self.displayedViewController.view.hidden = NO; + // Go back to the recents tab + self.selectedIndex = 0; + self.displayedViewController.view.hidden = NO; + } } // Update search results under the currently selected tab diff --git a/Vector/ViewController/SegmentedViewController.h b/Vector/ViewController/SegmentedViewController.h index c33861acf..d22cce7ba 100644 --- a/Vector/ViewController/SegmentedViewController.h +++ b/Vector/ViewController/SegmentedViewController.h @@ -32,6 +32,11 @@ limitations under the License. @property (weak, nonatomic) IBOutlet UIView *viewControllerContainer; @property (weak, nonatomic) IBOutlet UIImageView *backgroundImageView; +/** + The index of the view controller that currently has the focus. + */ +@property (nonatomic) NSUInteger selectedIndex; + /** The view controller that currently has the focus. */ diff --git a/Vector/ViewController/SegmentedViewController.m b/Vector/ViewController/SegmentedViewController.m index d3f9a3c5b..f323a0b2a 100644 --- a/Vector/ViewController/SegmentedViewController.m +++ b/Vector/ViewController/SegmentedViewController.m @@ -38,9 +38,6 @@ // the selected marker view UIView* selectedMarkerView; NSLayoutConstraint *leftMarkerViewConstraint; - - // the index of the viewcontroller displayed at first load - NSUInteger selectedIndex; } @end @@ -72,7 +69,16 @@ { viewControllers = someViewControllers; sectionTitles = titles; - selectedIndex = index; + _selectedIndex = index; +} + +- (void)setSelectedIndex:(NSUInteger)selectedIndex +{ + if (_selectedIndex != selectedIndex) + { + _selectedIndex = selectedIndex; + [self displaySelectedViewController]; + } } #pragma mark - @@ -251,7 +257,7 @@ leftMarkerViewConstraint = [NSLayoutConstraint constraintWithItem:selectedMarkerView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual - toItem:[sectionLabels objectAtIndex:selectedIndex] + toItem:[sectionLabels objectAtIndex:_selectedIndex] attribute:NSLayoutAttributeLeading multiplier:1.0 constant:0]; @@ -318,10 +324,24 @@ [self removeConstraint:self.viewControllerContainer constraint:displayedVCLeftConstraint]; } - UILabel* label = [sectionLabels objectAtIndex:selectedIndex]; + UILabel* label = [sectionLabels objectAtIndex:_selectedIndex]; label.font = [UIFont boldSystemFontOfSize:17]; - - displayedViewController = [viewControllers objectAtIndex:selectedIndex]; + + // update the marker view position + [self removeConstraint:selectedMarkerView constraint:leftMarkerViewConstraint]; + + leftMarkerViewConstraint = [NSLayoutConstraint constraintWithItem:selectedMarkerView + attribute:NSLayoutAttributeLeading + relatedBy:NSLayoutRelationEqual + toItem:[sectionLabels objectAtIndex:_selectedIndex] + attribute:NSLayoutAttributeLeading + multiplier:1.0 + constant:0]; + + [self addConstraint:selectedMarkerView constraint:leftMarkerViewConstraint]; + + // Set the new selected view controller + displayedViewController = [viewControllers objectAtIndex:_selectedIndex]; // Make iOS invoke child viewWillAppear [displayedViewController beginAppearanceTransition:YES animated:YES]; @@ -384,23 +404,10 @@ NSUInteger pos = [sectionLabels indexOfObject:gestureRecognizer.view]; // check if there is an update before triggering anything - if ((pos != NSNotFound) && (selectedIndex != pos)) + if ((pos != NSNotFound) && (_selectedIndex != pos)) { // update the selected index - selectedIndex = pos; - - // update the marker view position - [self removeConstraint:selectedMarkerView constraint:leftMarkerViewConstraint]; - - leftMarkerViewConstraint = [NSLayoutConstraint constraintWithItem:selectedMarkerView - attribute:NSLayoutAttributeLeading - relatedBy:NSLayoutRelationEqual - toItem:[sectionLabels objectAtIndex:selectedIndex] - attribute:NSLayoutAttributeLeading - multiplier:1.0 - constant:0]; - - [self addConstraint:selectedMarkerView constraint:leftMarkerViewConstraint]; + _selectedIndex = pos; [self displaySelectedViewController]; } From d445c1bc5e605220274e9ea867b6cf43e596ba44 Mon Sep 17 00:00:00 2001 From: giomfo Date: Tue, 15 Dec 2015 17:20:44 +0100 Subject: [PATCH 14/21] Chat Screen: Bug Fix: Pagination title is missing for incoming bubble --- ...omIncomingAttachmentWithPaginationTitleBubbleCell.m | 10 ++++++++++ .../RoomIncomingTextMsgWithPaginationTitleBubbleCell.m | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.m b/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.m index 479b542d5..a53445cc8 100644 --- a/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.m +++ b/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.m @@ -18,4 +18,14 @@ @implementation RoomIncomingAttachmentWithPaginationTitleBubbleCell +- (void)render:(MXKCellData *)cellData +{ + [super render:cellData]; + + if (self.bubbleData) + { + self.paginationLabel.text = [self.bubbleData.eventFormatter dateStringFromDate:self.bubbleData.date withTime:NO]; + } +} + @end diff --git a/Vector/Views/RoomBubbleList/RoomIncomingTextMsgWithPaginationTitleBubbleCell.m b/Vector/Views/RoomBubbleList/RoomIncomingTextMsgWithPaginationTitleBubbleCell.m index d7f0cc9ba..7393a02ce 100644 --- a/Vector/Views/RoomBubbleList/RoomIncomingTextMsgWithPaginationTitleBubbleCell.m +++ b/Vector/Views/RoomBubbleList/RoomIncomingTextMsgWithPaginationTitleBubbleCell.m @@ -18,4 +18,14 @@ @implementation RoomIncomingTextMsgWithPaginationTitleBubbleCell +- (void)render:(MXKCellData *)cellData +{ + [super render:cellData]; + + if (self.bubbleData) + { + self.paginationLabel.text = [self.bubbleData.eventFormatter dateStringFromDate:self.bubbleData.date withTime:NO]; + } +} + @end From 39e57199c50f70b2c613167b709a42fd5f22b457 Mon Sep 17 00:00:00 2001 From: manuroe Date: Tue, 15 Dec 2015 17:31:16 +0100 Subject: [PATCH 15/21] SegmentedVC improvement: Renamed displayedViewController to selectedViewController to be uniform with selectedIndex --- Vector/ViewController/HomeViewController.m | 12 ++--- .../ViewController/SegmentedViewController.h | 2 +- .../ViewController/SegmentedViewController.m | 47 +++++++++---------- 3 files changed, 30 insertions(+), 31 deletions(-) diff --git a/Vector/ViewController/HomeViewController.m b/Vector/ViewController/HomeViewController.m index 0ded141ba..319cd01bd 100644 --- a/Vector/ViewController/HomeViewController.m +++ b/Vector/ViewController/HomeViewController.m @@ -447,7 +447,7 @@ // Do it at the end of the animation when the tabs header of the SegmentedVC is hidden // so that the user cannot see the selection bar of this header moving self.selectedIndex = 0; - self.displayedViewController.view.hidden = NO; + self.selectedViewController.view.hidden = NO; }]; } else @@ -457,7 +457,7 @@ // Go back to the recents tab self.selectedIndex = 0; - self.displayedViewController.view.hidden = NO; + self.selectedViewController.view.hidden = NO; } } @@ -466,10 +466,10 @@ { if (searchBar.text.length) { - self.displayedViewController.view.hidden = NO; + self.selectedViewController.view.hidden = NO; // Forward the search request to the data source - if (self.displayedViewController == recentsViewController) + if (self.selectedViewController == recentsViewController) { [recentsDataSource searchWithPatterns:@[searchBar.text]]; } @@ -477,7 +477,7 @@ else { // Nothing to search = Show nothing - self.displayedViewController.view.hidden = YES; + self.selectedViewController.view.hidden = YES; } } @@ -485,7 +485,7 @@ - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { - if (self.displayedViewController == recentsViewController) + if (self.selectedViewController == recentsViewController) { // As the search is local, it can be updated on each text change [self updateSearch]; diff --git a/Vector/ViewController/SegmentedViewController.h b/Vector/ViewController/SegmentedViewController.h index d22cce7ba..93c6b36f2 100644 --- a/Vector/ViewController/SegmentedViewController.h +++ b/Vector/ViewController/SegmentedViewController.h @@ -40,7 +40,7 @@ limitations under the License. /** The view controller that currently has the focus. */ -@property (nonatomic, readonly) UIViewController *displayedViewController; +@property (nonatomic, readonly) UIViewController *selectedViewController; /** Returns the `UINib` object initialized for a `SegmentedViewController`. diff --git a/Vector/ViewController/SegmentedViewController.m b/Vector/ViewController/SegmentedViewController.m index f323a0b2a..0b5396185 100644 --- a/Vector/ViewController/SegmentedViewController.m +++ b/Vector/ViewController/SegmentedViewController.m @@ -43,7 +43,6 @@ @end @implementation SegmentedViewController -@synthesize displayedViewController; #pragma mark - Class methods @@ -77,7 +76,7 @@ if (_selectedIndex != selectedIndex) { _selectedIndex = selectedIndex; - [self displaySelectedViewController]; + [self display_selectedViewController]; } } @@ -243,7 +242,7 @@ [self addSelectedMarkerView]; - [self displaySelectedViewController]; + [self display_selectedViewController]; } - (void)addSelectedMarkerView @@ -303,11 +302,11 @@ } } -- (void)displaySelectedViewController +- (void)display_selectedViewController { - if (displayedViewController) + if (_selectedViewController) { - NSUInteger index = [viewControllers indexOfObject:displayedViewController]; + NSUInteger index = [viewControllers indexOfObject:_selectedViewController]; if (index != NSNotFound) { @@ -315,11 +314,11 @@ label.font = [UIFont systemFontOfSize:17]; } - [displayedViewController.view removeFromSuperview]; - [displayedViewController removeFromParentViewController]; + [_selectedViewController.view removeFromSuperview]; + [_selectedViewController removeFromParentViewController]; - [self removeConstraint:displayedViewController.view constraint:displayedVCWidthConstraint]; - [self removeConstraint:displayedViewController.view constraint:displayedVCHeightConstraint]; + [self removeConstraint:_selectedViewController.view constraint:displayedVCWidthConstraint]; + [self removeConstraint:_selectedViewController.view constraint:displayedVCHeightConstraint]; [self removeConstraint:self.viewControllerContainer constraint:displayedVCTopConstraint]; [self removeConstraint:self.viewControllerContainer constraint:displayedVCLeftConstraint]; } @@ -341,18 +340,18 @@ [self addConstraint:selectedMarkerView constraint:leftMarkerViewConstraint]; // Set the new selected view controller - displayedViewController = [viewControllers objectAtIndex:_selectedIndex]; + _selectedViewController = [viewControllers objectAtIndex:_selectedIndex]; // Make iOS invoke child viewWillAppear - [displayedViewController beginAppearanceTransition:YES animated:YES]; + [_selectedViewController beginAppearanceTransition:YES animated:YES]; - [self addChildViewController:displayedViewController]; + [self addChildViewController:_selectedViewController]; - [displayedViewController.view setTranslatesAutoresizingMaskIntoConstraints:NO]; - [self.viewControllerContainer addSubview:displayedViewController.view]; + [_selectedViewController.view setTranslatesAutoresizingMaskIntoConstraints:NO]; + [self.viewControllerContainer addSubview:_selectedViewController.view]; - displayedVCTopConstraint = [NSLayoutConstraint constraintWithItem:displayedViewController.view + displayedVCTopConstraint = [NSLayoutConstraint constraintWithItem:_selectedViewController.view attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.viewControllerContainer @@ -361,7 +360,7 @@ constant:0.0f]; [self addConstraint:self.viewControllerContainer constraint:displayedVCTopConstraint]; - displayedVCLeftConstraint = [NSLayoutConstraint constraintWithItem:displayedViewController.view + displayedVCLeftConstraint = [NSLayoutConstraint constraintWithItem:_selectedViewController.view attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.viewControllerContainer @@ -371,26 +370,26 @@ [self addConstraint:self.viewControllerContainer constraint:displayedVCLeftConstraint]; - displayedVCWidthConstraint = [NSLayoutConstraint constraintWithItem:displayedViewController.view + displayedVCWidthConstraint = [NSLayoutConstraint constraintWithItem:_selectedViewController.view attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.viewControllerContainer attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0]; - [self addConstraint:displayedViewController.view constraint:displayedVCWidthConstraint]; + [self addConstraint:_selectedViewController.view constraint:displayedVCWidthConstraint]; - displayedVCHeightConstraint = [NSLayoutConstraint constraintWithItem:displayedViewController.view + displayedVCHeightConstraint = [NSLayoutConstraint constraintWithItem:_selectedViewController.view attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.viewControllerContainer attribute:NSLayoutAttributeHeight multiplier:1.0 constant:0]; - [self addConstraint:displayedViewController.view constraint:displayedVCHeightConstraint]; + [self addConstraint:_selectedViewController.view constraint:displayedVCHeightConstraint]; - [displayedViewController didMoveToParentViewController:self]; - [displayedViewController endAppearanceTransition]; + [_selectedViewController didMoveToParentViewController:self]; + [_selectedViewController endAppearanceTransition]; // refresh the navbar background color // to display if the homeserver is reachable. @@ -409,7 +408,7 @@ // update the selected index _selectedIndex = pos; - [self displaySelectedViewController]; + [self display_selectedViewController]; } } From 7fdd6ed6e6cd8a0f71e8511bda01e01ae8312d11 Mon Sep 17 00:00:00 2001 From: manuroe Date: Tue, 15 Dec 2015 17:43:32 +0100 Subject: [PATCH 16/21] SegmentedVC improvement: Improve animation when quitting searh in HomeVC --- Vector/ViewController/HomeViewController.m | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Vector/ViewController/HomeViewController.m b/Vector/ViewController/HomeViewController.m index 319cd01bd..510c474b4 100644 --- a/Vector/ViewController/HomeViewController.m +++ b/Vector/ViewController/HomeViewController.m @@ -436,6 +436,13 @@ // Hide the tabs header if (animated) { + // If the currently selected tab is the recents, force to show it right now + // The transition looks smoother + if (self.selectedViewController.view.hidden == YES && self.selectedViewController == recentsViewController) + { + self.selectedViewController.view.hidden = NO; + } + [UIView animateWithDuration:.3 delay:0 options:UIViewAnimationOptionBeginFromCurrentState | UIViewAnimationOptionCurveEaseIn animations:^{ From 09623a5d479ca602830a1b120126675521c3ec54 Mon Sep 17 00:00:00 2001 From: giomfo Date: Tue, 15 Dec 2015 17:45:16 +0100 Subject: [PATCH 17/21] Chat screen: implementation Handle read receipt display --- .../MXKRoomBubbleTableViewCell+Vector.m | 78 +++++++-- Vector/Model/Room/RoomBubbleCellData.h | 13 ++ Vector/Model/Room/RoomBubbleCellData.m | 149 ++++++++++++++++- Vector/Model/Room/RoomDataSource.m | 154 +++++++++++++++++- 4 files changed, 372 insertions(+), 22 deletions(-) diff --git a/Vector/Categories/MXKRoomBubbleTableViewCell+Vector.m b/Vector/Categories/MXKRoomBubbleTableViewCell+Vector.m index b4ab4fa78..389c44ae5 100644 --- a/Vector/Categories/MXKRoomBubbleTableViewCell+Vector.m +++ b/Vector/Categories/MXKRoomBubbleTableViewCell+Vector.m @@ -16,22 +16,14 @@ #import "MXKRoomBubbleTableViewCell+Vector.h" +#import "RoomBubbleCellData.h" + #import @implementation MXKRoomBubbleTableViewCell (Vector) - (void)addTimestampLabelForComponent:(NSUInteger)componentIndex { - // FIXME GFO uncomment the following block -// // Ensure that older subviews are removed -// // They should be (they are removed when the is not anymore used). -// // But, it seems that is not always true. -// NSArray* views = [self.bubbleInfoContainer subviews]; -// for (UIView* view in views) -// { -// [view removeFromSuperview]; -// } - self.bubbleInfoContainer.hidden = NO; MXKRoomBubbleComponent *component; @@ -49,6 +41,7 @@ dateTimeLabel.textColor = [UIColor lightGrayColor]; dateTimeLabel.font = [UIFont systemFontOfSize:11]; dateTimeLabel.adjustsFontSizeToFitWidth = NO; + dateTimeLabel.tag = componentIndex; [dateTimeLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; [self.bubbleInfoContainer addSubview:dateTimeLabel]; @@ -120,16 +113,52 @@ component = self.bubbleData.bubbleComponents[componentIndex]; [self highlightTextMessageForEvent:component.event.eventId]; + + // Blur timestamp labels which are not related to the selected component (if any) + for (UIView* view in self.bubbleInfoContainer.subviews) + { + // Note dateTime label tag is equal to the index of the related component. + if (view.tag != componentIndex) + { + view.alpha = 0.2; + } + } + + // Blur read receipts which are not related to the selected component (if any) + for (UIView* view in self.bubbleOverlayContainer.subviews) + { + // Note read receipt container tag is equal to the index of the related component. + if (view.tag != componentIndex) + { + view.alpha = 0.2; + } + } } } - (void)unselectComponent { - // FIXME GFO: handle the case of the last message thanks to showDateTime flag + // Remove all timestamps by default [self removeTimestampLabels]; + // Restore timestamp for the last message if the current bubble is the last one + if ([self.bubbleData isKindOfClass:RoomBubbleCellData.class]) + { + RoomBubbleCellData *cellData = (RoomBubbleCellData*)self.bubbleData; + if (cellData.isLastBubble && cellData.bubbleComponents.count) + { + [self addTimestampLabelForComponent:cellData.bubbleComponents.count - 1]; + } + } + // Restore original string [self highlightTextMessageForEvent:nil]; + + // Restore read receipts display + for (UIView* view in self.bubbleOverlayContainer.subviews) + { + view.alpha = 1; + } } - (void)setBlurred:(BOOL)blurred @@ -138,13 +167,36 @@ if (blurred) { + self.bubbleOverlayContainer.hidden = NO; self.bubbleOverlayContainer.backgroundColor = [UIColor whiteColor]; self.bubbleOverlayContainer.alpha = 0.8; - self.bubbleOverlayContainer.hidden = NO; + self.bubbleOverlayContainer.userInteractionEnabled = YES; + + // Blur read receipts if any + for (UIView* view in self.bubbleOverlayContainer.subviews) + { + view.alpha = 0.2; + } } else { - self.bubbleOverlayContainer.hidden = YES; + if (self.bubbleOverlayContainer.subviews.count) + { + // Keep this overlay visible, adjust background color + self.bubbleOverlayContainer.backgroundColor = [UIColor clearColor]; + self.bubbleOverlayContainer.alpha = 1; + self.bubbleOverlayContainer.userInteractionEnabled = NO; + + // Restore read receipts display + for (UIView* view in self.bubbleOverlayContainer.subviews) + { + view.alpha = 1; + } + } + else + { + self.bubbleOverlayContainer.hidden = YES; + } } } diff --git a/Vector/Model/Room/RoomBubbleCellData.h b/Vector/Model/Room/RoomBubbleCellData.h index e8d9bfe58..fbf77f516 100644 --- a/Vector/Model/Room/RoomBubbleCellData.h +++ b/Vector/Model/Room/RoomBubbleCellData.h @@ -21,4 +21,17 @@ */ @interface RoomBubbleCellData : MXKRoomBubbleCellDataWithAppendingMode +/** + A Boolean value that determines whether this bubble is the current last one. + Used to keep displaying the timestamp of the last message. + + CAUTION: This property is presently set during bubble rendering in order to be used during bubble cell life. + */ +@property(nonatomic) BOOL isLastBubble; + +/** + A Boolean value that determines whether some read receipts are currently displayed in this bubble. + */ +@property(nonatomic) BOOL hasReadReceipts; + @end diff --git a/Vector/Model/Room/RoomBubbleCellData.m b/Vector/Model/Room/RoomBubbleCellData.m index ff3815101..58a513747 100644 --- a/Vector/Model/Room/RoomBubbleCellData.m +++ b/Vector/Model/Room/RoomBubbleCellData.m @@ -20,9 +20,13 @@ #import "AvatarGenerator.h" +#define VECTOR_ROOM_BUBBLE_CELL_DATA_TEXTVIEW_MARGIN 10 + +static NSAttributedString *readReceiptVerticalWhitespace = nil; + @implementation RoomBubbleCellData -#pragma mark - +#pragma mark - Override MXKRoomBubbleCellData - (instancetype)initWithEvent:(MXEvent *)event andRoomState:(MXRoomState *)roomState andRoomDataSource:(MXKRoomDataSource *)roomDataSource2 { @@ -30,8 +34,22 @@ if (self) { - // use the vector style placeholder + // Use the vector style placeholder self.senderAvatarPlaceholder = [AvatarGenerator generateRoomMemberAvatar:self.senderId displayName:self.senderDisplayName]; + + // Check whether some read receipts are linked to this event + _hasReadReceipts = NO; + if ([roomDataSource.room getEventReceipts:event.eventId sorted:NO]) + { + _hasReadReceipts = YES; + + // Update attributed string by inserting vertical whitespace at the end to display read receipts + NSMutableAttributedString *updatedAttributedTextMsg = [[NSMutableAttributedString alloc] initWithAttributedString:attributedTextMessage]; + [updatedAttributedTextMsg appendAttributedString:[RoomBubbleCellData readReceiptVerticalWhitespace]]; + + // Update the current text message by reseting content size + self.attributedTextMessage = updatedAttributedTextMsg; + } } return self; @@ -71,10 +89,137 @@ [customAttributedTextMsg appendAttributedString:[MXKRoomBubbleCellDataWithAppendingMode messageSeparator]]; [customAttributedTextMsg appendAttributedString:componentString]; } + + // Add vertical whitespace in case of read receipts + if ([roomDataSource.room getEventReceipts:component.event.eventId sorted:NO]) + { + _hasReadReceipts = YES; + [customAttributedTextMsg appendAttributedString:[RoomBubbleCellData readReceiptVerticalWhitespace]]; + } } } return customAttributedTextMsg; } +- (void)prepareBubbleComponentsPosition +{ + if (shouldUpdateComponentsPosition) + { + _hasReadReceipts = NO; + + @synchronized(bubbleComponents) + { + // Check whether there is at least one component. + if (bubbleComponents.count) + { + // Set position of the first component + MXKRoomBubbleComponent *firstComponent = [bubbleComponents firstObject]; + + CGFloat positionY = (self.attachment == nil || self.attachment.type == MXKAttachmentTypeFile) ? VECTOR_ROOM_BUBBLE_CELL_DATA_TEXTVIEW_MARGIN : 0; + firstComponent.position = CGPointMake(0, positionY); + + _hasReadReceipts = ([roomDataSource.room getEventReceipts:firstComponent.event.eventId sorted:NO] != nil); + + // Check whether the position of other components need to be refreshed + if (!self.attachment && bubbleComponents.count > 1) + { + // Compute height of the first text component + NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithAttributedString:firstComponent.attributedTextMessage]; + + // Vertical whitescape is added in case of read receipts + if (_hasReadReceipts) + { + [attributedString appendAttributedString:[RoomBubbleCellData readReceiptVerticalWhitespace]]; + } + + + CGFloat componentHeight = [self rawTextHeight:attributedString]; + + // Set position for each other component + CGFloat positionY = firstComponent.position.y; + CGFloat cumulatedHeight = 0; + + for (NSUInteger index = 1; index < bubbleComponents.count; index++) + { + cumulatedHeight += componentHeight; + positionY += componentHeight; + + MXKRoomBubbleComponent *component = [bubbleComponents objectAtIndex:index]; + component.position = CGPointMake(0, positionY); + + // Compute height of the current component + [attributedString appendAttributedString:[MXKRoomBubbleCellDataWithAppendingMode messageSeparator]]; + [attributedString appendAttributedString:component.attributedTextMessage]; + + // Add vertical whitespace in case of read receipts + if ([roomDataSource.room getEventReceipts:component.event.eventId sorted:NO]) + { + _hasReadReceipts = YES; + [attributedString appendAttributedString:[RoomBubbleCellData readReceiptVerticalWhitespace]]; + } + + componentHeight = [self rawTextHeight:attributedString] - cumulatedHeight; + } + } + } + } + + shouldUpdateComponentsPosition = NO; + } +} + +- (NSAttributedString*)attributedTextMessage +{ + @synchronized(bubbleComponents) + { + if (!attributedTextMessage.length && bubbleComponents.count) + { + _hasReadReceipts = NO; + + // Create attributed string + NSMutableAttributedString *currentAttributedTextMsg; + + for (MXKRoomBubbleComponent* component in bubbleComponents) + { + if (!currentAttributedTextMsg) + { + currentAttributedTextMsg = [[NSMutableAttributedString alloc] initWithAttributedString:component.attributedTextMessage]; + } + else + { + // Append attributed text + [currentAttributedTextMsg appendAttributedString:[MXKRoomBubbleCellDataWithAppendingMode messageSeparator]]; + [currentAttributedTextMsg appendAttributedString:component.attributedTextMessage]; + } + + // Add vertical whitespace in case of read receipts + if ([roomDataSource.room getEventReceipts:component.event.eventId sorted:NO]) + { + _hasReadReceipts = YES; + [currentAttributedTextMsg appendAttributedString:[RoomBubbleCellData readReceiptVerticalWhitespace]]; + } + } + attributedTextMessage = currentAttributedTextMsg; + } + } + + return attributedTextMessage; +} + +#pragma mark - + ++ (NSAttributedString *)readReceiptVerticalWhitespace +{ + @synchronized(self) + { + if (readReceiptVerticalWhitespace == nil) + { + readReceiptVerticalWhitespace = [[NSAttributedString alloc] initWithString:@"\n\n" attributes:@{NSForegroundColorAttributeName : [UIColor blackColor], + NSFontAttributeName: [UIFont systemFontOfSize:4]}]; + } + } + return readReceiptVerticalWhitespace; +} + @end diff --git a/Vector/Model/Room/RoomDataSource.m b/Vector/Model/Room/RoomDataSource.m index a80a03bef..2a9d4173b 100644 --- a/Vector/Model/Room/RoomDataSource.m +++ b/Vector/Model/Room/RoomDataSource.m @@ -20,6 +20,7 @@ #import "RoomBubbleCellData.h" #import "MXKRoomBubbleTableViewCell+Vector.h" +#import "AvatarGenerator.h" @implementation RoomDataSource @@ -36,8 +37,7 @@ // Handle timestamp and read receips display at Vector app level (see [tableView: cellForRowAtIndexPath:]) self.useCustomDateTimeLabel = YES; - //FIXME GFO: disable default receipts display - //self.useCustomReceipts = YES; + self.useCustomReceipts = YES; // TODO custom here self.eventsFilterForMessages according to Vector requirements @@ -47,6 +47,34 @@ return self; } +- (void)didReceiveReceiptEvent:(MXEvent *)receiptEvent roomState:(MXRoomState *)roomState +{ + // Override this callback to force rendering of each cell with read receipts information. + @synchronized(bubbles) + { + for (RoomBubbleCellData *cellData in bubbles) + { + if (cellData.hasReadReceipts) + { + // Recompute the text message layout + cellData.attributedTextMessage = nil; + } + } + } + + NSArray *readEventIds = receiptEvent.readReceiptEventIds; + for (NSString* eventId in readEventIds) + { + id bubbleData = [self cellDataOfEventWithEventId:eventId]; + // Recompute the text message layout + bubbleData.attributedTextMessage = nil; + } + + + // Let super handle this receipt + [super didReceiveReceiptEvent:receiptEvent roomState:roomState]; +} + - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [super tableView:tableView cellForRowAtIndexPath:indexPath]; @@ -55,13 +83,127 @@ if ([cell isKindOfClass:MXKRoomBubbleTableViewCell.class]) { MXKRoomBubbleTableViewCell *bubbleCell = (MXKRoomBubbleTableViewCell*)cell; + RoomBubbleCellData *cellData = (RoomBubbleCellData*)bubbleCell.bubbleData; + + // Check whether this bubble is the last one + cellData.isLastBubble = (indexPath.row == [tableView numberOfRowsInSection:0] - 1); // Display timestamp for the last message. - if (indexPath.row == [tableView numberOfRowsInSection:0] - 1) + if (cellData.isLastBubble) { - if (bubbleCell.bubbleData.bubbleComponents.count) + if (cellData.bubbleComponents.count) { - [bubbleCell addTimestampLabelForComponent:bubbleCell.bubbleData.bubbleComponents.count - 1]; + [bubbleCell addTimestampLabelForComponent:cellData.bubbleComponents.count - 1]; + } + } + + // Handle read receipts display. + if (cellData.hasReadReceipts && self.showBubbleReceipts) + { + // Read receipts container are inserted here on the right side into the overlay container. + // Some vertical whitespaces are added in message text view (see RoomBubbleCellData class) to insert correctly multiple receipts. + bubbleCell.bubbleOverlayContainer.backgroundColor = [UIColor clearColor]; + bubbleCell.bubbleOverlayContainer.alpha = 1; + bubbleCell.bubbleOverlayContainer.userInteractionEnabled = NO; + bubbleCell.bubbleOverlayContainer.hidden = NO; + + NSInteger index = cellData.bubbleComponents.count; + CGFloat bottomPositionY = bubbleCell.frame.size.height; + while (index--) + { + MXKRoomBubbleComponent *component = cellData.bubbleComponents[index]; + + if (component.event.mxkState != MXKEventStateSendingFailed) + { + // Get the events receipts by ignoring the current user receipt. + NSArray* receipts = [self.room getEventReceipts:component.event.eventId sorted:YES]; + NSMutableArray *roomMembers; + NSMutableArray *placeholders; + + // Check whether some receipts are found + if (receipts.count) + { + // Retrieve the corresponding room members + roomMembers = [[NSMutableArray alloc] initWithCapacity:receipts.count]; + placeholders = [[NSMutableArray alloc] initWithCapacity:receipts.count]; + + for (MXReceiptData* data in receipts) + { + MXRoomMember * roomMember = [self.room.state memberWithUserId:data.userId]; + if (roomMember) + { + [roomMembers addObject:roomMember]; + [placeholders addObject:[AvatarGenerator generateRoomMemberAvatar:roomMember.userId displayName:roomMember.displayname]]; + } + } + } + + // Check whether some receipts are found + if (roomMembers.count) + { + // Define the read receipts container, positioned on the right border of the bubble cell (Note the right margin 6 pts). + MXKReceiptSendersContainer* avatarsContainer = [[MXKReceiptSendersContainer alloc] initWithFrame:CGRectMake(bubbleCell.frame.size.width - 156, bottomPositionY - 12, 150, 12) andRestClient:self.mxSession.matrixRestClient]; + + // Custom avatar display + avatarsContainer.maxDisplayedAvatars = 5; + avatarsContainer.avatarMargin = 6; + + // Set the container tag to be able to retrieve read receipts container from component index (see component selection in MXKRoomBubbleTableViewCell (Vector) category). + avatarsContainer.tag = index; + + [avatarsContainer refreshReceiptSenders:roomMembers withPlaceHolders:placeholders andAlignment:ReadReceiptAlignmentRight]; + + avatarsContainer.translatesAutoresizingMaskIntoConstraints = NO; + [bubbleCell.bubbleOverlayContainer addSubview:avatarsContainer]; + + // Force receipts container size + NSLayoutConstraint *widthConstraint = [NSLayoutConstraint constraintWithItem:avatarsContainer + attribute:NSLayoutAttributeWidth + relatedBy:NSLayoutRelationEqual + toItem:nil + attribute:NSLayoutAttributeNotAnAttribute + multiplier:1.0 + constant:150]; + NSLayoutConstraint *heightConstraint = [NSLayoutConstraint constraintWithItem:avatarsContainer + attribute:NSLayoutAttributeHeight + relatedBy:NSLayoutRelationEqual + toItem:nil + attribute:NSLayoutAttributeNotAnAttribute + multiplier:1.0 + constant:12]; + + // Force receipts container position + NSLayoutConstraint *rightConstraint = [NSLayoutConstraint constraintWithItem:avatarsContainer + attribute:NSLayoutAttributeTrailing + relatedBy:NSLayoutRelationEqual + toItem:bubbleCell.bubbleOverlayContainer + attribute:NSLayoutAttributeTrailing + multiplier:1.0 + constant:-6]; + NSLayoutConstraint *topConstraint = [NSLayoutConstraint constraintWithItem:avatarsContainer + attribute:NSLayoutAttributeTop + relatedBy:NSLayoutRelationEqual + toItem:bubbleCell.bubbleOverlayContainer + attribute:NSLayoutAttributeTop + multiplier:1.0 + constant:bottomPositionY - 12]; + + if ([NSLayoutConstraint respondsToSelector:@selector(activateConstraints:)]) + { + [NSLayoutConstraint activateConstraints:@[widthConstraint, heightConstraint, topConstraint, rightConstraint]]; + } + else + { + [avatarsContainer addConstraint:heightConstraint]; + [avatarsContainer addConstraint:widthConstraint]; + [bubbleCell.bubbleOverlayContainer addConstraint:topConstraint]; + [bubbleCell.bubbleOverlayContainer addConstraint:rightConstraint]; + } + } + } + + // Prepare the bottom position for the next read receipt container (if any) + bottomPositionY = bubbleCell.msgTextViewTopConstraint.constant + component.position.y; } } @@ -78,8 +220,6 @@ else { // Highlight the selected event in the displayed message - MXKRoomBubbleCellData *cellData = (MXKRoomBubbleCellData*)bubbleCell.bubbleData; - for (NSUInteger index = 0; index < cellData.bubbleComponents.count; index ++) { MXKRoomBubbleComponent *component = cellData.bubbleComponents[index]; From d6e66cb0e86f0c75334ae81e9aecbc81612ad21c Mon Sep 17 00:00:00 2001 From: manuroe Date: Tue, 15 Dec 2015 18:22:38 +0100 Subject: [PATCH 18/21] SegmentedVC improvement: Oops. Fixed buggy renaming. --- Vector/ViewController/SegmentedViewController.m | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Vector/ViewController/SegmentedViewController.m b/Vector/ViewController/SegmentedViewController.m index 0b5396185..7662791aa 100644 --- a/Vector/ViewController/SegmentedViewController.m +++ b/Vector/ViewController/SegmentedViewController.m @@ -76,7 +76,7 @@ if (_selectedIndex != selectedIndex) { _selectedIndex = selectedIndex; - [self display_selectedViewController]; + [self displaySelectedViewController]; } } @@ -242,7 +242,7 @@ [self addSelectedMarkerView]; - [self display_selectedViewController]; + [self displaySelectedViewController]; } - (void)addSelectedMarkerView @@ -302,7 +302,7 @@ } } -- (void)display_selectedViewController +- (void)displaySelectedViewController { if (_selectedViewController) { @@ -408,7 +408,7 @@ // update the selected index _selectedIndex = pos; - [self display_selectedViewController]; + [self displaySelectedViewController]; } } From 4bb827480af9f010eb012315878a573de7c684de Mon Sep 17 00:00:00 2001 From: yannick Date: Wed, 16 Dec 2015 08:59:40 +0100 Subject: [PATCH 19/21] recents_category_drag_drop Updates after internal reviews --- Vector/Model/RoomList/RecentsDataSource.h | 4 +-- Vector/Model/RoomList/RecentsDataSource.m | 34 +++++++++++-------- Vector/ViewController/RecentsViewController.m | 16 ++++----- 3 files changed, 29 insertions(+), 25 deletions(-) diff --git a/Vector/Model/RoomList/RecentsDataSource.h b/Vector/Model/RoomList/RecentsDataSource.h index 26f562824..6f63aa49d 100644 --- a/Vector/Model/RoomList/RecentsDataSource.h +++ b/Vector/Model/RoomList/RecentsDataSource.h @@ -41,12 +41,12 @@ There is a pending drag and drop cell. It defines its path of the destination cell. */ -@property (nonatomic, copy) NSIndexPath* movingCellIndexPath; +@property (nonatomic, copy) NSIndexPath* droppingCellIndexPath; /** The movingCellBackgroundImage; */ -@property (nonatomic) UIImageView* movingCellBackGroundView; +@property (nonatomic) UIImageView* droppingCellBackGroundView; /** Return the header height from the section. diff --git a/Vector/Model/RoomList/RecentsDataSource.m b/Vector/Model/RoomList/RecentsDataSource.m index 9cc479d50..56ddfbffa 100644 --- a/Vector/Model/RoomList/RecentsDataSource.m +++ b/Vector/Model/RoomList/RecentsDataSource.m @@ -41,7 +41,7 @@ @implementation RecentsDataSource @synthesize onRoomInvitationReject, onRoomInvitationAccept; -@synthesize hiddenCellIndexPath, movingCellIndexPath, movingCellBackGroundView; +@synthesize hiddenCellIndexPath, droppingCellIndexPath, droppingCellBackGroundView; - (instancetype)init { @@ -111,7 +111,8 @@ - (void)refreshRoomsSectionsAndReload { - if (!self.movingCellIndexPath) + // Refresh is disabled during drag&drop animation" + if (!self.droppingCellIndexPath) { [self refreshRoomsSections]; @@ -157,7 +158,7 @@ - (BOOL)isMovingCellSection:(NSInteger)section { - return self.movingCellIndexPath && (self.movingCellIndexPath.section == section); + return self.droppingCellIndexPath && (self.droppingCellIndexPath.section == section); } - (BOOL)isHiddenCellSection:(NSInteger)section @@ -240,34 +241,37 @@ { NSIndexPath* indexPath = anIndexPath; - if (self.movingCellIndexPath && (self.movingCellIndexPath.section == indexPath.section)) + if (self.droppingCellIndexPath && (self.droppingCellIndexPath.section == indexPath.section)) { - if ([anIndexPath isEqual:self.movingCellIndexPath]) + if ([anIndexPath isEqual:self.droppingCellIndexPath]) { static NSString* cellIdentifier = @"VectorRecentsMovingCell"; UITableViewCell* cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"VectorRecentsMovingCell"]; + // add an imageview of the cell. + // The image is a shot of the genuine cell. + // Thus, this cell has the same look as the genuine cell withourt computing it. UIImageView* imageView = [cell viewWithTag:[cellIdentifier hash]]; - if (!imageView || (imageView != self.movingCellBackGroundView)) + if (!imageView || (imageView != self.droppingCellBackGroundView)) { if (imageView) { [imageView removeFromSuperview]; } - self.movingCellBackGroundView.tag = [cellIdentifier hash]; - [cell.contentView addSubview:self.movingCellBackGroundView]; + self.droppingCellBackGroundView.tag = [cellIdentifier hash]; + [cell.contentView addSubview:self.droppingCellBackGroundView]; } - self.movingCellBackGroundView.frame = self.movingCellBackGroundView.frame; + self.droppingCellBackGroundView.frame = self.droppingCellBackGroundView.frame; cell.contentView.backgroundColor = [UIColor clearColor]; cell.backgroundColor = [UIColor clearColor]; return cell; } - if (anIndexPath.row > self.movingCellIndexPath.row) + if (anIndexPath.row > self.droppingCellIndexPath.row) { indexPath = [NSIndexPath indexPathForRow:anIndexPath.row-1 inSection:anIndexPath.section]; } @@ -310,9 +314,9 @@ NSInteger row = anIndexPath.row; NSInteger section = anIndexPath.section; - if (self.movingCellIndexPath && (self.movingCellIndexPath.section == section)) + if (self.droppingCellIndexPath && (self.droppingCellIndexPath.section == section)) { - if (anIndexPath.row > self.movingCellIndexPath.row) + if (anIndexPath.row > self.droppingCellIndexPath.row) { row = anIndexPath.row - 1; } @@ -340,9 +344,9 @@ - (CGFloat)cellHeightAtIndexPath:(NSIndexPath *)indexPath { - if (self.movingCellIndexPath && [indexPath isEqual:self.movingCellIndexPath]) + if (self.droppingCellIndexPath && [indexPath isEqual:self.droppingCellIndexPath]) { - return self.movingCellBackGroundView.frame.size.height; + return self.droppingCellBackGroundView.frame.size.height; } // Override this method here to use our own cellDataAtIndexPath @@ -541,7 +545,7 @@ - (void)dataSource:(MXKDataSource*)dataSource didCellChange:(id)changes { // lock any refresh until the - if (self.movingCellIndexPath) + if (self.droppingCellIndexPath) { return; } diff --git a/Vector/ViewController/RecentsViewController.m b/Vector/ViewController/RecentsViewController.m index 65d12a197..012949138 100644 --- a/Vector/ViewController/RecentsViewController.m +++ b/Vector/ViewController/RecentsViewController.m @@ -481,7 +481,7 @@ static NSMutableDictionary* backgroundByImageNameDict; movingRoom = nil; lastPotentialCellPath = nil; - ((RecentsDataSource*)self.dataSource).movingCellIndexPath = nil; + ((RecentsDataSource*)self.dataSource).droppingCellIndexPath = nil; ((RecentsDataSource*)self.dataSource).hiddenCellIndexPath = nil; [self.activityIndicator stopAnimating]; @@ -532,7 +532,7 @@ static NSMutableDictionary* backgroundByImageNameDict; UIGraphicsEndImageContext(); cellSnapshot = [[UIImageView alloc] initWithImage:image]; - recentsDataSource.movingCellBackGroundView = [[UIImageView alloc] initWithImage:image]; + recentsDataSource.droppingCellBackGroundView = [[UIImageView alloc] initWithImage:image]; // display the selected cell over the tableview CGPoint center = cell.center; @@ -546,7 +546,7 @@ static NSMutableDictionary* backgroundByImageNameDict; cell.backgroundColor = [UIColor redColor]; lastPotentialCellPath = indexPath; - recentsDataSource.movingCellIndexPath = indexPath; + recentsDataSource.droppingCellIndexPath = indexPath; movingCellPath = indexPath; recentsDataSource.hiddenCellIndexPath = movingCellPath; @@ -617,7 +617,7 @@ static NSMutableDictionary* backgroundByImageNameDict; if ([recentsDataSource canCellMoveFrom:movingCellPath to:indexPath]) { [self.recentsTableView beginUpdates]; - if (recentsDataSource.movingCellIndexPath && recentsDataSource.hiddenCellIndexPath) + if (recentsDataSource.droppingCellIndexPath && recentsDataSource.hiddenCellIndexPath) { [self.recentsTableView moveRowAtIndexPath:lastPotentialCellPath toIndexPath:indexPath]; } @@ -627,20 +627,20 @@ static NSMutableDictionary* backgroundByImageNameDict; [self.recentsTableView deleteRowsAtIndexPaths:@[movingCellPath] withRowAnimation:UITableViewRowAnimationNone]; } recentsDataSource.hiddenCellIndexPath = movingCellPath; - recentsDataSource.movingCellIndexPath = indexPath; + recentsDataSource.droppingCellIndexPath = indexPath; [self.recentsTableView endUpdates]; } // the cell cannot be moved - else if (recentsDataSource.movingCellIndexPath) + else if (recentsDataSource.droppingCellIndexPath) { - NSIndexPath* pathToDelete = recentsDataSource.movingCellIndexPath; + NSIndexPath* pathToDelete = recentsDataSource.droppingCellIndexPath; NSIndexPath* pathToAdd = recentsDataSource.hiddenCellIndexPath; // remove it [self.recentsTableView beginUpdates]; [self.recentsTableView deleteRowsAtIndexPaths:@[pathToDelete] withRowAnimation:UITableViewRowAnimationNone]; [self.recentsTableView insertRowsAtIndexPaths:@[pathToAdd] withRowAnimation:UITableViewRowAnimationNone]; - recentsDataSource.movingCellIndexPath = nil; + recentsDataSource.droppingCellIndexPath = nil; recentsDataSource.hiddenCellIndexPath = nil; [self.recentsTableView endUpdates]; } From a321ffc9f757aa4c59bde1766117418a31b99657 Mon Sep 17 00:00:00 2001 From: giomfo Date: Wed, 16 Dec 2015 09:52:28 +0100 Subject: [PATCH 20/21] Update Vector assets --- Vector/Assets/Images/camera_capture.png | Bin 2147 -> 3619 bytes Vector/Assets/Images/camera_capture@2x.png | Bin 3619 -> 9722 bytes Vector/Assets/Images/camera_capture@3x.png | Bin 7576 -> 15365 bytes Vector/Assets/Images/camera_switch.png | Bin 507 -> 1029 bytes Vector/Assets/Images/camera_switch@2x.png | Bin 1029 -> 2162 bytes Vector/Assets/Images/camera_switch@3x.png | Bin 1560 -> 3194 bytes Vector/Assets/Images/create_room.png | Bin 765 -> 1479 bytes Vector/Assets/Images/create_room@2x.png | Bin 1479 -> 3119 bytes Vector/Assets/Images/create_room@3x.png | Bin 2321 -> 5157 bytes Vector/Assets/Images/favorite_icon.png | Bin 656 -> 1256 bytes Vector/Assets/Images/favorite_icon@2x.png | Bin 1256 -> 2946 bytes Vector/Assets/Images/favorite_icon@3x.png | Bin 2105 -> 4672 bytes Vector/Assets/Images/low_priority_icon.png | Bin 373 -> 601 bytes Vector/Assets/Images/low_priority_icon@2x.png | Bin 564 -> 1116 bytes Vector/Assets/Images/low_priority_icon@3x.png | Bin 873 -> 1924 bytes Vector/Assets/Images/mute_icon.png | Bin 552 -> 1102 bytes Vector/Assets/Images/mute_icon@2x.png | Bin 1102 -> 2177 bytes Vector/Assets/Images/mute_icon@3x.png | Bin 1684 -> 3374 bytes Vector/Assets/Images/placeholder.png | Bin 411 -> 838 bytes Vector/Assets/Images/placeholder@2x.png | Bin 838 -> 1779 bytes Vector/Assets/Images/placeholder@3x.png | Bin 1351 -> 3218 bytes Vector/Assets/Images/remove_icon.png | Bin 310 -> 419 bytes Vector/Assets/Images/remove_icon@2x.png | Bin 419 -> 697 bytes Vector/Assets/Images/remove_icon@3x.png | Bin 575 -> 860 bytes Vector/Assets/Images/search_bg.png | Bin 7006 -> 17008 bytes Vector/Assets/Images/search_bg@2x.png | Bin 17008 -> 40774 bytes Vector/Assets/Images/search_bg@3x.png | Bin 28170 -> 67320 bytes Vector/Assets/Images/search_icon.png | Bin 292 -> 657 bytes Vector/Assets/Images/search_icon@2x.png | Bin 644 -> 1560 bytes Vector/Assets/Images/search_icon@3x.png | Bin 1060 -> 2369 bytes Vector/Assets/Images/selection_tick.png | Bin 301 -> 621 bytes Vector/Assets/Images/selection_tick@2x.png | Bin 621 -> 1112 bytes Vector/Assets/Images/selection_tick@3x.png | Bin 903 -> 1695 bytes Vector/Assets/Images/selection_untick.png | Bin 329 -> 724 bytes Vector/Assets/Images/selection_untick@2x.png | Bin 724 -> 1436 bytes Vector/Assets/Images/selection_untick@3x.png | Bin 1055 -> 2296 bytes Vector/Assets/Images/settings_icon.png | Bin 1700 -> 1173 bytes Vector/Assets/Images/settings_icon@2x.png | Bin 3881 -> 2539 bytes Vector/Assets/Images/settings_icon@3x.png | Bin 0 -> 4035 bytes Vector/Assets/Images/typing.png | Bin 479 -> 834 bytes Vector/Assets/Images/typing@2x.png | Bin 834 -> 1704 bytes Vector/Assets/Images/typing@3x.png | Bin 1306 -> 2722 bytes Vector/Assets/Images/upload_icon.png | Bin 306 -> 554 bytes Vector/Assets/Images/upload_icon@2x.png | Bin 554 -> 1182 bytes Vector/Assets/Images/upload_icon@3x.png | Bin 848 -> 1900 bytes Vector/Assets/Images/voice_call_icon.png | Bin 452 -> 1021 bytes Vector/Assets/Images/voice_call_icon@2x.png | Bin 1021 -> 2447 bytes Vector/Assets/Images/voice_call_icon@3x.png | Bin 1723 -> 3826 bytes 48 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Vector/Assets/Images/settings_icon@3x.png diff --git a/Vector/Assets/Images/camera_capture.png b/Vector/Assets/Images/camera_capture.png index 9e7ee340912377c958932d8ea490c9f318db77b4..d117d96b5c0231f0dc4f5276951fff9cb037f8cf 100644 GIT binary patch literal 3619 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 literal 3619 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 p#g<<%SQ3KIkV>`;>BoPm>i91fpu3=nw*e zw^Le7Sj`>s)CbXR)^dNJm;W4B)XqFV$3^n?%)M7h}C$hZNw(MYv4&p2iw!9LS)-oT)7kU<*1L`A5aM_TC&Zjtm4c$?Az}BB&ufw^sWu!*v!6XU3gQo{c?K%H@%Mqs@eIx` z^kLuwD;J^*cQ=l&kcoBnwENrUQF_Yrwg$7ujy`5A;2bAy(Twk6-+cA%XGW_103o(` zDhwzU!EVMXVD#_e97PMSupK!}zcY$& z!t9=}-0If;;@$5dbU6Hur2eIWXy)D9TCtWqWLh3}O zSpO6-WO5;g*U`Yo=mg4XW*Ki!0KO;$19yz=SAyDL&0olNhM!sdE_|;quL(Cg%ss3` zG`hT7UnG zl3py6jZc5DAX&Zh?yyvRMv5#yhumrBPVJwi?!kzoBbw=r*`i^|@{>jW`{sH&N@Gc( z0zh^V6^d^o1oSg8tiD)>@bX_<(P^HA#y1v%7MJk>Q?iXwyMoi$Zy^H6syRgZh4n4g-lh4}-T zA-n8LM>HnSeaT#ba#`}6N@@{l{t$A@rw~0U!DWQ&v9eCiLR3SDT8!&&JwkoScQBE) zDcvyNNOHrlYq25qkxd>_+)HjB=h!>6%?>M7gqi^!zeAfWo`)UEWd2M`Qna}5nSTnR=0qBTKZq7&_HnC{7QSx9?jXvyOz!ah3*=t3ZLUkmo?_q zL3=_@i$zoKlt>)6LP;Ifx@tCJFaNzz-X&-9+Y43REh7`&$P zz7})optU~I(vYg`VUB24Swb|*(6#ganA)5{G7#hckMl8DmaMiqgYHNQc zfRr1iCWorw$0f4z{bR5*k)){eS*izDOnp~C@=Ban^Cd}MJv*55{-7i_Avgg8(ic$h zL$NaT?@f%f)?--ts=3tL=3WZiQf4%sk;>^=*py7p&q*8`P=KNO;7&QR8t3CrRDF_? z>#|(W7)qscY4mxowcKP4JoKOwK75%##ZX)nZfz+imh{g`r(Zj_YhbZkD{%w@|3-eP z<{#K~05$piC35SEJDxsy)s4s}qhH%om{2FW3vfWyFrvQ8X#aErPh!C9wdBD*M_pFc zA>?RwS(PM_8GXp+^3X(UeWodW5}z1`i$3?e8WIpQ0e;bUjK55n&!7mCqo7G zr$I=LDrIqDb7h5OMqZz=yprJBD%tw`89xBdX=`~glQv|FVHJ~$s!W3SCv{%gT&O*Bvi$vbtF|*4e)oj_^;}SAqvlo1 zXyg((zpE4)nvvQCiY8B}e-Kjgd93NqcrS>Y`)i65k(@oXeXH|C^LaI$$BkgZ=Ldbd zY)8O=RMBBo{aiTD-QMTwtL$=amCnPky3&__w{0B1=SJ$JQ%7Xd+JWV!|IE3aB%U(^ zuLo$$*vQBU;Z0n!8(kdA#0%ts@ytxj>9D9zI2B$730e~W+F6R$^`47;4x?HX9+SKY#fRwKLK1O-y{Wq#ul{)CHtK(e|uj_MEg*u-`LMW=`%VKps+|8F%FYewN z{~h8wGA@EvbQ;f`6kkIosGag?F^uYD6`<) zziJjI^{7}~DGpQd58>JRQZdgAEp)9s|I)LjWil{IJ>qiiotW?FG}uGiG2$#pneox(Hsxq*x)p}^Oh=r z_^pE0gY!st+^FyAWhEe&rDq;7E>HoJd>}xt%T@lhoz@)pW_0^=+2`*Y6F=>`eagQx zEM-*00JNp6x=tQvkapg&3@A5!H%gCeaI82{&^0*w?n2?Rh`7pGy!5G^K<2EHRq0EA zrU|&Jx&-%={5DT|uv>?*byjFzXxUi4^#@)s!=$rcvf~@qs4Z+|#{{Q&GbrsF1*B2q zR@i*swElD*UEWT1Y<(Gctx$wc|C?Yz9qR!zl(P5@^7}?MWFF00n&))f%heCci@Rv^ z`wXx4PrPe^-LnjKpHRe8@119#XYMj*15&;5g>z&<~%Yz^^ISe-W)gamg|0= z3w;JQ1n71xQ00*;%8N1066mIz>P3FrE8NPTn&#Nf>kI8^O&tpg$RA%@vq;m%Gf2CbJx(~2?e!P5e2vfh8viOx zc|*>)RT`x{)0O_Zv2}O+t$6>p(W7|L<`PlMBd=R9V7_&YLN&u^mnhf0OVONB^&se>O(<16z=)Ix|j&C zXYMvnf1r!L4nvvM!u8vKB3W-XX416r^N;BN^0#>porK5W&Y@;kYS+Ct>8#K{-|y>4 z7HhnjBIyv(#od_|5W?=ZpLjrf=Wd6=zI3X7&peWeho$63qxGmhhC?1GjM)Zrgu{5V zP_3ZT5=TbD85czTn5Rd7uF;G{V$F~oI33dBl6~5I(@N|_9;7tOu2VKL^rr|7+Ru}HG0L8>(@)%^EJ1$*F;=+x0N zo|6QH8>snOXEvXlW9p=C2Oaq-{Yl(hNKegCb)t{-J@{qAtG~+=b~tT9bE1Z(NXkLk zTV%XLpBVqrR#XcT>WL*9*c>ftqbRE(coeofUY~h?d+t%nY^25V!T1!lyXsCn(r!jn zXKpT*Cz8zSFH}<-JomawR{nnD1ZVUWC9#dpa>PX)?e#2$X<6?_%?cwN@E@ssBCDrJ z?8_CylU-$&Y44fGb;ryxyp!R(=pr^uXRl2G=kp3@vz~($tf`h(ZvuE#N(He~`MJ>yXjHsh1 zSH4ul2pcs8#MU3@KaxlCDI8|*9#h*MqTM=GUH>dyRAI&LfqeC3>&FKURNS6_mTaOG zbFq?nTKxTPvt|UniV<{~qC$y(?pC+y3>>rXS$@-X<9B7x>+lw~LOo)?Y#H3+Xkxt~IS$P2in_ds{6#pl;ypFv5K~oHRkq%Xb3D=hU?djJ zST!Y%;$5Kq*&06%$ckwZjLKS5EOej3sVjQWf$rI~^s3LnEhWz`Jf|_m~7P ze#iC?iu#)A?)Ohbew?=aEpI)9>3f7;B#}#OGum4V-+vY_+vkfHdS_r*EW5<(z1)7q zwY(#!>h^!$uNcYV7~Xc^5uDEZ;j~@r#kdDpxDULac>FhgnpZRQKHb{dIPcRmVc+Jm z%B50&P*kvv_7=ERol3Q`Rke%Q@gF=vnc~h~p(Z zo}P?F^rAy&u+g-_(!I5h#yWNQJS;p3ndrtbty4#TczO=XE*{z%YY+vFCC(3$MDq0v1C;iWQ*>CH#BK0hf zJw3(a$7QQ1hQ7d*WlE@jR;dY5z_YRp`)YYQ~ zwPoDdBMI=fIs53iOy#83alfXX1~k~q;-)$T4juZv*@Wa`3{GCP@lw~mFw2ElY_J9h zKb#c$KO%I6b5!gpdTE_z--{?_RFR5`p}!7P*K0L&!>;d{r@vY|GW75d7|T`F_lY+~ zZ_@ZaXjEbT?5*Xuo-{$$>ef>QbRW8AC&oWOM^6xBa|*awig@un_BJ|Rz=|-Mh@ly{ z4PZ!tQn0#>Sabm?aQFdapmMUOuXR z%Aze_!CNF~h{WUu!Cv)BrAnDHzT$M(4Q*X1ilH(8d`Z zc`X3_@knNq9&j1?H(FP-cboV=i*9c`8}UP2T=9r6w|m+icWGvJj(mF9zQVp{h}}l1 z(B@N77<{P4$p+V_t$^;*uE%p7pIM`Dw{h$Tc5r-%q0x!Nr7GcRAtmBYisniIPja; z@GT^aS{P!iI$K6}+;pTTnb`4Ti}1HFyO0Fkkgk=5)!eF{emQ+dx1Fq{b88MlUnhE` z2AwviJ}oVSRcQQ4bFQ#T%SCVZwP4Q1QJRS3t(b0Rg71@z$2Cgj6uVg1kX1iW?l=#O z@=DbiUY<^Fxj7^M8mc1S_nKaT=4O&f^5%mn%>UksPV{PghwXOYOvU`UL#T_DVGQM? z17`qXL1V!@>wKA#ZYSbZFg&x1ZBFPndP?cUYV zx`B+=-#hTr<~No^SuiDZJNXtJZI+@gzwYx_p+f00A`~u zc*`d03~^?CPeN5<=K*+j$fTC|PmuL^^@R1LDnA1`Cz+-Mq_5zDu&dr$$7!I=dcxBr z99w5DDPE9LTOgu7*{GLuX5>mZPc3w(FdF`ithcvG_P`1t!4zsGK)DNa6_d6|vBJp8Y^gNZyaWA>3?{fyb!-C?P!Q+Lu z4qO@5BK!{!jlYJ+s54m;H%5gaPLWQ3#ZT&AijmX}><==72nx~Khs4Ak_Y~fNqb2E| zhp{K9^GWoAAW7{7o8+({%Q1wWMR@Z8^*Z$i5e(XJkHLJuD8%Ki;D<-5peItMY0uUw zX^8@yP|!(FlBarMQI>)*^-Q}$NxI@voC$7~L4_EQaAt-ussIKD_ToE#IdP^H|UZep|Ddsw&bBTYabWcMZ9dAjr;t%_C0NhSyT5 zYq(@&tHg}E>Aw0CJ}Ga2zr^Upv|C-VBF0b3ckYTGI+F8?9~xNw?I*-C;W9B*E^$7; zs_7707iXp$2uc%{lA<{iC>W9gd@=uK$#vfYpHI8Y!sPju`K1Quj7sR7*+m_D?EWK7MCAC3z-y3YKWx|y-ZAYr{M=P@vp>D3nghpH?%@JYw~ zUH4C1F!>4L`7f7P1#6jOnNvKO?i1oWN}Tu9UD8fd&sm;^6d=?pVt+&cO(jGB;zHQt zYbt_rDk(C|B-#{7Fk*)3WXG5;ujCs!dhq=jnPC_RjI#`n);68r6h<*h(hazkC{FnG zTz0#+l*nNPhzScdO4i6Ki#$v4;teTZ$N3G4mhlaTTX|@&Y@aftsA0dMQV#bHi`36u zGy91>iT7N0?_PErO(mwXN_JTUu2OA18nq5 zl)e26b}hgp*dTLA4VuP4$ytUV+@Apa$2=dfO?a32#ghTh-m@Ok7}RmAAJ~-puYJs$ zII*<*?DfJ&D3NTp`v-Ccr=L^<#c@Z#U;q>a%%s4Sf;i$S@u@yQazgWJ*&WCvOwrsd zaJ1@msi_kbNB}FchwJMS(gdp_LV;lpGpR78FJ3x!Hpcs&F)T|yM7n-=1>ob;n}x9K zxVPVpR!UH8dgL`v#2to{1WOLDSg|lPn>Y%u_pL_QCoCf@$nd3-6o%YT7S$Gwc|mtEd>9{VmOVIQe`O?nrZDmH znW1ApNL6S&kiCFz-WH!JG4!>yxltY?LK-q$D33g6g>kW(_K=U|P>uscbM4h*rax4@>x#nrk>nI6? zZtEpL>PuyN+FnwdA!}zdgqQ5UcIkl(($Nh|z?Ra2aejv7#iha`6_csj+X(S)e`>fk zXph%zDE5Jc5)~4PI7q-nA-3aoQ0995&0&Twdu(^~h%%+AZyAe#F9dOlcdC^bi#~`P zM+78wFS~BQ+tQatgMRYz1e!cJsy>F-C5lY@B>jv}ly-(Gah2PJEo|R zLGR&@U(GsuV1tV}7GA$7G)%CwD;cL;^3gdU|}EY02*jUnqD zJ9C>gDKwbQx;iP)hUI&`qWeh@bTScJh`7tFDhMZ$iV6xByuML);K^l$IqQy{k8hj- zG@F2c{m-3~P0v9rEMj*kkGP#r{vdd2r?-}#g12LVq^qhLvddH^Q+pcAvhI&qln=>IuaAXbBo{3c2k>N*|^n- zMk>a={DK7k&ptt#BDM@6$46B`uXMv%Y!Hu5LeFD09Hgr(MH7K!*Y5$*=23+=WR?_( z5k3e$HPe(rwN9DLU4-nPSCR%YrO;^D(nPLuifTaWI5E@&GFWyk)&YaVZrw{UiJgd8_~QwL>w2(zRPIxgTc)J)&Nl$fx|AY zIIL7=OeriF+PmmB;kVyY1<@b(^)HFBCwj#gl;9mYbaAV=!&HDhbq6?x@h-R1DnC$8 z=kB|0)+snf-XRQ>M+B;3)^nZ@TxungubUvt4qG?;H%zz zR;p@utWtLT-cF4Cxa5YB(>4?*`2DfA@%kGLcaT1Amb`=qc5YF!69u=VFLhmWaQcjx zrD=y4*&&8dtK>5t6;g~C4@+m}0?$zMu>2Ad+_Q1I7^for*He47smhNVx4;`kFjz7% zq~T*odtdy*SgC%mdKvtlC2m^H0*O6Y7!_Q|h*wp2F=#1*5Jwxpz8q08Tp{d`Tbm3Q zi5sqTJhEZp5-<{??+wUDA?%#GaP*qp@f(@lVfz9Hrt+=Kb1O0prBx0>C8B@<3j4YE zA`A-S>hohI54&|yTOYT1R9Yj)i`C~IX%%V`TGUuJuua5-8vQnfn}Ya61cDQC_sBc9 zD!#bjHwbZYlOSjWj|}kLJmqF=F-%ilQ$Y=ZQv|`jm4qG|B)CC4oEI~Ar66&(Txx?% zDG7-HOme{WGZYjyiPD2uH_~HNF%a+La=_)p3!!j|I* zdx?xZhQ&=-x1|f|EM5{4($p1BjGPO9@c7>b?c5WboYp}uStC|w?HkL>lYpR@O~p*d&gvG#Vlp9$Ns@VL0@xg&TlA>lIY}BYma5 zr0(CHG;6rfHo4FiWUyjlGI^)NwtQPcW)7p)InEhn@t0_OdLRX+l;wXX2nBVevnwZ^ zkMPS>gt4+mi8--9{Oms_`0oRh?S*`MdAK=?(TNcd2SC%9Ay--ja%Gf4+mHc@*cq`K zMeRckWWk^wM0c6?!bmZ)QcR^2;}6R~=AOz|{l2E&?~bimQG9~UpVb`(pB{WjBy?Ku zJfR$j&M~h9cmzOWxL-FdPRhp;NeGc&2vLHq7Vt(5FTACdmKPcPrItiwN9sOaVG?1wPlsoaL}|#As2(ZP1r*4F!o}WJ#F+G3RFq$kpJz;-QcfmD8`eBqWId^q9QS zQ)C1sccHCMu=F6#$RTZdaV&j>2SmiYl=xTm`);GO^SxDs?5#OB? zPgL;Kb_N}gdj*w0)3n5lrXT=#|7W8?K1LmbiegujcW@Qjg86zjAph6k|J_Ik7u3}f zjq{ct^msz2F5B~oZ=(0 zU4hLD(M{4z$}J&=Xxygff7ap}K})J3=dcJLg5xh2Mm1&#W?$w0d+zJ~KmlNf2bd0c zOvB|XebN!30rpT3@Chrs6b1{@AwHo6e180jX9T=f#e-aX3xMCkx*DuV2niJMmGRl> zA2^od6?QO;zL*sC6MxtUu#ZXs*LkLr{>JYLP%%`{q6hxnGP{$ffj)C69jGb(F#X~ZYeoeX{^5D_ z@*{%y^6D|$)^1W76&%G?qg9c@O*6!~wJB2PBfiCjflc$j-UkN5oJL83hFkLiQiVJq z_JbM|63ceaZ@LY?`3P@+$o*XvQ{9U$!lv(B^^XDYezQJ_A`}GT%E(*J2wUzwUSeE= zG%ZOV)+UC+Zk2o^iy5`h<*i<6IgZ*#??Gt=A}?0e_Icuw>r%B#()XHuWO6bTLbYB< zezcop**KdV!$$xEpKC`_t}N1gY}_GJ1p;bkrQ(;o|2fa#SpN|{>Ioks+a$CzL7wD& z8BDEKAc$Nqt4(9*q2thLd>|#J6dcUt2%#Us)X_r8~OFsukm5kBhM zpPu&Jb;>^@O#Uk0i!q?Ey(HJk{6;NYB?Sz~xoOvpLmd0DH9x2~@fO;hPjP4;8xR*9 z3fKDy#ob}JYR5Dmz%l!S&5v|a#ohWK=<-S^5--E0LO)&}89ZX~MaZoFX6^X?NROt} z+cL4@PEaaP&-MPn>M5KqaOITt*;3r|BhE}=f+M^&^H>Ip7+1Eq_3`?M_k3S@LFM#!eZJ{?t8^7J`}V zm>L%k@4<_UzI&P>8C-Lj)_qJnY| z@i*QW`~><%pf2`5>69aXApN-;cG!)bxH_DvB0;T=T8Bd`pc#QOHM^AD! zaOS7qrnMQS?IP&S*KfVV3e$%b*+{U^HpKsv5g1_zdD$+z$Y^DM_5BUng=?F8T-mK! zlZt-Ckh^MUa>Vo-%k<0CQNxdMyd~nJ$4USvCk0?|BGplhHJEf(0-QOMNR!;a`kK$b zIeKY40d%T#ng|Px$|u({mo*<(RM1W83XXM8UOQ3ZY%pn zt?Pk9oUzI3%1D`eBETsU3#3pW3HCDEQ4q_l%XPH7Yut|r)(1y%fq8${t^%rg>{`v7 zR~6T(KK(6gpW9XWXV9H4iT{k6wBTzfgIyMO3`CZJ85Q!k98l9&I>L^wZhwog=$_w5 zYoM2JSdr-Y+A<-YWV7rO(SVgqB=(;@sE?2X1}=VK{nL0y@gR?<-0iJm&#Z1oxR<$V zV9zcI2zVK2Ph|IQe(%xlfrz=t@39nIwbN>3Aj6cx{%<{1*b`hg8Y%yVdDYP9btmJ< z070&2a9)`+b$lq!U3UVj-2-&i)hWo>u)cXy(WfxvfU;;zY;XWUUUgSISs?jQW>nPx z?jO?pP&=h>x3FWcvHSF2HrooLga^ai}ukyWr!9s7N2f`A}&H zlRDFz^6kl?$XNIW&m@bJ-c7{dYjLfi>yP~HTZ#ym>&q3X1$KGWu0FiFg|}z z^#KTYEN3TOL0(yKRkEXtcZve0*^bCm;||UFJvF1CQ$b1Z(ZE3AuOptSCr+MCy@`K3 zjp|AjzzpD~^JfZ3wR6%0GolC+`a1y_tql+RT$#a$qcb4WujQ5~Zf1^4Vb@%0~B2|1ND1*3Ba(Iu5N7~Z24KUtUx zFv1d#Wl3;Kbh_5|WG{%`AfPxWN&R?4uu-wC%WA`oO3|{1=6UjU8r$=90A7oJiwJ0$ zUkHX-zQIhAOfdm}OtRHD)wq2?R~}*B1%r7gsUX^l;CgeTOTD(`n4X|Sf%^B=$SHB- z0z>FGFd>ZfMFulm$QonvG!Ekc=9Kp}?agVd4Ce~n!$K^ZJia=$7L?O7hD-}NP)-*p zW7p7Iondc@g&t|O>@qF2Qcxk*g$2f;fbjTvV5gFwnXZ93{vO8nC2s?U~8A5z)0&TB-x~}%Uy9$ z74A+Nz5BF6u?slu8wf5XXOi;)SZ7bnldR^!k-a~V9ont57az*P&BD(j6pV|23+{OK zMD(_qNAr@{ZdQ-hGqScZ2kXhVwV(;#z)p|W#Y;Tfpkn3OHkwG(A0kNwNZ~?Y(C3V{ zIM=XrzCtxQ$H$sZR1_9&!|(= z3^`_dY0?4}R1ul~U5Kls^as9xt^Eh(LVlmPxl6q}Oe(sso8OFE;YLp#=hYyPBr6+{ zh7B$#ZPUEc@)T~dbPp#&28=G$BjkX&1?8tIi_ZTruXkC*BY``zB~f<7)zk0Mzd;}3 zB!%0|LJdiW#VX=9(7ZhMqf!ETza-(NdH<*~^zOJy5i_~}UGN7?Ds9nO6ztOCD0+$m zT1l#gdk^~!dh+4xAQfrUI|#HbP?(%+23jp&WG1pPN|tMlWlQmUNAQ5d`auZ9GTt%) zRqk5es|pw_1w+Ex*g(4Y>a_bxSq#rT8s*ha9c5irqK7W|UYlknqY76B-RJ%G(d)-Y zTTc+|e_li{*GC!a!yS}bZQGlG@U9|NLf1|6D7fj?svT~Agg#8|QQ3ngNT1f2g-_gS z6HuZP=zK2`uQM@il{u?_s;CZwaT746O%R%&nb)4TmWGTXINe`;P%j~Wb@f9Qnq1zC zuEo-s*~YCH^rxSf$-SJ1IECQ{v|dkBPcI|FEACY|_&H8k zpS&|N@lg7!WqkfL$4v4YrtjtY;UV0V?nnmLO;H7~cLc~YDZI7%i&QFx3rS0*NE2o< zAN4eB`{Jj}2Z-pUj{gJhLV91lV3#+MJs4ENe1Oh}rutgcA>-h!TJOHDPqeF#hI0KZmt$fOLZhGpRpmJLxNhIIv~osx1`H zN%jw{r{c**NkpWv{5*6?U0#&bfzl~bFh;#aH^(utr;yF}a0zSL&Pc=bXLznD#I~$j zVZn0f9Qf1!ECKEAr>m&EMT|v?nnxMYmHF)~6@AGSHn*xY8Yj&AZzZ62822&22BoTuu(N3JU0L^Z1# z`VQK9mK%M2or{-z?{{v`nf$YmKC#k*|8#aEfYIOr!IB}u%4A~A`q=fwJJ$Stda3X-6ny`EER$|V&I`vUqSW7E4g3r>zB zx~*mct|6%+Y%~^JVZ2_Y6?Yzhlba#J5r^07llRwr=YR%K0H8y~S-o#xQ4f9qH`gaO zvzu_W-l9A+7RvX4@6dT_l{q0*erG)%s`0ftseeb=25t1;N{l*U{Jp&vFQk^UQ{xx=O^g#sym= zllBvJr>@QVi6(CMQ#RE;@fLI!yb&mB{p?u(b=|g^bd6_424Sp;lqkCn)4;icYdN6- z#@sv(&z@cuG1?})FP-STmt?ua@vpJ!ybh~Fz!QgjIp6hYYu5aA!@{>eMGhdNIC#cHcNmhQ6!b-sO$n zxLoO<_1-1EZk>P%{dPicuVKM#mJ@LZv^H3iN58I`5)E6P4yWX@^-$q3;IK!OF))oJ z7qu)}`7^N&0y1*QmE>z$y~aG@badT;==*&pG>-bIT}ck4(Rku{b(;QDQ2>QjsK zZ*y{T^u)?pcYD%%`(;j?i*q{>S)AK5AlYvp0Ef;+r)0MEK<-as&2fGne0@!}7}yli6A&6TJk9InnzwUo|N9>mnW#FsVLlsA z%hA35XC+WnI(l{I#a{AbyXHTd;fNa(Xx zBfYy5R!&F)1`zar^cB9`Ha|v1@wFFAqFG$upWpN*(B;h!xh|Df`4`&g|3?I}rE5RT z%J;tcS?}Mb?vG@R#fdf~Y55`w|KeZUTY&|2LoMqBe}8S;vRQpicW%)Rj(Pmv$$A?; zlUdb&AiF9Refq&o!-zN7_{)H_meykj8uxD|)`36Ih&)8jWPA)wWY;TqjM@a^N^3fp zRE^1Uge|D~NOc7Te%rTLEPONRf?q|q?Q@-qzW+&L=EH*BblGq?@~`;bmBC_r11yL6 zyR(%^zvtL@M?Tt8oW59PTV~j^qcV4dYM$nr&2X43-DEg1V*0@~vC*KAOUYu=V_K~H zCF{M6eHG2JB0dfzPlsd5azm{c)cP72eGk2Xk=-MTte^RJcJW1NU^wlct9~aL<=1~p8@D8x#RpTu;v)bE0d8t!k8YACqGv#m5 zQNt}wx@%U(_j>ErHsi)xU(QHlFp*>k=7yfl9)Dm#1@NGkKU)Y|EjnUH-$X{PYT@uL zi3vV*-83EWb7CtXymXiShYX|wjay2=W!M-uNhx^E^}={94& zo!K{kA{SX7HKa6-?$zed--g)B3aOJP4VG?X#s3PmkjNj9(vG_J^S8-oJq-U`swomr zMCfng4A$vYWJMk$B>x|o9`MASKfZHq2fog?PJ;EGi@<=1$d@R&lMjC4Pe`Stk;tho zm$FJ0Bk#`krro;l?9Fv|?|5F@eO3=%oS9|Dr9Q3yCcog5kT2lG~m}z@EI7VXMf9>S+ zF*$oVuI0pKKc^yVLjOK>E+3?Qvo0iO5pPm>>*73j2VYWBh{mo5IsMWt`oS9iB`PJ_ z;9#CUN5ii+pTIBuv<`WE=EDffbpBwq>YD*;xN4&@jIZZxsB~EAI`@OrDp?_d#MxQ7 ze$rsTi&$4}A&7?iD+K?J+T0z@!;A{vVwK_6zl;xddEem8B4h7z-(@Uj&kL;i+(Z@p z**t(-e3QmoW#fgWUQ=}SsbUxZu%4c+;zRLyP`iRwgns&e6rW+mG=w-MTF|1Enw-sF z4czwOFBlkCW~Wb!PVu;^tr!Gr@w^L)Ejs)U^@MMVoT5kub@L-O>kuXuEjyj2eYO=? zZYb|bg8d}RDDGsC7wkFKrXakKT+LG={e8M|`}C1DA-T#{23{HmM)3Hp=R61HKF6D^ zIoyA1DeEX^G4n*XseQqU?EIV#W|CdN#BhITnm4S*+9V{QvGX+amL5hk+)H_7i~6jm zkpTooOIg&S&=G_+ek~nXe_W1y-o7QY7nG}Nlts;CmDD7^T>QhW&xBLEpoto1s5TB+ z(1VwtM9i`pc`4G97rYlMJ`z*V<02Ykzn*QyKYvm)j{N^ z@}P0rfVA%+Bf2$6x!H0v-;~P@>RQnL`c~0}dH61J6e0MoG9vtvvxb24?t0z)XnP6O z0+9cUj|QbEtKy!2dn8Vxf45d2A zE*3+0{O@o~GZ}sD*N1M5VA%s!6_(j+g^-N@{6Kn_qhWSy47KBZ=fPo*lnt^`uk#w5)c^&EpXmxuOaWLJYMne7IrMa zZN4RW*`Woi_ay{do~KkgT3)y5F{w?C#^BS&*|T~LD;nP@AiL7nZsNC6CQTkHi)O=Z zW~X)Y+3?R+YSIv#P;!kvZq5j5*9lhZs}H$4$G5L>poA|G_&_=S$pk zPWqE+6R!2uX{FA6bFpu)c|x<`;yrFZtUH~8m(zIL@jYm~bKGX4XU(XFABc%XqW6#6 znoax4FNa5Zf&U!I2rSIE!+U6(_z4#fnjylo+(eH*@3XJ(XZCuwEO;twx9VezRDlKv zVbxjK)aU3usZZuN`*#M$=5DxuITrnMqNpsEfoh(BC_is_I>^g9vzcp1q~QMP{9eqw zSJXPK5oiTNBA8&0sBqJ?DX8kxnrXs8ErMTl8IWhiL`06Ngog7B(R9JhNc|Hf(8coi4b~$az ziT2)^1TzjWM@CqVSlQi&U%ISrBPN*tr%58u>xJX>x+$G^P zEPrPOly&rG*+k>jP_{N>c^2U0Cc(b%VVlQ1zeK(rYgKG+52cg9=N@F$xA_+csb}&_ z5sW?WIYbe~LT_}_v-%z{N!UZc7yoZF$DmZRX}tW8cmrPy7NF)Gew(x}E;Dnf1qxK_ z{Ri#HQe+1;!Pa{2uHMmE=9{x;6ZIJ4GMA*WPxMA% zEB~J2MEiZc>_;JUpw_fvRqzkX(afjbxxVSP50%;AnRDCk5)+sFC`roTabFy+%2`;; zbnnfIo^B6u)HyHW08d5Fn)PF}hWZvQGLXL+KRj1Q!H)o?&lQh6U5#WpJl2()v@=K} z>X3Uiu+{`W^u3}-z$DGHHFp&R*Mh~Sbw1bCpXu%)YE3ZTLA?`W8q?IX$O|qZJ6!Mn zT=VZ0FZOj@P@mrn;-2bWYJOGs!EH&X-8h&orM{9q!Q7M-NxPd(`yu;||Liqz9_7oddx0RZ6G~PJf*v#XGB)=8uAzf4JbH4=jtj+kc!4c|V$1 zJroRfxm9tmyI*QJcI8t!{S@*AV_V%T*uz^;m*ZR~MWxbb_U`6Kd}H8^kjIjXJ;b!5 zdpR?V5Pc@*Panle#J&{mPP^7N&*%_Xelz}gcmEP; zB@oD{Saa0Z&JzzZBI(XMr5`B$dJDYBc!s;#-f7I{mLq<4O+G8VYr&n)(qlIn>h6dV zKd(#yoD-+hbN_1WWKn7;yo_Ks&uIbDL|o1prf6xGv}{G0B6nj?gpx~>kUyc@d3nTt zZ%pcGS=ktFxI+*IU7SLIdc4=+Y3{R>IOjlcuc4~X|LHaS-D4Mk z$V>26N;uy};EVDOWp{f2v!m-=KfUh6m=n{3+!8#${1BxI!!4bW88%6@pZur8nL-b| zM$@(#O=^}hU7#glvb*P+`q%&0)@b?ni^Df6X_8QLhmETJ2)$MA6#8Kz`|aP*>Rmg& zDs~L$CRP?J`u23o1@;|74s%nBUI^ zoRVUK&fZuaAn{2iHc{~_pu)VdT2_j&<+;(=H{rkZ-+8>sXAfy#kdT_KGRwpdykg>4 zLr4_3d|wQ45+{aRdxgBfK+ZYNu4ai2W!V$G$AA0&%B4D;lYTNQnDke1aG>c1GS((| zGuZc4wfSX83;Li}`}8xdDyrF5f_h*FGSY&=Bbb3yWsC>bbL`H%L;PXtlX+wBlL7bj PLP(1%h*gOg{`~&{w7MSv literal 7576 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 literal 1029 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 literal 1560 zcmV+z2Iu*SP)Px)(n&-?R9FekS$%9%RTMwxzII#p5g0HDE`bQ5G5(?HIzDA)0Ynnf_)+55*t(5v zfR127G=!LnMk7Rn(YbaTYq!ZrXksu!6j5>ELkC^e_=kTGT$V76K*GSW57yq}xvgzB zvi5ba6L`t%eed4$@jLh2bI!f52q|1I_}#NCAl@Va&mdravZ4s64<&p)1aj8_TlM8+ z`6i;ni8_<%E9q*y$7F^R0GJ0v-vCko2}zHaNe~FFfcO{yT?&rEinhfYd-V9?jTh0|Jt@nkZG+1(UPnMQ9{UZ*)7ulVb=s^6IMqo6wxOs8SukmRnH&Wi^ zdI-!~7keUImy>9a(?I)WDYtgmss~NxS-HD8i&)5WqtW0Nl99Ymn;D%=W^iGv`Im(PW%z-K?*G$T6= z)*-^jO!Avf2S9sQXB*|lVefW^4sPqam4zty&8`*owb$MPAf17QJ3%P`B*S=QaS zBs)FlB=VLb3ZAzL7x_K{1Z_lgm}Bd&2oGkmRohK@)4R%kaxEMS#OSlhC?oF(EDZPo zo`F~u<|WgGQttE=R;hf>**12e<4i*lXo3qMJi@+t5Yx01Y{Uxhk{aE_5tA~(gK-Z4 zWR8tBE6ISHEaMc zk(+7;t;wFd^8SPXoKESnR_$Qk`Y;{hy=2MVlaNPe(69j$OSOiXILb*Q_JA<6D zBDDw6EC8R52T-rya1f`uk(1X3_QSNSkO<)@8}qv!(0Jp94TvW&*?w>Fwtl8{B}*TV zE}^UAG2Kc1hCJ|m;N!b9WZFz+h}TyA+wC;SkO7%8qXGo(;-ICM{qFqFY}JuU8_yCB z>e46XtQ90w>NRr)Gpkl=WJVI?DX4VEW7X?7w1k2bJgfvW5HzFqx}FlwN)kcKL;>xn zVLNEp!grGZQO`o&*5yw?V90>h!c9N(?0*%Oi%?q@XeddbBRu4_Rr)00v+T5yakNB3 z(!_VA2y zG2*4+Y>)Ajkh1>eV;xvgWzxe}-30YgC?1)w%=j_!u17}NoFM6N*G zf*IxtJ}n&w3Ed>*752_duG))uyokM(7U8A8B@mZue3xV3_IMy_gr}hDD1=6Byth%i zP<4pOV4!O`V0Utme!v|&c$Qbiz!MxAxdAq>waUdG2a0(a_C{qHX;bn*RAF=B=0Es( zb?Morx`gI6H``Zd?{4qX0%&+siH%8x$v{Pb0RB=mT za=nIwI0^Bj2R;cIx+MRn0lLbkg22QF?yGzN zoG}%`ZkdcQUdGLriBsH{oFOX8{0-;%i&shq>|0_0(n3zX6^#3fumQvTjnRVIY$0&( zEdh|S68?XL=zGRpt3>hSN3QS|IhdXweZNy%84Uf|x@=Ql6yLuZ+49>l?N15-0000< KMNUMnLSTZAWBi{0 diff --git a/Vector/Assets/Images/create_room.png b/Vector/Assets/Images/create_room.png index 57d3d1633ed8deb70cebdaea82118879cbcd8ac6..54f1920c84688157b4365c0f0365775f1890aab9 100644 GIT binary patch literal 1479 zcmV;&1vvVNP)Px)fk{L`RA>d=n@wyRMHGPF%zESeRB5Gh$$>*jQ8^HTE9HuB01Ole_)MOlt3Uw; zfRZ2z^ji{A-b$c4_f;zWsM%_#t|V0drUQBj2snwxVp8Bxqy1QV z>+(yF-@UT0fcUTk_U_0bSuyJOESq&;UHo+Q<^={FUzqxA)hgdnplP7o+Q2%j+T}Z} zQ&3F;HQlj%_Ie5Qn_FTSJ77Ho5Hw%F_nJF zPY2(oo5^Qyv^pfiS*Z4Ks|y91q4r+}ebDdWR?6e9#X4`K)4ENUM>Ov27}mSlNZKaf z7vxlSnH{fxGcYpa6}1MG=gDQ%56M5>^3m0+Y>+hh%xasE&w1zBHGP!ksJV89uMpIO{`*MJtGoNKwc(yeXKIE^i<%;E}F&@oztXaU`> zytatU2+* z8^FIv0$H`fM#2&-P$3RSBAA4{viRTpwrg-WZ1%IGjOJZ{^8pHyQC6DDV zNBY)e^*dgqVj~ttqY+Op^yxD00hOc$Y9a2J8lWIG;!@l}={x(9L_^$;J*b3Ra;Hw5 zrRGcBHJ*XlcA|Ms@ul0h*Qz57s1Vz*|@$c*wOr@M|A9Ed$WYJLOpa0=kvJ1!&CGCkg z4NAL94lM`wz$~QmA zU;K;C^6YjBwBxk|>hB-+o_Nu%dyPdoqW~R4Ht4o>^jY_U=ooTCa(oTwFEqK9O|_rC zF}9tzq^QZ3O>;jp)CJ`N(*t8OMMIx%r~b;i7Nt5pJ&>O9LUMXdA9WWxGJoNEw@w^# z-)q(Qim-1?r!pHJtnvkAsQ2eD-0RYbmOfCmD((9}zM2Vtpo&4cf@NXfY{h2GIu%H_ zdXUVqW-#KL-f%UQIkZCUpAK@g%mBr@uueabZeD%YOV@3>?uU-tJ-^SijNeReL!eyI+w`rm6N+Px%w@E}nR7efIm(ObxK@`W|%1#>bM4!C;$WkND$f;vL`{-Vy;(umfrX@OOl38wHN_&?}BQgTXBHYZszf?@z-*^W9Rg6 zt%JHXz+h!AAPZ7dczm05SZ|y$vQl>V-Bs@qB7|~WY09&pFMl=R-rZf@{9s%{D2J41 z767{DI^(u6t;ZwIh>89<&m>$1LC#1L9&9Oe~Z(sW)%%lgb=?IASqRb}p^ zi8@0{t|5o~MWIp6`U+~c&^y;}!N;Fpqay$M@jiATCzTRqTOccJ-@I=JWN%t6^CWGL zoc-weM=(zU0v#L+G~)3}!)>z&H1k~Gb(l@MTwnl~>e0w`Pxr6|B7LZjr zOUE;nfm`+J2sF|IB2aiiM{>R(C+6{GOt;wLjCqo(f!gAb99CVE;5sFu&q$@S)8eGD zwIPRi!>jGl=YzHj@`|m9t-k`@d3k$#dALV?PZZ`^tqqj*nZskkOZ;KI@_h-N6&oQN z-@XWbyvh`A@R;y4YC|mLgH|>|QGHpL^^JcBeM427O6YrZ%UdUv5u4Pq9_zBcc^`(? zbZngNuQ^@$j!MY?u9c{SRRIBySBqg$#+)-y?tDN+S_1mbIJilw;wSpB-!$W->49o> zVJY?R3XT7{g6m)QHsjjai-D7f0%sW2yItSI!b!SlSK*r(nRdOgpOp&A9*CTSA})oH v^bbR)3xY<}fxw;*Sko?)UZ;yQ|7HFF_GTx(mvL$E00000NkvXXu0mjf$=++) diff --git a/Vector/Assets/Images/create_room@2x.png b/Vector/Assets/Images/create_room@2x.png index 54f1920c84688157b4365c0f0365775f1890aab9..6ec374de13e191b5610a54bced743d09107cb30d 100644 GIT binary patch literal 3119 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∾2yjDW>`cr~5wig=%shVGiK^Ye2a82(mjT{WPFgIi<$FEw&8)IR{$I#9#u?YH`#X9+PJqDor;Cap7$dwH!=&fzxXHgBLExn3NqhV7mKn(6%Z*s(*5 zvjdGJxI*#R?T)5btEq9$_|c2u{U2u9?S*Ym0yTu`7GF0{#O@9RIo%SZtfg8d7fWJF z@W~X+6tg_MwmWl91H)FYtUV3XEYj=HkO~NK5C(m>2LxRjzz?@MT!OKM3U5Xen2h2P z3~s)zQhNByDm8G-{#)6vDWGPDuzQi+TiU5`v6)f6K@rMoh0rE|tiU&^DHZzv^fN-7 zDh+3?gqgSI7D_aDUt|WV(fcqP^r*(@2w(GP$gOTUv;A)D{~zvgf-IkQi!}fM002ov JPDHLkV1nye*>eB@ literal 1479 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 literal 1256 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 diff --git a/Vector/Assets/Images/low_priority_icon.png b/Vector/Assets/Images/low_priority_icon.png index 7cbb69e09a379bdef2e28c0c2fda78aadab75748..0b968825576c4ffe906aeb6d48f99edfb0186a30 100644 GIT binary patch literal 601 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 Dy_O4v literal 1102 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 Ef>B3z00000 literal 1684 zcmV;F25b3=P)Px*PDw;TR9FecnSD%CR}{eSeXoV8APCJCr1CMDE-G;fm@SL0Rbj@3WJ|^}w?SIQ zM^t2pF8a?hvScyYAIlOy7_Fhm7B#x<50j0|X)rTRkQTQ|qI1qIDk$PIK@jQ3yE~`w zy65w?eYJh~lJ>rL-?``hdV0>i@0>@;6FzKi$7)LG4n~B_&VrhHz+p;A<=u|l>-YPw zpRzRhI3y^dWx z)19V-=>+04gG)3LfjyAJ;^5|Q=Ybi|K`KQj(fwN#-oICC7O*iUurg;+ z_18*}5A|`R7=msm`tX!XJY-=}Htv?To^8&di8?3vt{H%jjeA+mp%3yh>ytw17>F4 z8Z*!Me1Wn=v0rV=F|aJ9>%h7veav6kURZlg&DcpF=Grn6Qn>B&iig2HMx;Tfq$6PI zil3V^bq3wH7%&8W1`Je^jnIcn64~M`sM-sHid(TM}=$`)pIXw7F z!=?qre@4=wD?iix6d1OI2xPme2#=&u#eFF-_;4P$lV|shPBJtxI-p`W;dp~?Aqv7n z%Xu{eVwDkrvkk^B1O|N*hX-8^|MPkEur-642|*Cd=Z61Q zWnppJX?tJ_1q?wK(T7D?v7HuZCE%%tpQwQmTyyA9z$qyyS47K2+iD7}01WFev%~_d zsij5WEJIq?RL~)?IaXlJpryc#rea*y;s&eV)mkfA5h@%f{?h;ZgZuIKSK1j9hbCi@zZz!EB0Q*4>mo-g&Sk4m2U~TUGTQT*A zbo3|q0Vf2Gc^(y{%b@sDmXVNpts&E5gv?cFy?MrdY5dk5l%)b4xpjNIwPSsK)cK{g z$6@Ap+9~*%rLCy?lzeXabujI=y6sk|5q|*H%;x|>aaDO*pG@j9Es)|cvZo(%IC@eA)^G6re>*`3+zZYS#ukg8AQ z58k=-zYNG@VUbZbN5|>9D_xEc&7DnwOkZxLcw9fC7|Q@|LcFMa%7-2E66SO@&MU^C zLmxKhrDa{l`?90s?bG}66KCo7fE#_Bo03_Y<7%mBE3CaFlZ*K>Xlc17G3XF@TUH4I zW8!O`J$tqia9}uAM4ij4-|-XS4a!I^rTlq}7t+)eavu4-YOWQPg#fmM1C~y9V0q0q z-Uq(Lgt8wnz$;5lo%o_hDih23BhWJ7XFxex7=eF}W}+`&+ISnR{u-1ftPm4R;YH7H z5bV{_=m;hI5VQzvN=!QoE`h*UlZzTyI+?Su>Hrjw@)H#cmMZq_3oZ4m5KH| z2wmy6zlm>=5E!bL=)*Asi!ja=o3De_OJEPEql~>glNkDJJ&q0H{b<`DG_1{qS%&nJ z@dlOvvDSj>y&giBf;BF}OQVCfUdPc5t`?(2M%8H$`qS*!TN_Pl@y!z+F}cK~3gz#w z3aYL+kM*yFlI{-J*-B?{Tp#7=t0>KQzpBz)U`HGn7%(O!C0&@B2A8#{f=(GPa&LK0 z^AbI$Z-=VwGI;13Cu8H;&QPx&07*naR9FesnM-REQ546|xe=8%F5LuCS{G8m2U=H3H|`?{x{{)W(w+DPD#fl` z)?F!7DP1WD%||G@vWgE-T(qT9vT%dzPJL>&wVkQ$_7dQT&4gjPLBvDt z-7TAe&*6gO0DwpDY+Nt2f+HK+_&zy0<7VEjNN-dTDg(Te{U%{v+tE=QD?o z4WD>KMjj~O5tosFtrMX=7MlC9vHkGH?U`SBc5*@Qtv)$Ug99&_=~|wVgSIK~E85w; z`E>05_bgkPpyO{B&L1MK=!*oJjFSJ!BDKA}~{OGdl1htS%uk}$ET{m^EPHJ_b zt1j4mF9jaA^<>u}@%Ooiv2DnuywL)R7Y8xfwa1-;u|La^b6XI+|$j*(Ii~hBVGZ^K9%1!Mns zlt{jK?M}d{fMN86z2ZA4R2I9~K|>4j4HQg~m==0e2_aaiSAY5fYY%spDI|(PaoQ7+IbT2_o<%26FvXxK z)YhxhRu^AdP-J6PT|3UH$78JR4kL7-79HjZyzY2`$8lGDAY8lYPxi7 zq1=@O*)c=O!}u*RngjwY9zi!^7Gq#6m)saJWrCsu;-t2|eVqb&+=;160ry}VW29p; z0*rEJj7E*g-20CWNmyKa|M?~jj5212P{6R-K=ubQ-SaktD|s>KvY)K`4G$AEXSbya QmjD0&07*qoM6N<$g1~ix6aWAK literal 411 zcmV;M0c8G(P)Px$RY^oaR5%f>)ju)>K@VfbDi&``XN|lBJ{bwS$*t-8Xb_f3_)#3jyYvjs840 zdzWOp!}a}}(r$thG}UWBs!}=a(M)Qjv{hh7`N$RYai$Tr|1poawzSHrP}Xq{JAp*< zl)1xGzGa!~J@I}>`53LJFPji;jL=iA!$31XyY!U{I})X*+$oVLJ>}MmMCqyTt`2%E7-Yl0S-@ipxnvmM))9HqfB3F-0W*Ke0^)F&Px*tw}^dRCodHonL4iMI6UxHrXa8J!ADjk)jq$1NvZTHLW6ItB@BFu|`{HAXbA` zC_X3@#D_kJP_Pdov`Vl>T5M}tDZVL~mLh1QE%8AiMez?s^r33K(xh&((NymD>Kz{%+TCcT+*n5XkGAt!SovLR=-l$2{NLd-%SW zCNjxtkU2M?JI=m)k7#dujdS)C8Kcvn9`kgWdRxJc^XZv44{mtzyF3cj4s_esLpOK2 z>@DgSx93q|T{5Y^Jv`;HSC4EQ{8N`q$k7J0@8iC<<#+b(sNmI?7+y=BQrY6(E_yp?9eLLWk>1v>CsWC`IjNaJdbTXv|;e)tYv5J+Xl`JJ=yN^ z^Q{XL2zd{5fG$~qHf^D^O?)5SbY9L{iN%zkZdz|s7w}56T|iSn2Ttwjbgo}{gnHm7 z7849@brI~O|L?_Z!<+U@rInc)Xy3Q*brpHrrv&q%w1u@)dcn?=#LVL(_r7pBO}$eA z1RnyX2*7z0Qe>e@)#5W~0b6BP+FkuAH6*@!rq(+elC~iQredf|` z<|=B`wLy05$v|~264$T~#j}~i`H4tABTs1{V9W6O z!B66pj|GZ1AUyC=q8s9bm~xFqtp1ty#JadQs=7@ceFk19EzHndzyeI-`qR2VG0@T4 zuahANy&>LHW}}v>Z1Na_E4XZ;Wk!wEy5$#3qg0a~>sAf@DJ>M^nHFZu??JHu={r!MuOPLa_+J z!ffKVq_qZ;-E7thP`RR`33)b)9Oml}ILIcCwMGS2xJW0JE+9x?zZ(<4vY$ydxe{xs zq=jPPmWA0ET)h-v2Zp#VfnpV0y~H*?8G(SI1d1hv$+Fp0^#}wEITpJ*9d70o6ZHx* zDc-;4t#Yt(*d(R%)Dly)YJuv(iG3#oG}u(7OQ^|mh^2f}GMRyH-O=RdWkZziiZ4oe z#1c*30@d~F5KFR9+K6foJp_m)EcB8dX;unYq7S`bQD`DSEFJ7O*Cft(F<|Ln^S<#U zGywoh2c8f#$unLISjt(>XU`4&s>`c_sZ`-j;)C^rx63yrnv)+j6@)Im1BMbPe01m% zY^t1qp#%ztCzz}^6-HLQ!43=|M*@}JW60r2R>8*RCw74c9tjj6;627zAQ=^}W>*0U zS3LAye>J0Q^Rg2&$!=Ej3Q(+Xq`u&oc|@{l3}(UFP)Mo(#R>cxQRDX!wnq{I!Y?xm z)6M~kwc_w=6kfKWI09f*y}ll4=Kw_noJ8T<9*qg8Sk(ZolR6iSy(vY> zSXXUPBDLpa>%+dywdt1+|B6*^!!JU?f06|CRHD*DgdtBXiooq64cV( z$MDdO=gcIJMk)?LTxOsUWSv?EIGgB0!>nNlZx5v(KYxIl%dVChrGndasx#`|=nW{; zHa?`qLaU3ge+*DfLu1(fb%jQl)uQa5t5nm_7`A`^qY-9Ql>LLMC=t!)OX)Av{s(6? Vu&3Rok8uD1002ovPDHLkV1h)}S;hbW literal 838 zcmV-M1G)T(P)Px&07*naR9FesnM-REQ546|xe=8%F5LuCS{G8m2U=H3H|`?{x{{)W(w+DPD#fl` z)?F!7DP1WD%||G@vWgE-T(qT9vT%dzPJL>&wVkQ$_7dQT&4gjPLBvDt z-7TAe&*6gO0DwpDY+Nt2f+HK+_&zy0<7VEjNN-dTDg(Te{U%{v+tE=QD?o z4WD>KMjj~O5tosFtrMX=7MlC9vHkGH?U`SBc5*@Qtv)$Ug99&_=~|wVgSIK~E85w; z`E>05_bgkPpyO{B&L1MK=!*oJjFSJ!BDKA}~{OGdl1htS%uk}$ET{m^EPHJ_b zt1j4mF9jaA^<>u}@%Ooiv2DnuywL)R7Y8xfwa1-;u|La^b6XI+|$j*(Ii~hBVGZ^K9%1!Mns zlt{jK?M}d{fMN86z2ZA4R2I9~K|>4j4HQg~m==0e2_aaiSAY5fYY%spDI|(PaoQ7+IbT2_o<%26FvXxK z)YhxhRu^AdP-J6PT|3UH$78JR4kL7-79HjZyzY2`$8lGDAY8lYPxi7 zq1=@O*)c=O!}u*RngjwY9zi!^7Gq#6m)saJWrCsu;-t2|eVqb&+=;160ry}VW29p; z0*rEJj7E*g-20CWNmyKa|M?~jj5212P{6R-K=ubQ-SaktD|s>KvY)K`4G$AEXSbya QmjD0&07*qoM6N<$g1~ix6aWAK diff --git a/Vector/Assets/Images/placeholder@3x.png b/Vector/Assets/Images/placeholder@3x.png index 18925c63470f8a24534cd5688aeee7939df984c9..fba0bea39c0c1b2b8f22a33f4c521bf1ba9788c1 100644 GIT binary patch literal 3218 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 Ef|2NYivR!s literal 1351 zcmV-N1-SZ&P)j{00001b5ch_0Itp) z=>Px)0ZBwbRA>d|n@wm`R}{z3y))4yH7Tg2rMk%~8&Mo0iVLyp(l(_HNTu4~7cN}X zoro|X;!YPX#4pkhDuq~@wz$@nC<%dzo2=YeQPhAj#;7xMdj5BE!_1qP_c8M(c^{XM zJNMnM^SkH1`|i8vJVosc#iHK#`NvywD!+r2>Q}`5M5>R7dnI1OMBR#LPSUfIo{{(= zlbRytsWO-D{&Mr_zf>$%+9jg&9c>u8bFS-yRlQ#;#os7Jy9H`(^F8o1Gu>uZf4qJ- z^XKT!<8PX8tFdNe@ZXPL+?3ZHKT3l`q^PH{s}`>?y^@(STB^K1|LeA+4_a)^RBsu6 zc;Zq)soW`6^p!N$a(jMIG61ZY{$ehl9vL_?=~vz>ziDBI?p$5FW;LIcd->3EKszBY z2(mU@nSHBHjP5)*?aU97ZVG!WjTaZRqvWyJC_#2uZ{Jn7Ov7a2i@Br_o&U-SyHu^OdpL~8aNAuhL2Eg;4 z$5e;LlLZbHsEv>t@_Q-76Mo?ykNs441H>%~`Q7sDwI$)Pdd7KivjAQ(9mXvWo1qF-2Ho}n4RF}G^{nQp*gVIh7){v-y?U$qojbvXX}_>#UHP3` z6wtN}*$5dfn_h_PG>?}Q(z%H=Om_#Tya>o&r94pkGE}E|yq%>H90LI^@YN2=qUO!} zc&_7qTHyf=?U%~$H{0`oMa}1R{&Xx2#PVu68rIcQ*7kQAmmUl+xc7}; z+?vmIv~&;{7pO3D$f{q^#-I?UR!Yi(Tg#(gtSA`_!mX<&r0l_iTULA3mpyb4t3H8; z(J+gFd*zYX2~c=-}4I2PT8`;Ffz{j;XU4gj>VwDU0mj*2dk7xGA@e{wU>2I{M^Dfk=z=V*TBQUFEg7R+0+?c(Vc;ZXQQ}t+(@o2gG(-ki&5*z zY2Z<{R4JV^_N?ITB(9{f*oX(G6?_pMCLDM++Ke>D;IpPG@GZh40hi9SY9CzS1E&pj z@Wy;AE}b?rRk3i@ny0~52agNzWtA~{j^C*X!eh7`Kn?J4-GDD^TBbiZz~gjD!8kO) zB*l;$ z@_Whbsd-e)tnV%0;k*kc-lWU`$Qi`x7;K)?9t99E05XMkNyFExSK|2}@P z@3glCZESp5HJy=)q3hZKB!8WK`d_#qw*usN@?scc^_Wb;=PY-LmGLox!0I zer{2JOZ$S#V{jaF_SZ@}a`-x7yuP9q`#8+R#!76ArOW>n_5VX^43nuWaZdmM002ov JPDHLkV1i*wtuz1t diff --git a/Vector/Assets/Images/remove_icon.png b/Vector/Assets/Images/remove_icon.png index a76c887318b31f90a026de4ba7459c35af556476..66e45060b026cbc94701f0b8b80db0175d3f1097 100644 GIT binary patch literal 419 zcmV;U0bKrxP)P000;W1^@s654Bdt00001b5ch_0Itp) z=>Px$T}ebiR7ef2)VoRpK@oXJ&cj^L$CD(w&Ob=2iLNg?WnA zr_=H2sfh>0*f&Q_-%u9lcAj?=#3%G0sBhQ9KH>w?0jQfpMuAL#78wSz0Y;<<B!wiC_o}DXFBcA9F^8Z6$Q2lDaXo+Z27pO%TW!{sky`{n{=n(Nq%IO5hQcV? zDG7dpn~aNwd!WnD&XEx;+H2KTq!f=#vG;DL5l{fEb8Z)s5ZEGo0f6{%ZgMtQOkNNM z5|ZyhBVb{)k?oPoac);0`0GL1BY@dcrvt5s2}lc3AtT}fia=U~3Q(Z|q$ogva>%fN z3+f}I0yZc?d;uni`v!Cn-~YJS>ZzZvoAPlxPKf_|{-WAEn_*&X?H6imePx#@JU2LR45f=OgJ|yg7H7&|M{Dru4ZUx_{V?)M4y<%$Hu~$@Sl<46!Qg1<7);Q zygG(zd|DTzjIT2sIPf1`AF_r8#;GTmL5lEcMArZ^kQr<$4vp9}fYdXBHNl962Bri* zsW6Zqzx@BVgNK1B9^?m*lVD0fG{h#D2-HSHbv{#eMyB+?On)~oG)_m+08+{XQxBt~ zJ%o7v|NYMgwBauEe`Yygh+?Qgu?gk}1}4T+3pPJpfh$zunqV5>e!vkpAQyo(VQ7H4 z6^BMPx%b4f%&RA>d&+CNJJF%$ssq*q&tt~#lMjw&v75(EW5fU|#~UBtx?BZ!KFh#-O} zIJl~af~a&8bkGl=lUOK9y?F05wXN5?OY&YX-V!KBl3(AwaCsNbysKE+ykLxv3nuQW zmFm>a_|h}{Zu7NpyV37(=ah3czyv!^!DL0bG6M+C_)t2RKAFE<>#-S8xL)m(2yfmu zZ{l;7%Ly0GSGrkO?i4UKM+Okg$(}(Z08w_`>HYlTYYhS*+cB*WF!u(C&6qGmAjC#Y z6rv@>CQKYeD8vR#Ttp-!NsJ02792;g5!w(; z3622sIKAW$K3FjNS1NEn6^K>`WFi0a22cd`e~+f%p~ z>-w`p#Ok&U2|$>WHe;L;`6}?0450h7uEH-3%SljDWh+?pX1Ol`E5!7}OjILO}7X z_P7xi0ns2)2x<%pBrbvyV+>J6P+^Q9x(Eu4HpCQxjnRT&Auut@5Nre%MhQZNz`(?Y zP$Nt+v0hQW5gGr(Bju|&V74ZfUvyq)A|vvP;Dgi%85L+7_cPI7n?oT&)$auUeel!%-o5Kt=T*O5%S1C>9hn fggEgIqC9*7jj`9Dk9=aL00000NkvXXu0mjfn^+y= literal 419 zcmV;U0bKrxP)P000;W1^@s654Bdt00001b5ch_0Itp) z=>Px$T}ebiR7ef2)VoRpK@oXJ&cj^L$CD(w&Ob=2iLNg?WnA zr_=H2sfh>0*f&Q_-%u9lcAj?=#3%G0sBhQ9KH>w?0jQfpMuAL#78wSz0Y;<<B!wiC_o}DXFBcA9F^8Z6$Q2lDaXo+Z27pO%TW!{sky`{n{=n(Nq%IO5hQcV? zDG7dpn~aNwd!WnD&XEx;+H2KTq!f=#vG;DL5l{fEb8Z)s5ZEGo0f6{%ZgMtQOkNNM z5|ZyhBVb{)k?oPoac);0`0GL1BY@dcrvt5s2}lc3AtT}fia=U~3Q(Z|q$ogva>%fN z3+f}I0yZc?d;uni`v!Cn-~YJS>ZzZvoAPlxPKf_|{-WAEn_*&X?H6ime002k`1^@s6zS;;x00001b5ch_0Itp) z=>Px&7D+@wRCodH+)a+tFc=14yHhsYf-?*U0I@@2iNppp1B18*5~qL+gOFguhRtvW zgkWaH7FHaB1&Q(Jj;pktv`+l}C9b9Bzl!tJaa84%t?}jPdv$+yV86gJ6z9y@yTg+c zSPUBqoILsQ`tID$&W*J<;qskx=l06M9$!{(tg!$TO37gBP@d{f-86S1769$RJVF=L z``a&mwXuo^+XfYIV6s+{8%rFF5{d##42&9z3X2_#1Bw!h4U7wl8jBo^6N&?i42&C!3kw}g z0*Vt04NMA(8!H=35=sIqob%|is%FMMgB2(#Q2}WvsAt!EL)b@IY#%TUP=FzY70#Uk zrUgnGYbTf{C=FPhV7041wDVCh_5*1a_>x4CybaseyU~aFUjLsDlFb(fE%H&4P*4vo zSfMWKeV8UFsLO0oAr({CG|k7*qE@P7zxo#Sdu5Z*iW;m|XMT0-Ekzz4U!0!$HSxPZ z1y&0xgk7OC_bu#G402v!d$RbcE`1EAD^v0`OFsQ_ccLVywnW5Gg%5(Oj2B7hPDBgG&D#t zjDrDc2)iz;F0-%!);RYvJ%=P)Px$`AI}UR9Fec*iA~qKokJrnQ2N>A5mDR} z@eFPRD+ofVJ2!d+MR(npwln5MQWBe=c{7vrE%G~=d`u?1m(YXG`K)D4y%Hz5;5)5K z^9{DMj(YoShLwup`v2xFXQcDQl zY^^q~;kZs{!@M~qh*+VF_5>$(*b9M0GVBHZ_8tn#VF$Ep5A01i506&25>_5DKgvI+ zyg3Izosm<5MWFx#QGdBwqBQ50=|T)^Djzs#SQ6@wrjJ9xWKkw?(l9Ja7bgW%Md{!Y zVY(<)TrA8KN(C1QGmXOHLSbp4Ft{;T+9+9E0G1U>1~-CbjY`6~ut}lfaJ1e&oo1zl zC-+aDfy&dn8Fn2={C0nX@#6fPgDUw;7i^~{+Cv2bm5B2Qzi1&>{skN^C?ELBgk1mt N002ovPDHLkV1mX&^dtZP diff --git a/Vector/Assets/Images/search_bg.png b/Vector/Assets/Images/search_bg.png index 2531f48c965fef2a556defc16ee89a0da3baaeb7..b78748b04fbc524c41f418b42a8cc3355c0ff2a4 100644 GIT binary patch literal 17008 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 diff --git a/Vector/Assets/Images/search_bg@2x.png b/Vector/Assets/Images/search_bg@2x.png index b78748b04fbc524c41f418b42a8cc3355c0ff2a4..284358c5e4772c48f17fff8f17475f67afafa87a 100644 GIT binary patch literal 40774 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 literal 17008 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 Rra5#-U0LUL*-fjE{{d|mAr=4t literal 28170 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 diff --git a/Vector/Assets/Images/search_icon.png b/Vector/Assets/Images/search_icon.png index 7c9202603aa49d33ace6ffe90968ebd1c96d589e..1398efe9e00a9d5e06cf2c888e16a3495f518ee6 100644 GIT binary patch literal 657 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 e@1|ym_{bk4W%m1@W9HWY0000 diff --git a/Vector/Assets/Images/search_icon@3x.png b/Vector/Assets/Images/search_icon@3x.png index 93b02b84795cc64ff42991e3764509c3a574ff91..f4c756d53a58debbec3b72403b1c3f25cb9d2167 100644 GIT binary patch literal 2369 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 diff --git a/Vector/Assets/Images/selection_tick@2x.png b/Vector/Assets/Images/selection_tick@2x.png index 634a459bc1a448ac3cad03721e4eb21f71dbec31..8855aa986c8df6c96f62d2421f870c268a829dbf 100644 GIT binary patch literal 1112 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 literal 903 zcmV;219<$2P)Px&K}keGR9FecSUXGr_ER2PT zXkp@&0>;9^Xkq|6B8iDXH1SbsVL`;kM?|6VXoy%K5Dsp~`344-W%q9H)(g|@%>4g+ z-?y{#`2S^;Mrr);pqK@C9b^0mkqFD7A;DN76XLh5j}oz%5av5EXFlt$yfow$nx%5A ze^PJc6&-IB2D>Vq_oedJc0u%oCB)r{kyqWlXL=L5-|3lDM8m+t8qSUObja-_5M!E& z*2fhs{dSvfJBx@$d2?;}HZgWhJNkYK(b3r#yFt;YX~$Y2qWOJWp2#WaVZ=__o&B~2 zi5F~Y{A_2{^$9B$w>G3oo-G03!HWSOJXYRiji%a2TQ+9EN(g-QsV$w0p971~;Kp-{ zEvwapnK-2vtC|UHL+paAvf9AG2VQh55jY3@Y(pEqrzZHo3uh$)2a%_dX*!kWg(thx%!Jb}|W!2xDP} zl6ZJFWhOwuhdAN^FHF^&OKDRu*U{C700KW>2uK{kb?51=Wppl5Nv*{-D}?wF0DSP{ zbI6Fuz2NOnY&oDD3T53Y#IJw_)={IZrLIO^Z+qNiOeNwpJUK=c8;i(boN|mHm2cQ3 z_x~JS*m;z&4N*Vd>MC#g_~^6O3v6$0h_38DMnN9%@d*|L$oR9X{9>uPzz`MdH%s-@ zGZLHrli?azV$i%w1j2Ge#Y^VoH3+%&?P-dWFgXVJzzZ)W0(k+#^5nyoTP29E0zRFO zC=ozYp_UBGeIa`tEO~Tjharn1&_G^*upISl72vDPx%j!8s8R7ef2md|SwK@`W|n-E+7f=Uzwe?U=C$rkOwi@j(M9`sffOiDs4c+#7K z1VL~0B-pT}iBQy&g5Cu2;H5}6QV&v43u28w@Tyfq_W8aOM>b2e`L&nX*?IGMGw;p& z&N6NMaCWJ9P$;pJDNMm!$W)o?Z%ZRn&u#ZV4F1>H#G*g6ImuUq=p?axV&N4fSFJr$ zN?3+Tc#8t=uh-=2-O>E#R;-o|GJ$`|FkKX(TQ%bHf|q;KYVw(2ZdZ~d!%XKwp_#Im zzaF=1c2Fpo$>ZB*b;aX9=;z@(>GSX66I%68Rc>w{kii9ot<67LJ57Z`=ndt;s*NFqA*eYMvFwtUm6wKFFH6{^^lgo z$F!g9D9dQZb@gmTEIQEhJM>CL(GZ8Ln(N`7fiVEY5Q>Y>JQ?`a%;N0sm`&GRh+sCD z`v^92phuP;a58bWYhrAoRaljAux*l|=a5{KdCa!sE*M~eiOJRhG((epLnZeaRIy{~ zp9z=?*~Z=AE}&+)uK16&K+Lk#$9s_L_bS&DZjp8eu2XvW;h2zo-N)uhC*gvv-UX|g z%~Lw0#R(}mbygsYk{`&+wvPfmloqH=sjKl0000Px$14%?dR45f=WIzImXJ(rJXJA%lWcViq68_J?^o)_=@7?((=_g^z7(tBCRSj(1 zD$+HK{}>{1L&jHW=H%wO+5Tedo^;TH=?f?HWC>i@rgM;4f* z?*j3Wz$YO4M*NwXZXg4J>^erUGng3F78s>1MpB5uOgu9ug@NJkWhRiD8UFo0jiCZf z0OVAVS|*SOVQxlKgTe)=0jXs|5ha2HbQ04uaA*)v3{nG93v|-oyNnFXHU!i&fPxpK zmI)Lo|C#>Ffr1W~Ca@gP#~`)fc=&qfX$vSW63)$v1%((a5J1iV*$y%gqy}UlIHqAH b6O%Lm1lV#PeZ5EP00000NkvXXu0mjfnT~>^ diff --git a/Vector/Assets/Images/selection_untick@2x.png b/Vector/Assets/Images/selection_untick@2x.png index 90934970c5b895329bfb01acc63aa9d1b07e33cc..15dae8d0dc8c6a2dc857fe51ed8fd81db409e95b 100644 GIT binary patch literal 1436 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 B)l&cf literal 3881 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 diff --git a/Vector/Assets/Images/settings_icon@3x.png b/Vector/Assets/Images/settings_icon@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..8178e63c7d8f3e57925387af284e154af98a26ca GIT binary patch literal 4035 zcmV;!4?OURP)Px^eMv+?RCodHT>EoX#U0<>bCVDtm#A12!6x_s#aAFad|(BiQ~kl(n$D=TkO#g- zr*`@W=H`7(gi}QajZ4k9LE&fWIWl!drYqqBjoi` z$w>+{mR5*2SvT6(m;q#Ba;lr(zVcSDs#>-;*!iXHE04y6evoCP4c3ije$1wrG-iCJ zqrIXllXsaw*#KHsKT7GC0W?be8@8A+0qF5vZ4=!qJxmWs%Qj(XN1Eoe)}V*C{NcP< zN$MJ@%@i!A$74G6>5J8m?8~Rzlbc_Te_Px$TS_xKne3V-@rnw2f%cqJr;h)ouD$u7 zF>)8=?S{PL`P$d+Y@H!eW~MSau08d2swcMdr3Jq{ny*c^y6{@|wO-o(;yll&JEfEZ zz%{=4V0zcV)s2fAQ$ay>+nX=d!YqQIA1al7z@~cD^Q-1BI~;7cbnD6sVnzDVV42Hn zt%VZa=SJvtEpzKXbLC7M*EGfsluf$_=EHTta$`)&m-_WpRm$EW`s&*8EluV5ZJz13P>w?0^wFCQ8p zj+~hA?sm*zyBrdp*s8U;1bScP%6+Zv6ZMq3)Ri&C6V!Mc?FS&c;wKZ>Li{??7UJoR zzb#FSkIw>Nv#}<@0v`xgR=GxgWR%_~d@&z3)rC%*FD=4PirFvS!0l`ppIGPSOCR^8Cod5}0{zIIPbnd;Juv?u0b zgnC(|zv;-r<0>F`z7#CmZ zz_9}HXD~>ZF9wVF4$t^&3oWRQN7QurwihP((z_X(+c}tf{e205<9HIJ_^HG)Hb z-osQ|Wr65{{kHo=exRm>3}y;E<(P_-Q(e!1G@HXv;?VsOH)Vdf`(4in`|^^qO5gJ z-Iw6o4A~XU3mQ6d$>>%73=i)=URcW#x#)uBp+*qx9M^~ovYk$@U{Knp;HZHU5O4B< zW0#4*%fu9^OrHWghGatlgrU682=hUvH5TN2AZ6&zk_>fqYbaG>Us|sT=VJ;55SdOt zc5pTA9Omuy9RX>`%L9F2UtBi|rJ(_$@kb+YFi1r-#$ z{w&K_-JqjW3wGIj_QBnUNh1LyCW`9=*7O%G*Vca&M#xywP)AIyFQ|jn9es$RPbfQx z3}Lm7PZ?3|n0uc8p34s>1>d5iS6l&8;yf)q>+?~@Kao=lSrqu@R z>7SB>eL)fmpxoL8ggv%y#W_UZGKb@-^sDYq0@b0jbXmkNOFU$h;aZlF4F?$BjC!lk z`fd9|9($|I+mf_w!?xrRT3~>%>z`@%j2s&i&Tji8l0K(IShb|3~7XF@m40F|ST488gaOetw6YK5P>iYG$ z=vj_+hrs=@c3aC$=-92$KoTVKLiy{YiE>eQPsA)h={^+($So^YPM;%cp*_?KoLj*I zJQ>5%I;K)W{T_#W$D%041sNmZaW}1^x;-h2Ai*_8V61l%BX332g&T*Fj%FSdbqazFFrMV`z@xv0CdtZknHeYAZ>-%E;1AGcWaF}46P1Vwq~Cp-tw zClKf7pXaO3R)^73gvDc~tBYx!v20yg*mOW!@N8VOCgc*)FQHH$hyf!`hzVO+0X9BI zN^61>VN8eBB5?HU*pL7A)Crdln_44K=(PQWH&dePYL>Z>-Jq(y�fD0yLJl@gO@OHEqg{;3=Sj+AvY%pEo2&j zyx_&_w3%W2u{=C!-KBW>pBt6cip5XxA!mEghwHaD;jJd`BF{7?qTOoFqg^M+g`l|m z;ihi;Kt4EC%`ASW%QwhF`iLJI!7JEzhe`U;j-ZhLH&zxP9Oxxo$1sFTTz(`{~0N-e~B`ZvDs4VkCKD%p*Nvflv}LMxo7 z{)cuUFAU)dro*|&!x?XB-qE<>tvV^Gi-&Aiu;ZVom0aki6fq%Z3sC%Id{3e{aVuAE z5R_xH@=#2{-W_zMM2vowra{GdZ|Sn&t{i-e@jIW}hdv8AZ@X-jYzwXI0*y3Tajc>v z8(qFK=u#8&^hHByU%GHgIq_8WlF ziveVXks_tk?b#^{mkwwPo{fta4~Qfw#Gz03srl%Lf#>_LL2v6XvH-CGk3l9ROIE-L z-vAF>Cn77qazBK&^pFO`(l7F6FdyZjKZn5!Yy(4VhTU65VE|gY)j(S|BQNrd$U;ze z_QCRCp8|bkpRonn2)@q&oQ$8{jjFt|>fdj=1zV6?ED<6mn&;I1HE)9~mGI}>NtXqy zfK=aRHCz}SVtPtW}ZBFkXNoYxyr51(B0L?lBxba zxxy@Is1d|=%XTz9hGXX`mWS4_HqUL?nT228A{*lae~#T41}Nz;gR$MArLu;k4V%-V z5)o+w0t^UnygShrHMWSNU?pDzi~c_5eN3&Da~hswzR(qF1d)l<>O;p2R%W%!M@iYS z#NPPJoFZ;bV*4}@YQ8cUDfppeeh?hevJKmw4mgw%)H&D}*5$iG12iF3vXjA3WCnM` z#f&}7$2eCVJ%L<5=+D6$<3mJ-_2!~w9cf6*Hc`EZjxTkk&b((I*cVqoaXZ${`MtEY`7ioqh5GZ&{_32tTRPP5wpiWSiRGGDU4=P;V;VCRXWv(^s(vIh^}-4b(pftx?XuV# zEFY;nb)>GAA4eqm5QTT>DMqHPHzCGQiLFjROvUbaa_=)Ex_5KDM%-B#^-S|lrF6vC(qiPZfAjTmVrF!oT#w!PX zC{cxErdpZ~-tVmVCqn&*E zhnkO4>C0*P@WNuZYh`tAa2OMak5?wc@%F~)oT24YHdh@F1eMlzAQIx6T%(#G;pq81 ztVOfQC*3EpKNn9|9u6R3COLp`e4B9vI3_N20h1h-()gESqq)gH$J?-~a#F<*(%a(@P z>cH;#l%gYe9nxolE&XX2IsN8%huG`(oYd#Vq~AGh!EZ>!0;m(Ajj#TE;C2cKet5 zQq0CcnTfdPq9EZAnSt*$&iKbHR3z-@Pylal%%s}TnJW;@aWjVg!zrdb89|ECI>|y`HR;+N;FJa}|R@At_FRzri8jT7dp>O2%q}Z(6uVc6q+q z$B_d)GJdBK{~XHc9OZ*L+orKmHQZZqg|GcZ3|ex02B%TKIAnY5@(+8;Ti5jW&W}Z7 zqqXd5-yA5PMt>7tD%mf9_GU{}{f6wdLrX(Vv0$^DpJXDupAqc2;*je%H%-wobtQsm zuEfGOz!4S}AfRvraYegTO7Cu7*zi?QFPA4spO;^BHx}fKSz_xjYE#PK&3Xnu$#hDb z&PTnjEz`P<&F7j@`7nSg=Y1i70L(GjZC+}*p&n;!;Vym>YEp70wi|Jg5=T=0>3!7O zzxs!hYpMFa)LRpw$pBJzw0=iZ4~&rk<+*OKzVtNT&=49N^5HkENcbDp6;8upiTG|e z{vMzL&u`2Cf)o9u(~aliE}uye(B$$#T30q&>1nM&BcU8@moKp)sU$CalzR`3Wi~ti z4WlgJTfd$G&Ab>~X)|N+XUqU9?J3=Ye^r6cy2UsQV+2g7yQDJ}QRwUsoI;%HLFDNe zU}Hs&*%af+0?xr-f#EhJ%*KHM&%p`ddu_q6Tvs<*se4ePC2xovZan>%H&gcZ|C2Wc pFJYT<=xq2WZ$lLRzF;5%{{vxk=Q|EYPuTzf002ovPDHLkV1fWV!l(cM literal 0 HcmV?d00001 diff --git a/Vector/Assets/Images/typing.png b/Vector/Assets/Images/typing.png index 97a030888069e310834931e1ed2efb3475c5f0f2..ead80a106e6620d37e909db85f806371e605bf2c 100644 GIT binary patch literal 834 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 literal 1306 zcmV+#1?BpQP)Px()Ja4^RA>d&nq6pIMHGO~+})(E=_Z;g>L%ER)F3_y+hEnA2BC%e(-vHzqLQRZ ziuOT4s^SkUDA-CL^g&CFZd>CIG$Pt+t$k<}>K|mm2N5w1sj`U{?do<@H_c|}c+Sn< z&Fp6GW;RWmn*+<8Idf*_n{&_Hy)$zKT%g=_JnC<%ZMZ|ASc?{3PtAn@1pVlWkORO` z0pbt7B8p*<@{7HPN56+?R9;}$Am-9Q3=Xf;a1Jk7DS^K z2I@apFmQ$vaDUCphBvi*d8HP<;tiS3Hu z5`5MH=c^4LIsV2{Dt$mL@MK!Rqx8pBaJZegysl~;jcti1fs3HTH680is~wdMZ=u-e zC_I1l!3KxX;>83#Vd$NFaR~hf6&!7?2wdAlAyeUEVj%}ATI@MW2!3H%yks+$tE+=h zTNQw_*$n(Ok=E8TvAHQ2g2q5SBr-|(IX$Xv$4yxi@Lfk`gMJY9dehCWNFT0S0S$ra zn>3R72jZzy729+zzY}h)UsWF@(#CX#lOs?5{HUTRK1#3ZB;#oicZ}0I$N-W&1?xN&S(uvlpNzaQT1wC zwN>>T<2rHE>uf=y&1}&tr_pTT$;mOU3g^{HYhuHblVe;J&Q~;P5p8Ba*a>=bFc6-c zzh};recG7V@Z|h9IXLI14N5r$&j~U0ierEewx?BZ>nd^iY&PuaioC6KluJ!LTdh-> zKZj|T=*S>Yz&oP(vRaO zzf|^13Z3(g(z{nYZSOGW0d4sHwryjyPy3N~q4Q)2@2b0KHar()C*eg}Cr)^E0KA4x zpBFn+z5;yTE#1T9{oQJzm(mDwhr0M?wgNn7#xeIYJ$cS@+FODNNR7T;%2WjZ;i|2F z)5P6YYP67f-Z9HbxutZ&iJ6MvSwSZh?;*-pIqd}@mZx-EeaxmkEch`LK6Z0UFih*k zmW3RE1bk;-xaWB{h8do>4e6v#WRefjEj!^>@uKT#fBxLbk;lvRqlc#&u{F=6$A%Jj z(*R=S8n`HBd@^z&Uqe7T-obBF{k*2>G;mU8TTKts zxNjrRtB{NG99A8`qCEju2f=Ce+XK3f%TXY02u*)`K)05@JK%Nl{C|7!KM{NNQ%Ugo Qng9R*07*qoM6N<$fPx$Ioc5 z;lg+gO*lI{h>3w=CIbWG`hN`nIG7k1J^%gv@4CP&?E>5cEDWF?>>%;%>=;G{#;FW{ z{<{2Q`2Q4W@ZEp^|D`gqFz$#wJ6jXGE{G^rLle)=NoQbW==lHtuj4%PjEgV>7MP@O z`1g;oh?S9XPtxgWN-%MB8pF`UGqXy723Gv}&0q^OCBv7 zpk(0xuitDJS!Dvl5I>l2oYK$mk6{T1E5q*4V{?R%RWmU(G%x`pW#)fI2J3&HzSz&V z%X^Ki03UmvNoq4N`Rw4~_`f6RNGC5$EmNYO%obo6s(<vv%e5)5W2egMyc8V8UH^JWn^9-x~hSV>C(Ty{tFx% zexNHPk^diPaKgX;40CwoBve?=nxy|G(Ewb^{{xfTYLFy6_Hn5sM|{*!azYKip3yMH sA3o&Bj_@#LAtuZgY<}8Ij5?Sa0MdGzCVrV)l>h($07*qoM6N<$g2re8EdT%j literal 306 zcmV-20nPr2P)Px#>`6pHR45f=WIzI;t3sK%mE8LO{r|sdk!jif;m55&Hw-a07*qoM6N<$ Ef}&xBi~s-t diff --git a/Vector/Assets/Images/upload_icon@2x.png b/Vector/Assets/Images/upload_icon@2x.png index db35287b831e2129e81edc34c30d923799f031f6..4504684ba4304ff3b6493aba897fba8672ab1a07 100644 GIT binary patch literal 1182 zcmV;P1Y!G$P)Px(SV=@dRA>e5n15(nRTRhXxvxzvW}Wi~GOEZ>M3E`xhmOe@)osoV_eW=k8FTru zzSOQTaae@;hY^H{I22~B`C(p2@du3?qGe^ywR3~Hwn-KL@vo`>bpK4SYa`YsxySPg zFPmA?ye5~e!V8pp-@W&o`+47U-no}DCh^yCK6d+_ba=Hymqk~+*sHVSxe&eE-h^jt zz)yS9;XCVecb&NuQ2%(}z0Edu768^VfQOqw`PMi3{%zOoR>wfypx$)&eo&guF$ND7 zIe80=7t`C8f~g9audo4CSGl9DS4a`0yq z?TNO~TYa@2UtcS2 zp!zXKMfnT8-cb(GDTCWJXK-jS<9g@fPBlbg9HF{w1BS=_jsD$0%~$RFwxPU+uv8aA54?$4d9$_7>YI{gy)$m-2`klkV;xOBdaMXPmuw(oe_j zae`fijSZ)K>F`6>?n~bdtfPGVjTPoM=og7=CvRjwwJTM~UYzn!REH^N?;>Ttduc4X z#$ce+M)c2{98`Mf(9(s=;W^dTlf{|Yt#pyuzff-ps$n^Rm19V>y*f?f z{l;9e;2Q(WwY5NHN5)drQdG7Avi(^(YAGsP0onen9JLgct$=KQR*qVV%2q(OKPyKq wMP(}>+n<%AvK5v3pOV=t|E!P=_`mb_FK`oaz(=xtx&QzG07*qoM6N<$f(UI;-~a#s literal 554 zcmV+_0@eMAP)Px$Ioc5 z;lg+gO*lI{h>3w=CIbWG`hN`nIG7k1J^%gv@4CP&?E>5cEDWF?>>%;%>=;G{#;FW{ z{<{2Q`2Q4W@ZEp^|D`gqFz$#wJ6jXGE{G^rLle)=NoQbW==lHtuj4%PjEgV>7MP@O z`1g;oh?S9XPtxgWN-%MB8pF`UGqXy723Gv}&0q^OCBv7 zpk(0xuitDJS!Dvl5I>l2oYK$mk6{T1E5q*4V{?R%RWmU(G%x`pW#)fI2J3&HzSz&V z%X^Ki03UmvNoq4N`Rw4~_`f6RNGC5$EmNYO%obo6s(<vv%e5)5W2egMyc8V8UH^JWn^9-x~hSV>C(Ty{tFx% zexNHPk^diPaKgX;40CwoBve?=nxy|G(Ewb^{{xfTYLFy6_Hn5sM|{*!azYKip3yMH sA3o&Bj_@#LAtuZgY<}8Ij5?Sa0MdGzCVrV)l>h($07*qoM6N<$g2re8EdT%j diff --git a/Vector/Assets/Images/upload_icon@3x.png b/Vector/Assets/Images/upload_icon@3x.png index 809897402f1151cf175ccffbe73b8426eee191f0..c4af7fbdfa398bf937a1243be264d3275959f081 100644 GIT binary patch literal 1900 zcmcJQ`6Ckw0LM4S95tIO%dK7(3bUNUN^D4S%AmGvqn>}_{qXsIe)#?YpL8cjELc)e5&!^z?QE@G4vap)Q5Hplv{O<9+3-3WCI`;YD7*^2j!y~? zUlpKm19TlG9>=rz=ZzP!eSNQeW*fyvJp@yMyOKnO3Xm<6mTT*>CxR#Vye@Yr^ht9l zC;z3V@$Rvl7`eXKAgWgW8s2}=+WPL;M-ia4qS$6r1x1Ne!>NuFc~T5$(;t(}2x&Qe z(No3uh@PqL?53lufn9NSMRptb`4Xl}!=-hg zR^G_whU`*n9M~k9pNqoKHC3d5aYad`IX}As69t$gPHP7LbM}@Jsax<}K#I(eE#LjD zOrg9rCeKCuUUIcj$!f~E1S=9>y6tICi$x#W7mA|>FHMnX3oy(NL=ZapHYF^QZc(!_ zb(3`Rd(5w$ZPN?yFt zpdthNE&Z^n4iAxJA`D&uovw*sEMOLSyw*Ijp6TVC3U9ill5&J2wh-=07ekS@EYJ7%gdl8wKw^iGtZN8vhsnyL3*fFeQ|?e9l_gXMBTDgGnYHt|7G zJq;hJ_GN$a9P})N6`q?@fc@3zulWfh5?F;8?SImP+6ec`gdzx+<-5uANQUi{;Yo|t z^|EmyZhV|zUv|1`Q1WI6Wjz4HtVghcPo9JhWz%)naf1(zeyZcmZt8MwTR#FHmN3Vh zC73ORZTHu5paWtMWt|qyDUyq|B@wzPo|!H4pQ>X+!x0;SvcIo&Th9E0RBR+ ztAAUGQB%;kfd{U&__62kB(rB-F{1@lE?&wah3;dbs08UE02&XP&0oBAZL5AeF=QAEf<)j!4@ZP}{XANy zmYMpMup<6@??LUS@0dney5LrS&C-rTY=IrZZuBo}_su6V-~;P+NOp=sqbU+VPj zr9Po^SZy_Rsy7^;I`T`(10r=&+0d{~@;lj|%Q;SON{Al~R7C_N2B8mY;Iy>lbzU)h zWU$n3wNM6$*BLGdrvTOLqY*>rV<)t~L>!M4?x3}sN11D+kp;ff5J#`V@QEQ04K;Ct zwpa#@Au`I&<-j1Z(C6+s&998sV`*+ezrI&y)Z5(vnk!cVx-sx%sIE>FikT5!-5#NKg5 zz}lbrP^8D5{(e3EiB7U{vLCb2ke1yN7dUyCvN2_Y<+6QA6X0k8>(rCFFHJqq*ub()Q&y+t$;f{SuWZ)_d^_b9btaPJ*`nm#tTcWT$jPWWB6VoBx!)$j<8N& zAX%EEn4M{&gV*E65~H?E_S?z5}Vm*q8XDbddjI2OsS3nPx!(HJIJoS!HB>p{TTvGmp~A zf$Tov4P-!be3bVb-zl@f-%{?(2c6j#_ntfk!||jMdG`uC`AwK1qJz|2amv zz59NH6K3AiA1h>Z^0p&>pz7`%$#D~$-7{ZP^F4v31IL8>5Aq4HvvIVpwenB=4`CdL AjQ{`u literal 848 zcmV-W1F!svP)Px&3Q0skR9Fe^R$oX{Q5gTu*{0b)f`|&ChpeamJZwvPD8(X0N+`o3W4f(v7N#L# zL`JQMgaiWis>_HY-Tl&h2?eIR=v*fGL{lW*wJNjjLai_Rw$ok zC1F^G+RX-?zK@tMq41>!z!w#wXG0RHsv+}Iz%F`rA=5n}q%i>e2n=)tunB>U;q+8q zAh-I1YLz*hNh?q(dJ2K@9tJo%$tHJG@$ZB?fs#~AzV%F>@w{TNb@d#zRJW2MU==+F zb(}v2U~h0@GXI{j=ADctn5zbH8V>-%M!i0>=lDR&N_j7t`L6`5qQ9Io9s*=T()hPM zLSF4BC9sg|>Z4;QMaH&eW@L3+dYYCgV-neO60nB7PR_9t0s5n3pZ5g{>b@ib3YZ+v z5b+oy+o@l(>S1wrOJ<_jcz;3ywy?jBzTArl-8eqFzq6=*B0f=V9WXf`P;*-8sP?W~ zn-wyN9)nt3yib*YP4r)444UbSg2O141`6Dt_x~`srouh&T|OZ#(|x;g?$Z59KIqa z`w_{0h|a8*y7;;>U?FV5=&U9Zcj!2-Sw-)ecuY<@=acLXID?>2Yg} zOhx)*`+8+iy6xYO+C{le{5v4~7IoGLXbNZwXbNZwXbNZwXbSvy1ycScV+eN__17s~ a#eM<-5egm&DGh`G0000Px&w@E}nR7ee-R$XjVRS=#zciY`6!UGD%8jXqd4K?j<2|vaV114xSk`!5u?e5C% zVnh-`2#EaLXcMD`CI&?JhwY^$giwqoHQ`0^0aLYm??1Z_dn}Gxs9QKHCb%9%upoP5==`g5^MD<%02DTJKc~sV5V(sUP+Nsrul#ylHY;`8`S`o3ceJE%@??*J|MG8dYT`BRc zYH~$nef7uZT&fi@JGI^mvGx&w6q=kUUC_XsG)<06M*)q!bC`#P0D_{iOfIeId*e@w z5Z1g>IR0==eI1}+f}dN+zp9q4wZSZMnSN<@{g2er*Mo5v(I}GGRLeN#WK2H5L!xxu zsim(66RxC_Ow!vu+TT*`5OFel3E-SAm>l#^$!C>-tmBrnGCE;pE-RHUujW;6a0w|}+YvX zZ6Zw^30|K5 z>+h+97dG!IEgC=(_7>7F2ogCWcY`KU_(D(5kH?oAKL01Ie}Y^J|8D?A#3$QIh{s$P zy9Pts#}*>5#(SOgtNgiq`;IQEHqz@{N8%j+WxQ?}G@{C&@x`Pe%ipv9zPd8dM6>VY zJlFp0WpEEU!Q_nA&6hDJ`vsxAQdb7rd8mDdEpJXd$s?uhaTHE;EWK9is%6y9zDGd! zUy;<;PzJY=s7?}alrP^^36Pqen*L4%U`4ZNHktgfTP55$ymtF_&jBjI_@+mnYke67 rsM)oKzlJP00001b5ch_0Itp) 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 literal 1723 zcmV;s21NOZP)Px*bxA})R9FeMSbI=ZRTw|#+~uW!Gdk8NjT34!S*attC`o8kYNKT{88)WCE{_FC z%zUH`qr)FPARBw=D9aKoijwY3Q<5*t$Anq}%V_C@#W;?mHYKJA4zQ1V`kmFq%XL{6 zcG-XKx!?Dl@B5wab-%NesD6f@zaCA8MPzbH<`YUMQ^GZzkeZH`>w4?rLc2;l=&u^3 zMtxIhKIQCVfQclW)Ki)70zZT@VvL*^a|7$OO8KE!Q=#<56NQ@C=$I->>DvHu0B%@S zrOj&b7&O?-CQ3=VU6y03bUA-}=tJ>zduV+06Xo#AVwuPrEL!7dFoY;Q{5hSZNTZ>d zp_IK3>IV-w!C%p|MpLqeNymxIKP=Z}7xiVr&}802I9<@eUE{2}oVLE?0;MyFvK5?@ z%k7tIH~UgX9j;=8EqXYkxxVBA<+1yfM2=Y(TV1}CmCwjMk3iNkPTxz}R~YI`HV_^| zS&!pXZuLuvEN{jE#zantS?ZVkAcPoB{U0H8v_E^xT0B zZ{~6xygJ!$`2h+dCFD9(Ph3i)X+(c}Q_hr)B!tc9l>XJ9>|ps!=5#-*M?&>1@}(rr zW}Xri&d*cIV`So7<4ZOW9;?)5+mJ_>D5v_q6s4Xu$4ZnO<(zWa$&)JMa*y>T8z>z) z0pJL3cg(U(H#T^a2^P%_sN-(88P#(~L!|ZI6r)+i;nQ-; z^8E5E-uS_!xdB;|-|gUpZ$-r|N^96LO>F>?`V*Cva6hTl+~B^u0ST23d*|nr^IMXn zDOQ_sxE!ByLWf6%kqR|0*zY}nb|t29tx*Ug0TzSZ) z*vPP`0<|G$>zzzOc{Aghz4~8vJgMdfWR|*h)3bqHQ#VcOF_D0#tH zdj+&7DepFN$q1uUCo{HDZOEd{I!t6zfC5-zXe?>-yH%Is)4GD+P3aIl5pj9nCmQ0wv6L+*WIP{R#Y%tLLRv@_}3xO{Qn@AWhM zTJj7D(HLM9w;A5#y4kjE*SvN2ltStCrO!$dt;7vRi}q6Oa&+hKoU!7TkQoplu>q$_ zKxmF43|C!_u2~*Mf;W(#`~QRyV>e(%-w3bX<}Q*`5ug3TfB^}khWgUkM52d~sLhTp z$E&*%m;XBuFiKf5t7{0gz%|nl^87&o5(+V*%*9l&UwDdlJLU#5O$u+}506@eZ-T!` ztvr-_U8&2dl{uLMcaLIWA*a)AX6++FeiBY57dnw|SJ5`21`SBqLS@yVHzlI_?3lYx z>20NYKQZ(YTh?eAgLD=x<#0fNgjS0#r@70{6A=5;jIs)pyE)@jaa1ph{k()ysf2JI z=HPTwz<`9U>V)in%4@F8#Ry!0Td;vgjJ%+4Fwf}+hntMIv}^ Date: Wed, 16 Dec 2015 15:16:37 +0100 Subject: [PATCH 21/21] Chat Screen implementation Apply Ribot design on bubble cell (Pagination display is not correct yet). --- .../MXKRoomBubbleTableViewCell+Vector.m | 17 ++- .../RoomIncomingAttachmentBubbleCell.m | 9 ++ .../RoomIncomingAttachmentBubbleCell.xib | 63 ++++------ ...gAttachmentWithPaginationTitleBubbleCell.h | 1 + ...gAttachmentWithPaginationTitleBubbleCell.m | 9 ++ ...ttachmentWithPaginationTitleBubbleCell.xib | 89 +++++++------ ...gAttachmentWithoutSenderInfoBubbleCell.xib | 36 +++--- .../RoomIncomingTextMsgBubbleCell.m | 9 ++ .../RoomIncomingTextMsgBubbleCell.xib | 81 ++++++------ ...mingTextMsgWithPaginationTitleBubbleCell.h | 1 + ...mingTextMsgWithPaginationTitleBubbleCell.m | 9 ++ ...ngTextMsgWithPaginationTitleBubbleCell.xib | 96 +++++++------- ...mingTextMsgWithoutSenderInfoBubbleCell.xib | 26 ++-- .../RoomOutgoingAttachmentBubbleCell.m | 4 + .../RoomOutgoingAttachmentBubbleCell.xib | 76 +++++------ ...gAttachmentWithPaginationTitleBubbleCell.h | 1 + ...gAttachmentWithPaginationTitleBubbleCell.m | 4 + ...ttachmentWithPaginationTitleBubbleCell.xib | 118 ++++++++++-------- ...gAttachmentWithoutSenderInfoBubbleCell.xib | 66 +++++----- .../RoomOutgoingTextMsgBubbleCell.m | 4 + .../RoomOutgoingTextMsgBubbleCell.xib | 76 +++++------ ...oingTextMsgWithPaginationTitleBubbleCell.h | 1 + ...oingTextMsgWithPaginationTitleBubbleCell.m | 4 + ...ngTextMsgWithPaginationTitleBubbleCell.xib | 103 ++++++++------- ...oingTextMsgWithoutSenderInfoBubbleCell.xib | 42 +++---- 25 files changed, 496 insertions(+), 449 deletions(-) diff --git a/Vector/Categories/MXKRoomBubbleTableViewCell+Vector.m b/Vector/Categories/MXKRoomBubbleTableViewCell+Vector.m index 389c44ae5..7b9d3a879 100644 --- a/Vector/Categories/MXKRoomBubbleTableViewCell+Vector.m +++ b/Vector/Categories/MXKRoomBubbleTableViewCell+Vector.m @@ -18,6 +18,8 @@ #import "RoomBubbleCellData.h" +#import "VectorDesignValues.h" + #import @implementation MXKRoomBubbleTableViewCell (Vector) @@ -34,13 +36,20 @@ if (component && component.date) { - UILabel *dateTimeLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, component.position.y, self.bubbleInfoContainer.frame.size.width , 15)]; + UILabel *dateTimeLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, component.position.y, self.bubbleInfoContainer.frame.size.width , 18)]; dateTimeLabel.text = [self.bubbleData.eventFormatter timeStringFromDate:component.date]; dateTimeLabel.textAlignment = NSTextAlignmentRight; - dateTimeLabel.textColor = [UIColor lightGrayColor]; - dateTimeLabel.font = [UIFont systemFontOfSize:11]; - dateTimeLabel.adjustsFontSizeToFitWidth = NO; + dateTimeLabel.textColor = VECTOR_TEXT_GRAY_COLOR; + if ([UIFont respondsToSelector:@selector(systemFontOfSize:weight:)]) + { + dateTimeLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + } + else + { + dateTimeLabel.font = [UIFont systemFontOfSize:15]; + } + dateTimeLabel.tag = componentIndex; [dateTimeLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; diff --git a/Vector/Views/RoomBubbleList/RoomIncomingAttachmentBubbleCell.m b/Vector/Views/RoomBubbleList/RoomIncomingAttachmentBubbleCell.m index 89e68b84a..1acfff6c9 100644 --- a/Vector/Views/RoomBubbleList/RoomIncomingAttachmentBubbleCell.m +++ b/Vector/Views/RoomBubbleList/RoomIncomingAttachmentBubbleCell.m @@ -16,6 +16,15 @@ #import "RoomIncomingAttachmentBubbleCell.h" +#import "VectorDesignValues.h" + @implementation RoomIncomingAttachmentBubbleCell +- (void)awakeFromNib +{ + [super awakeFromNib]; + + self.userNameLabel.textColor = VECTOR_TEXT_BLACK_COLOR; +} + @end diff --git a/Vector/Views/RoomBubbleList/RoomIncomingAttachmentBubbleCell.xib b/Vector/Views/RoomBubbleList/RoomIncomingAttachmentBubbleCell.xib index 517714adf..ae04ec335 100644 --- a/Vector/Views/RoomBubbleList/RoomIncomingAttachmentBubbleCell.xib +++ b/Vector/Views/RoomBubbleList/RoomIncomingAttachmentBubbleCell.xib @@ -9,14 +9,14 @@ - + - + - + @@ -24,36 +24,28 @@ - - + - + @@ -132,26 +124,24 @@ - + - - - + + + - + - + - - - + + - + - - + @@ -175,7 +165,6 @@ - diff --git a/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.h b/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.h index 4844d96cd..50bc9219e 100644 --- a/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.h +++ b/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.h @@ -23,5 +23,6 @@ @property (weak, nonatomic) IBOutlet UIView *paginationTitleView; @property (weak, nonatomic) IBOutlet UILabel *paginationLabel; +@property (weak, nonatomic) IBOutlet UIView *paginationSeparatorView; @end diff --git a/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.m b/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.m index a53445cc8..db2f6defc 100644 --- a/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.m +++ b/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.m @@ -16,8 +16,17 @@ #import "RoomIncomingAttachmentWithPaginationTitleBubbleCell.h" +#import "VectorDesignValues.h" + @implementation RoomIncomingAttachmentWithPaginationTitleBubbleCell +- (void)awakeFromNib +{ + [super awakeFromNib]; + + self.userNameLabel.textColor = VECTOR_TEXT_BLACK_COLOR; +} + - (void)render:(MXKCellData *)cellData { [super render:cellData]; diff --git a/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.xib b/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.xib index da644e81f..dc4c17203 100644 --- a/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.xib +++ b/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithPaginationTitleBubbleCell.xib @@ -9,37 +9,42 @@ - + - + - + + + + + + - - + - - - + - + @@ -47,36 +52,28 @@ - - + - + @@ -154,31 +151,29 @@ - - + - - - + + + - - + + - - + - - + + - - + + - - + + @@ -197,13 +192,13 @@ + - diff --git a/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithoutSenderInfoBubbleCell.xib b/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithoutSenderInfoBubbleCell.xib index 84a26bd3c..0c88024e0 100644 --- a/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithoutSenderInfoBubbleCell.xib +++ b/Vector/Views/RoomBubbleList/RoomIncomingAttachmentWithoutSenderInfoBubbleCell.xib @@ -9,14 +9,14 @@ - + - + - + @@ -25,7 +25,7 @@ diff --git a/Vector/Views/RoomBubbleList/RoomOutgoingAttachmentBubbleCell.m b/Vector/Views/RoomBubbleList/RoomOutgoingAttachmentBubbleCell.m index e817473a4..49a47576f 100644 --- a/Vector/Views/RoomBubbleList/RoomOutgoingAttachmentBubbleCell.m +++ b/Vector/Views/RoomBubbleList/RoomOutgoingAttachmentBubbleCell.m @@ -16,12 +16,16 @@ #import "RoomOutgoingAttachmentBubbleCell.h" +#import "VectorDesignValues.h" + @implementation RoomOutgoingAttachmentBubbleCell - (void)awakeFromNib { [super awakeFromNib]; self.readReceiptsAlignment = ReadReceiptAlignmentRight; + + self.userNameLabel.textColor = VECTOR_TEXT_BLACK_COLOR; } - (void)render:(MXKCellData *)cellData diff --git a/Vector/Views/RoomBubbleList/RoomOutgoingAttachmentBubbleCell.xib b/Vector/Views/RoomBubbleList/RoomOutgoingAttachmentBubbleCell.xib index eba62bada..9b196dfda 100644 --- a/Vector/Views/RoomBubbleList/RoomOutgoingAttachmentBubbleCell.xib +++ b/Vector/Views/RoomBubbleList/RoomOutgoingAttachmentBubbleCell.xib @@ -9,14 +9,14 @@ - + - + - + @@ -25,27 +25,27 @@ - + - + -