From 7db9941366b063d0126cc14e2fcbf8aabe7a8ec4 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Fri, 14 Sep 2012 16:51:41 +0200 Subject: [PATCH] Improve ChatRoomView --- Classes/ChatRoomViewController.h | 17 +- Classes/ChatRoomViewController.m | 435 ++++++------ ...ViewController.h => ImageViewController.h} | 12 +- Classes/ImageViewController.m | 71 ++ Classes/ImageViewerViewController.m | 62 -- Classes/PhoneMainView.h | 1 + Classes/Utils/DTFoundation/DTActionSheet.h | 49 ++ Classes/Utils/DTFoundation/DTActionSheet.m | 191 ++++++ Classes/en.lproj/ChatRoomViewController.xib | 335 +++++---- Classes/en.lproj/ChatViewController.xib | 10 +- Classes/en.lproj/HistoryViewController.xib | 2 +- Classes/en.lproj/ImageViewController.xib | 299 ++++++++ Classes/fr.lproj/ChatRoomViewController.xib | 325 +++++---- Classes/fr.lproj/ChatViewController.xib | 10 +- Classes/fr.lproj/HistoryViewController.xib | 5 +- .../ImageViewController.xib} | 217 +++--- Resources/en.lproj/Localizable.strings | Bin 16702 -> 15680 bytes Resources/fr.lproj/Localizable.strings | Bin 17176 -> 16172 bytes Settings/InAppSettings.bundle/Advanced.plist | 2 +- .../en.lproj/Advanced.strings | 3 + .../fr.lproj/Advanced.strings | 3 + linphone.ldb/Contents.plist | 649 ++++++++++++------ .../{12 => 15}/ChatRoomViewController.xib | 335 +++++---- .../{2 => 3}/ChatViewController.xib | 10 +- .../{1 => 2}/HistoryViewController.xib | 2 +- .../3/ImageViewController.xib | 299 ++++++++ .../Advanced/1/Advanced.strings | 3 + .../Localizable/1/Localizable.strings | Bin 16702 -> 15680 bytes linphone.xcodeproj/project.pbxproj | 89 ++- 29 files changed, 2345 insertions(+), 1091 deletions(-) rename Classes/{ImageViewerViewController.h => ImageViewController.h} (86%) create mode 100644 Classes/ImageViewController.m delete mode 100644 Classes/ImageViewerViewController.m create mode 100755 Classes/Utils/DTFoundation/DTActionSheet.h create mode 100755 Classes/Utils/DTFoundation/DTActionSheet.m create mode 100644 Classes/en.lproj/ImageViewController.xib rename Classes/{ImageViewerViewController.xib => fr.lproj/ImageViewController.xib} (56%) rename linphone.ldb/Resources/Classes/ChatRoomViewController/{12 => 15}/ChatRoomViewController.xib (88%) rename linphone.ldb/Resources/Classes/ChatViewController/{2 => 3}/ChatViewController.xib (100%) rename linphone.ldb/Resources/Classes/HistoryViewController/{1 => 2}/HistoryViewController.xib (99%) create mode 100644 linphone.ldb/Resources/Classes/ImageViewController/3/ImageViewController.xib diff --git a/Classes/ChatRoomViewController.h b/Classes/ChatRoomViewController.h index 578301aab..282d2087e 100644 --- a/Classes/ChatRoomViewController.h +++ b/Classes/ChatRoomViewController.h @@ -27,14 +27,11 @@ #include "linphonecore.h" -@interface ChatRoomViewController : UIViewController { +@interface ChatRoomViewController : UIViewController { @private LinphoneChatRoom *chatRoom; - NSString *_remoteAddress; - UIActionSheet* photoSourceSelector; - NSURLConnection* uploadCnx; - NSURLConnection* downloadCnx; - NSString* pendingFileUrl; /*Url received from the remote party to be downloaded*/ + NSURLConnection* uploadContext; + NSURLConnection* downloadContext; NSMutableData* downloadedData; NSInteger totalBytesExpectedToRead; } @@ -55,17 +52,17 @@ @property (nonatomic, retain) IBOutlet UITapGestureRecognizer *listTapGestureRecognizer; @property (nonatomic, copy) NSString *remoteAddress; -@property (nonatomic, retain) IBOutlet UIButton* pictButton; -@property (nonatomic, retain) IBOutlet UIButton* cancelTransfertButton; +@property (nonatomic, retain) IBOutlet UIButton* pictureButton; +@property (nonatomic, retain) IBOutlet UIButton* cancelTransferButton; @property (nonatomic, retain) IBOutlet UIProgressView* imageTransferProgressBar; -@property (nonatomic, retain) IBOutlet UIView* transfertView; +@property (nonatomic, retain) IBOutlet UIView* transferView; - (IBAction)onBackClick:(id)event; - (IBAction)onEditClick:(id)event; - (IBAction)onMessageChange:(id)sender; - (IBAction)onSendClick:(id)event; -- (IBAction)onPictClick:(id)event; +- (IBAction)onPictureClick:(id)event; - (IBAction)onTransferCancelClick:(id)event; - (IBAction)onListTap:(id)sender; diff --git a/Classes/ChatRoomViewController.m b/Classes/ChatRoomViewController.m index ffd1b36fb..746adb0c3 100644 --- a/Classes/ChatRoomViewController.m +++ b/Classes/ChatRoomViewController.m @@ -22,10 +22,7 @@ #import #import #import -#import "ImageViewerViewController.h" - -#define FILE_DOWNLOAD_ACTION_SHEET 1 -#define FILE_CHOOSER_ACTION_SHEET 2 +#import "DTActionSheet.h" @implementation ChatRoomViewController @@ -33,7 +30,7 @@ @synthesize sendButton; @synthesize messageField; @synthesize editButton; -@synthesize remoteAddress = _remoteAddress; +@synthesize remoteAddress; @synthesize addressLabel; @synthesize avatarImage; @synthesize headerView; @@ -43,10 +40,12 @@ @synthesize messageBackgroundImage; @synthesize footerBackgroundImage; @synthesize listTapGestureRecognizer; -@synthesize pictButton; +@synthesize pictureButton; @synthesize imageTransferProgressBar; -@synthesize cancelTransfertButton; -@synthesize transfertView; +@synthesize cancelTransferButton; +@synthesize transferView; + + #pragma mark - Lifecycle Functions - (id)init { @@ -63,7 +62,7 @@ [messageField release]; [sendButton release]; [editButton release]; - [_remoteAddress release]; + [remoteAddress release]; [addressLabel release]; [avatarImage release]; [headerView release]; @@ -71,11 +70,13 @@ [messageView release]; [messageBackgroundImage release]; [footerBackgroundImage release]; + [listTapGestureRecognizer release]; - [transfertView release]; - [pictButton release]; + + [transferView release]; + [pictureButton release]; [imageTransferProgressBar release]; - [cancelTransfertButton release]; + [cancelTransferButton release]; [super dealloc]; } @@ -117,7 +118,8 @@ static UICompositeViewDescription *compositeDescription = nil; messageField.font = [UIFont systemFontOfSize:18.0f]; messageField.contentInset = UIEdgeInsetsZero; messageField.backgroundColor = [UIColor clearColor]; - [self enableTransfertView:FALSE]; + [self enableTransferView:FALSE]; + [sendButton setEnabled:FALSE]; } @@ -150,18 +152,21 @@ static UICompositeViewDescription *compositeDescription = nil; [footerBackgroundImage setImage:[TUNinePatchCache imageOfSize:[footerBackgroundImage bounds].size forNinePatchNamed:@"chat_background"]]; BOOL fileSharingEnabled = [[LinphoneManager instance] lpConfigStringForKey:@"file_upload_url_preference"] != NULL - && [[[LinphoneManager instance] lpConfigStringForKey:@"file_upload_url_preference"] length]>0 ; - [pictButton setHidden:!fileSharingEnabled]; - - CGRect frame = messageView.frame; + && [[[LinphoneManager instance] lpConfigStringForKey:@"file_upload_url_preference"] length]>0; + + CGRect pictureFrame = pictureButton.frame; + CGRect messageframe = messageView.frame; + CGRect sendFrame = sendButton.frame; if (fileSharingEnabled) { - frame.origin.x=61; - frame.size.width=175; + [pictureButton setHidden:FALSE]; + messageframe.origin.x = pictureFrame.origin.x + pictureFrame.size.width; + messageframe.size.width = sendFrame.origin.x - messageframe.origin.x; } else { - frame.origin.x=0; - frame.size.width=175+61; + [pictureButton setHidden:TRUE]; + messageframe.origin.x = pictureFrame.origin.x; + messageframe.size.width = sendFrame.origin.x - messageframe.origin.x; } - [messageView setFrame:frame]; + [messageView setFrame:messageframe]; } @@ -196,24 +201,24 @@ static UICompositeViewDescription *compositeDescription = nil; #pragma mark - - (void)setRemoteAddress:(NSString*)aRemoteAddress { - if(_remoteAddress != nil) { - [_remoteAddress release]; + if(remoteAddress != nil) { + [remoteAddress release]; } - _remoteAddress = [aRemoteAddress copy]; + remoteAddress = [aRemoteAddress copy]; [messageField setText:@""]; [self update]; - [tableController setRemoteAddress: _remoteAddress]; + [tableController setRemoteAddress: remoteAddress]; } - (void)update { - if(_remoteAddress == NULL) { + if(remoteAddress == NULL) { [LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot update chat room header: null contact"]; return; } NSString *displayName = nil; UIImage *image = nil; - LinphoneAddress* linphoneAddress = linphone_core_interpret_url([LinphoneManager getLc], [_remoteAddress UTF8String]); + LinphoneAddress* linphoneAddress = linphone_core_interpret_url([LinphoneManager getLc], [remoteAddress UTF8String]); if (linphoneAddress == NULL) { [[PhoneMainView instance] popCurrentView]; UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Invalid SIP address",nil) @@ -234,8 +239,8 @@ static UICompositeViewDescription *compositeDescription = nil; displayName = [FastAddressBook getContactDisplayName:acontact]; image = [FastAddressBook getContactImage:acontact thumbnail:true]; } - [_remoteAddress release]; - _remoteAddress = [normalizedSipAddress retain]; + [remoteAddress release]; + remoteAddress = [normalizedSipAddress retain]; // Display name if(displayName == nil) { @@ -267,17 +272,17 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta [LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot send message: Linphone core not ready"]; return FALSE; } - if(_remoteAddress == nil) { + if(remoteAddress == nil) { [LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot send message: Null remoteAddress"]; return FALSE; } if(chatRoom == NULL) { - chatRoom = linphone_core_create_chat_room([LinphoneManager getLc], [_remoteAddress UTF8String]); + chatRoom = linphone_core_create_chat_room([LinphoneManager getLc], [remoteAddress UTF8String]); } // Save message in database ChatModel *chat = [[ChatModel alloc] init]; - [chat setRemoteContact:_remoteAddress]; + [chat setRemoteContact:remoteAddress]; [chat setLocalContact:@""]; [chat setMessage:message]; [chat setDirection:[NSNumber numberWithInt:0]]; @@ -286,7 +291,8 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta [chat setState:[NSNumber numberWithInt:1]]; //INPROGRESS [chat create]; [tableController addChatEntry:chat]; - // [chat release]; commenting this line avoid a crash on first message sent, specially when picture + [chat release]; + LinphoneChatMessage* msg = linphone_chat_room_create_message(chatRoom, [message UTF8String]); linphone_chat_message_set_user_data(msg, chat); if (url) { @@ -309,7 +315,7 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta char *fromStr = linphone_address_as_string_uri_only(from); if(fromStr != NULL) { if([[NSString stringWithUTF8String:fromStr] - caseInsensitiveCompare:_remoteAddress] == NSOrderedSame) { + caseInsensitiveCompare:remoteAddress] == NSOrderedSame) { [chat setRead:[NSNumber numberWithInt:1]]; [chat update]; [[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self]; @@ -317,16 +323,18 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta } ms_free(fromStr); } + if ([[notif userInfo] objectForKey:@"external_body_url"]) { - pendingFileUrl=[[[notif userInfo] objectForKey:@"external_body_url"] retain]; - UIActionSheet* new_incoming_file = [[UIActionSheet alloc] initWithTitle:NSLocalizedString(@"Incoming file stored to your photo library",nil) - delegate:self - cancelButtonTitle:NSLocalizedString(@"Ignore",nil) - destructiveButtonTitle:nil - otherButtonTitles:NSLocalizedString(@"Accept",nil),nil]; - [new_incoming_file setTag:FILE_DOWNLOAD_ACTION_SHEET]; - [new_incoming_file showInView:self.view]; - [new_incoming_file release]; + NSString *pendingFileUrl = [[[notif userInfo] objectForKey:@"external_body_url"] retain]; + + DTActionSheet *sheet = [[[DTActionSheet alloc] initWithTitle:NSLocalizedString(@"Incoming file stored to your photo library",nil)] autorelease]; + [sheet addButtonWithTitle:NSLocalizedString(@"Accept",nil) block:^(){ + [downloadContext release]; + downloadContext = [self downloadImageFrom:pendingFileUrl]; + [self startDownload]; + }]; + [sheet addCancelButtonWithTitle:NSLocalizedString(@"Ignore",nil)]; + [sheet showInView:self.view]; } } else { [LinphoneLogger logc:LinphoneLoggerWarning format:"Invalid textReceivedEvent"]; @@ -384,6 +392,7 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta - (IBAction)onSendClick:(id)event { if([self sendMessage:[messageField text] withExterlBodyUrl:nil]) { [messageField setText:@""]; + [self onMessageChange:nil]; } } @@ -399,246 +408,210 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta } } -- (IBAction)onPictClick:(id)event { - - photoSourceSelector = [[UIActionSheet alloc] initWithTitle:NSLocalizedString(@"Select picture source",nil) - delegate:self - cancelButtonTitle:NSLocalizedString(@"Cancel",nil) - destructiveButtonTitle:nil - otherButtonTitles:NSLocalizedString(@"Camera",nil),NSLocalizedString(@"Photo library",nil), nil]; +- (IBAction)onPictureClick:(id)event { + [messageField resignFirstResponder]; - photoSourceSelector.actionSheetStyle = UIActionSheetStyleDefault; - [photoSourceSelector setTag:FILE_CHOOSER_ACTION_SHEET]; - [photoSourceSelector showInView:self.view]; - [photoSourceSelector release]; - - + DTActionSheet *sheet = [[[DTActionSheet alloc] initWithTitle:NSLocalizedString(@"Select picture source",nil)] autorelease]; + if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { + [sheet addButtonWithTitle:NSLocalizedString(@"Camera",nil) block:^(){ + UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init]; + mediaUI.sourceType = UIImagePickerControllerSourceTypeCamera; + + // Displays a control that allows the user to choose picture or + // movie capture, if both are available: + mediaUI.mediaTypes = + [UIImagePickerController availableMediaTypesForSourceType: + UIImagePickerControllerSourceTypeCamera]; + + // Hides the controls for moving & scaling pictures, or for + // trimming movies. To instead show the controls, use YES. + mediaUI.allowsEditing = NO; + mediaUI.delegate = self; + [self presentModalViewController: mediaUI animated: YES]; + }]; + } + if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { + [sheet addButtonWithTitle:NSLocalizedString(@"Photo library",nil) block:^(){ + UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init]; + mediaUI.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; + + // Displays saved pictures and movies, if both are available, from the + // Camera Roll album. + mediaUI.mediaTypes = + [UIImagePickerController availableMediaTypesForSourceType: + UIImagePickerControllerSourceTypePhotoLibrary]; + + // Hides the controls for moving & scaling pictures, or for + // trimming movies. To instead show the controls, use YES. + mediaUI.allowsEditing = NO; + mediaUI.delegate = self; + [self presentModalViewController: mediaUI animated: YES]; + }]; + } + [sheet addCancelButtonWithTitle:NSLocalizedString(@"Cancel",nil)]; + [sheet showInView:self.view]; } + - (IBAction)onTransferCancelClick:(id)event { - [uploadCnx cancel]; - [downloadCnx cancel]; - [self stopUpload]; - [self stopDownload]; - [LinphoneLogger log:LinphoneLoggerLog format:@"File transfert interrupted by user "]; + if(uploadContext) { + [uploadContext cancel]; + [self stopUpload]; + } + if(downloadContext) { + [downloadContext cancel]; + [self stopDownload]; + } + [LinphoneLogger log:LinphoneLoggerLog format:@"File transfer interrupted by user"]; } --(void) enableTransfertView:(BOOL) isTranfer { +- (void)enableTransferView:(BOOL)isTranfer { if (isTranfer) { [imageTransferProgressBar setProgress:0.0]; } else { - //[uploadCnx cancel]; - + //[uploadContext cancel]; } - [transfertView setHidden:!isTranfer]; + [footerView setHidden:isTranfer]; + [transferView setHidden:!isTranfer]; [imageTransferProgressBar setHidden:!isTranfer]; - [cancelTransfertButton setHidden:!isTranfer]; - [pictButton setHidden:isTranfer]; + [cancelTransferButton setHidden:!isTranfer]; [sendButton setEnabled:!isTranfer]; } --(void) startUpload { - [self enableTransfertView:TRUE]; -} --(void) stopUpload { - [self enableTransfertView:FALSE]; -} --(void) startDownload { - [self enableTransfertView:TRUE]; -} --(void) stopDownload { - [self enableTransfertView:FALSE]; +- (void)startUpload { + [self enableTransferView:TRUE]; } --(void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { - - switch (actionSheet.tag) { - case FILE_CHOOSER_ACTION_SHEET: { - UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init]; - switch (buttonIndex) { - case 0: { - if ([UIImagePickerController isSourceTypeAvailable: - UIImagePickerControllerSourceTypeCamera] == NO) { - [LinphoneLogger log:LinphoneLoggerLog format:@"no camera found, using image library"]; - } else { - mediaUI.sourceType = UIImagePickerControllerSourceTypeCamera; - - // Displays a control that allows the user to choose picture or - // movie capture, if both are available: - mediaUI.mediaTypes = - [UIImagePickerController availableMediaTypesForSourceType: - UIImagePickerControllerSourceTypeCamera]; - - // Hides the controls for moving & scaling pictures, or for - // trimming movies. To instead show the controls, use YES. - mediaUI.allowsEditing = NO; - break; - } - } - case 1: { - - mediaUI.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; - - // Displays saved pictures and movies, if both are available, from the - // Camera Roll album. - mediaUI.mediaTypes = - [UIImagePickerController availableMediaTypesForSourceType: - UIImagePickerControllerSourceTypePhotoLibrary]; - - // Hides the controls for moving & scaling pictures, or for - // trimming movies. To instead show the controls, use YES. - mediaUI.allowsEditing = NO; - - break; - } - default: - [mediaUI release]; - return ;break; - - } - mediaUI.delegate = self; - [self presentModalViewController: mediaUI animated: YES]; - break; - } - case FILE_DOWNLOAD_ACTION_SHEET: { - switch (buttonIndex) { - case 0: - [downloadCnx release]; - downloadCnx= [self downloadImageFrom:pendingFileUrl]; - [self startDownload]; - break; - case 1: - default: { - //nop - } - break; - } - break; - } - default: - [LinphoneLogger log:LinphoneLoggerError format:@"Unexpected action sheet result for tag [%i]",actionSheet.tag]; - - } - +- (void)stopUpload { + [self enableTransferView:FALSE]; } + +- (void)startDownload { + [self enableTransferView:TRUE]; +} + +- (void)stopDownload { + [self enableTransferView:FALSE]; +} + + #pragma mark - NSURLConnectionDelegate + - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { - UIAlertView* errorAlert = [UIAlertView alloc]; - if (connection == uploadCnx) { + if (connection == uploadContext) { [self stopUpload]; - [LinphoneLogger log:LinphoneLoggerError format:@"Cannot upload file to server [%@] because [%@]",[[LinphoneManager instance] lpConfigStringForKey:@"file_upload_url"],[error localizedDescription]]; - [errorAlert initWithTitle:NSLocalizedString(@"Tranfer error",nil) - message:NSLocalizedString(@"Cannot transfert file to remote pary",nil) + NSString *serverUrl = [[LinphoneManager instance] lpConfigStringForKey:@"file_upload_url"]; + [LinphoneLogger log:LinphoneLoggerError format:@"Cannot upload file to server [%@] because [%@]", serverUrl, [error localizedDescription]]; + UIAlertView* errorAlert = [UIAlertView alloc]; + [errorAlert initWithTitle:NSLocalizedString(@"Transfer error", nil) + message:NSLocalizedString(@"Cannot transfer file to remote contact", nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"Ok",nil) otherButtonTitles:nil ,nil]; [errorAlert show]; - }else if (connection == downloadCnx) { - [LinphoneLogger log:LinphoneLoggerError format:@"Cannot dowanlod file from [%@] because [%@]",pendingFileUrl,[error localizedDescription]]; - [errorAlert initWithTitle:NSLocalizedString(@"Tranfer error",nil) - message:NSLocalizedString(@"Cannot transfert file from remote pary",nil) + [errorAlert release]; + }else if (connection == downloadContext) { + [LinphoneLogger log:LinphoneLoggerError format:@"Cannot dowanlod file from [%@] because [%@]", [connection.currentRequest.URL absoluteString], [error localizedDescription]]; + UIAlertView* errorAlert = [UIAlertView alloc]; + [errorAlert initWithTitle:NSLocalizedString(@"Transfer error", nil) + message:NSLocalizedString(@"Cannot transfer file from remote contact", nil) delegate:nil - cancelButtonTitle:NSLocalizedString(@"Continue",nil) - otherButtonTitles:nil ,nil]; + cancelButtonTitle:NSLocalizedString(@"Continue", nil) + otherButtonTitles:nil, nil]; [errorAlert show]; + [errorAlert release]; } else { - [LinphoneLogger log:LinphoneLoggerError format:@"Unknown connection error [%@]",[error localizedDescription]]; + [LinphoneLogger log:LinphoneLoggerError format:@"Invalid file transfer connection", connection]; } - [errorAlert release]; - } --(void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite { +- (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite { [imageTransferProgressBar setProgress:(float)((float)totalBytesWritten/(float)totalBytesExpectedToWrite) animated:FALSE]; } + - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { - if (connection == uploadCnx) { + if (connection == uploadContext) { NSString* imageRemoteUrl=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; - [LinphoneLogger log:LinphoneLoggerLog format:@"File can be downloaded from [%@]",imageRemoteUrl]; + [LinphoneLogger log:LinphoneLoggerLog format:@"File can be downloaded from [%@]", imageRemoteUrl]; [self sendMessage:NSLocalizedString(@"Image sent",nil) withExterlBodyUrl:imageRemoteUrl]; - } else if (connection == downloadCnx) { - if (downloadedData == nil) downloadedData = [[NSMutableData alloc] initWithCapacity:4096]; + } else if (connection == downloadContext) { + if (downloadedData == nil) downloadedData = [[NSMutableData alloc] initWithCapacity:[data length]]; [downloadedData appendData:data]; - [imageTransferProgressBar setProgress:(float)((float)downloadedData.length/(float)totalBytesExpectedToRead) animated:FALSE]; + [imageTransferProgressBar setProgress:((float)downloadedData.length/(float)totalBytesExpectedToRead) animated:FALSE]; } else { - [LinphoneLogger log:LinphoneLoggerError format:@"Unknown received value error"]; + [LinphoneLogger log:LinphoneLoggerError format:@"Invalid file transfer connection", connection]; } } + - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { NSHTTPURLResponse * httpResponse = (NSHTTPURLResponse *) response; int statusCode = httpResponse.statusCode;; - [LinphoneLogger log:LinphoneLoggerLog format:@"File transfert status code [%i]",statusCode]; - UIAlertView* errorAlert = [UIAlertView alloc]; - if (connection == uploadCnx) { + [LinphoneLogger log:LinphoneLoggerLog format:@"File transfer status code [%i]",statusCode]; + + if (connection == uploadContext) { if (statusCode == 200) { //nop } else if (statusCode >= 400) { - - [errorAlert initWithTitle:NSLocalizedString(@"Transfer error",nil) - message:NSLocalizedString(@"Cannot transfert file to remote pary",nil) + UIAlertView* errorAlert = [UIAlertView alloc]; + [errorAlert initWithTitle:NSLocalizedString(@"Transfer error",nil) + message:NSLocalizedString(@"Cannot transfer file to remote contact",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"Continue",nil) otherButtonTitles:nil ,nil]; [errorAlert show]; - + [errorAlert release]; } - - } else if (connection == downloadCnx) { + } else if (connection == downloadContext) { if (statusCode == 200) { - totalBytesExpectedToRead=[response expectedContentLength]; + totalBytesExpectedToRead = [response expectedContentLength]; } else if (statusCode >= 400) { + UIAlertView* errorAlert = [UIAlertView alloc]; [errorAlert initWithTitle:NSLocalizedString(@"Transfer error",nil) - message:NSLocalizedString(@"Cannot transfert file from remote pary",nil) + message:NSLocalizedString(@"Cannot transfer file from remote contact",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"Continue",nil) otherButtonTitles:nil ,nil]; [errorAlert show]; - } else { - //TODO - } - + [errorAlert release]; + } } else { - //FIXE + [LinphoneLogger log:LinphoneLoggerError format:@"Invalid file transfer connection", connection]; } - - [errorAlert release]; - - } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { - if (connection == uploadCnx) { - //nothing to do [self enableTransfert:FALSE]; + if (connection == uploadContext) { [self stopUpload]; - //[uploadCnx release]; - uploadCnx=nil; - } else if (connection == downloadCnx) { + uploadContext = nil; + } else if (connection == downloadContext) { ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; - [library writeImageDataToSavedPhotosAlbum:downloadedData + [library writeImageDataToSavedPhotosAlbum:downloadedData metadata:nil completionBlock:^(NSURL *assetURL, NSError *error){ if (error) { - [LinphoneLogger log:LinphoneLoggerError format:@"Cannot save image data downloaded because [%@]",[error localizedDescription]]; + [LinphoneLogger log:LinphoneLoggerError format:@"Cannot save image data downloaded [%@]",[error localizedDescription]]; } else { [LinphoneLogger log:LinphoneLoggerLog format:@"Image saved to [%@]",[assetURL absoluteString]]; } - - ImageViewerViewController* imageView = [[ImageViewerViewController alloc ]initWithNibName:@"ImageViewerViewController" bundle:[NSBundle mainBundle]]; - [imageView setImageToDisplay:[UIImage imageWithData:downloadedData]]; - [self presentModalViewController: imageView animated: YES]; + ImageViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[ImageViewController compositeViewDescription] push:TRUE], ImageViewController); + if(controller != nil) { + [controller setImage:[UIImage imageWithData:downloadedData]]; + } [downloadedData release]; - downloadedData=nil; + downloadedData = nil; }]; [library release]; [self stopDownload]; - //[downloadCnx release]; - downloadCnx=nil; + downloadContext = nil; + } else { + [LinphoneLogger log:LinphoneLoggerError format:@"Invalid file transfer connection", connection]; } } --(NSURLConnection*) downloadImageFrom:(NSString*) address { - [LinphoneLogger log:LinphoneLoggerLog format:@"downloading [%@]",address]; + +- (NSURLConnection*)downloadImageFrom:(NSString*)address { + [LinphoneLogger log:LinphoneLoggerLog format:@"downloading [%@]", address]; NSURL* url = [NSURL URLWithString: address ]; NSURLRequest* request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy @@ -648,7 +621,7 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta } --(NSURLConnection*) uploadImage:(UIImage*) image Named:(NSString*) name { +- (NSURLConnection*)uploadImage:(UIImage*)image Named:(NSString*)name { /* turning the image into a NSData object getting the image back out of the UIImageView @@ -671,7 +644,7 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta You might want to generate a random boundary.. this is just the same as my output from wireshark on a valid html post */ - NSString *boundary =@"---------------------------14737809831466499882746641449"; + NSString *boundary = @"---------------------------14737809831466499882746641449"; NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; @@ -687,41 +660,39 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta // setting the body of the post to the reqeust [request setHTTPBody:body]; - return [NSURLConnection connectionWithRequest:(NSURLRequest *)request - delegate:self]; + return [NSURLConnection connectionWithRequest:(NSURLRequest *)request delegate:self]; } #pragma mark UIImagePickerControllerDelegate -// For responding to the user tapping Cancel. -- (void) imagePickerControllerDidCancel: (UIImagePickerController *) picker { + +- (void)imagePickerControllerDidCancel:(UIImagePickerController *) picker { [self dismissModalViewControllerAnimated: YES]; [picker release]; } -- (void) imagePickerController: (UIImagePickerController *) picker - didFinishPickingMediaWithInfo: (NSDictionary *) info { - +- (void)imagePickerController: (UIImagePickerController *) picker didFinishPickingMediaWithInfo: (NSDictionary *) info { NSURL *imageURL = [info valueForKey: UIImagePickerControllerReferenceURL]; - UIImage* imageToUse = (UIImage *) [info objectForKey: UIImagePickerControllerOriginalImage]; - NSString* imageName; - if (imageURL) { - // extract id from asset-url ex: assets-library://asset/asset.JPG?id=1645156-6151-1513&ext=JPG - NSArray *parameters = [[imageURL query] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"=&"]]; - for (int i = 0; i < [parameters count]; i=i+2) { - if ([(NSString*)[parameters objectAtIndex:i] isEqualToString:@"id"]) { - imageName=[NSString stringWithFormat:@"%@.jpg",(NSString*)[parameters objectAtIndex:i+1]]; - } - } - } else { - // must be "unique" - imageName=[NSString stringWithFormat:@"%i.jpg",[imageToUse hash]]; - } - uploadCnx =[self uploadImage:imageToUse Named: imageName]; - [self startUpload]; - + UIImage* imageToUse = (UIImage *) [info objectForKey: UIImagePickerControllerOriginalImage]; + NSString* imageName; + if (imageURL) { + // extract id from asset-url ex: assets-library://asset/asset.JPG?id=1645156-6151-1513&ext=JPG + NSArray *parameters = [[imageURL query] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"=&"]]; + for (int i = 0; i < [parameters count]; i=i+2) { + if ([(NSString*)[parameters objectAtIndex:i] isEqualToString:@"id"]) { + imageName=[NSString stringWithFormat:@"%@.jpg",(NSString*)[parameters objectAtIndex:i+1]]; + } + } + } else { + // must be "unique" + imageName=[NSString stringWithFormat:@"%i.jpg",[imageToUse hash]]; + } + uploadContext = [self uploadImage:imageToUse Named: imageName]; + [self startUpload]; + [picker.presentingViewController dismissModalViewControllerAnimated: YES]; [picker release]; } + #pragma mark - Keyboard Event Functions - (void)keyboardWillHide:(NSNotification *)notif { diff --git a/Classes/ImageViewerViewController.h b/Classes/ImageViewController.h similarity index 86% rename from Classes/ImageViewerViewController.h rename to Classes/ImageViewController.h index 24d29ac0e..7befe1552 100644 --- a/Classes/ImageViewerViewController.h +++ b/Classes/ImageViewController.h @@ -1,4 +1,4 @@ -/* ImageViewerViewController.h +/* ImageViewController.h * * Copyright (C) 2012 Belledonne Comunications, Grenoble, France * @@ -19,16 +19,16 @@ #import -@interface ImageViewerViewController : UIViewController { +#import "UICompositeViewController.h" + +@interface ImageViewController : UIViewController { } - - @property (nonatomic, retain) IBOutlet UIImageView *imageView; -@property (nonatomic, retain) UIImage *imageToDisplay; +@property (nonatomic, retain) UIImage *image; @property (nonatomic, retain) IBOutlet UIButton *backButton; - - (IBAction)onBackClick:(id)sender; + @end \ No newline at end of file diff --git a/Classes/ImageViewController.m b/Classes/ImageViewController.m new file mode 100644 index 000000000..e71d91e89 --- /dev/null +++ b/Classes/ImageViewController.m @@ -0,0 +1,71 @@ +/* ImageViewController.m + * + * Copyright (C) 2012 Belledonne Comunications, Grenoble, France + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#import "ImageViewController.h" +#import "PhoneMainView.h" + +@interface ImageViewController () + +@end + +@implementation ImageViewController + +@synthesize imageView; +@synthesize backButton; +@synthesize image; + +#pragma mark - UICompositeViewDelegate Functions + +static UICompositeViewDescription *compositeDescription = nil; + ++ (UICompositeViewDescription *)compositeViewDescription { + if(compositeDescription == nil) { + compositeDescription = [[UICompositeViewDescription alloc] init:@"ImageView" + content:@"ImageViewController" + stateBar:nil + stateBarEnabled:false + tabBar:nil + tabBarEnabled:false + fullscreen:false + landscapeMode:[LinphoneManager runningOnIpad] + portraitMode:true]; + } + return compositeDescription; +} + +#pragma mark - Property Functions + +- (void)setImage:(UIImage *)aimage { + imageView.image = aimage; +} + +- (UIImage *)image { + return imageView.image; +} + + +#pragma mark - Action Functions + +- (IBAction)onBackClick:(id)sender { + if([[[PhoneMainView instance] currentView] equal:[ImageViewController compositeViewDescription]]) { + [[PhoneMainView instance] popCurrentView]; + } +} + +@end diff --git a/Classes/ImageViewerViewController.m b/Classes/ImageViewerViewController.m deleted file mode 100644 index eb3bcd0ce..000000000 --- a/Classes/ImageViewerViewController.m +++ /dev/null @@ -1,62 +0,0 @@ -/* ImageViewerViewController.h - * - * Copyright (C) 2012 Belledonne Comunications, Grenoble, France - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - - -#import "ImageViewerViewController.h" - -@interface ImageViewerViewController () - -@end - -@implementation ImageViewerViewController -@synthesize imageView; -@synthesize backButton; -@synthesize imageToDisplay; - -- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil -{ - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) { - // Custom initialization - } - return self; -} - -- (void)viewDidLoad -{ - [super viewDidLoad]; - [imageView setImage:imageToDisplay]; -} - -- (void)viewDidUnload -{ - [super viewDidUnload]; - // Release any retained subviews of the main view. - // e.g. self.myOutlet = nil; -} - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation -{ - return (interfaceOrientation == UIInterfaceOrientationPortrait); -} - -- (IBAction)onBackClick:(id)sender { - [self.presentingViewController dismissModalViewControllerAnimated: YES]; -} -@end diff --git a/Classes/PhoneMainView.h b/Classes/PhoneMainView.h index 4d6c91ede..e92f28834 100644 --- a/Classes/PhoneMainView.h +++ b/Classes/PhoneMainView.h @@ -39,6 +39,7 @@ #import "WizardViewController.h" #import "IncomingCallViewController.h" #import "ConsoleViewController.h" +#import "ImageViewController.h" @interface PhoneMainView : UIViewController { @private diff --git a/Classes/Utils/DTFoundation/DTActionSheet.h b/Classes/Utils/DTFoundation/DTActionSheet.h new file mode 100755 index 000000000..2c2a8b23d --- /dev/null +++ b/Classes/Utils/DTFoundation/DTActionSheet.h @@ -0,0 +1,49 @@ +// +// DTActionSheet.h +// DTFoundation +// +// Created by Oliver Drobnik on 08.06.12. +// Copyright (c) 2012 Cocoanetics. All rights reserved. +// + +typedef void (^DTActionSheetBlock)(void); + +/** + Extends UIActionSheet with support for blocks + */ + +@interface DTActionSheet : UIActionSheet + +/** + Initializes the action sheet using the specified title. + */ +- (id)initWithTitle:(NSString *)title; + +/** + Adds a custom button to the action sheet. + @param title The title of the new button. + @param block The block to execute when the button is tapped. + @returns The index of the new button. Button indices start at 0 and increase in the order they are added. +*/ +- (NSInteger)addButtonWithTitle:(NSString *)title block:(DTActionSheetBlock)block; + +/** + Adds a custom destructive button to the action sheet. + + Since there can only be one destructive button a previously marked destructive button becomes a normal button. + @param title The title of the new button. + @param block The block to execute when the button is tapped. + @returns The index of the new button. Button indices start at 0 and increase in the order they are added. + */ +- (NSInteger)addDestructiveButtonWithTitle:(NSString *)title block:(DTActionSheetBlock)block; + +/** + Adds a custom cancel button to the action sheet. + + Since there can only be one cancel button a previously marked cancel button becomes a normal button. + @param title The title of the new button. + @returns The index of the new button. Button indices start at 0 and increase in the order they are added. + */ +- (NSInteger)addCancelButtonWithTitle:(NSString *)title; + +@end diff --git a/Classes/Utils/DTFoundation/DTActionSheet.m b/Classes/Utils/DTFoundation/DTActionSheet.m new file mode 100755 index 000000000..eeb2161bc --- /dev/null +++ b/Classes/Utils/DTFoundation/DTActionSheet.m @@ -0,0 +1,191 @@ +// +// DTActionSheet.m +// DTFoundation +// +// Created by Oliver Drobnik on 08.06.12. +// Copyright (c) 2012 Cocoanetics. All rights reserved. +// + +#import "DTActionSheet.h" + +@interface DTActionSheet () + +@end + +@implementation DTActionSheet +{ + id _externalDelegate; + + NSMutableDictionary *_actionsPerIndex; + + // lookup bitmask what delegate methods are implemented + struct + { + unsigned int delegateSupportsActionSheetCancel:1; + unsigned int delegateSupportsWillPresentActionSheet:1; + unsigned int delegateSupportsDidPresentActionSheet:1; + unsigned int delegateSupportsWillDismissWithButtonIndex:1; + unsigned int delegateSupportsDidDismissWithButtonIndex:1; + } _delegateFlags; +} + +- (id)init +{ + self = [super init]; + if (self) + { + _actionsPerIndex = [[NSMutableDictionary alloc] init]; + self.delegate = self; + } + + return self; +} + +// designated initializer +- (id)initWithTitle:(NSString *)title +{ + self = [self init]; + if (self) + { + self.title = title; + } + + return self; +} + +- (NSInteger)addButtonWithTitle:(NSString *)title block:(DTActionSheetBlock)block +{ + NSInteger retIndex = [self addButtonWithTitle:title]; + + if (block) + { + NSNumber *key = [NSNumber numberWithInt:retIndex]; + [_actionsPerIndex setObject:[block copy] forKey:key]; + } + + return retIndex; +} + +- (NSInteger)addDestructiveButtonWithTitle:(NSString *)title block:(DTActionSheetBlock)block +{ + NSInteger retIndex = [self addButtonWithTitle:title block:block]; + [self setDestructiveButtonIndex:retIndex]; + + return retIndex; +} + +- (NSInteger)addCancelButtonWithTitle:(NSString *)title +{ + NSInteger retIndex = [self addButtonWithTitle:title]; + [self setCancelButtonIndex:retIndex]; + + return retIndex; +} + +#pragma UIActionSheetDelegate (forwarded) + +- (void)actionSheetCancel:(UIActionSheet *)actionSheet +{ + if (_delegateFlags.delegateSupportsActionSheetCancel) + { + [_externalDelegate actionSheetCancel:actionSheet]; + } +} + +- (void)willPresentActionSheet:(UIActionSheet *)actionSheet +{ + if (_delegateFlags.delegateSupportsWillPresentActionSheet) + { + [_externalDelegate willPresentActionSheet:actionSheet]; + } +} + +- (void)didPresentActionSheet:(UIActionSheet *)actionSheet +{ + if (_delegateFlags.delegateSupportsDidPresentActionSheet) + { + [_externalDelegate didPresentActionSheet:actionSheet]; + } +} + +- (void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex +{ + if (_delegateFlags.delegateSupportsWillDismissWithButtonIndex) + { + [_externalDelegate actionSheet:actionSheet willDismissWithButtonIndex:buttonIndex]; + } +} + + +- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex +{ + NSNumber *key = [NSNumber numberWithInt:buttonIndex]; + + DTActionSheetBlock block = [_actionsPerIndex objectForKey:key]; + + if (block) + { + block(); + } + + if (_delegateFlags.delegateSupportsDidDismissWithButtonIndex) + { + [_externalDelegate actionSheet:actionSheet didDismissWithButtonIndex:buttonIndex]; + } +} + + +#pragma mark Properties + +- (id )delegate +{ + return _externalDelegate; +} + +- (void)setDelegate:(id )delegate +{ + if (delegate == self) + { + [super setDelegate:self]; + } + else if (delegate == nil) + { + [super setDelegate:nil]; + _externalDelegate = nil; + } + else + { + _externalDelegate = delegate; + } + + // wipe + memset(&_delegateFlags, 0, sizeof(_delegateFlags)); + + // set flags according to available methods in delegate + if ([_externalDelegate respondsToSelector:@selector(actionSheetCancel:)]) + { + _delegateFlags.delegateSupportsActionSheetCancel = YES; + } + + if ([_externalDelegate respondsToSelector:@selector(willPresentActionSheet:)]) + { + _delegateFlags.delegateSupportsWillPresentActionSheet = YES; + } + + if ([_externalDelegate respondsToSelector:@selector(didPresentActionSheet:)]) + { + _delegateFlags.delegateSupportsDidPresentActionSheet = YES; + } + + if ([_externalDelegate respondsToSelector:@selector(actionSheet:willDismissWithButtonIndex:)]) + { + _delegateFlags.delegateSupportsWillDismissWithButtonIndex = YES; + } + + if ([_externalDelegate respondsToSelector:@selector(actionSheet:didDismissWithButtonIndex:)]) + { + _delegateFlags.delegateSupportsDidDismissWithButtonIndex = YES; + } +} + +@end diff --git a/Classes/en.lproj/ChatRoomViewController.xib b/Classes/en.lproj/ChatRoomViewController.xib index dd7c2c6ba..dfb378fa5 100644 --- a/Classes/en.lproj/ChatRoomViewController.xib +++ b/Classes/en.lproj/ChatRoomViewController.xib @@ -138,7 +138,7 @@ {{0, 80}, {320, 277}} - + _NS:9 3 @@ -154,6 +154,89 @@ 22 22 + + + -2147483356 + + + + 274 + {320, 59} + + + + _NS:9 + + 1 + MSAwLjI4MzE1ODM3MjYgMC4wNTY3ODY4OTE2MQA + + NO + IBCocoaTouchFramework + + NSImage + chat_background.png + + + + + 292 + {{250, 0}, {70, 59}} + + + + _NS:9 + NO + + Cancel + + IBCocoaTouchFramework + 0 + 0 + Cancel + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + 3 + MC41AA + + + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + + + + 292 + {{20, 25}, {213, 9}} + + + + _NS:9 + NO + + Upload or download progression + + + IBCocoaTouchFramework + 0.5 + + + {{0, 357}, {320, 59}} + + + + _NS:9 + + IBCocoaTouchFramework + 266 @@ -164,7 +247,7 @@ {320, 59} - + _NS:9 1 @@ -172,10 +255,18 @@ NO IBCocoaTouchFramework - - NSImage - chat_background.png - + + + + + 274 + {320, 59} + + + + _NS:9 + + IBCocoaTouchFramework @@ -194,10 +285,7 @@ 0 NO NO - - 3 - MC41AA - + NSImage chat_send_over.png @@ -210,15 +298,33 @@ NSImage chat_send_default.png - - 2 - 15 + + + + + + 300 + {40, 59} + + + + _NS:9 + NO + + Send picture - - Helvetica-Bold - 15 - 16 + IBCocoaTouchFramework + 0 + 0 + Pict + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + @@ -227,7 +333,7 @@ 274 - {250, 59} + {210, 59} @@ -242,7 +348,7 @@ 274 - {{10, 10}, {230, 39}} + {{10, 10}, {190, 39}} @@ -251,7 +357,7 @@ IBCocoaTouchFramework - {250, 59} + {{40, 0}, {210, 59}} @@ -259,81 +365,6 @@ IBCocoaTouchFramework - - - 292 - - - - 292 - {{238, 11}, {62, 37}} - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - 1 - cancel - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - - - - - 292 - {{7, 25}, {213, 9}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0.5 - - - {320, 59} - - - - _NS:9 - - 3 - MQA - - 2 - - - IBCocoaTouchFramework - - - - 292 - {{6, 11}, {50, 37}} - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - 1 - Pict - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - - {{0, 357}, {320, 59}} @@ -397,7 +428,7 @@ chat_back_default.png - + @@ -429,7 +460,7 @@ chat_edit_default.png - + {320, 44} @@ -576,22 +607,6 @@ 71 - - - transfertView - - - - 76 - - - - cancelTransfertButton - - - - 77 - imageTransferProgressBar @@ -602,11 +617,27 @@ - pictButton + pictureButton - 80 + 84 + + + + cancelTransferButton + + + + 85 + + + + transferView + + + + 86 @@ -679,12 +710,12 @@ - onPictClick: + onPictureClick: 7 - 81 + 87 @@ -766,6 +797,7 @@ + chatView @@ -813,8 +845,8 @@ - + footerView @@ -859,33 +891,46 @@ messageField + + 73 + + + pictureButton + + + 82 + + + normalView + 72 - + + - + transferView - - 75 - - - cancel - 74 - progressBar + transferProgressBar - 73 - - - pictureButton + 75 + + + cancelTransferButton + + + 83 + + + footerBackgroundImage @@ -921,6 +966,8 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -929,7 +976,7 @@ - 81 + 87 @@ -949,7 +996,7 @@ id id id - id + id id id @@ -970,8 +1017,8 @@ onMessageChange: id - - onPictClick: + + onPictureClick: id @@ -986,7 +1033,7 @@ UILabel UIImageView - UIButton + UIButton UIView UIToggleButton UIImageView @@ -997,10 +1044,10 @@ UIImageView HPGrowingTextView UIView - UIButton + UIButton UIButton ChatRoomTableViewController - UIView + UIView @@ -1011,8 +1058,8 @@ avatarImage UIImageView - - cancelTransfertButton + + cancelTransferButton UIButton @@ -1055,8 +1102,8 @@ messageView UIView - - pictButton + + pictureButton UIButton @@ -1067,8 +1114,8 @@ tableController ChatRoomTableViewController - - transfertView + + transferView UIView diff --git a/Classes/en.lproj/ChatViewController.xib b/Classes/en.lproj/ChatViewController.xib index 69cc378e4..20eedaf14 100644 --- a/Classes/en.lproj/ChatViewController.xib +++ b/Classes/en.lproj/ChatViewController.xib @@ -61,8 +61,8 @@ - 289 - {{160, 0}, {160, 44}} + 292 + {160, 44} @@ -99,8 +99,8 @@ - 292 - {160, 44} + 289 + {{160, 0}, {160, 44}} @@ -389,8 +389,8 @@ 7 - + diff --git a/Classes/en.lproj/HistoryViewController.xib b/Classes/en.lproj/HistoryViewController.xib index 2e9e1f3ed..8761a2255 100644 --- a/Classes/en.lproj/HistoryViewController.xib +++ b/Classes/en.lproj/HistoryViewController.xib @@ -186,7 +186,7 @@ - {320, 58} + {320, 44} diff --git a/Classes/en.lproj/ImageViewController.xib b/Classes/en.lproj/ImageViewController.xib new file mode 100644 index 000000000..0e9bb3507 --- /dev/null +++ b/Classes/en.lproj/ImageViewController.xib @@ -0,0 +1,299 @@ + + + + 1296 + 11E53 + 2549 + 1138.47 + 569.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 1498 + + + IBProxyObject + IBUIButton + IBUIImageView + IBUIView + + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + PluginDependencyRecalculationVersion + + + + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + + + + 274 + {{0, 44}, {320, 416}} + + + + _NS:9 + + 3 + MCAwAA + + 4 + NO + IBCocoaTouchFramework + + + + 290 + + + + 292 + {320, 44} + + + + _NS:9 + NO + IBCocoaTouchFramework + + NSImage + toolsbar_background.png + + + + + 292 + {80, 44} + + + + _NS:9 + NO + + Back + + IBCocoaTouchFramework + 0 + 0 + + 3 + MQA + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + 3 + MC41AA + + + NSImage + chat_back_default.png + + + NSImage + chat_back_over.png + + + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + + + {320, 44} + + + + _NS:9 + + IBCocoaTouchFramework + + + {{0, 20}, {320, 460}} + + + + + + IBCocoaTouchFramework + + + + + + + view + + + + 3 + + + + imageView + + + + 9 + + + + backButton + + + + 8 + + + + onBackClick: + + + 7 + + 10 + + + + + + 0 + + + + + + 1 + + + + + + + + + -1 + + + File's Owner + + + -2 + + + + + 4 + + + imageView + + + 11 + + + + + + + toolbar + + + 7 + + + + + 6 + + + + + + + ImageViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + + + 11 + + + + + ImageViewController + UIViewController + + onBackClick: + id + + + onBackClick: + + onBackClick: + id + + + + UIButton + UIImageView + + + + backButton + UIButton + + + imageView + UIImageView + + + + IBProjectSource + ./Classes/ImageViewController.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + YES + 3 + + {320, 88} + {320, 88} + {5, 117} + + 1498 + + diff --git a/Classes/fr.lproj/ChatRoomViewController.xib b/Classes/fr.lproj/ChatRoomViewController.xib index 925eb238d..effff9788 100644 --- a/Classes/fr.lproj/ChatRoomViewController.xib +++ b/Classes/fr.lproj/ChatRoomViewController.xib @@ -133,7 +133,7 @@ 274 {{0, 80}, {320, 277}} - + _NS:9 3 @@ -149,6 +149,85 @@ 22 22 + + + -2147483356 + + + + 274 + {320, 59} + + + _NS:9 + + 1 + MSAwLjI4MzE1ODM3MjYgMC4wNTY3ODY4OTE2MQA + + NO + IBCocoaTouchFramework + + NSImage + chat_background.png + + + + + 292 + {{250, 0}, {70, 59}} + + + _NS:9 + NO + + Annuler + + IBCocoaTouchFramework + 0 + 0 + Annuler + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + 3 + MC41AA + + + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + + + + 292 + {{20, 25}, {213, 9}} + + + _NS:9 + NO + + Progression du téléversement/téléchargement + + + IBCocoaTouchFramework + 0.5 + + + {{0, 357}, {320, 59}} + + + _NS:9 + + IBCocoaTouchFramework + 266 @@ -158,7 +237,7 @@ 274 {320, 59} - + _NS:9 1 @@ -166,10 +245,17 @@ NO IBCocoaTouchFramework - - NSImage - chat_background.png - + + + + + 274 + {320, 59} + + + _NS:9 + + IBCocoaTouchFramework @@ -187,10 +273,7 @@ 0 NO NO - - 3 - MC41AA - + NSImage chat_send_over.png @@ -203,15 +286,32 @@ NSImage chat_send_default.png - - 2 - 15 + + + + + + 300 + {40, 59} + + + _NS:9 + NO + + Envoyer l'image - - Helvetica-Bold - 15 - 16 + IBCocoaTouchFramework + 0 + 0 + Img + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + @@ -220,7 +320,7 @@ 274 - {250, 59} + {210, 59} _NS:9 @@ -234,7 +334,7 @@ 274 - {{10, 10}, {230, 39}} + {{10, 10}, {190, 39}} _NS:9 @@ -242,84 +342,13 @@ IBCocoaTouchFramework - {250, 59} + {{40, 0}, {210, 59}} _NS:9 IBCocoaTouchFramework - - - 292 - - - - 292 - {{238, 11}, {62, 37}} - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - 1 - cancel - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - - - - - 292 - {{7, 25}, {213, 9}} - - - _NS:9 - NO - IBCocoaTouchFramework - 0.5 - - - {320, 59} - - - _NS:9 - - 3 - MQA - - 2 - - - IBCocoaTouchFramework - - - - 292 - {{6, 11}, {50, 37}} - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - 1 - Pict - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - - {{0, 357}, {320, 59}} @@ -379,7 +408,7 @@ chat_back_default.png - + @@ -410,7 +439,7 @@ chat_edit_default.png - + {320, 44} @@ -554,22 +583,6 @@ 71 - - - transfertView - - - - 76 - - - - cancelTransfertButton - - - - 77 - imageTransferProgressBar @@ -580,11 +593,27 @@ - pictButton + pictureButton - 80 + 84 + + + + cancelTransferButton + + + + 85 + + + + transferView + + + + 86 @@ -657,12 +686,12 @@ - onPictClick: + onPictureClick: 7 - 81 + 87 @@ -744,6 +773,7 @@ + chatView @@ -791,8 +821,8 @@ - + footerView @@ -837,33 +867,46 @@ messageField + + 73 + + + pictureButton + + + 82 + + + normalView + 72 - + + - + transferView - - 75 - - - cancel - 74 - progressBar + transferProgressBar - 73 - - - pictureButton + 75 + + + cancelTransferButton + + + 83 + + + footerBackgroundImage @@ -899,6 +942,8 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -907,7 +952,7 @@ - 81 + 87 @@ -927,7 +972,7 @@ id id id - id + id id id @@ -948,8 +993,8 @@ onMessageChange: id - - onPictClick: + + onPictureClick: id @@ -964,7 +1009,7 @@ UILabel UIImageView - UIButton + UIButton UIView UIToggleButton UIImageView @@ -975,10 +1020,10 @@ UIImageView HPGrowingTextView UIView - UIButton + UIButton UIButton ChatRoomTableViewController - UIView + UIView @@ -989,8 +1034,8 @@ avatarImage UIImageView - - cancelTransfertButton + + cancelTransferButton UIButton @@ -1033,8 +1078,8 @@ messageView UIView - - pictButton + + pictureButton UIButton @@ -1045,8 +1090,8 @@ tableController ChatRoomTableViewController - - transfertView + + transferView UIView diff --git a/Classes/fr.lproj/ChatViewController.xib b/Classes/fr.lproj/ChatViewController.xib index c19606afd..ba35e017a 100644 --- a/Classes/fr.lproj/ChatViewController.xib +++ b/Classes/fr.lproj/ChatViewController.xib @@ -60,8 +60,8 @@ - 289 - {{160, 0}, {160, 44}} + 292 + {160, 44} _NS:9 @@ -97,8 +97,8 @@ - 292 - {160, 44} + 289 + {{160, 0}, {160, 44}} _NS:9 @@ -380,8 +380,8 @@ 7 - + diff --git a/Classes/fr.lproj/HistoryViewController.xib b/Classes/fr.lproj/HistoryViewController.xib index f16aac91b..a226f3825 100644 --- a/Classes/fr.lproj/HistoryViewController.xib +++ b/Classes/fr.lproj/HistoryViewController.xib @@ -109,11 +109,10 @@ 0 NO - + NSImage history_all_selected.png - NSImage history_all_default.png @@ -181,7 +180,7 @@ - {320, 58} + {320, 44} _NS:9 diff --git a/Classes/ImageViewerViewController.xib b/Classes/fr.lproj/ImageViewController.xib similarity index 56% rename from Classes/ImageViewerViewController.xib rename to Classes/fr.lproj/ImageViewController.xib index 488929954..2cd6fe824 100644 --- a/Classes/ImageViewerViewController.xib +++ b/Classes/fr.lproj/ImageViewController.xib @@ -3,12 +3,12 @@ 1296 11E53 - 2182 + 1938 1138.47 569.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 1181 + 933 IBUIButton @@ -33,7 +33,7 @@ IBCocoaTouchFramework - + 274 @@ -42,76 +42,88 @@ {{0, 44}, {320, 416}} _NS:9 + + 3 + MCAwAA + 4 NO IBCocoaTouchFramework - + - 292 + 290 + + + + 292 + {320, 44} + + + _NS:9 + NO + IBCocoaTouchFramework + + NSImage + toolsbar_background.png + + + + + 292 + {80, 44} + + + _NS:9 + NO + + Retour + + IBCocoaTouchFramework + 0 + 0 + + 3 + MQA + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + 3 + MC41AA + + + NSImage + chat_back_default.png + + + NSImage + chat_back_over.png + + + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + + {320, 44} - + _NS:9 - NO + IBCocoaTouchFramework - - NSImage - background.png - - - - - 292 - {{235, 0}, {80, 44}} - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - - 3 - MQA - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - 3 - MC41AA - - - NSImage - chat_back_default.png - - - NSImage - chat_back_over.png - - - 2 - 15 - - - Helvetica-Bold - 15 - 16 - {{0, 20}, {320, 460}} - - - - 3 - MQA - - 2 - - + + IBCocoaTouchFramework @@ -126,14 +138,6 @@ 3 - - - backButton - - - - 8 - imageView @@ -142,6 +146,14 @@ 9 + + + backButton + + + + 8 + onBackClick: @@ -165,8 +177,7 @@ - - + @@ -185,25 +196,37 @@ 4 + imageView - 6 - + 11 + + + + + + toolbar 7 - + + + + 6 + + - ImageViewerViewController + ImageViewController com.apple.InterfaceBuilder.IBCocoaTouchPlugin UIResponder com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -212,9 +235,45 @@ - 10 + 11 + + + + + ImageViewController + UIViewController + + onBackClick: + id + + + onBackClick: + + onBackClick: + id + + + + UIButton + UIImageView + + + + backButton + UIButton + + + imageView + UIImageView + + + + IBProjectSource + ./Classes/ImageViewController.h + + + - 0 IBCocoaTouchFramework @@ -224,10 +283,10 @@ YES 3 - {640, 523} {320, 88} {320, 88} + {5, 117} - 1181 + 933 diff --git a/Resources/en.lproj/Localizable.strings b/Resources/en.lproj/Localizable.strings index d2123bd9c9fbc02cbcbd192765c91a1d87243990..77e98c0aebfadcfe5429948995256911fe4b7664 100644 GIT binary patch delta 213 zcmdnj#CV{J>EHj!flPrLg94Z)-(lgJ9LKzFvL371W*OEZ&dHPbRCtpa@)`0NN*EFu zk{L=SuNTn7BAUn(KRHi80*efO^|u5Ru$Ye_x|vb%u)t;|Wjm(HVro*GdDJE_PL5O7 bnrxtvGx>$O+~NQYk;y!^Vw?ZiII;i$ts6cw delta 426 zcmX?5wXcbh>HojU3mF481_v-r{>Z4rSUg#T$#k-!Uex5pOgkp8Ws;FqU?^e8XHZ}W zW=LfyVkl$CWJm_Glz<|(3<{GMFlh>7Q89UgK=kH7=1rW;B|t@Se5&jP42eMPm6Of* zG+|p9OJvDsI_j>$X~ zWFXLY3P239E)!^M3M`0#v>#9ui;B$#N~}zi>s7KQcPeO2j#tUqY^u6Nc(S0S$mIVP P0zf)z^Fxbx7DfgDY_n~z diff --git a/Resources/fr.lproj/Localizable.strings b/Resources/fr.lproj/Localizable.strings index bddbaa5c2b85cb5e0e47c428c1b49cfbaae0aa4a..4afcd5a69212f0f77d901698fe28ad2f97fa0ba2 100644 GIT binary patch delta 144 zcmbQy#<-?#!xE;+e#}QUKVtFVnykmK!kf&H&ydGZ!jQ<2%uq5pQP6hs905M&9EQ}% z3;8D!p~6Z~0o9DniGr5qP+$mVNM$HuC;*uBiWn*{jozfUZad!dxJ&z)%UauM|jU0F5nUNS(ajLXkBQ z=*G&)juPh1NType PSTextFieldSpecifier Title - sharing server + Sharing server Key file_upload_url_preference diff --git a/Settings/InAppSettings.bundle/en.lproj/Advanced.strings b/Settings/InAppSettings.bundle/en.lproj/Advanced.strings index c7b00a51f..0cc1bcac5 100644 --- a/Settings/InAppSettings.bundle/en.lproj/Advanced.strings +++ b/Settings/InAppSettings.bundle/en.lproj/Advanced.strings @@ -34,6 +34,9 @@ /* Display name */ "Display name" = "Display name"; +/* Sharing server */ +"Sharing server" = "Sharing server"; + /* Username */ "Username" = "Username"; diff --git a/Settings/InAppSettings.bundle/fr.lproj/Advanced.strings b/Settings/InAppSettings.bundle/fr.lproj/Advanced.strings index cf45cf575..ffe163ea2 100644 --- a/Settings/InAppSettings.bundle/fr.lproj/Advanced.strings +++ b/Settings/InAppSettings.bundle/fr.lproj/Advanced.strings @@ -34,6 +34,9 @@ /* Display name */ "Display name" = "Nom d'affichage"; +/* Sharing server */ +"Sharing server" = "Serveur de partage"; + /* Username */ "Username" = "Nom d'utilisateur"; diff --git a/linphone.ldb/Contents.plist b/linphone.ldb/Contents.plist index c98111ad5..47e4dc01c 100644 --- a/linphone.ldb/Contents.plist +++ b/linphone.ldb/Contents.plist @@ -12,9 +12,7 @@ change date 2001-01-01T00:00:00Z changed values - - fr - + class BLBundleObject errors @@ -214,21 +212,19 @@ backup - 12 + 15 class BLWrapperHandle name - Classes/ChatRoomViewController/12/ChatRoomViewController.xib + Classes/ChatRoomViewController/15/ChatRoomViewController.xib change date - 2012-09-14T08:42:01Z + 2012-09-14T14:45:49Z changed values - - fr - + class BLNibFileObject errors @@ -236,7 +232,7 @@ flags 0 hash - fe17a7cc443845e0f73af8ee35e892e5 + 1f8683826a86cb2ad7e55cc5c9dcafaf name ChatRoomViewController.xib @@ -394,9 +390,32 @@ change date 2001-01-01T00:00:00Z changed values - - fr - + + class + BLStringKeyObject + comment + Class = "IBUIButton"; accessibilityLabel = "Send picture"; ObjectID = "73"; + errors + + flags + 0 + key + 73.accessibilityLabel + localizations + + en + Send picture + fr + Envoyer l'image + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + class BLStringKeyObject comment @@ -421,13 +440,61 @@ change date 2001-01-01T00:00:00Z changed values - - fr - + class BLStringKeyObject comment - Class = "IBUIButton"; normalTitle = "cancel"; ObjectID = "75"; + Class = "IBUIProgressView"; accessibilityLabel = "Upload or download progression"; ObjectID = "74"; + errors + + flags + 0 + key + 74.accessibilityLabel + localizations + + en + Upload or download progression + fr + Progression du téléversement/téléchargement + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + Class = "IBUIButton"; accessibilityLabel = "Cancel"; ObjectID = "75"; + errors + + flags + 0 + key + 75.accessibilityLabel + localizations + + en + Cancel + fr + Annuler + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + Class = "IBUIButton"; normalTitle = "Cancel"; ObjectID = "75"; errors flags @@ -437,7 +504,7 @@ localizations en - cancel + Cancel fr Annuler @@ -501,9 +568,9 @@ versions en - 12 + 15 fr - 12 + 15 @@ -511,17 +578,17 @@ backup - 2 + 3 class BLWrapperHandle name - Classes/ChatViewController/2/ChatViewController.xib + Classes/ChatViewController/3/ChatViewController.xib change date - 2012-09-13T15:35:03Z + 2012-09-14T12:06:16Z changed values class @@ -531,7 +598,7 @@ flags 0 hash - d02ecf8f1bacbfa8e5793231b6735940 + e5821f865fd72c1ed8f4c7762f6f37ea name ChatViewController.xib @@ -645,9 +712,9 @@ versions en - 2 + 3 fr - 2 + 3 @@ -2540,17 +2607,17 @@ backup - 1 + 2 class BLWrapperHandle name - Classes/HistoryViewController/1/HistoryViewController.xib + Classes/HistoryViewController/2/HistoryViewController.xib change date - 2012-09-10T15:18:57Z + 2012-09-14T12:14:28Z changed values class @@ -2560,7 +2627,7 @@ flags 0 hash - 298b795268cf5c06a0f890835be7ddb3 + 186d9f6cd76ac4df197bc2a1eb51921e name HistoryViewController.xib @@ -2699,9 +2766,9 @@ versions en - 1 + 2 fr - 1 + 2 @@ -4209,6 +4276,75 @@ 2 + + attachments + + backup + + 3 + + class + BLWrapperHandle + name + Classes/ImageViewController/3/ImageViewController.xib + + + + change date + 2012-09-14T13:00:17Z + changed values + + class + BLNibFileObject + errors + + flags + 0 + hash + 724a8c5069c0fbde9b1e56ef37a42cba + + name + ImageViewController.xib + objects + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + Class = "IBUIButton"; accessibilityLabel = "Back"; ObjectID = "7"; + errors + + flags + 0 + key + 7.accessibilityLabel + localizations + + en + Back + fr + Retour + + snapshots + + + + old objects + + snapshots + + versions + + en + 3 + fr + 3 + + flags 0 @@ -7218,7 +7354,7 @@ change date - 2012-09-14T09:51:58Z + 2012-09-14T11:57:58Z changed values class @@ -7228,7 +7364,7 @@ flags 0 hash - 7fcce4bdc516e1d8f77ce093860a38dd + dcecc0eedf9132813ef8a938d07d7917 name Localizable.strings @@ -7337,34 +7473,6 @@ La cause était: %2$@ snapshots - - change date - 2001-01-01T00:00:00Z - changed values - - class - BLStringKeyObject - comment - No comment provided by engineer. - errors - - flags - 0 - key - %@ -Reason was: %s - localizations - - en - %1$@ -Reason was: %2$s - fr - %1$@ -Raison: %2$s - - snapshots - - change date 2001-01-01T00:00:00Z @@ -7390,31 +7498,6 @@ Raison: %2$s snapshots - - change date - 2001-01-01T00:00:00Z - changed values - - class - BLStringKeyObject - comment - No comment provided by engineer. - errors - - flags - 0 - key - '%@' not registered to Service - localizations - - en - '%@' not registered to Service - fr - '%@' n'est pas enregistré - - snapshots - - change date 2001-01-01T00:00:00Z @@ -7779,13 +7862,13 @@ Raison: %2$s flags 0 key - Cannot transfert file from remote pary + Cannot transfer file from remote contact localizations en - Cannot transfert file from remote pary + Cannot transfer file from remote contact fr - Impossible de transferer depuis destinataire + Impossible de transferer depuis le destinataire snapshots @@ -7804,36 +7887,11 @@ Raison: %2$s flags 0 key - Cannot transfert file from remote pary + Cannot transfer file to remote contact localizations en - Cannot transfert file from remote pary - fr - Impossible de transferer depuis destinataire - - snapshots - - - - change date - 2001-01-01T00:00:00Z - changed values - - class - BLStringKeyObject - comment - No comment provided by engineer. - errors - - flags - 0 - key - Cannot transfert file to remote pary - localizations - - en - Cannot transfert file to remote pary + Cannot transfer file to remote contact fr Impossible de transferer au destinataire @@ -8365,31 +8423,6 @@ Raison: %2$s snapshots - - change date - 2001-01-01T00:00:00Z - changed values - - class - BLStringKeyObject - comment - No comment provided by engineer. - errors - - flags - 0 - key - It seems you have not configured any proxy server from settings - localizations - - en - It seems you have not configured any proxy server from settings - fr - Il semble qu'il n'y est pas de serveur SIP configuré - - snapshots - - change date 2001-01-01T00:00:00Z @@ -8488,31 +8521,6 @@ Raison: %2$s snapshots - - change date - 2001-01-01T00:00:00Z - changed values - - class - BLStringKeyObject - comment - No comment provided by engineer. - errors - - flags - 0 - key - Never remind - localizations - - en - Never remind - fr - Ne pas me rappeler - - snapshots - - change date 2001-01-01T00:00:00Z @@ -8588,31 +8596,6 @@ Raison: %2$s snapshots - - change date - 2001-01-01T00:00:00Z - changed values - - class - BLStringKeyObject - comment - No comment provided by engineer. - errors - - flags - 0 - key - Ok - localizations - - en - Ok - fr - Ok - - snapshots - - change date 2001-01-01T00:00:00Z @@ -8638,6 +8621,31 @@ Raison: %2$s snapshots + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + No comment provided by engineer. + errors + + flags + 0 + key + Ok + localizations + + en + Ok + fr + Ok + + snapshots + + change date 2001-01-01T00:00:00Z @@ -9219,31 +9227,6 @@ Raison: %2$s snapshots - - change date - 2001-01-01T00:00:00Z - changed values - - class - BLStringKeyObject - comment - No comment provided by engineer. - errors - - flags - 0 - key - Tranfer error - localizations - - en - Tranfer error - fr - Erreur de transfert - - snapshots - - change date 2001-01-01T00:00:00Z @@ -9475,6 +9458,209 @@ Raison: %2$s snapshots + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + No comment provided by engineer. + errors + + flags + 0 + key + %@ +Reason was: %s + localizations + + en + %1$@ +Reason was: %2$s + fr + %1$@ +Raison: %2$s + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + No comment provided by engineer. + errors + + flags + 0 + key + '%@' not registered to Service + localizations + + en + '%@' not registered to Service + fr + '%@' n'est pas enregistré + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + No comment provided by engineer. + errors + + flags + 0 + key + Cannot transfert file from remote pary + localizations + + en + Cannot transfert file from remote pary + fr + Impossible de transferer depuis destinataire + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + No comment provided by engineer. + errors + + flags + 0 + key + Cannot transfert file from remote pary + localizations + + en + Cannot transfert file from remote pary + fr + Impossible de transferer depuis destinataire + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + No comment provided by engineer. + errors + + flags + 0 + key + Cannot transfert file to remote pary + localizations + + en + Cannot transfert file to remote pary + fr + Impossible de transferer au destinataire + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + No comment provided by engineer. + errors + + flags + 0 + key + It seems you have not configured any proxy server from settings + localizations + + en + It seems you have not configured any proxy server from settings + fr + Il semble qu'il n'y est pas de serveur SIP configuré + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + No comment provided by engineer. + errors + + flags + 0 + key + Never remind + localizations + + en + Never remind + fr + Ne pas me rappeler + + snapshots + + + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + No comment provided by engineer. + errors + + flags + 0 + key + Tranfer error + localizations + + en + Tranfer error + fr + Erreur de transfert + + snapshots + + plist file @@ -10112,7 +10298,7 @@ Raison: %2$s change date - 2012-09-11T10:05:14Z + 2012-09-14T09:59:52Z changed values class @@ -10122,7 +10308,7 @@ Raison: %2$s flags 0 hash - f72b15c7c0f7f2cba6c1df114414e788 + 04783f5ae79079b4d782aa4842c5a054 name Advanced.strings @@ -10396,6 +10582,31 @@ Raison: %2$s snapshots + + change date + 2001-01-01T00:00:00Z + changed values + + class + BLStringKeyObject + comment + Sharing server + errors + + flags + 0 + key + Sharing server + localizations + + en + Sharing server + fr + Serveur de partage + + snapshots + + change date 2001-01-01T00:00:00Z diff --git a/linphone.ldb/Resources/Classes/ChatRoomViewController/12/ChatRoomViewController.xib b/linphone.ldb/Resources/Classes/ChatRoomViewController/15/ChatRoomViewController.xib similarity index 88% rename from linphone.ldb/Resources/Classes/ChatRoomViewController/12/ChatRoomViewController.xib rename to linphone.ldb/Resources/Classes/ChatRoomViewController/15/ChatRoomViewController.xib index dd7c2c6ba..dfb378fa5 100644 --- a/linphone.ldb/Resources/Classes/ChatRoomViewController/12/ChatRoomViewController.xib +++ b/linphone.ldb/Resources/Classes/ChatRoomViewController/15/ChatRoomViewController.xib @@ -138,7 +138,7 @@ {{0, 80}, {320, 277}} - + _NS:9 3 @@ -154,6 +154,89 @@ 22 22 + + + -2147483356 + + + + 274 + {320, 59} + + + + _NS:9 + + 1 + MSAwLjI4MzE1ODM3MjYgMC4wNTY3ODY4OTE2MQA + + NO + IBCocoaTouchFramework + + NSImage + chat_background.png + + + + + 292 + {{250, 0}, {70, 59}} + + + + _NS:9 + NO + + Cancel + + IBCocoaTouchFramework + 0 + 0 + Cancel + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + 3 + MC41AA + + + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + + + + 292 + {{20, 25}, {213, 9}} + + + + _NS:9 + NO + + Upload or download progression + + + IBCocoaTouchFramework + 0.5 + + + {{0, 357}, {320, 59}} + + + + _NS:9 + + IBCocoaTouchFramework + 266 @@ -164,7 +247,7 @@ {320, 59} - + _NS:9 1 @@ -172,10 +255,18 @@ NO IBCocoaTouchFramework - - NSImage - chat_background.png - + + + + + 274 + {320, 59} + + + + _NS:9 + + IBCocoaTouchFramework @@ -194,10 +285,7 @@ 0 NO NO - - 3 - MC41AA - + NSImage chat_send_over.png @@ -210,15 +298,33 @@ NSImage chat_send_default.png - - 2 - 15 + + + + + + 300 + {40, 59} + + + + _NS:9 + NO + + Send picture - - Helvetica-Bold - 15 - 16 + IBCocoaTouchFramework + 0 + 0 + Pict + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + @@ -227,7 +333,7 @@ 274 - {250, 59} + {210, 59} @@ -242,7 +348,7 @@ 274 - {{10, 10}, {230, 39}} + {{10, 10}, {190, 39}} @@ -251,7 +357,7 @@ IBCocoaTouchFramework - {250, 59} + {{40, 0}, {210, 59}} @@ -259,81 +365,6 @@ IBCocoaTouchFramework - - - 292 - - - - 292 - {{238, 11}, {62, 37}} - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - 1 - cancel - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - - - - - 292 - {{7, 25}, {213, 9}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0.5 - - - {320, 59} - - - - _NS:9 - - 3 - MQA - - 2 - - - IBCocoaTouchFramework - - - - 292 - {{6, 11}, {50, 37}} - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - 1 - Pict - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - - {{0, 357}, {320, 59}} @@ -397,7 +428,7 @@ chat_back_default.png - + @@ -429,7 +460,7 @@ chat_edit_default.png - + {320, 44} @@ -576,22 +607,6 @@ 71 - - - transfertView - - - - 76 - - - - cancelTransfertButton - - - - 77 - imageTransferProgressBar @@ -602,11 +617,27 @@ - pictButton + pictureButton - 80 + 84 + + + + cancelTransferButton + + + + 85 + + + + transferView + + + + 86 @@ -679,12 +710,12 @@ - onPictClick: + onPictureClick: 7 - 81 + 87 @@ -766,6 +797,7 @@ + chatView @@ -813,8 +845,8 @@ - + footerView @@ -859,33 +891,46 @@ messageField + + 73 + + + pictureButton + + + 82 + + + normalView + 72 - + + - + transferView - - 75 - - - cancel - 74 - progressBar + transferProgressBar - 73 - - - pictureButton + 75 + + + cancelTransferButton + + + 83 + + + footerBackgroundImage @@ -921,6 +966,8 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -929,7 +976,7 @@ - 81 + 87 @@ -949,7 +996,7 @@ id id id - id + id id id @@ -970,8 +1017,8 @@ onMessageChange: id - - onPictClick: + + onPictureClick: id @@ -986,7 +1033,7 @@ UILabel UIImageView - UIButton + UIButton UIView UIToggleButton UIImageView @@ -997,10 +1044,10 @@ UIImageView HPGrowingTextView UIView - UIButton + UIButton UIButton ChatRoomTableViewController - UIView + UIView @@ -1011,8 +1058,8 @@ avatarImage UIImageView - - cancelTransfertButton + + cancelTransferButton UIButton @@ -1055,8 +1102,8 @@ messageView UIView - - pictButton + + pictureButton UIButton @@ -1067,8 +1114,8 @@ tableController ChatRoomTableViewController - - transfertView + + transferView UIView diff --git a/linphone.ldb/Resources/Classes/ChatViewController/2/ChatViewController.xib b/linphone.ldb/Resources/Classes/ChatViewController/3/ChatViewController.xib similarity index 100% rename from linphone.ldb/Resources/Classes/ChatViewController/2/ChatViewController.xib rename to linphone.ldb/Resources/Classes/ChatViewController/3/ChatViewController.xib index 69cc378e4..20eedaf14 100644 --- a/linphone.ldb/Resources/Classes/ChatViewController/2/ChatViewController.xib +++ b/linphone.ldb/Resources/Classes/ChatViewController/3/ChatViewController.xib @@ -61,8 +61,8 @@ - 289 - {{160, 0}, {160, 44}} + 292 + {160, 44} @@ -99,8 +99,8 @@ - 292 - {160, 44} + 289 + {{160, 0}, {160, 44}} @@ -389,8 +389,8 @@ 7 - + diff --git a/linphone.ldb/Resources/Classes/HistoryViewController/1/HistoryViewController.xib b/linphone.ldb/Resources/Classes/HistoryViewController/2/HistoryViewController.xib similarity index 99% rename from linphone.ldb/Resources/Classes/HistoryViewController/1/HistoryViewController.xib rename to linphone.ldb/Resources/Classes/HistoryViewController/2/HistoryViewController.xib index 2e9e1f3ed..8761a2255 100644 --- a/linphone.ldb/Resources/Classes/HistoryViewController/1/HistoryViewController.xib +++ b/linphone.ldb/Resources/Classes/HistoryViewController/2/HistoryViewController.xib @@ -186,7 +186,7 @@ - {320, 58} + {320, 44} diff --git a/linphone.ldb/Resources/Classes/ImageViewController/3/ImageViewController.xib b/linphone.ldb/Resources/Classes/ImageViewController/3/ImageViewController.xib new file mode 100644 index 000000000..0e9bb3507 --- /dev/null +++ b/linphone.ldb/Resources/Classes/ImageViewController/3/ImageViewController.xib @@ -0,0 +1,299 @@ + + + + 1296 + 11E53 + 2549 + 1138.47 + 569.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 1498 + + + IBProxyObject + IBUIButton + IBUIImageView + IBUIView + + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + PluginDependencyRecalculationVersion + + + + + IBFilesOwner + IBCocoaTouchFramework + + + IBFirstResponder + IBCocoaTouchFramework + + + + 274 + + + + 274 + {{0, 44}, {320, 416}} + + + + _NS:9 + + 3 + MCAwAA + + 4 + NO + IBCocoaTouchFramework + + + + 290 + + + + 292 + {320, 44} + + + + _NS:9 + NO + IBCocoaTouchFramework + + NSImage + toolsbar_background.png + + + + + 292 + {80, 44} + + + + _NS:9 + NO + + Back + + IBCocoaTouchFramework + 0 + 0 + + 3 + MQA + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + 3 + MC41AA + + + NSImage + chat_back_default.png + + + NSImage + chat_back_over.png + + + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + + + {320, 44} + + + + _NS:9 + + IBCocoaTouchFramework + + + {{0, 20}, {320, 460}} + + + + + + IBCocoaTouchFramework + + + + + + + view + + + + 3 + + + + imageView + + + + 9 + + + + backButton + + + + 8 + + + + onBackClick: + + + 7 + + 10 + + + + + + 0 + + + + + + 1 + + + + + + + + + -1 + + + File's Owner + + + -2 + + + + + 4 + + + imageView + + + 11 + + + + + + + toolbar + + + 7 + + + + + 6 + + + + + + + ImageViewController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + UIResponder + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + + + 11 + + + + + ImageViewController + UIViewController + + onBackClick: + id + + + onBackClick: + + onBackClick: + id + + + + UIButton + UIImageView + + + + backButton + UIButton + + + imageView + UIImageView + + + + IBProjectSource + ./Classes/ImageViewController.h + + + + + 0 + IBCocoaTouchFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + YES + 3 + + {320, 88} + {320, 88} + {5, 117} + + 1498 + + diff --git a/linphone.ldb/Resources/InAppSettings.bundle/Advanced/1/Advanced.strings b/linphone.ldb/Resources/InAppSettings.bundle/Advanced/1/Advanced.strings index c7b00a51f..0cc1bcac5 100644 --- a/linphone.ldb/Resources/InAppSettings.bundle/Advanced/1/Advanced.strings +++ b/linphone.ldb/Resources/InAppSettings.bundle/Advanced/1/Advanced.strings @@ -34,6 +34,9 @@ /* Display name */ "Display name" = "Display name"; +/* Sharing server */ +"Sharing server" = "Sharing server"; + /* Username */ "Username" = "Username"; diff --git a/linphone.ldb/Resources/Resources/Localizable/1/Localizable.strings b/linphone.ldb/Resources/Resources/Localizable/1/Localizable.strings index d2123bd9c9fbc02cbcbd192765c91a1d87243990..77e98c0aebfadcfe5429948995256911fe4b7664 100644 GIT binary patch delta 213 zcmdnj#CV{J>EHj!flPrLg94Z)-(lgJ9LKzFvL371W*OEZ&dHPbRCtpa@)`0NN*EFu zk{L=SuNTn7BAUn(KRHi80*efO^|u5Ru$Ye_x|vb%u)t;|Wjm(HVro*GdDJE_PL5O7 bnrxtvGx>$O+~NQYk;y!^Vw?ZiII;i$ts6cw delta 426 zcmX?5wXcbh>HojU3mF481_v-r{>Z4rSUg#T$#k-!Uex5pOgkp8Ws;FqU?^e8XHZ}W zW=LfyVkl$CWJm_Glz<|(3<{GMFlh>7Q89UgK=kH7=1rW;B|t@Se5&jP42eMPm6Of* zG+|p9OJvDsI_j>$X~ zWFXLY3P239E)!^M3M`0#v>#9ui;B$#N~}zi>s7KQcPeO2j#tUqY^u6Nc(S0S$mIVP P0zf)z^Fxbx7DfgDY_n~z diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 23a93a274..15ef38c86 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -39,13 +39,9 @@ 2234C8EE15EE744200E18E83 /* chat_message_inprogress.png in Resources */ = {isa = PBXBuildFile; fileRef = 2234C8ED15EE744200E18E83 /* chat_message_inprogress.png */; }; 2234C8EF15EE744200E18E83 /* chat_message_inprogress.png in Resources */ = {isa = PBXBuildFile; fileRef = 2234C8ED15EE744200E18E83 /* chat_message_inprogress.png */; }; 2237D4091084D7A9001383EE /* ring.wav in Resources */ = {isa = PBXBuildFile; fileRef = 2237D4081084D7A9001383EE /* ring.wav */; }; - 22405EEB16006F0800B92522 /* libmediastreamer_base.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22405EE916006F0700B92522 /* libmediastreamer_base.a */; }; - 22405EEC16006F0800B92522 /* libmediastreamer_voip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22405EEA16006F0700B92522 /* libmediastreamer_voip.a */; }; 22405EEE1600B4E400B92522 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22405EED1600B4E400B92522 /* AssetsLibrary.framework */; }; - 22405F001601C19200B92522 /* ImageViewerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22405EFE1601C19100B92522 /* ImageViewerViewController.m */; }; - 22405F011601C19200B92522 /* ImageViewerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22405EFE1601C19100B92522 /* ImageViewerViewController.m */; }; - 22405F021601C19200B92522 /* ImageViewerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22405EFF1601C19100B92522 /* ImageViewerViewController.xib */; }; - 22405F031601C19200B92522 /* ImageViewerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22405EFF1601C19100B92522 /* ImageViewerViewController.xib */; }; + 22405F001601C19200B92522 /* ImageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22405EFE1601C19100B92522 /* ImageViewController.m */; }; + 22405F011601C19200B92522 /* ImageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22405EFE1601C19100B92522 /* ImageViewController.m */; }; 2242E313125235120061DDCE /* ring.caf in Resources */ = {isa = PBXBuildFile; fileRef = 2242E312125235120061DDCE /* ring.caf */; }; 224567C2107B968500F10948 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 224567C1107B968500F10948 /* AVFoundation.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 2245F78A1201D38000C4179D /* MoreViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22E0A81B111C44E100B04932 /* MoreViewController.xib */; }; @@ -138,8 +134,6 @@ 344ABDF114850AE9007420B6 /* libc++.1.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 344ABDEF14850AE9007420B6 /* libc++.1.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; 344ABDF214850AE9007420B6 /* libstdc++.6.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 344ABDF014850AE9007420B6 /* libstdc++.6.dylib */; settings = {ATTRIBUTES = (Weak, ); }; }; 34A6ECEB14CF13CB00460C04 /* linphone_icon_72.png in Resources */ = {isa = PBXBuildFile; fileRef = 34A6ECEA14CF13CB00460C04 /* linphone_icon_72.png */; }; - 570B130115FE44AF00DE62B6 /* libmediastreamer_voip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 570B130015FE44AF00DE62B6 /* libmediastreamer_voip.a */; }; - 570B130315FE44ED00DE62B6 /* libmediastreamer_base.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 570B130215FE44ED00DE62B6 /* libmediastreamer_base.a */; }; 57F005C415EE2CCF00914747 /* linphonerc in Resources */ = {isa = PBXBuildFile; fileRef = 57F005C315EE2CCF00914747 /* linphonerc */; }; 57F005C515EE2CCF00914747 /* linphonerc in Resources */ = {isa = PBXBuildFile; fileRef = 57F005C315EE2CCF00914747 /* linphonerc */; }; 57F005C815EE2D9200914747 /* linphonerc-factory in Resources */ = {isa = PBXBuildFile; fileRef = 57F005C615EE2D9200914747 /* linphonerc-factory */; }; @@ -325,7 +319,6 @@ D347347F1580E5F8003C7B8C /* history_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D347347D1580E5F8003C7B8C /* history_selected.png */; }; D34BD61515C13B7B0070C209 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D32B6E2E15A5C0AC0033019F /* libsqlite3.dylib */; }; D34BD61815C13D0B0070C209 /* liblinphone.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DB911475562600DEE054 /* liblinphone.a */; }; - D34BD61915C13D0B0070C209 /* libmediastreamer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DB8F147555C800DEE054 /* libmediastreamer.a */; }; D34BD61A15C13DB60070C209 /* accept_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F83F741582253100336684 /* accept_default.png */; }; D34BD61B15C13DB60070C209 /* accept_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F83F751582253100336684 /* accept_over.png */; }; D34BD61C15C13DB60070C209 /* add_call_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3D6A39B159B0EEF005F692C /* add_call_default.png */; }; @@ -676,6 +669,14 @@ D37DC6C21594AE1800B2A5EB /* LinphoneCoreSettingsStore.m in Sources */ = {isa = PBXBuildFile; fileRef = D37DC6C01594AE1800B2A5EB /* LinphoneCoreSettingsStore.m */; }; D37DC7181594AF3400B2A5EB /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D37DC7171594AF3400B2A5EB /* MessageUI.framework */; }; D37DC7191594AF3F00B2A5EB /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D37DC7171594AF3400B2A5EB /* MessageUI.framework */; }; + D37EE10916032DA4003608A6 /* libmediastreamer_base.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22405EE916006F0700B92522 /* libmediastreamer_base.a */; }; + D37EE10A16032DA4003608A6 /* libmediastreamer_voip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22405EEA16006F0700B92522 /* libmediastreamer_voip.a */; }; + D37EE10B16032DC2003608A6 /* libmediastreamer_base.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22405EE916006F0700B92522 /* libmediastreamer_base.a */; }; + D37EE10C16032DC2003608A6 /* libmediastreamer_voip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22405EEA16006F0700B92522 /* libmediastreamer_voip.a */; }; + D37EE10D16035793003608A6 /* ImageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D37EE11016035793003608A6 /* ImageViewController.xib */; }; + D37EE10E16035793003608A6 /* ImageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D37EE11016035793003608A6 /* ImageViewController.xib */; }; + D37EE162160377D7003608A6 /* DTActionSheet.m in Sources */ = {isa = PBXBuildFile; fileRef = D37EE161160377D7003608A6 /* DTActionSheet.m */; }; + D37EE163160377D7003608A6 /* DTActionSheet.m in Sources */ = {isa = PBXBuildFile; fileRef = D37EE161160377D7003608A6 /* DTActionSheet.m */; }; D3804E6015D92A57008072A5 /* msg.caf in Resources */ = {isa = PBXBuildFile; fileRef = D3804E5E15D92A57008072A5 /* msg.caf */; }; D3804E6115D92A57008072A5 /* msg.caf in Resources */ = {isa = PBXBuildFile; fileRef = D3804E5E15D92A57008072A5 /* msg.caf */; }; D3804E6215D92A57008072A5 /* msg.wav in Resources */ = {isa = PBXBuildFile; fileRef = D3804E5F15D92A57008072A5 /* msg.wav */; }; @@ -1348,7 +1349,6 @@ 220FAD2E10765B400068D98F /* libosipparser2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libosipparser2.a; path = "liblinphone-sdk/apple-darwin/lib/libosipparser2.a"; sourceTree = ""; }; 220FAD2F10765B400068D98F /* libspeex.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libspeex.a; path = "liblinphone-sdk/apple-darwin/lib/libspeex.a"; sourceTree = ""; }; 220FAD3010765B400068D98F /* libspeexdsp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libspeexdsp.a; path = "liblinphone-sdk/apple-darwin/lib/libspeexdsp.a"; sourceTree = ""; }; - 2211DB8F147555C800DEE054 /* libmediastreamer.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmediastreamer.a; path = "liblinphone-sdk/apple-darwin/lib/libmediastreamer.a"; sourceTree = ""; }; 2211DB911475562600DEE054 /* liblinphone.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = liblinphone.a; path = "liblinphone-sdk/apple-darwin/lib/liblinphone.a"; sourceTree = ""; }; 2211DBBB14769C8200DEE054 /* CallDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CallDelegate.m; sourceTree = ""; }; 2214783C1386A2030020F8B8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = Resources/en.lproj/Localizable.strings; sourceTree = ""; }; @@ -1374,9 +1374,8 @@ 22405EE916006F0700B92522 /* libmediastreamer_base.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmediastreamer_base.a; path = "liblinphone-sdk/apple-darwin/lib/libmediastreamer_base.a"; sourceTree = ""; }; 22405EEA16006F0700B92522 /* libmediastreamer_voip.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmediastreamer_voip.a; path = "liblinphone-sdk/apple-darwin/lib/libmediastreamer_voip.a"; sourceTree = ""; }; 22405EED1600B4E400B92522 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; - 22405EFD1601C19000B92522 /* ImageViewerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageViewerViewController.h; sourceTree = ""; }; - 22405EFE1601C19100B92522 /* ImageViewerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageViewerViewController.m; sourceTree = ""; }; - 22405EFF1601C19100B92522 /* ImageViewerViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ImageViewerViewController.xib; sourceTree = ""; }; + 22405EFD1601C19000B92522 /* ImageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageViewController.h; sourceTree = ""; }; + 22405EFE1601C19100B92522 /* ImageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageViewController.m; sourceTree = ""; }; 2242E312125235120061DDCE /* ring.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = ring.caf; path = Resources/ring.caf; sourceTree = ""; }; 224567C1107B968500F10948 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; 2248E90C12F7E4CF00220D9C /* UIDigitButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIDigitButton.h; sourceTree = ""; }; @@ -1507,8 +1506,6 @@ 344ABDEF14850AE9007420B6 /* libc++.1.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.1.dylib"; path = "usr/lib/libc++.1.dylib"; sourceTree = SDKROOT; }; 344ABDF014850AE9007420B6 /* libstdc++.6.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libstdc++.6.dylib"; path = "usr/lib/libstdc++.6.dylib"; sourceTree = SDKROOT; }; 34A6ECEA14CF13CB00460C04 /* linphone_icon_72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = linphone_icon_72.png; path = Resources/linphone_icon_72.png; sourceTree = ""; }; - 570B130015FE44AF00DE62B6 /* libmediastreamer_voip.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmediastreamer_voip.a; path = "liblinphone-sdk/apple-darwin/lib/libmediastreamer_voip.a"; sourceTree = ""; }; - 570B130215FE44ED00DE62B6 /* libmediastreamer_base.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmediastreamer_base.a; path = "liblinphone-sdk/apple-darwin/lib/libmediastreamer_base.a"; sourceTree = ""; }; 57F005C315EE2CCF00914747 /* linphonerc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = linphonerc; path = Resources/linphonerc; sourceTree = ""; }; 57F005C615EE2D9200914747 /* linphonerc-factory */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "linphonerc-factory"; path = "Resources/linphonerc-factory"; sourceTree = ""; }; 57F005C715EE2D9200914747 /* linphonerc-factory~ipad */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "linphonerc-factory~ipad"; path = "Resources/linphonerc-factory~ipad"; sourceTree = ""; }; @@ -1723,6 +1720,10 @@ D37DC6BF1594AE1800B2A5EB /* LinphoneCoreSettingsStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinphoneCoreSettingsStore.h; sourceTree = ""; }; D37DC6C01594AE1800B2A5EB /* LinphoneCoreSettingsStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LinphoneCoreSettingsStore.m; sourceTree = ""; }; D37DC7171594AF3400B2A5EB /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; + D37EE10F16035793003608A6 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ImageViewController.xib; sourceTree = ""; }; + D37EE11116036197003608A6 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/ImageViewController.xib; sourceTree = ""; }; + D37EE160160377D7003608A6 /* DTActionSheet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DTActionSheet.h; sourceTree = ""; }; + D37EE161160377D7003608A6 /* DTActionSheet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DTActionSheet.m; sourceTree = ""; }; D3804E5E15D92A57008072A5 /* msg.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = msg.caf; path = Resources/msg.caf; sourceTree = ""; }; D3804E5F15D92A57008072A5 /* msg.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = msg.wav; path = Resources/msg.wav; sourceTree = ""; }; D3807FB715C28940005BE9BC /* DCRoundSwitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DCRoundSwitch.h; sourceTree = ""; }; @@ -2114,12 +2115,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 22405EEE1600B4E400B92522 /* AssetsLibrary.framework in Frameworks */, - 22405EEB16006F0800B92522 /* libmediastreamer_base.a in Frameworks */, - 22405EEC16006F0800B92522 /* libmediastreamer_voip.a in Frameworks */, - 226EF06C15FA256B005865C7 /* MobileCoreServices.framework in Frameworks */, 22B5F03510CE6B2F00777D97 /* AddressBook.framework in Frameworks */, 22B5EFA310CE50BD00777D97 /* AddressBookUI.framework in Frameworks */, + 22405EEE1600B4E400B92522 /* AssetsLibrary.framework in Frameworks */, 2274402F106F335E006EC466 /* AudioToolbox.framework in Frameworks */, 224567C2107B968500F10948 /* AVFoundation.framework in Frameworks */, 228697C411AC29B800E9E0CA /* CFNetwork.framework in Frameworks */, @@ -2130,6 +2128,7 @@ 22276E8713C73D8A00210156 /* CoreVideo.framework in Frameworks */, 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, D37DC7181594AF3400B2A5EB /* MessageUI.framework in Frameworks */, + 226EF06C15FA256B005865C7 /* MobileCoreServices.framework in Frameworks */, 70E542F313E147E3002BA2C0 /* OpenGLES.framework in Frameworks */, 70E542F513E147EB002BA2C0 /* QuartzCore.framework in Frameworks */, 2264B6D211200342002C2C53 /* SystemConfiguration.framework in Frameworks */, @@ -2145,9 +2144,9 @@ 220FAD3110765B400068D98F /* libeXosip2.a in Frameworks */, 220FAD3210765B400068D98F /* libgsm.a in Frameworks */, 223148E41178A08200637D6A /* libilbc.a in Frameworks */, - 570B130315FE44ED00DE62B6 /* libmediastreamer_base.a in Frameworks */, - 570B130115FE44AF00DE62B6 /* libmediastreamer_voip.a in Frameworks */, F476004B147AAF2800FFF19B /* liblinphone.a in Frameworks */, + D37EE10916032DA4003608A6 /* libmediastreamer_base.a in Frameworks */, + D37EE10A16032DA4003608A6 /* libmediastreamer_voip.a in Frameworks */, 226F2ED81344B0EF00F6EF27 /* libmsamr.a in Frameworks */, 223148E61178A09900637D6A /* libmsilbc.a in Frameworks */, 226183B0147259670037138E /* libmssilk.a in Frameworks */, @@ -2197,7 +2196,8 @@ 22D8F174147548E2008C97DB /* libilbc.a in Frameworks */, 22D8F16B147548E2008C97DB /* libgsm.a in Frameworks */, D34BD61815C13D0B0070C209 /* liblinphone.a in Frameworks */, - D34BD61915C13D0B0070C209 /* libmediastreamer.a in Frameworks */, + D37EE10B16032DC2003608A6 /* libmediastreamer_base.a in Frameworks */, + D37EE10C16032DC2003608A6 /* libmediastreamer_voip.a in Frameworks */, 22D8F17B147548E2008C97DB /* libmsamr.a in Frameworks */, 22D8F175147548E2008C97DB /* libmsilbc.a in Frameworks */, 22D8F179147548E2008C97DB /* libopencore-amrwb.a in Frameworks */, @@ -2266,6 +2266,9 @@ D3ED3EB515873928006C0DE4 /* HistoryViewController.h */, D3ED3EB615873929006C0DE4 /* HistoryViewController.m */, D38187D415FE346B00C3EDCA /* HistoryViewController.xib */, + 22405EFD1601C19000B92522 /* ImageViewController.h */, + 22405EFE1601C19100B92522 /* ImageViewController.m */, + D37EE11016035793003608A6 /* ImageViewController.xib */, D31AAF5C159B3919002C6B02 /* InCallTableViewController.h */, D31AAF5D159B3919002C6B02 /* InCallTableViewController.m */, D3F83EE91582021700336684 /* InCallViewController.h */, @@ -2297,9 +2300,6 @@ 34216F3F1547EBCD00EA9777 /* VideoZoomHandler.m */, D350F20B15A43BB100149E54 /* WizardViewController.h */, D350F20C15A43BB100149E54 /* WizardViewController.m */, - 22405EFD1601C19000B92522 /* ImageViewerViewController.h */, - 22405EFE1601C19100B92522 /* ImageViewerViewController.m */, - 22405EFF1601C19100B92522 /* ImageViewerViewController.xib */, D38187E015FE348A00C3EDCA /* WizardViewController.xib */, ); path = Classes; @@ -2662,10 +2662,6 @@ 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( - 22405EED1600B4E400B92522 /* AssetsLibrary.framework */, - 22405EE916006F0700B92522 /* libmediastreamer_base.a */, - 22405EEA16006F0700B92522 /* libmediastreamer_voip.a */, - 226EF06B15FA256B005865C7 /* MobileCoreServices.framework */, 2258633C11410BAC00C5A737 /* README */, 22276E8013C73D3100210156 /* libavcodec.a */, 22276E8113C73D3100210156 /* libavutil.a */, @@ -2675,7 +2671,8 @@ 220FAD2910765B400068D98F /* libgsm.a */, 223148E31178A08200637D6A /* libilbc.a */, 2211DB911475562600DEE054 /* liblinphone.a */, - 2211DB8F147555C800DEE054 /* libmediastreamer.a */, + 22405EE916006F0700B92522 /* libmediastreamer_base.a */, + 22405EEA16006F0700B92522 /* libmediastreamer_voip.a */, 226F2ED51344B0EF00F6EF27 /* libmsamr.a */, 226CDADE14E2D0B800513B67 /* libmsbcg729.a */, 223148E51178A09900637D6A /* libmsilbc.a */, @@ -2701,6 +2698,7 @@ 344ABDF014850AE9007420B6 /* libstdc++.6.dylib */, 22B5F03410CE6B2F00777D97 /* AddressBook.framework */, 22B5EFA210CE50BD00777D97 /* AddressBookUI.framework */, + 22405EED1600B4E400B92522 /* AssetsLibrary.framework */, 2274402E106F335E006EC466 /* AudioToolbox.framework */, 224567C1107B968500F10948 /* AVFoundation.framework */, 228697C311AC29B800E9E0CA /* CFNetwork.framework */, @@ -2710,6 +2708,7 @@ 340751961506459A00B89C47 /* CoreTelephony.framework */, 22276E8613C73D8A00210156 /* CoreVideo.framework */, D37DC7171594AF3400B2A5EB /* MessageUI.framework */, + 226EF06B15FA256B005865C7 /* MobileCoreServices.framework */, 70E542F213E147E3002BA2C0 /* OpenGLES.framework */, 70E542F413E147EB002BA2C0 /* QuartzCore.framework */, 22744043106F33FC006EC466 /* Security.framework */, @@ -3167,6 +3166,7 @@ D380801215C299D0005BE9BC /* ColorSpaceUtilites.m */, D380801115C29984005BE9BC /* ColorSpaceUtilities.h */, D3807FB615C28940005BE9BC /* DCRoundSwitch */, + D37EE15F160377D7003608A6 /* DTFoundation */, D32B9DFA15A2F131000B6DEC /* FastAddressBook.h */, D32B9DFB15A2F131000B6DEC /* FastAddressBook.m */, D3ED40141602172200BF332B /* GrowingTextView */, @@ -3200,6 +3200,16 @@ name = Products; sourceTree = ""; }; + D37EE15F160377D7003608A6 /* DTFoundation */ = { + isa = PBXGroup; + children = ( + D37EE160160377D7003608A6 /* DTActionSheet.h */, + D37EE161160377D7003608A6 /* DTActionSheet.m */, + ); + name = DTFoundation; + path = Utils/DTFoundation; + sourceTree = ""; + }; D3807FB615C28940005BE9BC /* DCRoundSwitch */ = { isa = PBXGroup; children = ( @@ -3865,7 +3875,7 @@ 2234C8E915EE2F7F00E18E83 /* chat_message_delivered.png in Resources */, 2234C8EB15EE2F7F00E18E83 /* chat_message_not_delivered.png in Resources */, 2234C8EE15EE744200E18E83 /* chat_message_inprogress.png in Resources */, - 22405F021601C19200B92522 /* ImageViewerViewController.xib in Resources */, + D37EE10D16035793003608A6 /* ImageViewController.xib in Resources */, D381881115FE3F0B00C3EDCA /* UICallCell.xib in Resources */, D381881915FE3FCA00C3EDCA /* InCallViewController.xib in Resources */, D381883E15FE447200C3EDCA /* ChatRoomViewController.xib in Resources */, @@ -4317,7 +4327,7 @@ 2234C8EA15EE2F7F00E18E83 /* chat_message_delivered.png in Resources */, 2234C8EC15EE2F7F00E18E83 /* chat_message_not_delivered.png in Resources */, 2234C8EF15EE744200E18E83 /* chat_message_inprogress.png in Resources */, - 22405F031601C19200B92522 /* ImageViewerViewController.xib in Resources */, + D37EE10E16035793003608A6 /* ImageViewController.xib in Resources */, D381881215FE3F0B00C3EDCA /* UICallCell.xib in Resources */, D381881A15FE3FCA00C3EDCA /* InCallViewController.xib in Resources */, D381883F15FE447200C3EDCA /* ChatRoomViewController.xib in Resources */, @@ -4449,9 +4459,10 @@ D380800515C28A7A005BE9BC /* UILinphone.m in Sources */, D380801315C299D0005BE9BC /* ColorSpaceUtilites.m in Sources */, D378AB2A15DCDB4A0098505D /* ContactDetailsImagePickerController.m in Sources */, - 22405F001601C19200B92522 /* ImageViewerViewController.m in Sources */, + 22405F001601C19200B92522 /* ImageViewController.m in Sources */, D3ED40191602172200BF332B /* HPGrowingTextView.m in Sources */, D3ED401B1602172200BF332B /* HPTextViewInternal.m in Sources */, + D37EE162160377D7003608A6 /* DTActionSheet.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4542,9 +4553,10 @@ D380800615C28A7A005BE9BC /* UILinphone.m in Sources */, D380801415C299D0005BE9BC /* ColorSpaceUtilites.m in Sources */, D378AB2B15DCDB4A0098505D /* ContactDetailsImagePickerController.m in Sources */, - 22405F011601C19200B92522 /* ImageViewerViewController.m in Sources */, + 22405F011601C19200B92522 /* ImageViewController.m in Sources */, D3ED401A1602172200BF332B /* HPGrowingTextView.m in Sources */, D3ED401C1602172200BF332B /* HPTextViewInternal.m in Sources */, + D37EE163160377D7003608A6 /* DTActionSheet.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4583,6 +4595,15 @@ name = Localizable.strings; sourceTree = ""; }; + D37EE11016035793003608A6 /* ImageViewController.xib */ = { + isa = PBXVariantGroup; + children = ( + D37EE10F16035793003608A6 /* en */, + D37EE11116036197003608A6 /* fr */, + ); + name = ImageViewController.xib; + sourceTree = ""; + }; D38187B015FE340100C3EDCA /* ChatRoomViewController.xib */ = { isa = PBXVariantGroup; children = (