diff --git a/Classes/ContactDetailsViewController.m b/Classes/ContactDetailsViewController.m index 43b5aa030..3ce5cf20d 100644 --- a/Classes/ContactDetailsViewController.m +++ b/Classes/ContactDetailsViewController.m @@ -209,7 +209,7 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [tableController viewWillDisappear:NO]; + [tableController viewWillDisappear:animated]; } [self disableEdit:FALSE]; self->contact = NULL; @@ -219,21 +219,21 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [tableController viewWillAppear:NO]; + [tableController viewWillAppear:animated]; } } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [tableController viewDidAppear:NO]; + [tableController viewDidAppear:animated]; } } - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [tableController viewDidDisappear:NO]; + [tableController viewDidDisappear:animated]; } } diff --git a/Classes/ContactsViewController.m b/Classes/ContactsViewController.m index cefb5d147..fc00098f1 100644 --- a/Classes/ContactsViewController.m +++ b/Classes/ContactsViewController.m @@ -74,14 +74,14 @@ typedef enum _HistoryView { - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [tableController viewWillDisappear:NO]; + [tableController viewWillDisappear:animated]; } } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [tableController viewWillAppear:NO]; + [tableController viewWillAppear:animated]; } [self changeView:History_All]; @@ -90,14 +90,14 @@ typedef enum _HistoryView { - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [tableController viewDidAppear:NO]; + [tableController viewDidAppear:animated]; } } - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [tableController viewDidDisappear:NO]; + [tableController viewDidDisappear:animated]; } } diff --git a/Classes/InCallViewController.m b/Classes/InCallViewController.m index bf72436ca..e6c0f4080 100644 --- a/Classes/InCallViewController.m +++ b/Classes/InCallViewController.m @@ -113,7 +113,7 @@ const NSInteger SECURE_BUTTON_TAG=5; hideControlsTimer = nil; } if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [callTableController viewWillDisappear:NO]; + [callTableController viewWillDisappear:animated]; } @@ -126,7 +126,7 @@ const NSInteger SECURE_BUTTON_TAG=5; - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [callTableController viewWillAppear:NO]; + [callTableController viewWillAppear:animated]; } // Set observer @@ -141,7 +141,7 @@ const NSInteger SECURE_BUTTON_TAG=5; [self callUpdate:call state:state]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [callTableController viewDidAppear:NO]; + [callTableController viewDidAppear:animated]; } } @@ -153,7 +153,7 @@ const NSInteger SECURE_BUTTON_TAG=5; device.proximityMonitoringEnabled = NO; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [callTableController viewDidDisappear:NO]; + [callTableController viewDidDisappear:animated]; } } diff --git a/Classes/LinphoneUI/UIMainBar.m b/Classes/LinphoneUI/UIMainBar.m index a5c9eff9f..49b24542b 100644 --- a/Classes/LinphoneUI/UIMainBar.m +++ b/Classes/LinphoneUI/UIMainBar.m @@ -73,10 +73,6 @@ selector:@selector(textReceived:) name:@"LinphoneTextReceived" object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(applicationWillResignActive:) - name:UIApplicationWillResignActiveNotification - object:nil]; [self update]; } @@ -92,18 +88,33 @@ [[NSNotificationCenter defaultCenter] removeObserver:self name:@"LinphoneTextReceived" object:nil]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(applicationWillEnterForeground:) + name:UIApplicationWillEnterForegroundNotification + object:nil]; +} + +- (void)viewDidUnload { + [super viewDidUnload]; + [[NSNotificationCenter defaultCenter] removeObserver:self - name:UIApplicationWillResignActiveNotification + name:UIApplicationWillEnterForegroundNotification object:nil]; } #pragma mark - Event Functions -- (void)applicationWillResignActive:(NSNotification*)notif { - // Refresh notifications - [historyNotificationView setHidden:TRUE]; +- (void)applicationWillEnterForeground:(NSNotification*)notif { + // Force the animations + [[self.view layer] removeAllAnimations]; [chatNotificationView setHidden:TRUE]; + [historyNotificationView setHidden:TRUE]; [self update]; } diff --git a/Classes/LinphoneUI/UIModalViewController.m b/Classes/LinphoneUI/UIModalViewController.m index e2c888f13..dfda1b240 100644 --- a/Classes/LinphoneUI/UIModalViewController.m +++ b/Classes/LinphoneUI/UIModalViewController.m @@ -49,11 +49,24 @@ return self; } +- (void)hideView { + if([self.view superview] !=nil) { + if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { + [self viewWillDisappear:NO]; + } + [self.view removeFromSuperview]; + if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { + [self viewDidDisappear:NO]; + } + } +} + - (void)dismiss:(id)value { if(modalDelegate != nil) [modalDelegate modalViewDismiss:self value:value]; if(!dismissed) { + [self hideView]; dismissed = true; [self autorelease]; } @@ -64,6 +77,7 @@ [modalDelegate modalViewDismiss:self value:nil]; if(!dismissed) { + [self hideView]; dismissed = true; [self autorelease]; } diff --git a/Classes/PhoneMainView.m b/Classes/PhoneMainView.m index 21ece3a90..863da3dd8 100644 --- a/Classes/PhoneMainView.m +++ b/Classes/PhoneMainView.m @@ -112,7 +112,7 @@ static PhoneMainView* phoneMainViewInstance=nil; [super viewWillAppear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [mainViewController viewWillAppear:NO]; + [mainViewController viewWillAppear:animated]; } // Set observers @@ -138,7 +138,7 @@ static PhoneMainView* phoneMainViewInstance=nil; [super viewWillDisappear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [mainViewController viewWillDisappear:NO]; + [mainViewController viewWillDisappear:animated]; } // Remove observers @@ -159,14 +159,14 @@ static PhoneMainView* phoneMainViewInstance=nil; - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [mainViewController viewDidAppear:NO]; + [mainViewController viewDidAppear:animated]; } } - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [mainViewController viewDidDisappear:NO]; + [mainViewController viewDidDisappear:animated]; } } @@ -523,7 +523,13 @@ static PhoneMainView* phoneMainViewInstance=nil; [controller setWantsFullScreenLayout:TRUE]; [controller setCall:call]; [controller setModalDelegate:self]; + if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { + [controller viewWillAppear:NO]; + } [[self view] addModalView:[controller view]]; + if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { + [controller viewDidAppear:NO]; + } } } diff --git a/Classes/SettingsViewController.m b/Classes/SettingsViewController.m index f79eb785e..352ee8aee 100644 --- a/Classes/SettingsViewController.m +++ b/Classes/SettingsViewController.m @@ -76,28 +76,28 @@ - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [settingsController viewWillDisappear:NO]; + [settingsController viewWillDisappear:animated]; } } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [settingsController viewWillAppear:NO]; + [settingsController viewWillAppear:animated]; } } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [settingsController viewDidAppear:NO]; + [settingsController viewDidAppear:animated]; } } - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) { - [settingsController viewDidDisappear:NO]; + [settingsController viewDidDisappear:animated]; } }