Bug Fix - Expanded header: Add shortcuts on avatar and room name

#347
This commit is contained in:
giomfo
2016-08-22 11:54:26 +02:00
parent af23c844e8
commit c4a9a05dff
3 changed files with 142 additions and 7 deletions
@@ -147,6 +147,13 @@ NSString *const kRoomSettingsAdvancedCellViewIdentifier = @"kRoomSettingsAdvance
@implementation RoomSettingsViewController
- (void)finalizeInit
{
[super finalizeInit];
_selectedRoomSettingsField = RoomSettingsViewControllerFieldNone;
}
- (void)initWithSession:(MXSession *)session andRoomId:(NSString *)roomId
{
[super initWithSession:session andRoomId:roomId];
@@ -244,6 +251,17 @@ NSString *const kRoomSettingsAdvancedCellViewIdentifier = @"kRoomSettingsAdvance
}];
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
// Edit the selected field if any
if (_selectedRoomSettingsField != RoomSettingsViewControllerFieldNone)
{
self.selectedRoomSettingsField = _selectedRoomSettingsField;
}
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
@@ -371,6 +389,44 @@ NSString *const kRoomSettingsAdvancedCellViewIdentifier = @"kRoomSettingsAdvance
}
}
#pragma mark -
- (void)setSelectedRoomSettingsField:(RoomSettingsViewControllerField)selectedRoomSettingsField
{
// Check whether the view controller is already embedded inside a navigation controller
if (self.navigationController)
{
[self dismissFirstResponder];
switch (selectedRoomSettingsField)
{
case RoomSettingsViewControllerFieldName:
{
[self editRoomName];
break;
}
case RoomSettingsViewControllerFieldTopic:
{
[self editRoomTopic];
break;
}
case RoomSettingsViewControllerFieldAvatar:
{
[self onRoomAvatarTap:nil];
break;
}
default:
break;
}
}
else
{
// This selection will be applied when the view controller will become active (see 'viewDidAppear')
_selectedRoomSettingsField = selectedRoomSettingsField;
}
}
#pragma mark - private
- (void)editRoomName
@@ -428,6 +484,8 @@ NSString *const kRoomSettingsAdvancedCellViewIdentifier = @"kRoomSettingsAdvance
{
[addAddressTextField resignFirstResponder];
}
_selectedRoomSettingsField = RoomSettingsViewControllerFieldNone;
}
- (void)startActivityIndicator