From e8f31f7efb218d0010a47ad0944768e419fca920 Mon Sep 17 00:00:00 2001 From: Guillaume BIENKOWSKI Date: Wed, 26 Nov 2014 15:56:07 +0100 Subject: [PATCH] Add a swipe gesture recognizer to go back from a chat --- Classes/ChatRoomViewController.h | 1 + Classes/ChatRoomViewController.m | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Classes/ChatRoomViewController.h b/Classes/ChatRoomViewController.h index 491accaf4..6748d383f 100644 --- a/Classes/ChatRoomViewController.h +++ b/Classes/ChatRoomViewController.h @@ -49,6 +49,7 @@ @property (nonatomic, retain) IBOutlet UIImageView *messageBackgroundImage; @property (nonatomic, retain) IBOutlet UIImageView *transferBackgroundImage; @property (nonatomic, retain) IBOutlet UITapGestureRecognizer *listTapGestureRecognizer; +@property (nonatomic, retain) IBOutlet UISwipeGestureRecognizer *listSwipeGestureRecognizer; @property (retain, nonatomic) IBOutlet UILabel *composeLabel; @property (retain, nonatomic) IBOutlet UIView *composeIndicatorView; diff --git a/Classes/ChatRoomViewController.m b/Classes/ChatRoomViewController.m index f60abd2b1..9e1c36f49 100644 --- a/Classes/ChatRoomViewController.m +++ b/Classes/ChatRoomViewController.m @@ -42,6 +42,7 @@ @synthesize messageBackgroundImage; @synthesize transferBackgroundImage; @synthesize listTapGestureRecognizer; +@synthesize listSwipeGestureRecognizer; @synthesize pictureButton; @synthesize imageTransferProgressBar; @synthesize cancelTransferButton; @@ -57,6 +58,7 @@ self->chatRoom = NULL; self->imageSharing = NULL; self->listTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onListTap:)]; + self.listSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(onListSwipe:)]; self->imageQualities = [[OrderedDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithFloat:0.9], NSLocalizedString(@"Maximum", nil), [NSNumber numberWithFloat:0.5], NSLocalizedString(@"Average", nil), @@ -80,6 +82,7 @@ [transferBackgroundImage release]; [listTapGestureRecognizer release]; + [listSwipeGestureRecognizer release]; [transferView release]; [pictureButton release]; @@ -139,6 +142,10 @@ static UICompositeViewDescription *compositeDescription = nil; [tableController.tableView addGestureRecognizer:listTapGestureRecognizer]; [listTapGestureRecognizer setEnabled:FALSE]; + listSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionRight; + [tableController.tableView addGestureRecognizer:listSwipeGestureRecognizer]; + listSwipeGestureRecognizer.enabled = TRUE; + [tableController.tableView setBackgroundColor:[UIColor clearColor]]; // Can't do it in Xib: issue with ios4 [tableController.tableView setBackgroundView:nil]; } @@ -532,6 +539,9 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta - (IBAction)onListTap:(id)sender { [messageField resignFirstResponder]; } +- (IBAction)onListSwipe:(id)sender { + [self onBackClick:sender]; +} - (IBAction)onMessageChange:(id)sender { if([[messageField text] length] > 0) { @@ -742,9 +752,7 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta { CGRect tableFrame = [tableController.view frame]; tableFrame.origin.y = [headerView frame].origin.y + [headerView frame].size.height; - double diff = tableFrame.size.height; tableFrame.size.height = [messageView frame].origin.y - tableFrame.origin.y - composeIndicatorCompensation; - diff = tableFrame.size.height - diff; [tableController.view setFrame:tableFrame]; // Scroll to bottom