diff --git a/Classes/BuschJaegerConfiguration.h b/Classes/BuschJaegerConfiguration.h index 802821ec7..8ad85b9f9 100644 --- a/Classes/BuschJaegerConfiguration.h +++ b/Classes/BuschJaegerConfiguration.h @@ -49,9 +49,12 @@ typedef enum _BuschJaegerConfigurationRequestType{ - (BOOL)parseQRCode:(NSString*)data delegate:(id)delegate; - (BOOL)loadHistory:(BuschJaegerConfigurationRequestType)type delegate:(id)delegate; +- (BOOL)removeHistory:(BuschJaegerConfigurationRequestType)type history:(History*)history delegate:(id)delegate; + - (NSString*)getImageUrl:(BuschJaegerConfigurationRequestType)type image:(NSString *)image; - (NSString*)getGateway:(BuschJaegerConfigurationRequestType)type; + (NSString*)getRegexValue:(NSString*)regexString data:(NSString*)data; + @end diff --git a/Classes/BuschJaegerConfiguration.m b/Classes/BuschJaegerConfiguration.m index 50625351d..2ad23e1a9 100644 --- a/Classes/BuschJaegerConfiguration.m +++ b/Classes/BuschJaegerConfiguration.m @@ -241,13 +241,20 @@ [delegate buschJaegerConfigurationError:[error localizedDescription]]; }); } else { - if([self parseConfig:[NSString stringWithUTF8String:[data bytes]] delegate:delegate]) { - [[NSUserDefaults standardUserDefaults] setObject:userString forKey:@"username_preference"]; - [[NSUserDefaults standardUserDefaults] setObject:network.domain forKey:@"domain_preference"]; - [[NSUserDefaults standardUserDefaults] setObject:passwordString forKey:@"password_preference"]; - [[LinphoneManager instance] reconfigureLinphone]; + NSHTTPURLResponse *urlResponse = (NSHTTPURLResponse*) response; + if(urlResponse.statusCode == 200) { + if([self parseConfig:[NSString stringWithUTF8String:[data bytes]] delegate:delegate]) { + [[NSUserDefaults standardUserDefaults] setObject:userString forKey:@"username_preference"]; + [[NSUserDefaults standardUserDefaults] setObject:network.domain forKey:@"domain_preference"]; + [[NSUserDefaults standardUserDefaults] setObject:passwordString forKey:@"password_preference"]; + [[LinphoneManager instance] reconfigureLinphone]; + dispatch_async(dispatch_get_main_queue(), ^{ + [delegate buschJaegerConfigurationSuccess]; + }); + } + } else { dispatch_async(dispatch_get_main_queue(), ^{ - [delegate buschJaegerConfigurationSuccess]; + [delegate buschJaegerConfigurationError:[NSString stringWithFormat:@"Request not succeed (Status code:%d)", urlResponse.statusCode]]; }); } } @@ -273,13 +280,51 @@ [delegate buschJaegerConfigurationError:[error localizedDescription]]; }); } else { - NSString *dataString = [[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding: NSUTF8StringEncoding]; - if([self parseHistory:dataString delegate:delegate]) { + NSHTTPURLResponse *urlResponse = (NSHTTPURLResponse*) response; + if(urlResponse.statusCode == 200) { + NSString *dataString = [[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding: NSUTF8StringEncoding]; + if([self parseHistory:dataString delegate:delegate]) { + dispatch_async(dispatch_get_main_queue(), ^{ + [delegate buschJaegerConfigurationSuccess]; + }); + } + [dataString release]; + } else { + dispatch_async(dispatch_get_main_queue(), ^{ + [delegate buschJaegerConfigurationError:[NSString stringWithFormat:@"Request not succeed (Status code:%d)", urlResponse.statusCode]]; + }); + } + } + }); + return TRUE; + } + return FALSE; +} + +- (BOOL)removeHistory:(BuschJaegerConfigurationRequestType)type history:(History*)ahistory delegate:(id)delegate { + NSString *url = [NSString stringWithFormat:@"%@/adduser.cgi?type=delhistory&id=%d", [self getGateway:type], ahistory.ID]; + NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:5]; + if(request != nil) { + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, (unsigned long)NULL), ^(void) { + NSURLResponse *response = nil; + NSError *error = nil; + NSData *data = nil; + data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; + if(data == nil) { + dispatch_async(dispatch_get_main_queue(), ^{ + [delegate buschJaegerConfigurationError:[error localizedDescription]]; + }); + } else { + NSHTTPURLResponse *urlResponse = (NSHTTPURLResponse*) response; + if(urlResponse.statusCode == 200) { dispatch_async(dispatch_get_main_queue(), ^{ [delegate buschJaegerConfigurationSuccess]; }); + } else { + dispatch_async(dispatch_get_main_queue(), ^{ + [delegate buschJaegerConfigurationError:[NSString stringWithFormat:@"Request not succeed (Status code:%d)", urlResponse.statusCode]]; + }); } - [dataString release]; } }); return TRUE; diff --git a/Classes/BuschJaegerHistoryDetailsView.h b/Classes/BuschJaegerHistoryDetailsView.h index 67532e63e..4be669b75 100644 --- a/Classes/BuschJaegerHistoryDetailsView.h +++ b/Classes/BuschJaegerHistoryDetailsView.h @@ -20,8 +20,9 @@ #import #import "History.h" #import "UIRemoteImageView.h" +#import "BuschJaegerConfiguration.h" -@interface BuschJaegerHistoryDetailsView : UIViewController { +@interface BuschJaegerHistoryDetailsView : UIViewController { @private int currentIndex; NSDateFormatter *dateFormatter; @@ -34,6 +35,8 @@ @property (nonatomic, retain) IBOutlet UILabel *dateLabel; @property (nonatomic, retain) IBOutlet UIRemoteImageView *imageView; +- (IBAction)onBackClick:(id)sender; +- (IBAction)onDeleteClick:(id)sender; - (IBAction)nextImage:(id)sender; - (IBAction)previousImage:(id)sender; - (IBAction)hideImage:(id)sender; diff --git a/Classes/BuschJaegerHistoryDetailsView.m b/Classes/BuschJaegerHistoryDetailsView.m index 4af817c70..115df8f00 100644 --- a/Classes/BuschJaegerHistoryDetailsView.m +++ b/Classes/BuschJaegerHistoryDetailsView.m @@ -137,6 +137,10 @@ [[BuschJaegerMainView instance].navigationController popViewControllerAnimated:FALSE]; } +- (IBAction)onDeleteClick:(id)sender { + [[LinphoneManager instance].configuration removeHistory:BuschJaegerConfigurationRequestType_Local history:history delegate:self]; +} + - (IBAction)nextImage:(id)sender { if([history.images count]) { currentIndex = (currentIndex - 1); @@ -196,4 +200,22 @@ [imageView loadImage:[[LinphoneManager instance].configuration getImageUrl:BuschJaegerConfigurationRequestType_Local image:[history.images objectAtIndex:currentIndex]]]; } +#pragma mark - BuschJaegerConfigurationDelegate Functions + +- (void)buschJaegerConfigurationSuccess { + [[BuschJaegerMainView instance].historyView reload]; + [[BuschJaegerMainView instance].navigationController popViewControllerAnimated:FALSE]; +} + +- (void)buschJaegerConfigurationError:(NSString *)error { + UIAlertView* errorView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"History delete error",nil) + message:[NSString stringWithFormat:NSLocalizedString(@"Connection issue: %@", nil), error] + delegate:nil + cancelButtonTitle:NSLocalizedString(@"Continue",nil) + otherButtonTitles:nil,nil]; + [errorView show]; + [errorView release]; +} + + @end diff --git a/Classes/BuschJaegerHistoryDetailsView.xib b/Classes/BuschJaegerHistoryDetailsView.xib index e9a171653..ddca9a114 100644 --- a/Classes/BuschJaegerHistoryDetailsView.xib +++ b/Classes/BuschJaegerHistoryDetailsView.xib @@ -67,7 +67,7 @@ 292 - {{5, 5}, {180, 21}} + {{5, 5}, {152, 21}} @@ -95,10 +95,10 @@ 292 - {{203, 5}, {112, 21}} + {{168, 5}, {112, 21}} - + _NS:9 NO YES @@ -120,6 +120,41 @@ 16 + + + 257 + {{286, 0}, {34, 34}} + + + + _NS:9 + NO + IBCocoaTouchFramework + 0 + 0 + NO + 6 + 6 + 6 + 6 + + 3 + MC41AA + + + NSImage + trash.png + + + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + 292 @@ -159,6 +194,7 @@ {280, 40} + _NS:9 3 @@ -170,19 +206,9 @@ 0 - - 3 - MC41AA - - - 2 - 15 - - - Helvetica-Bold - 15 - 16 - + + + {{20, 410}, {280, 40}} @@ -371,6 +397,15 @@ 35 + + + onDeleteClick: + + + 7 + + 37 + @@ -389,6 +424,7 @@ + @@ -469,6 +505,12 @@ Left Swipe Gesture Recognizer + + 36 + + + deleteButton + @@ -486,6 +528,9 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -495,7 +540,7 @@ - 35 + 37 @@ -506,6 +551,7 @@ id id id + id id @@ -521,6 +567,10 @@ onBackClick: id + + onDeleteClick: + id + previousImage: id @@ -578,6 +628,10 @@ YES 3 + + trash.png + {26, 26} + 1498 diff --git a/Classes/BuschJaegerHistoryTableViewController.h b/Classes/BuschJaegerHistoryTableViewController.h index d7fe3b3da..2cd09d628 100644 --- a/Classes/BuschJaegerHistoryTableViewController.h +++ b/Classes/BuschJaegerHistoryTableViewController.h @@ -18,9 +18,14 @@ */ #import +#import "BuschJaegerConfiguration.h" -@interface BuschJaegerHistoryTableViewController : UITableViewController +@interface BuschJaegerHistoryTableViewController : UITableViewController { + @private + NSMutableArray *history; +} -@property (nonatomic, retain) NSArray *history; +@property (nonatomic, copy) NSArray *history; +@property (nonatomic, retain) IBOutlet UIView *waitView; @end diff --git a/Classes/BuschJaegerHistoryTableViewController.m b/Classes/BuschJaegerHistoryTableViewController.m index 2bb749a39..34cfee055 100644 --- a/Classes/BuschJaegerHistoryTableViewController.m +++ b/Classes/BuschJaegerHistoryTableViewController.m @@ -26,12 +26,14 @@ @implementation BuschJaegerHistoryTableViewController @synthesize history; +@synthesize waitView; #pragma mark - Lifecycle Functions - (void)dealloc { [history release]; + [waitView release]; [super dealloc]; } @@ -44,11 +46,12 @@ } [history release]; - history = [ahistory retain]; + history = [[NSMutableArray alloc] initWithArray:ahistory]; [self.tableView reloadData]; } + #pragma mark - UITableViewDataSource Functions - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { @@ -86,5 +89,36 @@ [[BuschJaegerMainView instance].navigationController pushViewController:[BuschJaegerMainView instance].historyDetailsView animated:FALSE]; } +- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { + return UITableViewCellEditingStyleDelete; +} + +- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { + if(editingStyle == UITableViewCellEditingStyleDelete) { + History *ahistory = [history objectAtIndex:[indexPath row]]; + [[LinphoneManager instance].configuration removeHistory:BuschJaegerConfigurationRequestType_Local history:ahistory delegate:self]; + [tableView beginUpdates]; + [history removeObjectAtIndex:[indexPath row]]; + [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; + [tableView endUpdates]; + } +} + + +#pragma mark - BuschJaegerConfigurationDelegate Functions + +- (void)buschJaegerConfigurationSuccess { +} + +- (void)buschJaegerConfigurationError:(NSString *)error { + UIAlertView* errorView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"History delete error",nil) + message:[NSString stringWithFormat:NSLocalizedString(@"Connection issue: %@", nil), error] + delegate:nil + cancelButtonTitle:NSLocalizedString(@"Continue",nil) + otherButtonTitles:nil,nil]; + [errorView show]; + [errorView release]; + [[BuschJaegerMainView instance].historyView reload]; +} @end diff --git a/Classes/BuschJaegerHistoryView.m b/Classes/BuschJaegerHistoryView.m index 3628cbbec..c037a763b 100644 --- a/Classes/BuschJaegerHistoryView.m +++ b/Classes/BuschJaegerHistoryView.m @@ -79,7 +79,8 @@ - (void)update { NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:NO]; - NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; + NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil]; + [tableController setHistory:[[LinphoneManager instance].configuration.history sortedArrayUsingDescriptors:sortDescriptors]]; } diff --git a/Classes/BuschJaegerHistoryView.xib b/Classes/BuschJaegerHistoryView.xib index 601ce0f5a..1c149cdab 100644 --- a/Classes/BuschJaegerHistoryView.xib +++ b/Classes/BuschJaegerHistoryView.xib @@ -253,6 +253,14 @@ 17 + + + waitView + + + + 25 + @@ -351,13 +359,24 @@ - 24 + 25 BuschJaegerHistoryTableViewController UITableViewController + + waitView + UIView + + + waitView + + waitView + UIView + + IBProjectSource ./Classes/BuschJaegerHistoryTableViewController.h diff --git a/Classes/BuschJaegerMainView.m b/Classes/BuschJaegerMainView.m index ef6b817d2..d6cbc354a 100644 --- a/Classes/BuschJaegerMainView.m +++ b/Classes/BuschJaegerMainView.m @@ -162,8 +162,7 @@ static BuschJaegerMainView* mainViewInstance=nil; && [UIApplication sharedApplication].applicationState != UIApplicationStateActive) { // Create a new notification UILocalNotification* notif = [[[UILocalNotification alloc] init] autorelease]; - if (notif) - { + if (notif) { notif.repeatInterval = 0; notif.alertBody = NSLocalizedString(@"Ding Dong !",nil); notif.alertAction = @"See the answer"; diff --git a/Classes/BuschJaegerWelcomeView.m b/Classes/BuschJaegerWelcomeView.m index 0783e035a..50f2c3ebb 100644 --- a/Classes/BuschJaegerWelcomeView.m +++ b/Classes/BuschJaegerWelcomeView.m @@ -77,7 +77,7 @@ - (void)updateConfiguration:(BuschJaegerConfiguration *)configuration { NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"ID" ascending:YES]; - NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; + NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil]; [tableController setStations:[configuration.outdoorStations sortedArrayUsingDescriptors:sortDescriptors]]; [historyButton setEnabled: configuration.network.localAddress != nil]; } diff --git a/Classes/LinphoneManager.h b/Classes/LinphoneManager.h index dbde9b57d..c80b11269 100644 --- a/Classes/LinphoneManager.h +++ b/Classes/LinphoneManager.h @@ -70,6 +70,9 @@ typedef struct _LinphoneCallAppData { typedef struct _LinphoneManagerSounds { SystemSoundID call; + /* MODIFICATION add level ringtone */ + SystemSoundID level; + /**/ SystemSoundID message; } LinphoneManagerSounds; diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 09f25eba7..f26b18bdf 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -192,23 +192,27 @@ struct codec_name_pref_table codec_pref_table[]={ } // Sounds - { - NSString *path = [[NSBundle mainBundle] pathForResource:@"01" ofType:@"wav"]; + /*{ + NSString *path = [[NSBundle mainBundle] pathForResource:@"01" ofType:@"wav"];*/ sounds.call = 0; - OSStatus status = AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &sounds.call); + /*OSStatus status = AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &sounds.call); if(status != 0){ [LinphoneLogger log:LinphoneLoggerWarning format:@"Can't set \"call\" system sound"]; } } - /*{ - NSString *path = [[NSBundle mainBundle] pathForResource:@"msg" ofType:@"wav"]; + { + NSString *path = [[NSBundle mainBundle] pathForResource:@"msg" ofType:@"wav"];*/ sounds.message = 0; - OSStatus status = AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &sounds.message); + /*OSStatus status = AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &sounds.message); if(status != 0){ [LinphoneLogger log:LinphoneLoggerWarning format:@"Can't set \"message\" system sound"]; } }*/ + /* MODIFICATION add level ringtone */ + sounds.level = 0; + /**/ + inhibitedEvent = [[NSMutableArray alloc] init]; logs = [[NSMutableArray alloc] init]; database = NULL; @@ -1175,13 +1179,9 @@ static void audioRouteChangeListenerCallback ( } - // Set audio assets - const char* lRing = [[myBundle pathForResource:@"01"ofType:@"wav"] cStringUsingEncoding:[NSString defaultCStringEncoding]]; - linphone_core_set_ring(theLinphoneCore, lRing ); - const char* lRingBack = [[myBundle pathForResource:@"01"ofType:@"wav"] cStringUsingEncoding:[NSString defaultCStringEncoding]]; - linphone_core_set_ringback(theLinphoneCore, lRingBack); - + linphone_core_set_ring(theLinphoneCore, ""); + linphone_core_set_ringback(theLinphoneCore, ""); //configure sip account @@ -1339,6 +1339,38 @@ static void audioRouteChangeListenerCallback ( currentSettings = newSettings; [currentSettings retain]; + /* Configure sounds */ + if(sounds.call) { + AudioServicesDisposeSystemSoundID(sounds.call); + } + { + NSString *ringtone = [[NSUserDefaults standardUserDefaults] stringForKey:@"ringtone_preference"]; + if(ringtone == nil) { + ringtone = @"ringtone_01_1600"; + } + NSString *path = [[NSBundle mainBundle] pathForResource:ringtone ofType:@"wav"]; + sounds.call = 0; + OSStatus status = AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &sounds.call); + if(status != 0) { + [LinphoneLogger log:LinphoneLoggerWarning format:@"Can't set \"call\" system sound"]; + } + } + if(sounds.level) { + AudioServicesDisposeSystemSoundID(sounds.level); + } + { + NSString *ringtone = [[NSUserDefaults standardUserDefaults] stringForKey:@"level_ringtone_preference"]; + if(ringtone == nil) { + ringtone = @"ringtone_01_1600"; + } + NSString *path = [[NSBundle mainBundle] pathForResource:ringtone ofType:@"wav"]; + sounds.level = 0; + OSStatus status = AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &sounds.level); + if(status != 0) { + [LinphoneLogger log:LinphoneLoggerWarning format:@"Can't set \"call\" system sound"]; + } + } + return YES; } diff --git a/Classes/LinphoneUI/UIHistoryCell.m b/Classes/LinphoneUI/UIHistoryCell.m index 4489fe4c4..361046006 100644 --- a/Classes/LinphoneUI/UIHistoryCell.m +++ b/Classes/LinphoneUI/UIHistoryCell.m @@ -94,4 +94,21 @@ } } + +#pragma mark - Action Functions + +- (IBAction)onDeleteClick: (id) event { + if(history != NULL) { + UIView *view = [self superview]; + // Find TableViewCell + if(view != nil && ![view isKindOfClass:[UITableView class]]) view = [view superview]; + if(view != nil) { + UITableView *tableView = (UITableView*) view; + NSIndexPath *indexPath = [tableView indexPathForCell:self]; + [[tableView dataSource] tableView:tableView commitEditingStyle:UITableViewCellEditingStyleDelete forRowAtIndexPath:indexPath]; + } + } +} + + @end diff --git a/Classes/LinphoneUI/UIHistoryCell.xib b/Classes/LinphoneUI/UIHistoryCell.xib index da2a4c1eb..8ba0bcd09 100644 --- a/Classes/LinphoneUI/UIHistoryCell.xib +++ b/Classes/LinphoneUI/UIHistoryCell.xib @@ -12,6 +12,7 @@ IBProxyObject + IBUIButton IBUIImageView IBUILabel IBUIView @@ -50,7 +51,7 @@ 292 - {{45, 10}, {155, 21}} + {{45, 10}, {120, 21}} @@ -81,10 +82,10 @@ 292 - {{208, 10}, {112, 21}} + {{173, 10}, {103, 21}} - + _NS:9 NO YES @@ -106,6 +107,41 @@ 16 + + + 257 + {{276, 0}, {44, 44}} + + + + _NS:9 + NO + IBCocoaTouchFramework + 0 + 0 + NO + 11 + 11 + 11 + 11 + + 3 + MC41AA + + + NSImage + trash.png + + + 2 + 15 + + + Helvetica-Bold + 15 + 16 + + {320, 42} @@ -145,6 +181,15 @@ 11 + + + onDeleteClick: + + + 7 + + 13 + @@ -170,8 +215,9 @@ - + + @@ -193,6 +239,12 @@ Image + + 12 + + + deleteButton + @@ -200,6 +252,9 @@ 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 @@ -210,16 +265,27 @@ - 11 + 13 UIHistoryCell UITableViewCell + + onDeleteClick: + id + + + onDeleteClick: + + onDeleteClick: + id + + UILabel - UIImageView + UIRemoteImageView UILabel @@ -229,7 +295,7 @@ iconImage - UIImageView + UIRemoteImageView stationLabel @@ -259,6 +325,10 @@ YES 3 + + trash.png + {26, 26} + 1498 diff --git a/Classes/Model/History.m b/Classes/Model/History.m index 38d7b74af..7d25729ea 100644 --- a/Classes/Model/History.m +++ b/Classes/Model/History.m @@ -75,4 +75,8 @@ return history; } +- (void)remove { + +} + @end diff --git a/Resources/01.wav b/Resources/ringtone_01_1600.wav similarity index 100% rename from Resources/01.wav rename to Resources/ringtone_01_1600.wav diff --git a/Resources/ringtone_02_1600.wav b/Resources/ringtone_02_1600.wav new file mode 100644 index 000000000..56f655654 Binary files /dev/null and b/Resources/ringtone_02_1600.wav differ diff --git a/Resources/ringtone_03_1600.wav b/Resources/ringtone_03_1600.wav new file mode 100644 index 000000000..eadfd6460 Binary files /dev/null and b/Resources/ringtone_03_1600.wav differ diff --git a/Resources/ringtone_04_1600.wav b/Resources/ringtone_04_1600.wav new file mode 100644 index 000000000..2525b9cfe Binary files /dev/null and b/Resources/ringtone_04_1600.wav differ diff --git a/Resources/ringtone_05_1600.wav b/Resources/ringtone_05_1600.wav new file mode 100644 index 000000000..0c3e418d2 Binary files /dev/null and b/Resources/ringtone_05_1600.wav differ diff --git a/Resources/trash.png b/Resources/trash.png new file mode 100644 index 000000000..78be9317d Binary files /dev/null and b/Resources/trash.png differ diff --git a/Settings.bundle/Root.plist b/Settings.bundle/Root.plist index 10aefb6e0..edd127799 100644 --- a/Settings.bundle/Root.plist +++ b/Settings.bundle/Root.plist @@ -9,8 +9,6 @@ SIP account Type PSGroupSpecifier - FooterText - Welcome must be restarted for changes to take effect AutocapitalizationType @@ -112,6 +110,66 @@ DefaultValue + + Title + Sounds + Type + PSGroupSpecifier + FooterText + Welcome must be restarted for changes to take effect + + + DefaultValue + ringtone_01_1600 + Key + ringtone_preference + Title + Ringtone + Titles + + Ringtone 1 + Ringtone 2 + Ringtone 3 + Ringtone 4 + Ringtone 5 + + Type + PSMultiValueSpecifier + Values + + ringtone_01_1600 + ringtone_02_1600 + ringtone_03_1600 + ringtone_04_1600 + ringtone_05_1600 + + + + DefaultValue + ringtone_01_1600 + Key + level_ringtone_preference + Title + Level Ringtone + Titles + + Ringtone 1 + Ringtone 2 + Ringtone 3 + Ringtone 4 + Ringtone 5 + + Type + PSMultiValueSpecifier + Values + + ringtone_01_1600 + ringtone_02_1600 + ringtone_03_1600 + ringtone_04_1600 + ringtone_05_1600 + + StringsTable Root diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 327cadfdc..abc232b74 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -145,8 +145,18 @@ D35E7582159328EB0066B1C1 /* UIAddressTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = D35E7580159328EB0066B1C1 /* UIAddressTextField.m */; }; D36FB2D51589EF7C0036F6F2 /* UIPauseButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D36FB2D41589EF7C0036F6F2 /* UIPauseButton.m */; }; D36FB2D61589EF7C0036F6F2 /* UIPauseButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D36FB2D41589EF7C0036F6F2 /* UIPauseButton.m */; }; - D37CD2D115E21CB30028869A /* 01.wav in Resources */ = {isa = PBXBuildFile; fileRef = D37CD2BF15E21CB30028869A /* 01.wav */; }; - D37CD2D215E21CB30028869A /* 01.wav in Resources */ = {isa = PBXBuildFile; fileRef = D37CD2BF15E21CB30028869A /* 01.wav */; }; + D376EAE1160082A4007C8226 /* trash.png in Resources */ = {isa = PBXBuildFile; fileRef = D376EAE0160082A4007C8226 /* trash.png */; }; + D376EAE2160082A4007C8226 /* trash.png in Resources */ = {isa = PBXBuildFile; fileRef = D376EAE0160082A4007C8226 /* trash.png */; }; + D376EAE816008454007C8226 /* ringtone_01_1600.wav in Resources */ = {isa = PBXBuildFile; fileRef = D376EAE316008454007C8226 /* ringtone_01_1600.wav */; }; + D376EAE916008454007C8226 /* ringtone_01_1600.wav in Resources */ = {isa = PBXBuildFile; fileRef = D376EAE316008454007C8226 /* ringtone_01_1600.wav */; }; + D376EAEA16008454007C8226 /* ringtone_02_1600.wav in Resources */ = {isa = PBXBuildFile; fileRef = D376EAE416008454007C8226 /* ringtone_02_1600.wav */; }; + D376EAEB16008454007C8226 /* ringtone_02_1600.wav in Resources */ = {isa = PBXBuildFile; fileRef = D376EAE416008454007C8226 /* ringtone_02_1600.wav */; }; + D376EAEC16008454007C8226 /* ringtone_03_1600.wav in Resources */ = {isa = PBXBuildFile; fileRef = D376EAE516008454007C8226 /* ringtone_03_1600.wav */; }; + D376EAED16008454007C8226 /* ringtone_03_1600.wav in Resources */ = {isa = PBXBuildFile; fileRef = D376EAE516008454007C8226 /* ringtone_03_1600.wav */; }; + D376EAEE16008454007C8226 /* ringtone_04_1600.wav in Resources */ = {isa = PBXBuildFile; fileRef = D376EAE616008454007C8226 /* ringtone_04_1600.wav */; }; + D376EAEF16008454007C8226 /* ringtone_04_1600.wav in Resources */ = {isa = PBXBuildFile; fileRef = D376EAE616008454007C8226 /* ringtone_04_1600.wav */; }; + D376EAF016008454007C8226 /* ringtone_05_1600.wav in Resources */ = {isa = PBXBuildFile; fileRef = D376EAE716008454007C8226 /* ringtone_05_1600.wav */; }; + D376EAF116008454007C8226 /* ringtone_05_1600.wav in Resources */ = {isa = PBXBuildFile; fileRef = D376EAE716008454007C8226 /* ringtone_05_1600.wav */; }; D37CD2DF15E21CB30028869A /* bj_barcode.png in Resources */ = {isa = PBXBuildFile; fileRef = D37CD2C615E21CB30028869A /* bj_barcode.png */; }; D37CD2E015E21CB30028869A /* bj_barcode.png in Resources */ = {isa = PBXBuildFile; fileRef = D37CD2C615E21CB30028869A /* bj_barcode.png */; }; D37CD2E115E21CB30028869A /* bj_decline.png in Resources */ = {isa = PBXBuildFile; fileRef = D37CD2C715E21CB30028869A /* bj_decline.png */; }; @@ -573,7 +583,12 @@ D35E7580159328EB0066B1C1 /* UIAddressTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIAddressTextField.m; sourceTree = ""; }; D36FB2D31589EF7C0036F6F2 /* UIPauseButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIPauseButton.h; sourceTree = ""; }; D36FB2D41589EF7C0036F6F2 /* UIPauseButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIPauseButton.m; sourceTree = ""; }; - D37CD2BF15E21CB30028869A /* 01.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = 01.wav; path = Resources/01.wav; sourceTree = ""; }; + D376EAE0160082A4007C8226 /* trash.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = trash.png; path = Resources/trash.png; sourceTree = ""; }; + D376EAE316008454007C8226 /* ringtone_01_1600.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = ringtone_01_1600.wav; path = Resources/ringtone_01_1600.wav; sourceTree = ""; }; + D376EAE416008454007C8226 /* ringtone_02_1600.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = ringtone_02_1600.wav; path = Resources/ringtone_02_1600.wav; sourceTree = ""; }; + D376EAE516008454007C8226 /* ringtone_03_1600.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = ringtone_03_1600.wav; path = Resources/ringtone_03_1600.wav; sourceTree = ""; }; + D376EAE616008454007C8226 /* ringtone_04_1600.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = ringtone_04_1600.wav; path = Resources/ringtone_04_1600.wav; sourceTree = ""; }; + D376EAE716008454007C8226 /* ringtone_05_1600.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = ringtone_05_1600.wav; path = Resources/ringtone_05_1600.wav; sourceTree = ""; }; D37CD2C615E21CB30028869A /* bj_barcode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = bj_barcode.png; path = Resources/bj_barcode.png; sourceTree = ""; }; D37CD2C715E21CB30028869A /* bj_decline.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = bj_decline.png; path = Resources/bj_decline.png; sourceTree = ""; }; D37CD2C815E21CB30028869A /* bj_door_hl.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = bj_door_hl.png; path = Resources/bj_door_hl.png; sourceTree = ""; }; @@ -1239,10 +1254,6 @@ 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( - D33BEE1C15FF711B004ED2AF /* linphonerc-factory */, - D33BEE1D15FF711B004ED2AF /* linphonerc-factory~ipad */, - D33BEE1E15FF711B004ED2AF /* rootca.pem */, - D37CD2BF15E21CB30028869A /* 01.wav */, D37CD2C615E21CB30028869A /* bj_barcode.png */, D37CD2C715E21CB30028869A /* bj_decline.png */, D37CD2C915E21CB30028869A /* bj_door.png */, @@ -1262,8 +1273,17 @@ D37CD32415E220620028869A /* buschjaeger_icon_57@2x.png */, D37CD32515E220620028869A /* buschjaeger_icon_72.png */, D37CD32615E220620028869A /* buschjaeger_icon_72@2x.png */, - D321FF9815E628CB0098B5F4 /* linphonerc~ipad */, 57F005C315EE2CCF00914747 /* linphonerc */, + D33BEE1C15FF711B004ED2AF /* linphonerc-factory */, + D33BEE1D15FF711B004ED2AF /* linphonerc-factory~ipad */, + D321FF9815E628CB0098B5F4 /* linphonerc~ipad */, + D376EAE316008454007C8226 /* ringtone_01_1600.wav */, + D376EAE416008454007C8226 /* ringtone_02_1600.wav */, + D376EAE516008454007C8226 /* ringtone_03_1600.wav */, + D376EAE616008454007C8226 /* ringtone_04_1600.wav */, + D376EAE716008454007C8226 /* ringtone_05_1600.wav */, + D33BEE1E15FF711B004ED2AF /* rootca.pem */, + D376EAE0160082A4007C8226 /* trash.png */, ); name = Resources; sourceTree = ""; @@ -1468,7 +1488,6 @@ buildActionMask = 2147483647; files = ( 2214783D1386A2030020F8B8 /* Localizable.strings in Resources */, - D37CD2D115E21CB30028869A /* 01.wav in Resources */, D37CD2DF15E21CB30028869A /* bj_barcode.png in Resources */, D37CD2E115E21CB30028869A /* bj_decline.png in Resources */, D37CD2E315E21CB30028869A /* bj_door_hl.png in Resources */, @@ -1507,6 +1526,12 @@ D33BEE1F15FF711B004ED2AF /* linphonerc-factory in Resources */, D33BEE2115FF711B004ED2AF /* linphonerc-factory~ipad in Resources */, D33BEE2315FF711B004ED2AF /* rootca.pem in Resources */, + D376EAE1160082A4007C8226 /* trash.png in Resources */, + D376EAE816008454007C8226 /* ringtone_01_1600.wav in Resources */, + D376EAEA16008454007C8226 /* ringtone_02_1600.wav in Resources */, + D376EAEC16008454007C8226 /* ringtone_03_1600.wav in Resources */, + D376EAEE16008454007C8226 /* ringtone_04_1600.wav in Resources */, + D376EAF016008454007C8226 /* ringtone_05_1600.wav in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1515,7 +1540,6 @@ buildActionMask = 2147483647; files = ( D34BD74115C13E250070C209 /* Localizable.strings in Resources */, - D37CD2D215E21CB30028869A /* 01.wav in Resources */, D37CD2E015E21CB30028869A /* bj_barcode.png in Resources */, D37CD2E215E21CB30028869A /* bj_decline.png in Resources */, D37CD2E415E21CB30028869A /* bj_door_hl.png in Resources */, @@ -1554,6 +1578,12 @@ D33BEE2015FF711B004ED2AF /* linphonerc-factory in Resources */, D33BEE2215FF711B004ED2AF /* linphonerc-factory~ipad in Resources */, D33BEE2415FF711B004ED2AF /* rootca.pem in Resources */, + D376EAE2160082A4007C8226 /* trash.png in Resources */, + D376EAE916008454007C8226 /* ringtone_01_1600.wav in Resources */, + D376EAEB16008454007C8226 /* ringtone_02_1600.wav in Resources */, + D376EAED16008454007C8226 /* ringtone_03_1600.wav in Resources */, + D376EAEF16008454007C8226 /* ringtone_04_1600.wav in Resources */, + D376EAF116008454007C8226 /* ringtone_05_1600.wav in Resources */, ); runOnlyForDeploymentPostprocessing = 0; };