Fix incall user infos 3

This commit is contained in:
Yann Diorcet 2012-10-01 12:03:35 +02:00
parent d4b28adc50
commit 67adcfc1bc
2 changed files with 37 additions and 28 deletions

View file

@ -144,9 +144,12 @@ enum TableSection {
UICallCellData * data = nil;
if(call != NULL) {
LinphoneCallAppData* appData = (LinphoneCallAppData*) linphone_call_get_user_pointer(call);
if(appData != NULL && [appData->userInfos objectForKey:kLinphoneInCallCellData] == nil) {
data = [[UICallCellData alloc] init:call];
[appData->userInfos setObject:data forKey:kLinphoneInCallCellData];
if(appData != NULL) {
data = [appData->userInfos objectForKey:kLinphoneInCallCellData];
if(data == nil) {
data = [[[UICallCellData alloc] init:call] autorelease];
[appData->userInfos setObject:data forKey:kLinphoneInCallCellData];
}
}
}
return data;

View file

@ -464,6 +464,10 @@
- (void)updateDetailsView {
if(data == nil || data->call == NULL) {
[LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot update call cell: null call or data"];
return;
}
if(data->view == UICallCellOtherView_Avatar && avatarView.isHidden) {
[self->avatarView setHidden:FALSE];
[self->audioStatsView setHidden:TRUE];
@ -507,33 +511,35 @@
- (IBAction)doDetailsSwipe:(UISwipeGestureRecognizer *)sender {
CATransition* trans = nil;
if (sender.direction == UISwipeGestureRecognizerDirectionLeft) {
if(data->view == UICallCellOtherView_MAX - 1) {
data->view = 0;
} else {
++data->view;
if(data != nil) {
if (sender.direction == UISwipeGestureRecognizerDirectionLeft) {
if(data->view == UICallCellOtherView_MAX - 1) {
data->view = 0;
} else {
++data->view;
}
trans = [CATransition animation];
[trans setType:kCATransitionPush];
[trans setDuration:0.35];
[trans setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[trans setSubtype:kCATransitionFromRight];
} else if (sender.direction == UISwipeGestureRecognizerDirectionRight) {
if(data->view == 0) {
data->view = UICallCellOtherView_MAX - 1;
} else {
--data->view;
}
trans = [CATransition animation];
[trans setType:kCATransitionPush];
[trans setDuration:0.35];
[trans setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[trans setSubtype:kCATransitionFromLeft];
}
trans = [CATransition animation];
[trans setType:kCATransitionPush];
[trans setDuration:0.35];
[trans setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[trans setSubtype:kCATransitionFromRight];
} else if (sender.direction == UISwipeGestureRecognizerDirectionRight) {
if(data->view == 0) {
data->view = UICallCellOtherView_MAX - 1;
} else {
--data->view;
if(trans) {
[otherView.layer removeAnimationForKey:@"transition"];
[otherView.layer addAnimation:trans forKey:@"transition"];
[self updateDetailsView];
}
trans = [CATransition animation];
[trans setType:kCATransitionPush];
[trans setDuration:0.35];
[trans setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[trans setSubtype:kCATransitionFromLeft];
}
if(trans) {
[otherView.layer removeAnimationForKey:@"transition"];
[otherView.layer addAnimation:trans forKey:@"transition"];
[self updateDetailsView];
}
}