diff --git a/Classes/Base.lproj/SideMenuView.xib b/Classes/Base.lproj/SideMenuView.xib index 63c217088..3fe641164 100644 --- a/Classes/Base.lproj/SideMenuView.xib +++ b/Classes/Base.lproj/SideMenuView.xib @@ -12,11 +12,12 @@ + - + diff --git a/Classes/ChatConversationView.m b/Classes/ChatConversationView.m index 5a50c584e..55d66781c 100644 --- a/Classes/ChatConversationView.m +++ b/Classes/ChatConversationView.m @@ -498,7 +498,8 @@ static UICompositeViewDescription *compositeDescription = nil; } - (IBAction)onEditionChangeClick:(id)sender { - _backButton.hidden = _callButton.hidden = _backToCallButton.hidden = _tableController.isEditing; + _backButton.hidden = _callButton.hidden = _tableController.isEditing; + _backToCallButton.hidden |= _tableController.isEditing; } - (IBAction)onCallClick:(id)sender { diff --git a/Classes/SideMenuView.h b/Classes/SideMenuView.h index ef81e5208..597669957 100644 --- a/Classes/SideMenuView.h +++ b/Classes/SideMenuView.h @@ -13,6 +13,7 @@ @interface SideMenuView : UIViewController +@property(strong, nonatomic) IBOutlet UISwipeGestureRecognizer *swipeGestureRecognizer; @property(weak, nonatomic) IBOutlet UIRoundedImageView *avatarImage; @property(weak, nonatomic) IBOutlet UILabel *nameLabel; @property(weak, nonatomic) IBOutlet UIButton *addressButton; diff --git a/Classes/SideMenuView.m b/Classes/SideMenuView.m index a9cf3c871..b7b79bc9e 100644 --- a/Classes/SideMenuView.m +++ b/Classes/SideMenuView.m @@ -12,25 +12,17 @@ @implementation SideMenuView -- (void)updateHeader { - LinphoneProxyConfig *default_proxy = linphone_core_get_default_proxy_config([LinphoneManager getLc]); - - if (default_proxy != NULL) { - const LinphoneAddress *addr = linphone_proxy_config_get_identity_address(default_proxy); - [ContactDisplay setDisplayNameLabel:_nameLabel forAddress:addr]; - char *as_string = linphone_address_as_string_uri_only(addr); - [_addressButton setTitle:[NSString stringWithUTF8String:as_string] forState:UIControlStateNormal]; - ms_free(as_string); - [_addressButton setImage:[StatusBarView imageForState:linphone_proxy_config_get_state(default_proxy)] - forState:UIControlStateNormal]; - } else { - _nameLabel.text = @"No account"; - [_addressButton setTitle:NSLocalizedString(@"No address", nil) forState:UIControlStateNormal]; - [_addressButton setImage:nil forState:UIControlStateNormal]; - } - _avatarImage.image = [LinphoneUtils selfAvatar]; +- (void)viewDidLoad { + [super viewDidLoad]; +#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 + // it's better to detect only pan from screen edges + UIScreenEdgePanGestureRecognizer *pan = + [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(onLateralSwipe:)]; + pan.edges = UIRectEdgeRight; + [self.view addGestureRecognizer:pan]; + _swipeGestureRecognizer.enabled = NO; +#endif } - - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; @@ -53,7 +45,27 @@ _grayBackground.hidden = YES; // should be better than that with alpha animation.. } -- (IBAction)onLateralSwipe:(id)sender { + +- (void)updateHeader { + LinphoneProxyConfig *default_proxy = linphone_core_get_default_proxy_config([LinphoneManager getLc]); + + if (default_proxy != NULL) { + const LinphoneAddress *addr = linphone_proxy_config_get_identity_address(default_proxy); + [ContactDisplay setDisplayNameLabel:_nameLabel forAddress:addr]; + char *as_string = linphone_address_as_string_uri_only(addr); + [_addressButton setTitle:[NSString stringWithUTF8String:as_string] forState:UIControlStateNormal]; + ms_free(as_string); + [_addressButton setImage:[StatusBarView imageForState:linphone_proxy_config_get_state(default_proxy)] + forState:UIControlStateNormal]; + } else { + _nameLabel.text = @"No account"; + [_addressButton setTitle:NSLocalizedString(@"No address", nil) forState:UIControlStateNormal]; + [_addressButton setImage:nil forState:UIControlStateNormal]; + } + _avatarImage.image = [LinphoneUtils selfAvatar]; +} + +- (void)onLateralSwipe:(UIScreenEdgePanGestureRecognizer *)pan { [PhoneMainView.instance.mainViewController hideSideMenu:YES]; }