Merge branch 'new_ui' into apple_store

This commit is contained in:
Yann Diorcet 2012-11-28 13:26:54 +01:00
commit e57c84190c
45 changed files with 2239 additions and 375 deletions

View file

@ -138,8 +138,6 @@
}
self->remoteAddress = [aremoteAddress copy];
[self loadData];
[ChatModel readConversation:remoteAddress];
[[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self];
}

View file

@ -143,7 +143,11 @@ static UICompositeViewDescription *compositeDescription = nil;
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationWillEnterForeground:)
name:UIApplicationDidBecomeActiveNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
@ -186,6 +190,10 @@ static UICompositeViewDescription *compositeDescription = nil;
linphone_chat_room_destroy(chatRoom);
chatRoom = NULL;
}
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIApplicationDidBecomeActiveNotification
object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillShowNotification
object:nil];
@ -226,6 +234,15 @@ static UICompositeViewDescription *compositeDescription = nil;
[messageField setText:@""];
[self update];
[tableController setRemoteAddress: remoteAddress];
[ChatModel readConversation:remoteAddress];
[[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self];
}
- (void)applicationWillEnterForeground:(NSNotification*)notif {
if(remoteAddress != nil) {
[ChatModel readConversation:remoteAddress];
[[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self];
}
}
- (void)update {
@ -398,16 +415,16 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
}
char *fromStr = linphone_address_as_string_uri_only(from);
if(fromStr != NULL) {
if (![[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]
|| [UIApplication sharedApplication].applicationState == UIApplicationStateActive) {
if([[NSString stringWithUTF8String:fromStr]
caseInsensitiveCompare:remoteAddress] == NSOrderedSame) {
if([[NSString stringWithUTF8String:fromStr]
caseInsensitiveCompare:remoteAddress] == NSOrderedSame) {
if (![[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]
|| [UIApplication sharedApplication].applicationState == UIApplicationStateActive) {
[chat setRead:[NSNumber numberWithInt:1]];
[chat update];
[[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self];
[tableController addChatEntry:chat];
[tableController scrollToLastUnread:TRUE];
}
[tableController addChatEntry:chat];
[tableController scrollToLastUnread:TRUE];
}
ms_free(fromStr);
}

View file

@ -588,10 +588,11 @@ static const int contactSections[ContactSections_MAX] = {ContactSections_None, C
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
if(section == (ContactSections_MAX - 1)) {
return [footerController view];
} else {
return nil;
if(ABRecordGetRecordID(contact) != kABRecordInvalidID) {
return [footerController view];
}
}
return nil;
}
- (NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
@ -619,9 +620,13 @@ static const int contactSections[ContactSections_MAX] = {ContactSections_None, C
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
if(section == (ContactSections_MAX - 1)) {
return [UIContactDetailsFooter height:[footerController isEditing]];
if(ABRecordGetRecordID(contact) != kABRecordInvalidID) {
return [UIContactDetailsFooter height:[footerController isEditing]];
} else {
return 0.000001f; // Hack UITableView = 0
}
} else if(section == ContactSections_None) {
return 0.000001f; // Hack UITableView = 0
}

View file

@ -122,8 +122,30 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
linphone_address_destroy(parsed);
}
{
[self setInteger: linphone_core_get_audio_port(lc) forKey:@"audio_port_preference"];
[self setInteger: linphone_core_get_video_port(lc) forKey:@"video_port_preference"];
{
int minPort, maxPort;
linphone_core_get_audio_port_range(lc, &minPort, &maxPort);
if(minPort != maxPort)
[self setObject:[NSString stringWithFormat:@"%d-%d", minPort, maxPort] forKey:@"audio_port_preference"];
else
[self setObject:[NSString stringWithFormat:@"%d", minPort] forKey:@"audio_port_preference"];
}
{
int minPort, maxPort;
linphone_core_get_video_port_range(lc, &minPort, &maxPort);
if(minPort != maxPort)
[self setObject:[NSString stringWithFormat:@"%d-%d", minPort, maxPort] forKey:@"video_port_preference"];
else
[self setObject:[NSString stringWithFormat:@"%d", minPort] forKey:@"video_port_preference"];
}
}
{
[self setInteger: linphone_core_get_upload_bandwidth(lc) forKey:@"upload_bandwidth_preference"];
[self setInteger: linphone_core_get_download_bandwidth(lc) forKey:@"download_bandwidth_preference"];
}
{
[self setFloat:linphone_core_get_playback_gain_db(lc) forKey:@"playback_gain_preference"];
[self setFloat:linphone_core_get_mic_gain_db(lc) forKey:@"microphone_gain_preference"];
}
{
LCSipTransports tp;
@ -212,8 +234,11 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
[self setBool:linphone_core_video_preview_enabled(lc) forKey:@"preview_preference"];
}
{
[self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "sipinfo_dtmf_preference", 0) forKey:@"sipinfo_dtmf_preference"];
[self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "rfc_dtmf_preference", 1) forKey:@"rfc_dtmf_preference"];
[self setBool:linphone_core_get_use_info_for_dtmf(lc) forKey:@"sipinfo_dtmf_preference"];
[self setBool:linphone_core_get_use_rfc2833_for_dtmf(lc) forKey:@"rfc_dtmf_preference"];
[self setInteger:linphone_core_get_inc_timeout(lc) forKey:@"incoming_call_timeout_preference"];
[self setInteger:linphone_core_get_in_call_timeout(lc) forKey:@"in_call_timeout_preference"];
}
@ -385,6 +410,47 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
[[[LinphoneManager instance] fastAddressBook] reload];
}
+ (int)validPort:(int)port {
if(port < 0) {
return 0;
}
if(port > 65535) {
return 65535;
}
return port;
}
+ (BOOL)parsePortRange:(NSString*)text minPort:(int*)minPort maxPort:(int*)maxPort {
NSError* error = nil;
*minPort = -1;
*maxPort = -1;
NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"([0-9]+)(([^0-9]+)([0-9]+))?" options:0 error:&error];
if(error != NULL)
return FALSE;
NSArray* matches = [regex matchesInString:text options:0 range:NSMakeRange(0, [text length])];
if([matches count] == 1) {
NSTextCheckingResult *match = [matches objectAtIndex:0];
NSLog(@"%d", [match numberOfRanges]);
bool range = [match rangeAtIndex:2].length > 0;
if(!range) {
NSRange rangeMinPort = [match rangeAtIndex:1];
*minPort = [LinphoneCoreSettingsStore validPort:[[text substringWithRange:rangeMinPort] integerValue]];
*maxPort = *minPort;
return TRUE;
} else {
NSRange rangeMinPort = [match rangeAtIndex:1];
*minPort = [LinphoneCoreSettingsStore validPort:[[text substringWithRange:rangeMinPort] integerValue]];
NSRange rangeMaxPort = [match rangeAtIndex:4];
*maxPort = [LinphoneCoreSettingsStore validPort:[[text substringWithRange:rangeMaxPort] integerValue]];
if(*minPort > *maxPort) {
*minPort = *maxPort;
}
return TRUE;
}
}
return FALSE;
}
- (BOOL)synchronize {
if (![LinphoneManager isLcReady]) return YES;
LinphoneCore *lc=[LinphoneManager getLc];
@ -425,6 +491,8 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
linphone_core_set_use_info_for_dtmf(lc, [self boolForKey:@"sipinfo_dtmf_preference"]);
linphone_core_set_use_rfc2833_for_dtmf(lc, [self boolForKey:@"rfc_dtmf_preference"]);
linphone_core_set_inc_timeout(lc, [self integerForKey:@"incoming_call_timeout_preference"]);
linphone_core_set_in_call_timeout(lc, [self integerForKey:@"in_call_timeout_preference"]);
bool enableVideo = [self boolForKey:@"enable_video_preference"];
linphone_core_enable_video(lc, enableVideo, enableVideo);
@ -472,10 +540,30 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
// Audio & Video Port
int audio_port_preference = [self integerForKey:@"audio_port_preference"];
linphone_core_set_audio_port(lc, audio_port_preference);
int video_port_preference = [self integerForKey:@"video_port_preference"];
linphone_core_set_video_port(lc, video_port_preference);
{
NSString *audio_port_preference = [self stringForKey:@"audio_port_preference"];
int minPort, maxPort;
[LinphoneCoreSettingsStore parsePortRange:audio_port_preference minPort:&minPort maxPort:&maxPort];
linphone_core_set_audio_port_range(lc, minPort, maxPort);
}
{
NSString *video_port_preference = [self stringForKey:@"video_port_preference"];
int minPort, maxPort;
[LinphoneCoreSettingsStore parsePortRange:video_port_preference minPort:&minPort maxPort:&maxPort];
linphone_core_set_video_port_range(lc, minPort, maxPort);
}
int upload_bandwidth = [self integerForKey:@"upload_bandwidth_preference"];
linphone_core_set_upload_bandwidth(lc, upload_bandwidth);
int download_bandwidth = [self integerForKey:@"download_bandwidth_preference"];
linphone_core_set_download_bandwidth(lc, download_bandwidth);
float playback_gain = [self floatForKey:@"playback_gain_preference"];
linphone_core_set_playback_gain_db(lc, playback_gain);
float mic_gain = [self floatForKey:@"microphone_gain_preference"];
linphone_core_set_mic_gain_db(lc, mic_gain);
UIDevice* device = [UIDevice currentDevice];
bool backgroundSupported = false;
@ -503,6 +591,13 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
BOOL animations = [self boolForKey:@"animations_preference"];
lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "animations_preference", animations);
BOOL wifiOnly = [self boolForKey:@"wifi_only_preference"];
lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "wifi_only_preference", wifiOnly);
if([self valueChangedForKey:@"wifi_only_preference"]) {
[[LinphoneManager instance] setupNetworkReachabilityCallback];
}
NSString* sharing_server = [self stringForKey:@"sharing_server_preference"];
[[LinphoneManager instance] lpConfigSetString:sharing_server forKey:@"sharing_server_preference"];

View file

@ -90,7 +90,7 @@ typedef struct _LinphoneManagerSounds {
BOOL stopWaitingRegisters;
UIBackgroundTaskIdentifier pausedCallBgTask;
UIBackgroundTaskIdentifier incallBgTask;
CTCallCenter* callCenter;
CTCallCenter* mCallCenter;
@public
CallContext currentCallContextBeforeGoingBackground;

View file

@ -387,70 +387,73 @@ static void linphone_iphone_display_status(struct _LinphoneCore * lc, const char
}
if (state == LinphoneCallIncomingReceived
&&[[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]
&& [UIApplication sharedApplication].applicationState != UIApplicationStateActive) {
if (state == LinphoneCallIncomingReceived) {
/*first step is to re-enable ctcall center*/
[self setupGSMInteraction];
CTCallCenter* lCTCallCenter = [[CTCallCenter alloc] init];
/*should we reject this call ?*/
if ([callCenter currentCalls]!=nil) {
if ([lCTCallCenter currentCalls]!=nil) {
[LinphoneLogger logc:LinphoneLoggerLog format:"Mobile call ongoing... rejecting call from [%s]",linphone_address_get_username(linphone_call_get_call_log(call)->from)];
linphone_core_decline_call([LinphoneManager getLc], call,LinphoneReasonBusy);
[lCTCallCenter release];
return;
}
[lCTCallCenter release];
LinphoneCallLog* callLog=linphone_call_get_call_log(call);
NSString* callId=[NSString stringWithUTF8String:callLog->call_id];
const LinphoneAddress *addr = linphone_call_get_remote_address(call);
NSString* address = nil;
if(addr != NULL) {
BOOL useLinphoneAddress = true;
// contact name
char* lAddress = linphone_address_as_string_uri_only(addr);
if(lAddress) {
NSString *normalizedSipAddress = [FastAddressBook normalizeSipURI:[NSString stringWithUTF8String:lAddress]];
ABRecordRef contact = [fastAddressBook getContact:normalizedSipAddress];
if(contact) {
address = [FastAddressBook getContactDisplayName:contact];
useLinphoneAddress = false;
}
ms_free(lAddress);
}
if(useLinphoneAddress) {
const char* lDisplayName = linphone_address_get_display_name(addr);
const char* lUserName = linphone_address_get_username(addr);
if (lDisplayName)
address = [NSString stringWithUTF8String:lDisplayName];
else if(lUserName)
address = [NSString stringWithUTF8String:lUserName];
}
}
if(address == nil) {
address = @"Unknown";
}
if (![[LinphoneManager instance] shouldAutoAcceptCallForCallId:callId]){
// case where a remote notification is not already received
// Create a new local notification
data->notification = [[UILocalNotification alloc] init];
if (data->notification) {
data->notification.repeatInterval = 0;
data->notification.alertBody =[NSString stringWithFormat:NSLocalizedString(@"IC_MSG",nil), address];
data->notification.alertAction = NSLocalizedString(@"Answer", nil);
data->notification.soundName = @"ring.caf";
data->notification.userInfo = [NSDictionary dictionaryWithObject:callId forKey:@"callId"];
[[UIApplication sharedApplication] presentLocalNotificationNow:data->notification];
if (!incallBgTask){
incallBgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler: ^{
[LinphoneLogger log:LinphoneLoggerWarning format:@"Call cannot ring any more, too late"];
}];
if( [[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]
&& [UIApplication sharedApplication].applicationState != UIApplicationStateActive) {
LinphoneCallLog* callLog=linphone_call_get_call_log(call);
NSString* callId=[NSString stringWithUTF8String:callLog->call_id];
const LinphoneAddress *addr = linphone_call_get_remote_address(call);
NSString* address = nil;
if(addr != NULL) {
BOOL useLinphoneAddress = true;
// contact name
char* lAddress = linphone_address_as_string_uri_only(addr);
if(lAddress) {
NSString *normalizedSipAddress = [FastAddressBook normalizeSipURI:[NSString stringWithUTF8String:lAddress]];
ABRecordRef contact = [fastAddressBook getContact:normalizedSipAddress];
if(contact) {
address = [FastAddressBook getContactDisplayName:contact];
useLinphoneAddress = false;
}
ms_free(lAddress);
}
if(useLinphoneAddress) {
const char* lDisplayName = linphone_address_get_display_name(addr);
const char* lUserName = linphone_address_get_username(addr);
if (lDisplayName)
address = [NSString stringWithUTF8String:lDisplayName];
else if(lUserName)
address = [NSString stringWithUTF8String:lUserName];
}
}
if(address == nil) {
address = @"Unknown";
}
if (![[LinphoneManager instance] shouldAutoAcceptCallForCallId:callId]){
// case where a remote notification is not already received
// Create a new local notification
data->notification = [[UILocalNotification alloc] init];
if (data->notification) {
data->notification.repeatInterval = 0;
data->notification.alertBody =[NSString stringWithFormat:NSLocalizedString(@"IC_MSG",nil), address];
data->notification.alertAction = NSLocalizedString(@"Answer", nil);
data->notification.soundName = @"ring.caf";
data->notification.userInfo = [NSDictionary dictionaryWithObject:callId forKey:@"callId"];
[[UIApplication sharedApplication] presentLocalNotificationNow:data->notification];
if (!incallBgTask){
incallBgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler: ^{
[LinphoneLogger log:LinphoneLoggerWarning format:@"Call cannot ring any more, too late"];
}];
}
}
}
}
}
@ -466,8 +469,10 @@ static void linphone_iphone_display_status(struct _LinphoneCore * lc, const char
// Disable speaker when no more call
if ((state == LinphoneCallEnd || state == LinphoneCallError)) {
if(linphone_core_get_calls_nb([LinphoneManager getLc]) == 0)
if(linphone_core_get_calls_nb([LinphoneManager getLc]) == 0) {
[self setSpeakerEnabled:FALSE];
[self removeCTCallCenterCb];
}
if (incallBgTask) {
[[UIApplication sharedApplication] endBackgroundTask:incallBgTask];
incallBgTask=0;
@ -483,7 +488,10 @@ static void linphone_iphone_display_status(struct _LinphoneCore * lc, const char
[self setSpeakerEnabled:TRUE];
}
}
if (state == LinphoneCallConnected && !mCallCenter) {
/*only register CT call center CB for connected call*/
[self setupGSMInteraction];
}
// Post event
NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:
[NSValue valueWithPointer:call], @"call",
@ -682,7 +690,11 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
- (void)setupNetworkReachabilityCallback {
SCNetworkReachabilityContext *ctx=NULL;
const char *nodeName="linphone.org";
//any internet cnx
struct sockaddr_in zeroAddress;
bzero(&zeroAddress, sizeof(zeroAddress));
zeroAddress.sin_len = sizeof(zeroAddress);
zeroAddress.sin_family = AF_INET;
if (proxyReachability) {
[LinphoneLogger logc:LinphoneLoggerLog format:"Cancelling old network reachability"];
@ -691,8 +703,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
proxyReachability = nil;
}
proxyReachability = SCNetworkReachabilityCreateWithName(nil, nodeName);
proxyReachability = SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, (const struct sockaddr*)&zeroAddress);
if (!SCNetworkReachabilitySetCallback(proxyReachability, (SCNetworkReachabilityCallBack)networkReachabilityCallBack, ctx)){
[LinphoneLogger logc:LinphoneLoggerError format:"Cannot register reachability cb: %s", SCErrorString(SCError())];
@ -702,6 +713,11 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
[LinphoneLogger logc:LinphoneLoggerError format:"Cannot register schedule reachability cb: %s", SCErrorString(SCError())];
return;
}
// this check is to know network connectivity right now without waiting for a change. Don'nt remove it unless you have good reason. Jehan
SCNetworkReachabilityFlags flags;
if (SCNetworkReachabilityGetFlags(proxyReachability, &flags)) {
networkReachabilityCallBack(proxyReachability,flags,nil);
}
}
@ -730,6 +746,10 @@ static LinphoneCoreVTable linphonec_vtable = {
}
- (void)startLibLinphone {
if (theLinphoneCore != nil) {
[LinphoneLogger logc:LinphoneLoggerLog format:"linphonecore is already created"];
return;
}
//get default config from bundle
NSString* factoryConfig = [LinphoneManager bundleFile:[LinphoneManager runningOnIpad]?@"linphonerc-factory~ipad":@"linphonerc-factory"];
@ -754,7 +774,6 @@ static LinphoneCoreVTable linphonec_vtable = {
#if HAVE_G729
libmsbcg729_init(); // load g729 plugin
#endif
[self setupGSMInteraction];
/* Initialize linphone core*/
/*to make sure we don't loose debug trace*/
@ -762,6 +781,8 @@ static LinphoneCoreVTable linphonec_vtable = {
linphone_core_enable_logs_with_cb((OrtpLogFunc)linphone_iphone_log_handler);
}
[LinphoneLogger logc:LinphoneLoggerLog format:"Create linphonecore"];
linphone_core_set_user_agent([@"LinphoneIPhone" UTF8String],
[[[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kCFBundleVersionKey] UTF8String]);
theLinphoneCore = linphone_core_new (&linphonec_vtable
, [confiFileName cStringUsingEncoding:[NSString defaultCStringEncoding]]
, [factoryConfig cStringUsingEncoding:[NSString defaultCStringEncoding]]
@ -859,13 +880,8 @@ static LinphoneCoreVTable linphonec_vtable = {
- (void)destroyLibLinphone {
[mIterateTimer invalidate];
// destroying eventHandler if app cannot go in background.
// Otherwise if a GSM call happen and Linphone is resumed,
// the handler will be called before LinphoneCore is built.
// Then handler will be restored in appDidBecomeActive cb
callCenter.callEventHandler = nil;
[callCenter release];
callCenter = nil;
//just in case
[self removeCTCallCenterCb];
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setDelegate:nil];
@ -956,6 +972,13 @@ static int comp_call_state_paused (const LinphoneCall* call, const void* param)
return linphone_call_get_state(call) != LinphoneCallPaused;
}
- (void) startCallPausedLongRunningTask {
pausedCallBgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler: ^{
[LinphoneLogger log:LinphoneLoggerWarning format:@"Call cannot be paused any more, too late"];
}];
[LinphoneLogger log:LinphoneLoggerLog format:@"Long running task started, remaining [%g s] because at least one call is paused"
,[[UIApplication sharedApplication] backgroundTimeRemaining]];
}
- (BOOL)enterBackgroundMode {
LinphoneProxyConfig* proxyCfg;
linphone_core_get_default_proxy(theLinphoneCore, &proxyCfg);
@ -983,13 +1006,6 @@ static int comp_call_state_paused (const LinphoneCall* call, const void* param)
return;
}
//kick up network cnx, just in case
[LinphoneManager kickOffNetworkConnection];
[self setupGSMInteraction];
//to make sure presence status is correct
if ([callCenter currentCalls]==nil)
linphone_core_set_presence_info(theLinphoneCore, 0, nil, LinphoneStatusAltService);
[self refreshRegisters];
linphone_core_iterate(theLinphoneCore);
}
@ -1005,13 +1021,8 @@ static int comp_call_state_paused (const LinphoneCall* call, const void* param)
if (!currentCall //no active call
&& callList // at least one call in a non active state
&& ms_list_find_custom((MSList*)callList, (MSCompareFunc) comp_call_state_paused, NULL)) {
pausedCallBgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler: ^{
[LinphoneLogger log:LinphoneLoggerWarning format:@"Call cannot be paused any more, too late"];
}];
[LinphoneLogger log:LinphoneLoggerLog format:@"Long running task started, remaining [%fs] because at least one call is paused"
,[[UIApplication sharedApplication] backgroundTimeRemaining]];
[self startCallPausedLongRunningTask];
}
return YES;
}
else {
@ -1035,14 +1046,6 @@ static int comp_call_state_paused (const LinphoneCall* call, const void* param)
/*IOS specific*/
linphone_core_start_dtmf_stream(theLinphoneCore);
//call center is unrelialable on the long run, so we change it each time the application is resumed. To avoid zombie GSM call
[self setupGSMInteraction];
//to make sure presence status is correct
if ([callCenter currentCalls]==nil)
linphone_core_set_presence_info(theLinphoneCore, 0, nil, LinphoneStatusAltService);
}
@ -1130,7 +1133,7 @@ static void audioRouteChangeListenerCallback (
return;
}
CTCallCenter* callCenter = [[CTCallCenter alloc] init];
if ([callCenter currentCalls]!=nil) {
[LinphoneLogger logc:LinphoneLoggerError format:"GSM call in progress, cancelling outgoing SIP call request"];
UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Cannot make call",nil)
@ -1140,9 +1143,11 @@ static void audioRouteChangeListenerCallback (
otherButtonTitles:nil];
[error show];
[error release];
[callCenter release];
return;
}
[callCenter release];
LinphoneProxyConfig* proxyCfg;
//get default proxy
linphone_core_get_default_proxy([LinphoneManager getLc],&proxyCfg);
@ -1338,18 +1343,24 @@ static void audioRouteChangeListenerCallback (
}
#pragma GSM management
-(void) removeCTCallCenterCb {
if (mCallCenter != nil) {
[LinphoneLogger log:LinphoneLoggerLog format:@"Removing CT call center listener [%p]",mCallCenter];
mCallCenter.callEventHandler=NULL;
[mCallCenter release];
}
mCallCenter=nil;
}
- (void)setupGSMInteraction {
if (callCenter != nil) {
callCenter.callEventHandler=NULL;
[callCenter release];
}
callCenter = [[CTCallCenter alloc] init];
callCenter.callEventHandler = ^(CTCall* call) {
[self removeCTCallCenterCb];
mCallCenter = [[CTCallCenter alloc] init];
[LinphoneLogger log:LinphoneLoggerLog format:@"Adding CT call center listener [%p]",mCallCenter];
mCallCenter.callEventHandler = ^(CTCall* call) {
// post on main thread
[self performSelectorOnMainThread:@selector(handleGSMCallInteration:)
withObject:callCenter
withObject:mCallCenter
waitUntilDone:YES];
};
@ -1360,12 +1371,15 @@ static void audioRouteChangeListenerCallback (
/* pause current call, if any */
LinphoneCall* call = linphone_core_get_current_call(theLinphoneCore);
if ([ct currentCalls]!=nil) {
if (call) {[LinphoneLogger logc:LinphoneLoggerLog format:"Pausing SIP call"];
if (call) {
[LinphoneLogger log:LinphoneLoggerLog format:@"Pausing SIP call because GSM call"];
linphone_core_pause_call(theLinphoneCore, call);
[self startCallPausedLongRunningTask];
} else if (linphone_core_is_in_conference(theLinphoneCore)) {
[LinphoneLogger log:LinphoneLoggerLog format:@"Leaving conference call because GSM call"];
linphone_core_leave_conference(theLinphoneCore);
[self startCallPausedLongRunningTask];
}
//set current status to busy
linphone_core_set_presence_info(theLinphoneCore, 0, nil, LinphoneStatusBusy);
} else
linphone_core_set_presence_info(theLinphoneCore, 0, nil, LinphoneStatusAltService);
} //else nop, keep call in paused state
}
@end

View file

@ -277,6 +277,22 @@
[pauseButton setHidden:true];
[conferenceButton setHidden:false];
}
bool enabled = true;
const MSList *list = linphone_core_get_calls(lc);
while(list != NULL) {
LinphoneCall *call = (LinphoneCall*) list->data;
LinphoneCallState state = linphone_call_get_state(call);
if(state == LinphoneCallIncomingReceived ||
state == LinphoneCallOutgoingInit ||
state == LinphoneCallOutgoingProgress ||
state == LinphoneCallOutgoingRinging ||
state == LinphoneCallOutgoingEarlyMedia ||
state == LinphoneCallConnected) {
enabled = false;
}
list = list->next;
}
[conferenceButton setEnabled:enabled];
} else {
if([pauseButton isHidden]) {
[pauseButton setHidden:false];

View file

@ -35,7 +35,7 @@
</object>
<object class="IBUIView" id="316763236">
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="567463562">
<reference key="NSNextResponder" ref="316763236"/>
@ -196,7 +196,6 @@
<string key="NSFrame">{{276, 8}, {44, 44}}</string>
<reference key="NSSuperview" ref="316763236"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>

View file

@ -74,8 +74,6 @@
- (UIViewController *)getCachedController:(NSString*)name;
- (UIViewController *)getCurrentViewController;
- (UIInterfaceOrientation)currentOrientation;
#ifdef DEBUG
- (void)clearCache;
#endif
- (void)clearCache:(NSArray*)exclude;
@end

View file

@ -19,7 +19,7 @@
#import "UICompositeViewController.h"
#import "PhoneMainView.h"
#import "LinphoneAppDelegate.h"
@implementation UICompositeViewDescription
@ -244,11 +244,6 @@
return NO;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
[self clearCache];
}
#pragma mark - Event Functions
@ -257,7 +252,7 @@
// Update rotation
UIInterfaceOrientation correctOrientation = [self getCorrectInterfaceOrientation:[[UIDevice currentDevice] orientation]];
if(currentOrientation != correctOrientation) {
[PhoneMainView setOrientation:correctOrientation animated:currentOrientation != UIDeviceOrientationUnknown];
[UICompositeViewController setOrientation:correctOrientation animated:currentOrientation != UIDeviceOrientationUnknown];
}
}
}
@ -265,18 +260,104 @@
#pragma mark -
- (void)clearCache {
/*
Will simulate a device rotation
*/
+ (void)setOrientation:(UIInterfaceOrientation)orientation animated:(BOOL)animated {
UIView *firstResponder = nil;
for(UIWindow *window in [[UIApplication sharedApplication] windows]) {
if([NSStringFromClass(window.class) isEqualToString:@"UITextEffectsWindow"] ||
[NSStringFromClass(window.class) isEqualToString:@"_UIAlertOverlayWindow"] ) {
continue;
}
UIView *view = window;
UIViewController *controller = nil;
CGRect frame = [view frame];
if([window isKindOfClass:[UILinphoneWindow class]]) {
controller = window.rootViewController;
view = controller.view;
}
UIInterfaceOrientation oldOrientation = controller.interfaceOrientation;
NSTimeInterval animationDuration = 0.0;
if(animated) {
animationDuration = 0.3f;
}
[controller willRotateToInterfaceOrientation:orientation duration:animationDuration];
if(animated) {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:animationDuration];
}
switch (orientation) {
case UIInterfaceOrientationPortrait:
[view setTransform: CGAffineTransformMakeRotation(0)];
break;
case UIInterfaceOrientationPortraitUpsideDown:
[view setTransform: CGAffineTransformMakeRotation(M_PI)];
break;
case UIInterfaceOrientationLandscapeLeft:
[view setTransform: CGAffineTransformMakeRotation(-M_PI / 2)];
break;
case UIInterfaceOrientationLandscapeRight:
[view setTransform: CGAffineTransformMakeRotation(M_PI / 2)];
break;
default:
break;
}
if([window isKindOfClass:[UILinphoneWindow class]]) {
[view setFrame:frame];
}
[controller willAnimateRotationToInterfaceOrientation:orientation duration:animationDuration];
if(animated) {
[UIView commitAnimations];
}
[controller didRotateFromInterfaceOrientation:oldOrientation];
if(firstResponder == nil) {
firstResponder = [UICompositeViewController findFirstResponder:view];
}
}
[[UIApplication sharedApplication] setStatusBarOrientation:orientation animated:animated];
if(firstResponder) {
[firstResponder resignFirstResponder];
[firstResponder becomeFirstResponder];
}
}
+ (UIView*)findFirstResponder:(UIView*)view {
if (view.isFirstResponder) {
return view;
}
for (UIView *subView in view.subviews) {
UIView *ret = [UICompositeViewController findFirstResponder:subView];
if (ret != nil)
return ret;
}
return nil;
}
- (void)clearCache:(NSArray *)exclude {
for(NSString *key in [viewControllerCache allKeys]) {
UIViewController *vc = [viewControllerCache objectForKey:key];
if(vc != self.stateBarViewController &&
vc != self.tabBarViewController &&
vc != self.contentViewController) {
bool remove = true;
if(exclude != nil) {
for (UICompositeViewDescription *description in exclude) {
if([key isEqualToString:description.content] ||
[key isEqualToString:description.stateBar] ||
[key isEqualToString:description.tabBar]
) {
remove = false;
break;
}
}
}
if(remove) {
[LinphoneLogger log:LinphoneLoggerDebug format:@"Free cached view: %@", key];
UIViewController *vc = [viewControllerCache objectForKey:key];
if ([[UIDevice currentDevice].systemVersion doubleValue] >= 5.0) {
[vc viewWillUnload];
}
[vc viewDidUnload];
[viewControllerCache removeObjectForKey:key];
}
[viewControllerCache removeObjectForKey:key];
}
}
@ -435,7 +516,7 @@
// Update rotation
UIInterfaceOrientation correctOrientation = [self getCorrectInterfaceOrientation:[[UIDevice currentDevice] orientation]];
if(currentOrientation != correctOrientation) {
[PhoneMainView setOrientation:correctOrientation animated:currentOrientation!=UIDeviceOrientationUnknown];
[UICompositeViewController setOrientation:correctOrientation animated:currentOrientation!=UIDeviceOrientationUnknown];
} else {
if(oldContentViewController != newContentViewController) {
UIInterfaceOrientation oldOrientation = self.contentViewController.interfaceOrientation;
@ -521,7 +602,7 @@
tabFrame.origin.y = viewFrame.size.height;
tabFrame.origin.x = viewFrame.size.width;
tabFrame.size.height = self.tabBarViewController.view.frame.size.height;
tabFrame.size.width = self.tabBarViewController.view.frame.size.width;
//tabFrame.size.width = self.tabBarViewController.view.frame.size.width;
tabFrame.origin.y -= tabFrame.size.height;
tabFrame.origin.x -= tabFrame.size.width;
contentFrame.size.height = tabFrame.origin.y - contentFrame.origin.y;

View file

@ -61,8 +61,8 @@
}
- (void)dealloc {
[super dealloc];
[addressField release];
[super dealloc];
}

View file

@ -100,7 +100,7 @@ NSTimer *callSecurityTimer;
[callQualityTimer invalidate];
callQualityTimer = nil;
}
if(callQualityTimer != nil) {
if(callSecurityTimer != nil) {
[callSecurityTimer invalidate];
callSecurityTimer = nil;
}

View file

@ -2,9 +2,9 @@
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1536</int>
<string key="IBDocument.SystemVersion">11E53</string>
<string key="IBDocument.SystemVersion">11G63</string>
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
<string key="IBDocument.AppKitVersion">1138.47</string>
<string key="IBDocument.AppKitVersion">1138.51</string>
<string key="IBDocument.HIToolboxVersion">569.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -35,13 +35,14 @@
</object>
<object class="IBUIView" id="931774220">
<reference key="NSNextResponder"/>
<int key="NSvFlags">301</int>
<int key="NSvFlags">266</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIView" id="464536687">
<reference key="NSNextResponder" ref="931774220"/>
<int key="NSvFlags">-2147483356</int>
<int key="NSvFlags">-2147483355</int>
<string key="NSFrame">{{0, 335}, {320, 125}}</string>
<reference key="NSSuperview" ref="931774220"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
@ -56,13 +57,14 @@
</object>
<object class="IBUIView" id="556199520">
<reference key="NSNextResponder" ref="931774220"/>
<int key="NSvFlags">288</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="1062143568">
<reference key="NSNextResponder" ref="556199520"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{281, 260}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="612787992"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">2</int>
@ -78,6 +80,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 10}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1062143568"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
@ -121,6 +124,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 10}, {106, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="843780954"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -148,6 +152,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 10}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1070521404"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -175,6 +180,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 72}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="736263510"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -202,6 +208,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 72}, {106, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="977745568"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -229,6 +236,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 72}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="308872469"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -256,6 +264,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 134}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="809465959"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -283,6 +292,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 134}, {106, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="193555513"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -310,6 +320,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 134}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="357389737"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -337,6 +348,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 196}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="525082175"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -364,6 +376,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 196}, {106, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="951243834"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -391,6 +404,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 196}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="143533231"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -416,6 +430,7 @@
</array>
<string key="NSFrame">{{20, 57}, {281, 260}}</string>
<reference key="NSSuperview" ref="931774220"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="291142801"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor" id="67221425">
@ -427,13 +442,14 @@
</object>
<object class="IBUIView" id="1070539677">
<reference key="NSNextResponder" ref="931774220"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIButton" id="322088049">
<reference key="NSNextResponder" ref="1070539677"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{3, 0}, {77, 68}}</string>
<reference key="NSSuperview" ref="1070539677"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="471717543"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -491,6 +507,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{3, 58}, {77, 68}}</string>
<reference key="NSSuperview" ref="1070539677"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="464536687"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -530,6 +547,7 @@
</array>
<string key="NSFrame">{{240, 208}, {80, 126}}</string>
<reference key="NSSuperview" ref="931774220"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="322088049"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
@ -538,13 +556,46 @@
</object>
<object class="IBUIView" id="143533231">
<reference key="NSNextResponder" ref="931774220"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="688068563">
<reference key="NSNextResponder" ref="143533231"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-44, -8}, {44, 90}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="262544423"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">100</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSCustomResource" key="IBUIImage" id="867449752">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">callbar_left_padding.png</string>
</object>
</object>
<object class="IBUIImageView" id="804009355">
<reference key="NSNextResponder" ref="143533231"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{320, -8}, {44, 90}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="259467918"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">101</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSCustomResource" key="IBUIImage" id="148675087">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">callbar_right_padding.png</string>
</object>
</object>
<object class="IBUIView" id="259467918">
<reference key="NSNextResponder" ref="143533231"/>
<int key="NSvFlags">290</int>
<string key="NSFrame">{{0, 135}, {320, 2000}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1070539677"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
@ -559,6 +610,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{80, 67}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1016105438"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -605,6 +657,7 @@
<int key="NSvFlags">-2147483356</int>
<string key="NSFrame">{{20, 20}, {37, 37}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="693636558"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -617,6 +670,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{80, 0}, {80, 67}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="264394465"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -663,6 +717,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{160, 0}, {80, 67}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="62185125"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -709,6 +764,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{240, 0}, {80, 67}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="542459126"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -755,6 +811,7 @@
<int key="NSvFlags">264</int>
<string key="NSFrame">{{0, 67}, {105, 68}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="351323248"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -791,6 +848,7 @@
<int key="NSvFlags">-2147483384</int>
<string key="NSFrame">{{0, 67}, {105, 68}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="99607181"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -820,6 +878,7 @@
<int key="NSvFlags">264</int>
<string key="NSFrame">{{105, 67}, {111, 68}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="976589610"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -849,7 +908,8 @@
<int key="NSvFlags">264</int>
<string key="NSFrame">{{215, 67}, {105, 68}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSNextKeyView" ref="259467918"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="804009355"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">27</int>
@ -884,7 +944,8 @@
</array>
<string key="NSFrame">{{0, 325}, {320, 135}}</string>
<reference key="NSSuperview" ref="931774220"/>
<reference key="NSNextKeyView" ref="262544423"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="688068563"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
<int key="IBUITag">18</int>
@ -893,21 +954,22 @@
</array>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="556199520"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
<bool key="IBUIAutoresizesSubviews">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="837874415">
<reference key="NSNextResponder"/>
<int key="NSvFlags">301</int>
<int key="NSvFlags">266</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIView" id="974396983">
<reference key="NSNextResponder" ref="837874415"/>
<int key="NSvFlags">-2147483356</int>
<int key="NSvFlags">-2147483355</int>
<string key="NSFrame">{{0, 248}, {480, 72}}</string>
<reference key="NSSuperview" ref="837874415"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="408941248"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
@ -923,13 +985,14 @@
</object>
<object class="IBUIView" id="408941248">
<reference key="NSNextResponder" ref="837874415"/>
<int key="NSvFlags">288</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="526609754">
<reference key="NSNextResponder" ref="408941248"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{281, 260}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="519560860"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">2</int>
@ -942,6 +1005,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 10}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="526609754"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
@ -964,6 +1028,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 10}, {106, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="881223252"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -982,6 +1047,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 10}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="923486394"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1000,6 +1066,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 72}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="121694741"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1018,6 +1085,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 72}, {106, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="30269278"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1036,6 +1104,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 72}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="625010060"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1054,6 +1123,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 134}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="963396110"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1072,6 +1142,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 134}, {106, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="761686959"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1090,6 +1161,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 134}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="629341434"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1108,6 +1180,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 196}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="809495409"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1126,6 +1199,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 196}, {106, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="94322278"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1144,6 +1218,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 196}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUITag">14</int>
@ -1159,6 +1234,7 @@
</array>
<string key="NSFrame">{{91, 0}, {281, 260}}</string>
<reference key="NSSuperview" ref="837874415"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="996491821"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
@ -1167,13 +1243,14 @@
</object>
<object class="IBUIView" id="557887372">
<reference key="NSNextResponder" ref="837874415"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIButton" id="294395401">
<reference key="NSNextResponder" ref="557887372"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{65, 55}</string>
<reference key="NSSuperview" ref="557887372"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="173491714"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1215,6 +1292,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 51}, {65, 55}}</string>
<reference key="NSSuperview" ref="557887372"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="974396983"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1254,6 +1332,7 @@
</array>
<string key="NSFrame">{{415, 140}, {65, 105}}</string>
<reference key="NSSuperview" ref="837874415"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="294395401"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
@ -1262,13 +1341,40 @@
</object>
<object class="IBUIView" id="950460796">
<reference key="NSNextResponder" ref="837874415"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="836740652">
<reference key="NSNextResponder" ref="950460796"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-44, -8}, {44, 90}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="511619008"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">100</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<reference key="IBUIImage" ref="867449752"/>
</object>
<object class="IBUIImageView" id="482311558">
<reference key="NSNextResponder" ref="950460796"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{480, -8}, {44, 90}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="298889112"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">101</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<reference key="IBUIImage" ref="148675087"/>
</object>
<object class="IBUIView" id="298889112">
<reference key="NSNextResponder" ref="950460796"/>
<int key="NSvFlags">290</int>
<string key="NSFrame">{{0, 82}, {480, 2000}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="557887372"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
@ -1283,6 +1389,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{65, 0}, {65, 82}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="814604354"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1329,6 +1436,7 @@
<int key="NSvFlags">-2147483356</int>
<string key="NSFrame">{{79, 20}, {37, 37}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="528058217"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1341,6 +1449,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{130, 0}, {65, 82}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="839169662"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1387,6 +1496,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{285, 0}, {65, 82}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="893150238"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1433,6 +1543,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{350, 0}, {65, 82}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="889778982"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1479,6 +1590,7 @@
<int key="NSvFlags">264</int>
<string key="NSFrameSize">{65, 82}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="104218181"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1512,6 +1624,7 @@
<int key="NSvFlags">-2147483384</int>
<string key="NSFrameSize">{65, 82}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="102684796"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1541,6 +1654,7 @@
<int key="NSvFlags">264</int>
<string key="NSFrame">{{195, 0}, {90, 82}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="594075760"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1570,7 +1684,8 @@
<int key="NSvFlags">264</int>
<string key="NSFrame">{{415, 0}, {65, 82}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSNextKeyView" ref="298889112"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="482311558"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">27</int>
@ -1602,7 +1717,8 @@
</array>
<string key="NSFrame">{{0, 238}, {480, 82}}</string>
<reference key="NSSuperview" ref="837874415"/>
<reference key="NSNextKeyView" ref="511619008"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="836740652"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
<int key="IBUITag">18</int>
@ -1611,10 +1727,10 @@
</array>
<string key="NSFrameSize">{480, 320}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="950460796"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
<bool key="IBUIAutoresizesSubviews">NO</bool>
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
<int key="IBUIInterfaceOrientation">3</int>
<int key="interfaceOrientation">3</int>
@ -2035,6 +2151,8 @@
<reference ref="976589610"/>
<reference ref="1016105438"/>
<reference ref="259467918"/>
<reference ref="688068563"/>
<reference ref="804009355"/>
</array>
<reference key="parent" ref="931774220"/>
<string key="objectName">buttons</string>
@ -2361,6 +2479,8 @@
<reference ref="893150238"/>
<reference ref="889778982"/>
<reference ref="298889112"/>
<reference ref="836740652"/>
<reference ref="482311558"/>
</array>
<reference key="parent" ref="837874415"/>
<string key="objectName">buttons</string>
@ -2437,6 +2557,30 @@
<reference key="parent" ref="143533231"/>
<string key="objectName">background</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">143</int>
<reference key="object" ref="836740652"/>
<reference key="parent" ref="950460796"/>
<string key="objectName">leftPadding</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">144</int>
<reference key="object" ref="482311558"/>
<reference key="parent" ref="950460796"/>
<string key="objectName">rightPadding</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">145</int>
<reference key="object" ref="804009355"/>
<reference key="parent" ref="143533231"/>
<string key="objectName">rightPadding</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">146</int>
<reference key="object" ref="688068563"/>
<reference key="parent" ref="143533231"/>
<string key="objectName">leftPadding</string>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
@ -2535,6 +2679,10 @@
<real value="3" key="128.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="141.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="142.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="143.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="144.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="145.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="146.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="0.0" key="21.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="30.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -2605,14 +2753,296 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">142</int>
<int key="maxID">163</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">TPMultiLayoutViewController</string>
<string key="superclassName">UIViewController</string>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="landscapeView">UIView</string>
<string key="portraitView">UIView</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="landscapeView">
<string key="name">landscapeView</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="portraitView">
<string key="name">portraitView</string>
<string key="candidateClassName">UIView</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/TPMultiLayoutViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UICallBar</string>
<string key="superclassName">TPMultiLayoutViewController</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="onConferenceClick:">id</string>
<string key="onOptionsAddClick:">id</string>
<string key="onOptionsClick:">id</string>
<string key="onOptionsTransferClick:">id</string>
<string key="onPadClick:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="onConferenceClick:">
<string key="name">onConferenceClick:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onOptionsAddClick:">
<string key="name">onOptionsAddClick:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onOptionsClick:">
<string key="name">onOptionsClick:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onOptionsTransferClick:">
<string key="name">onOptionsTransferClick:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onPadClick:">
<string key="name">onPadClick:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="conferenceButton">UIButton</string>
<string key="dialerButton">UIToggleButton</string>
<string key="eightButton">UIDigitButton</string>
<string key="fiveButton">UIDigitButton</string>
<string key="fourButton">UIDigitButton</string>
<string key="hangupButton">UIHangUpButton</string>
<string key="microButton">UIMicroButton</string>
<string key="nineButton">UIDigitButton</string>
<string key="oneButton">UIDigitButton</string>
<string key="optionsAddButton">UIButton</string>
<string key="optionsButton">UIToggleButton</string>
<string key="optionsTransferButton">UIButton</string>
<string key="optionsView">UIView</string>
<string key="padView">UIView</string>
<string key="pauseButton">UIPauseButton</string>
<string key="sevenButton">UIDigitButton</string>
<string key="sharpButton">UIDigitButton</string>
<string key="sixButton">UIDigitButton</string>
<string key="speakerButton">UISpeakerButton</string>
<string key="starButton">UIDigitButton</string>
<string key="threeButton">UIDigitButton</string>
<string key="twoButton">UIDigitButton</string>
<string key="videoButton">UIVideoButton</string>
<string key="zeroButton">UIDigitButton</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="conferenceButton">
<string key="name">conferenceButton</string>
<string key="candidateClassName">UIButton</string>
</object>
<object class="IBToOneOutletInfo" key="dialerButton">
<string key="name">dialerButton</string>
<string key="candidateClassName">UIToggleButton</string>
</object>
<object class="IBToOneOutletInfo" key="eightButton">
<string key="name">eightButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="fiveButton">
<string key="name">fiveButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="fourButton">
<string key="name">fourButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="hangupButton">
<string key="name">hangupButton</string>
<string key="candidateClassName">UIHangUpButton</string>
</object>
<object class="IBToOneOutletInfo" key="microButton">
<string key="name">microButton</string>
<string key="candidateClassName">UIMicroButton</string>
</object>
<object class="IBToOneOutletInfo" key="nineButton">
<string key="name">nineButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="oneButton">
<string key="name">oneButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="optionsAddButton">
<string key="name">optionsAddButton</string>
<string key="candidateClassName">UIButton</string>
</object>
<object class="IBToOneOutletInfo" key="optionsButton">
<string key="name">optionsButton</string>
<string key="candidateClassName">UIToggleButton</string>
</object>
<object class="IBToOneOutletInfo" key="optionsTransferButton">
<string key="name">optionsTransferButton</string>
<string key="candidateClassName">UIButton</string>
</object>
<object class="IBToOneOutletInfo" key="optionsView">
<string key="name">optionsView</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="padView">
<string key="name">padView</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="pauseButton">
<string key="name">pauseButton</string>
<string key="candidateClassName">UIPauseButton</string>
</object>
<object class="IBToOneOutletInfo" key="sevenButton">
<string key="name">sevenButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="sharpButton">
<string key="name">sharpButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="sixButton">
<string key="name">sixButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="speakerButton">
<string key="name">speakerButton</string>
<string key="candidateClassName">UISpeakerButton</string>
</object>
<object class="IBToOneOutletInfo" key="starButton">
<string key="name">starButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="threeButton">
<string key="name">threeButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="twoButton">
<string key="name">twoButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="videoButton">
<string key="name">videoButton</string>
<string key="candidateClassName">UIVideoButton</string>
</object>
<object class="IBToOneOutletInfo" key="zeroButton">
<string key="name">zeroButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UICallBar.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIDigitButton</string>
<string key="superclassName">UILongTouchButton</string>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">addressField</string>
<string key="NS.object.0">UITextField</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">addressField</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">addressField</string>
<string key="candidateClassName">UITextField</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIDigitButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIHangUpButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIHangUpButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UILongTouchButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UILongTouchButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIMicroButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIMicroButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIPauseButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIPauseButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UISpeakerButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UISpeakerButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIToggleButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIToggleButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UITransparentView</string>
<string key="superclassName">UIView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UITransparentView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIVideoButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">waitView</string>
<string key="NS.object.0">UIActivityIndicatorView</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">waitView</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">waitView</string>
<string key="candidateClassName">UIActivityIndicatorView</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIVideoButton.h</string>
</object>
</object>
</array>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="callbar_left_padding.png">{88, 180}</string>
<string key="callbar_right_padding.png">{88, 180}</string>
<string key="conference_default.png">{209, 136}</string>
<string key="conference_default_landscape.png">{130, 163}</string>
<string key="conference_over.png">{209, 136}</string>

View file

@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1280</int>
<string key="IBDocument.SystemVersion">11E53</string>
<string key="IBDocument.InterfaceBuilderVersion">1938</string>
<string key="IBDocument.AppKitVersion">1138.47</string>
<int key="IBDocument.SystemTarget">1536</int>
<string key="IBDocument.SystemVersion">11G63</string>
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
<string key="IBDocument.AppKitVersion">1138.51</string>
<string key="IBDocument.HIToolboxVersion">569.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="NS.object.0">933</string>
<string key="NS.object.0">1926</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>IBUIButton</string>
<string>IBUIActivityIndicatorView</string>
<string>IBUIView</string>
<string>IBUIImageView</string>
<string>IBProxyObject</string>
<string>IBUIActivityIndicatorView</string>
<string>IBUIButton</string>
<string>IBUIImageView</string>
<string>IBUIView</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -35,11 +35,11 @@
</object>
<object class="IBUIView" id="931774220">
<nil key="NSNextResponder"/>
<int key="NSvFlags">301</int>
<int key="NSvFlags">266</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIView" id="464536687">
<reference key="NSNextResponder" ref="931774220"/>
<int key="NSvFlags">-2147483356</int>
<int key="NSvFlags">-2147483355</int>
<string key="NSFrame">{{0, 335}, {320, 125}}</string>
<reference key="NSSuperview" ref="931774220"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
@ -56,7 +56,7 @@
</object>
<object class="IBUIView" id="556199520">
<reference key="NSNextResponder" ref="931774220"/>
<int key="NSvFlags">288</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="1062143568">
<reference key="NSNextResponder" ref="556199520"/>
@ -427,7 +427,7 @@
</object>
<object class="IBUIView" id="1070539677">
<reference key="NSNextResponder" ref="931774220"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIButton" id="322088049">
<reference key="NSNextResponder" ref="1070539677"/>
@ -538,8 +538,38 @@
</object>
<object class="IBUIView" id="143533231">
<reference key="NSNextResponder" ref="931774220"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="688068563">
<reference key="NSNextResponder" ref="143533231"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-44, -8}, {44, 90}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSNextKeyView" ref="262544423"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">100</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSCustomResource" key="IBUIImage" id="867449752">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">callbar_left_padding.png</string>
</object>
</object>
<object class="IBUIImageView" id="804009355">
<reference key="NSNextResponder" ref="143533231"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{320, -8}, {44, 90}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSNextKeyView" ref="259467918"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">101</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSCustomResource" key="IBUIImage" id="148675087">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">callbar_right_padding.png</string>
</object>
</object>
<object class="IBUIView" id="259467918">
<reference key="NSNextResponder" ref="143533231"/>
<int key="NSvFlags">290</int>
@ -849,7 +879,7 @@
<int key="NSvFlags">264</int>
<string key="NSFrame">{{215, 67}, {105, 68}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSNextKeyView" ref="259467918"/>
<reference key="NSNextKeyView" ref="804009355"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">27</int>
@ -884,7 +914,7 @@
</array>
<string key="NSFrame">{{0, 325}, {320, 135}}</string>
<reference key="NSSuperview" ref="931774220"/>
<reference key="NSNextKeyView" ref="262544423"/>
<reference key="NSNextKeyView" ref="688068563"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
<int key="IBUITag">18</int>
@ -895,16 +925,15 @@
<reference key="NSNextKeyView" ref="556199520"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
<bool key="IBUIAutoresizesSubviews">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="837874415">
<nil key="NSNextResponder"/>
<int key="NSvFlags">301</int>
<int key="NSvFlags">266</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIView" id="974396983">
<reference key="NSNextResponder" ref="837874415"/>
<int key="NSvFlags">-2147483356</int>
<int key="NSvFlags">-2147483355</int>
<string key="NSFrame">{{0, 248}, {480, 72}}</string>
<reference key="NSSuperview" ref="837874415"/>
<reference key="NSNextKeyView" ref="408941248"/>
@ -922,7 +951,7 @@
</object>
<object class="IBUIView" id="408941248">
<reference key="NSNextResponder" ref="837874415"/>
<int key="NSvFlags">288</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="526609754">
<reference key="NSNextResponder" ref="408941248"/>
@ -1166,7 +1195,7 @@
</object>
<object class="IBUIView" id="557887372">
<reference key="NSNextResponder" ref="837874415"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIButton" id="294395401">
<reference key="NSNextResponder" ref="557887372"/>
@ -1261,8 +1290,32 @@
</object>
<object class="IBUIView" id="950460796">
<reference key="NSNextResponder" ref="837874415"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="836740652">
<reference key="NSNextResponder" ref="950460796"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-44, -8}, {44, 90}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSNextKeyView" ref="511619008"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">100</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<reference key="IBUIImage" ref="867449752"/>
</object>
<object class="IBUIImageView" id="482311558">
<reference key="NSNextResponder" ref="950460796"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{480, -8}, {44, 90}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSNextKeyView" ref="298889112"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">101</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<reference key="IBUIImage" ref="148675087"/>
</object>
<object class="IBUIView" id="298889112">
<reference key="NSNextResponder" ref="950460796"/>
<int key="NSvFlags">290</int>
@ -1569,7 +1622,7 @@
<int key="NSvFlags">264</int>
<string key="NSFrame">{{415, 0}, {65, 82}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSNextKeyView" ref="298889112"/>
<reference key="NSNextKeyView" ref="482311558"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">27</int>
@ -1601,7 +1654,7 @@
</array>
<string key="NSFrame">{{0, 238}, {480, 82}}</string>
<reference key="NSSuperview" ref="837874415"/>
<reference key="NSNextKeyView" ref="511619008"/>
<reference key="NSNextKeyView" ref="836740652"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
<int key="IBUITag">18</int>
@ -1612,7 +1665,6 @@
<reference key="NSNextKeyView" ref="950460796"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
<bool key="IBUIAutoresizesSubviews">NO</bool>
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
<int key="IBUIInterfaceOrientation">3</int>
<int key="interfaceOrientation">3</int>
@ -2033,6 +2085,8 @@
<reference ref="976589610"/>
<reference ref="1016105438"/>
<reference ref="259467918"/>
<reference ref="688068563"/>
<reference ref="804009355"/>
</array>
<reference key="parent" ref="931774220"/>
<string key="objectName">buttons</string>
@ -2359,6 +2413,8 @@
<reference ref="893150238"/>
<reference ref="889778982"/>
<reference ref="298889112"/>
<reference ref="836740652"/>
<reference ref="482311558"/>
</array>
<reference key="parent" ref="837874415"/>
<string key="objectName">buttons</string>
@ -2435,6 +2491,30 @@
<reference key="parent" ref="143533231"/>
<string key="objectName">background</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">143</int>
<reference key="object" ref="836740652"/>
<reference key="parent" ref="950460796"/>
<string key="objectName">leftPadding</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">144</int>
<reference key="object" ref="482311558"/>
<reference key="parent" ref="950460796"/>
<string key="objectName">rightPadding</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">145</int>
<reference key="object" ref="804009355"/>
<reference key="parent" ref="143533231"/>
<string key="objectName">rightPadding</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">146</int>
<reference key="object" ref="688068563"/>
<reference key="parent" ref="143533231"/>
<string key="objectName">leftPadding</string>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
@ -2533,6 +2613,10 @@
<real value="3" key="128.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="141.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="142.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="143.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="144.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="145.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="146.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="0.0" key="21.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="30.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -2603,14 +2687,296 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">142</int>
<int key="maxID">163</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">TPMultiLayoutViewController</string>
<string key="superclassName">UIViewController</string>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="landscapeView">UIView</string>
<string key="portraitView">UIView</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="landscapeView">
<string key="name">landscapeView</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="portraitView">
<string key="name">portraitView</string>
<string key="candidateClassName">UIView</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/TPMultiLayoutViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UICallBar</string>
<string key="superclassName">TPMultiLayoutViewController</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="onConferenceClick:">id</string>
<string key="onOptionsAddClick:">id</string>
<string key="onOptionsClick:">id</string>
<string key="onOptionsTransferClick:">id</string>
<string key="onPadClick:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="onConferenceClick:">
<string key="name">onConferenceClick:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onOptionsAddClick:">
<string key="name">onOptionsAddClick:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onOptionsClick:">
<string key="name">onOptionsClick:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onOptionsTransferClick:">
<string key="name">onOptionsTransferClick:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onPadClick:">
<string key="name">onPadClick:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="conferenceButton">UIButton</string>
<string key="dialerButton">UIToggleButton</string>
<string key="eightButton">UIDigitButton</string>
<string key="fiveButton">UIDigitButton</string>
<string key="fourButton">UIDigitButton</string>
<string key="hangupButton">UIHangUpButton</string>
<string key="microButton">UIMicroButton</string>
<string key="nineButton">UIDigitButton</string>
<string key="oneButton">UIDigitButton</string>
<string key="optionsAddButton">UIButton</string>
<string key="optionsButton">UIToggleButton</string>
<string key="optionsTransferButton">UIButton</string>
<string key="optionsView">UIView</string>
<string key="padView">UIView</string>
<string key="pauseButton">UIPauseButton</string>
<string key="sevenButton">UIDigitButton</string>
<string key="sharpButton">UIDigitButton</string>
<string key="sixButton">UIDigitButton</string>
<string key="speakerButton">UISpeakerButton</string>
<string key="starButton">UIDigitButton</string>
<string key="threeButton">UIDigitButton</string>
<string key="twoButton">UIDigitButton</string>
<string key="videoButton">UIVideoButton</string>
<string key="zeroButton">UIDigitButton</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="conferenceButton">
<string key="name">conferenceButton</string>
<string key="candidateClassName">UIButton</string>
</object>
<object class="IBToOneOutletInfo" key="dialerButton">
<string key="name">dialerButton</string>
<string key="candidateClassName">UIToggleButton</string>
</object>
<object class="IBToOneOutletInfo" key="eightButton">
<string key="name">eightButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="fiveButton">
<string key="name">fiveButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="fourButton">
<string key="name">fourButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="hangupButton">
<string key="name">hangupButton</string>
<string key="candidateClassName">UIHangUpButton</string>
</object>
<object class="IBToOneOutletInfo" key="microButton">
<string key="name">microButton</string>
<string key="candidateClassName">UIMicroButton</string>
</object>
<object class="IBToOneOutletInfo" key="nineButton">
<string key="name">nineButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="oneButton">
<string key="name">oneButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="optionsAddButton">
<string key="name">optionsAddButton</string>
<string key="candidateClassName">UIButton</string>
</object>
<object class="IBToOneOutletInfo" key="optionsButton">
<string key="name">optionsButton</string>
<string key="candidateClassName">UIToggleButton</string>
</object>
<object class="IBToOneOutletInfo" key="optionsTransferButton">
<string key="name">optionsTransferButton</string>
<string key="candidateClassName">UIButton</string>
</object>
<object class="IBToOneOutletInfo" key="optionsView">
<string key="name">optionsView</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="padView">
<string key="name">padView</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="pauseButton">
<string key="name">pauseButton</string>
<string key="candidateClassName">UIPauseButton</string>
</object>
<object class="IBToOneOutletInfo" key="sevenButton">
<string key="name">sevenButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="sharpButton">
<string key="name">sharpButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="sixButton">
<string key="name">sixButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="speakerButton">
<string key="name">speakerButton</string>
<string key="candidateClassName">UISpeakerButton</string>
</object>
<object class="IBToOneOutletInfo" key="starButton">
<string key="name">starButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="threeButton">
<string key="name">threeButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="twoButton">
<string key="name">twoButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="videoButton">
<string key="name">videoButton</string>
<string key="candidateClassName">UIVideoButton</string>
</object>
<object class="IBToOneOutletInfo" key="zeroButton">
<string key="name">zeroButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UICallBar.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIDigitButton</string>
<string key="superclassName">UILongTouchButton</string>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">addressField</string>
<string key="NS.object.0">UITextField</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">addressField</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">addressField</string>
<string key="candidateClassName">UITextField</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIDigitButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIHangUpButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIHangUpButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UILongTouchButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UILongTouchButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIMicroButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIMicroButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIPauseButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIPauseButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UISpeakerButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UISpeakerButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIToggleButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIToggleButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UITransparentView</string>
<string key="superclassName">UIView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UITransparentView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIVideoButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">waitView</string>
<string key="NS.object.0">UIActivityIndicatorView</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">waitView</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">waitView</string>
<string key="candidateClassName">UIActivityIndicatorView</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIVideoButton.h</string>
</object>
</object>
</array>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="callbar_left_padding.png">{88, 180}</string>
<string key="callbar_right_padding.png">{88, 180}</string>
<string key="conference_default.png">{209, 136}</string>
<string key="conference_default_landscape.png">{130, 163}</string>
<string key="conference_over.png">{209, 136}</string>
@ -2702,6 +3068,6 @@
<string key="video_on_default.png">{160, 134}</string>
<string key="video_on_default_landscape.png">{130, 163}</string>
</dictionary>
<string key="IBCocoaTouchPluginVersion">933</string>
<string key="IBCocoaTouchPluginVersion">1926</string>
</data>
</archive>

View file

@ -61,8 +61,6 @@
- (void)fullScreen:(BOOL)enabled;
- (void)startUp;
+ (void)setOrientation:(UIInterfaceOrientation)orientation animated:(BOOL)animated;
- (void)addInhibitedEvent:(id)event;
- (BOOL)removeInhibitedEvent:(id)event;

View file

@ -172,81 +172,6 @@ static PhoneMainView* phoneMainViewInstance=nil;
return 0;
}
+ (UIView*)findFirstResponder:(UIView*)view {
if (view.isFirstResponder) {
return view;
}
for (UIView *subView in view.subviews) {
UIView *ret = [PhoneMainView findFirstResponder:subView];
if (ret != nil)
return ret;
}
return nil;
}
/*
Will simulate a device rotation
*/
+ (void)setOrientation:(UIInterfaceOrientation)orientation animated:(BOOL)animated {
UIView *firstResponder = nil;
for(UIWindow *window in [[UIApplication sharedApplication] windows]) {
if([NSStringFromClass(window.class) isEqualToString:@"UITextEffectsWindow"] ||
[NSStringFromClass(window.class) isEqualToString:@"_UIAlertOverlayWindow"] ) {
continue;
}
UIView *view = window;
UIViewController *controller = nil;
CGRect frame = [view frame];
if([window isKindOfClass:[UILinphoneWindow class]]) {
controller = window.rootViewController;
view = controller.view;
}
UIInterfaceOrientation oldOrientation = controller.interfaceOrientation;
NSTimeInterval animationDuration = 0.0;
if(animated) {
animationDuration = 0.3f;
}
[controller willRotateToInterfaceOrientation:orientation duration:animationDuration];
if(animated) {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:animationDuration];
}
switch (orientation) {
case UIInterfaceOrientationPortrait:
[view setTransform: CGAffineTransformMakeRotation(0)];
break;
case UIInterfaceOrientationPortraitUpsideDown:
[view setTransform: CGAffineTransformMakeRotation(M_PI)];
break;
case UIInterfaceOrientationLandscapeLeft:
[view setTransform: CGAffineTransformMakeRotation(-M_PI / 2)];
break;
case UIInterfaceOrientationLandscapeRight:
[view setTransform: CGAffineTransformMakeRotation(M_PI / 2)];
break;
default:
break;
}
if([window isKindOfClass:[UILinphoneWindow class]]) {
[view setFrame:frame];
}
[controller willAnimateRotationToInterfaceOrientation:orientation duration:animationDuration];
if(animated) {
[UIView commitAnimations];
}
[controller didRotateFromInterfaceOrientation:oldOrientation];
if(firstResponder == nil) {
firstResponder = [PhoneMainView findFirstResponder:view];
}
}
[[UIApplication sharedApplication] setStatusBarOrientation:orientation animated:animated];
if(firstResponder) {
[firstResponder resignFirstResponder];
[firstResponder becomeFirstResponder];
}
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
[mainViewController willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
@ -267,6 +192,10 @@ static PhoneMainView* phoneMainViewInstance=nil;
return [mainViewController currentOrientation];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
[mainViewController clearCache:viewStack];
}
#pragma mark - Event Functions

View file

@ -574,6 +574,19 @@ static UICompositeViewDescription *compositeDescription = nil;
[hiddenKeys addObject:@"battery_alert_button"];
#endif
[hiddenKeys addObject:@"audio_advanced_group"];
[hiddenKeys addObject:@"playback_gain_preference"];
[hiddenKeys addObject:@"microphone_gain_preference"];
[hiddenKeys addObject:@"network_limit_group"];
[hiddenKeys addObject:@"upload_bandwidth_preference"];
[hiddenKeys addObject:@"download_bandwidth_preference"];
[hiddenKeys addObject:@"incoming_call_timeout_preference"];
[hiddenKeys addObject:@"in_call_timeout_preference"];
[hiddenKeys addObject:@"wifi_only_preference"];
[hiddenKeys addObject:@"quit_button"]; // Hide for the moment
[hiddenKeys addObject:@"about_button"]; // Hide for the moment
@ -639,7 +652,7 @@ static UICompositeViewDescription *compositeDescription = nil;
[[LinphoneManager instance] destroyLibLinphone];
[LinphoneManager instanceRelease];
} else if([key isEqual:@"clear_cache_button"]) {
[[PhoneMainView instance].mainViewController clearCache];
[[PhoneMainView instance].mainViewController clearCache:[NSArray arrayWithObject:[[PhoneMainView instance] currentView]]];
} else if([key isEqual:@"battery_alert_button"]) {
[[UIDevice currentDevice] _setBatteryState:UIDeviceBatteryStateUnplugged];
[[UIDevice currentDevice] _setBatteryLevel:0.09f];
@ -653,6 +666,8 @@ static UICompositeViewDescription *compositeDescription = nil;
if(controller != nil) {
[controller reset];
}
} else if([key isEqual:@"about_button"]) {
[[PhoneMainView instance] changeCurrentView:[AboutViewController compositeViewDescription] push:TRUE];
}
}

View file

@ -2,7 +2,7 @@
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1536</int>
<string key="IBDocument.SystemVersion">11G56</string>
<string key="IBDocument.SystemVersion">11G63</string>
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
<string key="IBDocument.AppKitVersion">1138.51</string>
<string key="IBDocument.HIToolboxVersion">569.00</string>
@ -174,7 +174,6 @@
<string key="NSFrame">{{0, 79}, {320, 381}}</string>
<reference key="NSSuperview" ref="1010501960"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -231,6 +230,8 @@
<bool key="IBUIAdjustsFontSizeToFit">YES</bool>
<float key="IBUIMinimumFontSize">17</float>
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
<int key="IBUIAutocorrectionType">1</int>
<int key="IBUIKeyboardType">3</int>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="NSCustomResource" key="IBUIBackground">

View file

@ -2,7 +2,7 @@
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1536</int>
<string key="IBDocument.SystemVersion">11G56</string>
<string key="IBDocument.SystemVersion">11G63</string>
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
<string key="IBDocument.AppKitVersion">1138.51</string>
<string key="IBDocument.HIToolboxVersion">569.00</string>
@ -224,6 +224,8 @@
<bool key="IBUIAdjustsFontSizeToFit">YES</bool>
<float key="IBUIMinimumFontSize">17</float>
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
<int key="IBUIAutocorrectionType">1</int>
<int key="IBUIKeyboardType">3</int>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="NSCustomResource" key="IBUIBackground">

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View file

@ -1,7 +1,5 @@
[sip]
sip_random_port=1
sip_tcp_random_port=1
sip_tls_random_port=1
contact="Linphone iPhone" <sip:linphone.iphone@unknown-host>
keepalive_period=30000
default_proxy=0

View file

@ -1,7 +1,5 @@
[sip]
sip_random_port=1
sip_tcp_random_port=1
sip_tls_random_port=1
contact="Linphone iPhone" <sip:linphone.iphone@unknown-host>
keepalive_period=30000
default_proxy=0

View file

@ -169,6 +169,12 @@
<string></string>
</dict>
<dict>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
<key>KeyboardType</key>
<string>URL</string>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>Title</key>

View file

@ -120,6 +120,42 @@
<key>Type</key>
<string>PSToggleSwitchSpecifier</string>
</dict>
<dict>
<key>Key</key>
<string>audio_advanced_group</string>
<key>Title</key>
<string>Advanced</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>Key</key>
<string>playback_gain_preference</string>
<key>Title</key>
<string>Playback gain</string>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>KeyboardType</key>
<string>NumbersAndPunctuation</string>
<key>DefaultValue</key>
<integer>0</integer>
<key>IASKTextAlignment</key>
<string>IASKUITextAlignmentRight</string>
</dict>
<dict>
<key>Key</key>
<string>microphone_gain_preference</string>
<key>Title</key>
<string>Microphone gain</string>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>KeyboardType</key>
<string>NumbersAndPunctuation</string>
<key>DefaultValue</key>
<integer>0</integer>
<key>IASKTextAlignment</key>
<string>IASKUITextAlignmentRight</string>
</dict>
</array>
</dict>
</plist>

View file

@ -52,6 +52,42 @@
<key>DefaultValue</key>
<true/>
</dict>
<dict>
<key>Key</key>
<string>incoming_call_timeout_preference</string>
<key>Title</key>
<string>Incoming call timeout</string>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
<key>KeyboardType</key>
<string>NumberPad</string>
<key>DefaultValue</key>
<integer>30</integer>
<key>IASKTextAlignment</key>
<string>IASKUITextAlignmentRight</string>
</dict>
<dict>
<key>Key</key>
<string>in_call_timeout_preference</string>
<key>Title</key>
<string>In call timeout</string>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
<key>KeyboardType</key>
<string>NumberPad</string>
<key>DefaultValue</key>
<integer>0</integer>
<key>IASKTextAlignment</key>
<string>IASKUITextAlignmentRight</string>
</dict>
</array>
</dict>
</plist>

View file

@ -57,10 +57,6 @@
<string>Port</string>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
<key>KeyboardType</key>
<string>NumberPad</string>
<key>DefaultValue</key>
@ -72,15 +68,11 @@
<key>Key</key>
<string>audio_port_preference</string>
<key>Title</key>
<string>Audio Port</string>
<string>Audio Port(s)</string>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
<key>KeyboardType</key>
<string>NumberPad</string>
<string>NumbersAndPunctuation</string>
<key>DefaultValue</key>
<integer>7076</integer>
<key>IASKTextAlignment</key>
@ -90,15 +82,11 @@
<key>Key</key>
<string>video_port_preference</string>
<key>Title</key>
<string>Video Port</string>
<string>Video Port(s)</string>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
<key>KeyboardType</key>
<string>NumberPad</string>
<string>NumbersAndPunctuation</string>
<key>DefaultValue</key>
<integer>9078</integer>
<key>IASKTextAlignment</key>
@ -158,6 +146,42 @@
<key>DefaultValue</key>
<false/>
</dict>
<dict>
<key>Key</key>
<string>network_limit_group</string>
<key>Title</key>
<string>Limits</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>Key</key>
<string>upload_bandwidth_preference</string>
<key>Title</key>
<string>Upload bandwidth</string>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>KeyboardType</key>
<string>NumberPad</string>
<key>DefaultValue</key>
<integer>0</integer>
<key>IASKTextAlignment</key>
<string>IASKUITextAlignmentRight</string>
</dict>
<dict>
<key>Key</key>
<string>download_bandwidth_preference</string>
<key>Title</key>
<string>Download bandwidth</string>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
<key>KeyboardType</key>
<string>NumberPad</string>
<key>DefaultValue</key>
<integer>0</integer>
<key>IASKTextAlignment</key>
<string>IASKUITextAlignmentRight</string>
</dict>
</array>
</dict>
</plist>

View file

@ -34,3 +34,11 @@
/* PCMA */
"PCMA" = "PCMA";
/* Advanced */
"Advanced" = "Advanced";
/* Playback gain */
"Playback gain" = "Playback gain";
/* Microphone gain */
"Microphone gain" = "Microphone gain";

View file

@ -10,3 +10,8 @@
/* Send SIP INFO DTMFs */
"Send SIP INFO DTMFs" = "Send SIP INFO DTMFs";
/* Incoming call timeout */
"Incoming call timeout" = "Incoming call timeout";
/* In call timeout */
"In call timeout" = "In call timeout";

View file

@ -13,11 +13,11 @@
/* Port */
"Port" = "Port";
/* Audio Port */
"Audio Port" = "Audio Port";
/* Audio Port(s) */
"Audio Port(s)" = "Audio Port(s)";
/* Video Port */
"Video Port" = "Video Port";
/* Video Port(s) */
"Video Port(s)" = "Video Port(s)";
/* Transport */
"Transport" = "Transport";
@ -49,3 +49,11 @@
/* ZRTP */
"ZRTP" = "ZRTP";
/* Limits */
"Limits" = "Limits";
/* Upload bandwidth */
"Upload bandwidth" = "Upload bandwidth";
/* Download bandwidth */
"Download bandwidth" = "Download bandwidth";

View file

@ -34,3 +34,11 @@
/* PCMA */
"PCMA" = "PCMA";
/* Advanced */
"Advanced" = "Avancés";
/* Playback gain */
"Playback gain" = "Gain sortie";
/* Microphone gain */
"Microphone gain" = "Gain microphone";

View file

@ -13,17 +13,17 @@
/* Port */
"Port" = "Port";
/* Audio Port */
"Audio Port" = "Port Audio";
/* Audio Port(s) */
"Audio Port(s)" = "Port(s) Audio";
/* Video Port */
"Video Port" = "Port Vidéo";
/* Video Port(s) */
"Video Port(s)" = "Port(s) Vidéo";
/* Transport */
"Transport" = "Transport";
/* Media Encryption */
"Media Encryption" = "Encryption media";
"Media Encryption" = "Chiffrement";
/* Push Notifications */
"Push Notification" = "Push Notification";
@ -49,3 +49,11 @@
/* ZRTP */
"ZRTP" = "ZRTP";
/* Limits */
"Limits" = "Limites";
/* Upload bandwidth */
"Upload bandwidth" = "Débit montant";
/* Download bandwidth */
"Download bandwidth" = "Débit descendant";

View file

@ -2,7 +2,7 @@
"SIP account" = "Compte SIP";
/* Wizard */
"Wizard" = "Lancer l'assistant";
"Wizard" = "Assistant";
/* User name */
"User name" = "Nom d'utilisateur";
@ -23,7 +23,7 @@
"Settings" = "Options";
/* Enable video */
"Enable video" = "Activer la vidéo";
"Enable video" = "Activer vidéo";
/* Audio */
"Audio" = "Audio";

View file

@ -803,17 +803,17 @@
<dict>
<key>backup</key>
<dict>
<key>17</key>
<key>19</key>
<dict>
<key>class</key>
<string>BLWrapperHandle</string>
<key>name</key>
<string>Classes/ChatViewController/17/ChatViewController.xib</string>
<string>Classes/ChatViewController/19/ChatViewController.xib</string>
</dict>
</dict>
</dict>
<key>change date</key>
<date>2012-10-16T14:43:40Z</date>
<date>2012-11-19T11:40:43Z</date>
<key>changed values</key>
<array/>
<key>class</key>
@ -823,7 +823,7 @@
<key>flags</key>
<integer>0</integer>
<key>hash</key>
<string>7e5a8ab77b42e6a8f401a59751110598
<string>467bb3255f207bc3c8d25dcdfca871ee
</string>
<key>name</key>
<string>ChatViewController.xib</string>
@ -1038,9 +1038,9 @@
<key>versions</key>
<dict>
<key>en</key>
<string>17</string>
<string>19</string>
<key>fr</key>
<string>17</string>
<string>19</string>
</dict>
</dict>
<dict>
@ -7504,17 +7504,17 @@
<dict>
<key>backup</key>
<dict>
<key>10</key>
<key>12</key>
<dict>
<key>class</key>
<string>BLWrapperHandle</string>
<key>name</key>
<string>LinphoneUI/UICallBar/10/UICallBar.xib</string>
<string>LinphoneUI/UICallBar/12/UICallBar.xib</string>
</dict>
</dict>
</dict>
<key>change date</key>
<date>2012-09-27T09:31:07Z</date>
<date>2012-11-13T08:39:33Z</date>
<key>changed values</key>
<array/>
<key>class</key>
@ -7524,7 +7524,7 @@
<key>flags</key>
<integer>0</integer>
<key>hash</key>
<string>c5958759098558a4f8f5d1c18abc0e21
<string>6ce20b228103dd1de3d5c07ecc8cc68a
</string>
<key>name</key>
<string>UICallBar.xib</string>
@ -8626,9 +8626,9 @@
<key>versions</key>
<dict>
<key>en</key>
<string>10</string>
<string>12</string>
<key>fr</key>
<string>10</string>
<string>12</string>
</dict>
</dict>
<dict>
@ -15470,7 +15470,7 @@ Raison: %2$s</string>
</dict>
</dict>
<key>change date</key>
<date>2012-09-18T09:26:35Z</date>
<date>2012-10-22T08:50:22Z</date>
<key>changed values</key>
<array/>
<key>class</key>
@ -15480,7 +15480,7 @@ Raison: %2$s</string>
<key>flags</key>
<integer>0</integer>
<key>hash</key>
<string>dc9f190a8a2dcdf8026518ff11e1d480
<string>1637ea0ccdf086dbddb51c854d6310db
</string>
<key>name</key>
<string>Root.strings</string>
@ -15523,13 +15523,13 @@ Raison: %2$s</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>0</integer>
<integer>1</integer>
<key>key</key>
<string>Wizard</string>
<key>localizations</key>
<dict>
<key>en</key>
<string>Wizard</string>
<string>Run assistant</string>
<key>fr</key>
<string>Assistant</string>
</dict>
@ -16518,7 +16518,7 @@ Raison: %2$s</string>
</dict>
</dict>
<key>change date</key>
<date>2012-10-01T10:31:40Z</date>
<date>2012-11-06T09:45:46Z</date>
<key>changed values</key>
<array/>
<key>class</key>
@ -16528,7 +16528,7 @@ Raison: %2$s</string>
<key>flags</key>
<integer>0</integer>
<key>hash</key>
<string>d07bfbef0b1c424572d4ab830553e0d6
<string>d8b4f45bf8fca397a7f791bd55a61e1c
</string>
<key>name</key>
<string>Audio.strings</string>
@ -16812,6 +16812,81 @@ Raison: %2$s</string>
<key>snapshots</key>
<dict/>
</dict>
<dict>
<key>change date</key>
<date>2001-01-01T00:00:00Z</date>
<key>changed values</key>
<array/>
<key>class</key>
<string>BLStringKeyObject</string>
<key>comment</key>
<string>Advanced</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>0</integer>
<key>key</key>
<string>Advanced</string>
<key>localizations</key>
<dict>
<key>en</key>
<string>Advanced</string>
<key>fr</key>
<string>Avancés</string>
</dict>
<key>snapshots</key>
<dict/>
</dict>
<dict>
<key>change date</key>
<date>2001-01-01T00:00:00Z</date>
<key>changed values</key>
<array/>
<key>class</key>
<string>BLStringKeyObject</string>
<key>comment</key>
<string>Playback gain</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>0</integer>
<key>key</key>
<string>Playback gain</string>
<key>localizations</key>
<dict>
<key>en</key>
<string>Playback gain</string>
<key>fr</key>
<string>Gain sortie</string>
</dict>
<key>snapshots</key>
<dict/>
</dict>
<dict>
<key>change date</key>
<date>2001-01-01T00:00:00Z</date>
<key>changed values</key>
<array/>
<key>class</key>
<string>BLStringKeyObject</string>
<key>comment</key>
<string>Microphone gain</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>0</integer>
<key>key</key>
<string>Microphone gain</string>
<key>localizations</key>
<dict>
<key>en</key>
<string>Microphone gain</string>
<key>fr</key>
<string>Gain microphone</string>
</dict>
<key>snapshots</key>
<dict/>
</dict>
</array>
<key>old objects</key>
<array/>
@ -16840,7 +16915,7 @@ Raison: %2$s</string>
</dict>
</dict>
<key>change date</key>
<date>2012-09-11T10:05:39Z</date>
<date>2012-10-29T15:42:49Z</date>
<key>changed values</key>
<array/>
<key>class</key>
@ -16848,9 +16923,9 @@ Raison: %2$s</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>1</integer>
<integer>0</integer>
<key>hash</key>
<string>3cc5ec7e298d1a3aa4449641876f5960
<string>6ae28fd473b2900cce974380a72d5447
</string>
<key>name</key>
<string>Call.strings</string>
@ -16956,9 +17031,107 @@ Raison: %2$s</string>
<key>snapshots</key>
<dict/>
</dict>
<dict>
<key>change date</key>
<date>2001-01-01T00:00:00Z</date>
<key>changed values</key>
<array/>
<key>class</key>
<string>BLStringKeyObject</string>
<key>comment</key>
<string>Incoming call timeout</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>0</integer>
<key>key</key>
<string>Incoming call timeout</string>
<key>localizations</key>
<dict>
<key>en</key>
<string>Incoming call timeout</string>
<key>fr</key>
<string>Durée max. sonnerie</string>
</dict>
<key>snapshots</key>
<dict/>
</dict>
<dict>
<key>change date</key>
<date>2001-01-01T00:00:00Z</date>
<key>changed values</key>
<array/>
<key>class</key>
<string>BLStringKeyObject</string>
<key>comment</key>
<string>In call timeout</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>0</integer>
<key>key</key>
<string>In call timeout</string>
<key>localizations</key>
<dict>
<key>en</key>
<string>In call timeout</string>
<key>fr</key>
<string>Durée max. appel</string>
</dict>
<key>snapshots</key>
<dict/>
</dict>
</array>
<key>old objects</key>
<array/>
<array>
<dict>
<key>change date</key>
<date>2001-01-01T00:00:00Z</date>
<key>changed values</key>
<array>
<string>&lt;reference&gt;</string>
</array>
<key>class</key>
<string>BLStringKeyObject</string>
<key>comment</key>
<string>Incoming call timeout</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>0</integer>
<key>key</key>
<string>In</string>
<key>localizations</key>
<dict>
<key>en</key>
<string>call</string>
</dict>
<key>snapshots</key>
<dict/>
</dict>
<dict>
<key>change date</key>
<date>2001-01-01T00:00:00Z</date>
<key>changed values</key>
<array>
<string>&lt;reference&gt;</string>
</array>
<key>class</key>
<string>BLStringKeyObject</string>
<key>comment</key>
<string>Incoming call timeout</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>3</integer>
<key>key</key>
<string>timeout</string>
<key>localizations</key>
<dict/>
<key>snapshots</key>
<dict/>
</dict>
</array>
<key>plist file</key>
<false/>
<key>snapshots</key>
@ -17279,7 +17452,7 @@ Raison: %2$s</string>
</dict>
</dict>
<key>change date</key>
<date>2012-09-18T15:13:17Z</date>
<date>2012-11-13T09:28:24Z</date>
<key>changed values</key>
<array/>
<key>class</key>
@ -17289,7 +17462,7 @@ Raison: %2$s</string>
<key>flags</key>
<integer>0</integer>
<key>hash</key>
<string>f5919fdebddf11e613578ee7ff05f05e
<string>7220a3af4b5567ce1842c8a01759b1c9
</string>
<key>name</key>
<string>Network.strings</string>
@ -17428,19 +17601,19 @@ Raison: %2$s</string>
<key>class</key>
<string>BLStringKeyObject</string>
<key>comment</key>
<string>Audio Port</string>
<string>Audio Port(s)</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>0</integer>
<key>key</key>
<string>Audio Port</string>
<string>Audio Port(s)</string>
<key>localizations</key>
<dict>
<key>en</key>
<string>Audio Port</string>
<string>Audio Port(s)</string>
<key>fr</key>
<string>Port Audio</string>
<string>Port(s) Audio</string>
</dict>
<key>snapshots</key>
<dict/>
@ -17453,19 +17626,19 @@ Raison: %2$s</string>
<key>class</key>
<string>BLStringKeyObject</string>
<key>comment</key>
<string>Video Port</string>
<string>Video Port(s)</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>0</integer>
<key>key</key>
<string>Video Port</string>
<string>Video Port(s)</string>
<key>localizations</key>
<dict>
<key>en</key>
<string>Video Port</string>
<string>Video Port(s)</string>
<key>fr</key>
<string>Port Vidéo</string>
<string>Port(s) Vidéo</string>
</dict>
<key>snapshots</key>
<dict/>
@ -17685,6 +17858,81 @@ Raison: %2$s</string>
<key>snapshots</key>
<dict/>
</dict>
<dict>
<key>change date</key>
<date>2001-01-01T00:00:00Z</date>
<key>changed values</key>
<array/>
<key>class</key>
<string>BLStringKeyObject</string>
<key>comment</key>
<string>Limits</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>0</integer>
<key>key</key>
<string>Limits</string>
<key>localizations</key>
<dict>
<key>en</key>
<string>Limits</string>
<key>fr</key>
<string>Limites</string>
</dict>
<key>snapshots</key>
<dict/>
</dict>
<dict>
<key>change date</key>
<date>2001-01-01T00:00:00Z</date>
<key>changed values</key>
<array/>
<key>class</key>
<string>BLStringKeyObject</string>
<key>comment</key>
<string>Upload bandwidth</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>0</integer>
<key>key</key>
<string>Upload bandwidth</string>
<key>localizations</key>
<dict>
<key>en</key>
<string>Upload bandwidth</string>
<key>fr</key>
<string>Débit montant</string>
</dict>
<key>snapshots</key>
<dict/>
</dict>
<dict>
<key>change date</key>
<date>2001-01-01T00:00:00Z</date>
<key>changed values</key>
<array/>
<key>class</key>
<string>BLStringKeyObject</string>
<key>comment</key>
<string>Download bandwidth</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>0</integer>
<key>key</key>
<string>Download bandwidth</string>
<key>localizations</key>
<dict>
<key>en</key>
<string>Download bandwidth</string>
<key>fr</key>
<string>Débit descendant</string>
</dict>
<key>snapshots</key>
<dict/>
</dict>
</array>
<key>old objects</key>
<array>
@ -17782,6 +18030,56 @@ Raison: %2$s</string>
<key>snapshots</key>
<dict/>
</dict>
<dict>
<key>change date</key>
<date>2001-01-01T00:00:00Z</date>
<key>changed values</key>
<array/>
<key>class</key>
<string>BLStringKeyObject</string>
<key>comment</key>
<string>Audio Port</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>0</integer>
<key>key</key>
<string>Audio Port</string>
<key>localizations</key>
<dict>
<key>en</key>
<string>Audio Port</string>
<key>fr</key>
<string>Port Audio</string>
</dict>
<key>snapshots</key>
<dict/>
</dict>
<dict>
<key>change date</key>
<date>2001-01-01T00:00:00Z</date>
<key>changed values</key>
<array/>
<key>class</key>
<string>BLStringKeyObject</string>
<key>comment</key>
<string>Video Port</string>
<key>errors</key>
<array/>
<key>flags</key>
<integer>0</integer>
<key>key</key>
<string>Video Port</string>
<key>localizations</key>
<dict>
<key>en</key>
<string>Video Port</string>
<key>fr</key>
<string>Port Vidéo</string>
</dict>
<key>snapshots</key>
<dict/>
</dict>
</array>
<key>plist file</key>
<false/>

View file

@ -2,7 +2,7 @@
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1536</int>
<string key="IBDocument.SystemVersion">11G56</string>
<string key="IBDocument.SystemVersion">11G63</string>
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
<string key="IBDocument.AppKitVersion">1138.51</string>
<string key="IBDocument.HIToolboxVersion">569.00</string>
@ -174,7 +174,6 @@
<string key="NSFrame">{{0, 79}, {320, 381}}</string>
<reference key="NSSuperview" ref="1010501960"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -231,6 +230,8 @@
<bool key="IBUIAdjustsFontSizeToFit">YES</bool>
<float key="IBUIMinimumFontSize">17</float>
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
<int key="IBUIAutocorrectionType">1</int>
<int key="IBUIKeyboardType">3</int>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="NSCustomResource" key="IBUIBackground">

View file

@ -34,3 +34,11 @@
/* PCMA */
"PCMA" = "PCMA";
/* Advanced */
"Advanced" = "Advanced";
/* Playback gain */
"Playback gain" = "Playback gain";
/* Microphone gain */
"Microphone gain" = "Microphone gain";

View file

@ -10,3 +10,8 @@
/* Send SIP INFO DTMFs */
"Send SIP INFO DTMFs" = "Send SIP INFO DTMFs";
/* Incoming call timeout */
"Incoming call timeout" = "Incoming call timeout";
/* In call timeout */
"In call timeout" = "In call timeout";

View file

@ -13,11 +13,11 @@
/* Port */
"Port" = "Port";
/* Audio Port */
"Audio Port" = "Audio Port";
/* Audio Port(s) */
"Audio Port(s)" = "Audio Port(s)";
/* Video Port */
"Video Port" = "Video Port";
/* Video Port(s) */
"Video Port(s)" = "Video Port(s)";
/* Transport */
"Transport" = "Transport";
@ -49,3 +49,11 @@
/* ZRTP */
"ZRTP" = "ZRTP";
/* Limits */
"Limits" = "Limits";
/* Upload bandwidth */
"Upload bandwidth" = "Upload bandwidth";
/* Download bandwidth */
"Download bandwidth" = "Download bandwidth";

View file

@ -2,7 +2,7 @@
"SIP account" = "SIP account";
/* Wizard */
"Wizard" = "Wizard";
"Wizard" = "Run assistant";
/* User name */
"User name" = "User name";

View file

@ -2,9 +2,9 @@
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1536</int>
<string key="IBDocument.SystemVersion">11E53</string>
<string key="IBDocument.SystemVersion">11G63</string>
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
<string key="IBDocument.AppKitVersion">1138.47</string>
<string key="IBDocument.AppKitVersion">1138.51</string>
<string key="IBDocument.HIToolboxVersion">569.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -35,13 +35,14 @@
</object>
<object class="IBUIView" id="931774220">
<reference key="NSNextResponder"/>
<int key="NSvFlags">301</int>
<int key="NSvFlags">266</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIView" id="464536687">
<reference key="NSNextResponder" ref="931774220"/>
<int key="NSvFlags">-2147483356</int>
<int key="NSvFlags">-2147483355</int>
<string key="NSFrame">{{0, 335}, {320, 125}}</string>
<reference key="NSSuperview" ref="931774220"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
@ -56,13 +57,14 @@
</object>
<object class="IBUIView" id="556199520">
<reference key="NSNextResponder" ref="931774220"/>
<int key="NSvFlags">288</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="1062143568">
<reference key="NSNextResponder" ref="556199520"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{281, 260}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="612787992"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">2</int>
@ -78,6 +80,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 10}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1062143568"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
@ -121,6 +124,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 10}, {106, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="843780954"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -148,6 +152,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 10}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1070521404"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -175,6 +180,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 72}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="736263510"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -202,6 +208,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 72}, {106, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="977745568"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -229,6 +236,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 72}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="308872469"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -256,6 +264,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 134}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="809465959"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -283,6 +292,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 134}, {106, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="193555513"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -310,6 +320,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 134}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="357389737"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -337,6 +348,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 196}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="525082175"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -364,6 +376,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 196}, {106, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="951243834"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -391,6 +404,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 196}, {107, 54}}</string>
<reference key="NSSuperview" ref="556199520"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="143533231"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -416,6 +430,7 @@
</array>
<string key="NSFrame">{{20, 57}, {281, 260}}</string>
<reference key="NSSuperview" ref="931774220"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="291142801"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor" id="67221425">
@ -427,13 +442,14 @@
</object>
<object class="IBUIView" id="1070539677">
<reference key="NSNextResponder" ref="931774220"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIButton" id="322088049">
<reference key="NSNextResponder" ref="1070539677"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{3, 0}, {77, 68}}</string>
<reference key="NSSuperview" ref="1070539677"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="471717543"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -491,6 +507,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{3, 58}, {77, 68}}</string>
<reference key="NSSuperview" ref="1070539677"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="464536687"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -530,6 +547,7 @@
</array>
<string key="NSFrame">{{240, 208}, {80, 126}}</string>
<reference key="NSSuperview" ref="931774220"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="322088049"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
@ -538,13 +556,46 @@
</object>
<object class="IBUIView" id="143533231">
<reference key="NSNextResponder" ref="931774220"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="688068563">
<reference key="NSNextResponder" ref="143533231"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-44, -8}, {44, 90}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="262544423"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">100</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSCustomResource" key="IBUIImage" id="867449752">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">callbar_left_padding.png</string>
</object>
</object>
<object class="IBUIImageView" id="804009355">
<reference key="NSNextResponder" ref="143533231"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{320, -8}, {44, 90}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="259467918"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">101</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSCustomResource" key="IBUIImage" id="148675087">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">callbar_right_padding.png</string>
</object>
</object>
<object class="IBUIView" id="259467918">
<reference key="NSNextResponder" ref="143533231"/>
<int key="NSvFlags">290</int>
<string key="NSFrame">{{0, 135}, {320, 2000}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1070539677"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
@ -559,6 +610,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{80, 67}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1016105438"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -605,6 +657,7 @@
<int key="NSvFlags">-2147483356</int>
<string key="NSFrame">{{20, 20}, {37, 37}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="693636558"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -617,6 +670,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{80, 0}, {80, 67}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="264394465"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -663,6 +717,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{160, 0}, {80, 67}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="62185125"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -709,6 +764,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{240, 0}, {80, 67}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="542459126"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -755,6 +811,7 @@
<int key="NSvFlags">264</int>
<string key="NSFrame">{{0, 67}, {105, 68}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="351323248"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -791,6 +848,7 @@
<int key="NSvFlags">-2147483384</int>
<string key="NSFrame">{{0, 67}, {105, 68}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="99607181"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -820,6 +878,7 @@
<int key="NSvFlags">264</int>
<string key="NSFrame">{{105, 67}, {111, 68}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="976589610"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -849,7 +908,8 @@
<int key="NSvFlags">264</int>
<string key="NSFrame">{{215, 67}, {105, 68}}</string>
<reference key="NSSuperview" ref="143533231"/>
<reference key="NSNextKeyView" ref="259467918"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="804009355"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">27</int>
@ -884,7 +944,8 @@
</array>
<string key="NSFrame">{{0, 325}, {320, 135}}</string>
<reference key="NSSuperview" ref="931774220"/>
<reference key="NSNextKeyView" ref="262544423"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="688068563"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
<int key="IBUITag">18</int>
@ -893,21 +954,22 @@
</array>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="556199520"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
<bool key="IBUIAutoresizesSubviews">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="837874415">
<reference key="NSNextResponder"/>
<int key="NSvFlags">301</int>
<int key="NSvFlags">266</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIView" id="974396983">
<reference key="NSNextResponder" ref="837874415"/>
<int key="NSvFlags">-2147483356</int>
<int key="NSvFlags">-2147483355</int>
<string key="NSFrame">{{0, 248}, {480, 72}}</string>
<reference key="NSSuperview" ref="837874415"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="408941248"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
@ -923,13 +985,14 @@
</object>
<object class="IBUIView" id="408941248">
<reference key="NSNextResponder" ref="837874415"/>
<int key="NSvFlags">288</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="526609754">
<reference key="NSNextResponder" ref="408941248"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{281, 260}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="519560860"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">2</int>
@ -942,6 +1005,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 10}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="526609754"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
@ -964,6 +1028,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 10}, {106, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="881223252"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -982,6 +1047,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 10}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="923486394"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1000,6 +1066,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 72}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="121694741"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1018,6 +1085,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 72}, {106, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="30269278"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1036,6 +1104,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 72}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="625010060"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1054,6 +1123,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 134}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="963396110"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1072,6 +1142,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 134}, {106, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="761686959"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1090,6 +1161,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 134}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="629341434"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1108,6 +1180,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-20, 196}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="809495409"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1126,6 +1199,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{87, 196}, {106, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="94322278"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
@ -1144,6 +1218,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{193, 196}, {107, 54}}</string>
<reference key="NSSuperview" ref="408941248"/>
<reference key="NSWindow"/>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<int key="IBUITag">14</int>
@ -1159,6 +1234,7 @@
</array>
<string key="NSFrame">{{91, 0}, {281, 260}}</string>
<reference key="NSSuperview" ref="837874415"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="996491821"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
@ -1167,13 +1243,14 @@
</object>
<object class="IBUIView" id="557887372">
<reference key="NSNextResponder" ref="837874415"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIButton" id="294395401">
<reference key="NSNextResponder" ref="557887372"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{65, 55}</string>
<reference key="NSSuperview" ref="557887372"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="173491714"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1215,6 +1292,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 51}, {65, 55}}</string>
<reference key="NSSuperview" ref="557887372"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="974396983"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1254,6 +1332,7 @@
</array>
<string key="NSFrame">{{415, 140}, {65, 105}}</string>
<reference key="NSSuperview" ref="837874415"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="294395401"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
@ -1262,13 +1341,40 @@
</object>
<object class="IBUIView" id="950460796">
<reference key="NSNextResponder" ref="837874415"/>
<int key="NSvFlags">292</int>
<int key="NSvFlags">293</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="836740652">
<reference key="NSNextResponder" ref="950460796"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{-44, -8}, {44, 90}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="511619008"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">100</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<reference key="IBUIImage" ref="867449752"/>
</object>
<object class="IBUIImageView" id="482311558">
<reference key="NSNextResponder" ref="950460796"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{480, -8}, {44, 90}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="298889112"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<int key="IBUITag">101</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<reference key="IBUIImage" ref="148675087"/>
</object>
<object class="IBUIView" id="298889112">
<reference key="NSNextResponder" ref="950460796"/>
<int key="NSvFlags">290</int>
<string key="NSFrame">{{0, 82}, {480, 2000}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="557887372"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
@ -1283,6 +1389,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{65, 0}, {65, 82}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="814604354"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1329,6 +1436,7 @@
<int key="NSvFlags">-2147483356</int>
<string key="NSFrame">{{79, 20}, {37, 37}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="528058217"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1341,6 +1449,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{130, 0}, {65, 82}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="839169662"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1387,6 +1496,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{285, 0}, {65, 82}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="893150238"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1433,6 +1543,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{350, 0}, {65, 82}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="889778982"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1479,6 +1590,7 @@
<int key="NSvFlags">264</int>
<string key="NSFrameSize">{65, 82}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="104218181"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1512,6 +1624,7 @@
<int key="NSvFlags">-2147483384</int>
<string key="NSFrameSize">{65, 82}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="102684796"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1541,6 +1654,7 @@
<int key="NSvFlags">264</int>
<string key="NSFrame">{{195, 0}, {90, 82}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="594075760"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
@ -1570,7 +1684,8 @@
<int key="NSvFlags">264</int>
<string key="NSFrame">{{415, 0}, {65, 82}}</string>
<reference key="NSSuperview" ref="950460796"/>
<reference key="NSNextKeyView" ref="298889112"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="482311558"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">27</int>
@ -1602,7 +1717,8 @@
</array>
<string key="NSFrame">{{0, 238}, {480, 82}}</string>
<reference key="NSSuperview" ref="837874415"/>
<reference key="NSNextKeyView" ref="511619008"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="836740652"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
<int key="IBUITag">18</int>
@ -1611,10 +1727,10 @@
</array>
<string key="NSFrameSize">{480, 320}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="950460796"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="67221425"/>
<bool key="IBUIAutoresizesSubviews">NO</bool>
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
<int key="IBUIInterfaceOrientation">3</int>
<int key="interfaceOrientation">3</int>
@ -2035,6 +2151,8 @@
<reference ref="976589610"/>
<reference ref="1016105438"/>
<reference ref="259467918"/>
<reference ref="688068563"/>
<reference ref="804009355"/>
</array>
<reference key="parent" ref="931774220"/>
<string key="objectName">buttons</string>
@ -2361,6 +2479,8 @@
<reference ref="893150238"/>
<reference ref="889778982"/>
<reference ref="298889112"/>
<reference ref="836740652"/>
<reference ref="482311558"/>
</array>
<reference key="parent" ref="837874415"/>
<string key="objectName">buttons</string>
@ -2437,6 +2557,30 @@
<reference key="parent" ref="143533231"/>
<string key="objectName">background</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">143</int>
<reference key="object" ref="836740652"/>
<reference key="parent" ref="950460796"/>
<string key="objectName">leftPadding</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">144</int>
<reference key="object" ref="482311558"/>
<reference key="parent" ref="950460796"/>
<string key="objectName">rightPadding</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">145</int>
<reference key="object" ref="804009355"/>
<reference key="parent" ref="143533231"/>
<string key="objectName">rightPadding</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">146</int>
<reference key="object" ref="688068563"/>
<reference key="parent" ref="143533231"/>
<string key="objectName">leftPadding</string>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
@ -2535,6 +2679,10 @@
<real value="3" key="128.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="141.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="142.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="143.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="144.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="145.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="146.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="0.0" key="21.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="30.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -2605,14 +2753,296 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">142</int>
<int key="maxID">163</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">TPMultiLayoutViewController</string>
<string key="superclassName">UIViewController</string>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="landscapeView">UIView</string>
<string key="portraitView">UIView</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="landscapeView">
<string key="name">landscapeView</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="portraitView">
<string key="name">portraitView</string>
<string key="candidateClassName">UIView</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/TPMultiLayoutViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UICallBar</string>
<string key="superclassName">TPMultiLayoutViewController</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="onConferenceClick:">id</string>
<string key="onOptionsAddClick:">id</string>
<string key="onOptionsClick:">id</string>
<string key="onOptionsTransferClick:">id</string>
<string key="onPadClick:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="onConferenceClick:">
<string key="name">onConferenceClick:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onOptionsAddClick:">
<string key="name">onOptionsAddClick:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onOptionsClick:">
<string key="name">onOptionsClick:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onOptionsTransferClick:">
<string key="name">onOptionsTransferClick:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onPadClick:">
<string key="name">onPadClick:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="conferenceButton">UIButton</string>
<string key="dialerButton">UIToggleButton</string>
<string key="eightButton">UIDigitButton</string>
<string key="fiveButton">UIDigitButton</string>
<string key="fourButton">UIDigitButton</string>
<string key="hangupButton">UIHangUpButton</string>
<string key="microButton">UIMicroButton</string>
<string key="nineButton">UIDigitButton</string>
<string key="oneButton">UIDigitButton</string>
<string key="optionsAddButton">UIButton</string>
<string key="optionsButton">UIToggleButton</string>
<string key="optionsTransferButton">UIButton</string>
<string key="optionsView">UIView</string>
<string key="padView">UIView</string>
<string key="pauseButton">UIPauseButton</string>
<string key="sevenButton">UIDigitButton</string>
<string key="sharpButton">UIDigitButton</string>
<string key="sixButton">UIDigitButton</string>
<string key="speakerButton">UISpeakerButton</string>
<string key="starButton">UIDigitButton</string>
<string key="threeButton">UIDigitButton</string>
<string key="twoButton">UIDigitButton</string>
<string key="videoButton">UIVideoButton</string>
<string key="zeroButton">UIDigitButton</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="conferenceButton">
<string key="name">conferenceButton</string>
<string key="candidateClassName">UIButton</string>
</object>
<object class="IBToOneOutletInfo" key="dialerButton">
<string key="name">dialerButton</string>
<string key="candidateClassName">UIToggleButton</string>
</object>
<object class="IBToOneOutletInfo" key="eightButton">
<string key="name">eightButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="fiveButton">
<string key="name">fiveButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="fourButton">
<string key="name">fourButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="hangupButton">
<string key="name">hangupButton</string>
<string key="candidateClassName">UIHangUpButton</string>
</object>
<object class="IBToOneOutletInfo" key="microButton">
<string key="name">microButton</string>
<string key="candidateClassName">UIMicroButton</string>
</object>
<object class="IBToOneOutletInfo" key="nineButton">
<string key="name">nineButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="oneButton">
<string key="name">oneButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="optionsAddButton">
<string key="name">optionsAddButton</string>
<string key="candidateClassName">UIButton</string>
</object>
<object class="IBToOneOutletInfo" key="optionsButton">
<string key="name">optionsButton</string>
<string key="candidateClassName">UIToggleButton</string>
</object>
<object class="IBToOneOutletInfo" key="optionsTransferButton">
<string key="name">optionsTransferButton</string>
<string key="candidateClassName">UIButton</string>
</object>
<object class="IBToOneOutletInfo" key="optionsView">
<string key="name">optionsView</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="padView">
<string key="name">padView</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo" key="pauseButton">
<string key="name">pauseButton</string>
<string key="candidateClassName">UIPauseButton</string>
</object>
<object class="IBToOneOutletInfo" key="sevenButton">
<string key="name">sevenButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="sharpButton">
<string key="name">sharpButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="sixButton">
<string key="name">sixButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="speakerButton">
<string key="name">speakerButton</string>
<string key="candidateClassName">UISpeakerButton</string>
</object>
<object class="IBToOneOutletInfo" key="starButton">
<string key="name">starButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="threeButton">
<string key="name">threeButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="twoButton">
<string key="name">twoButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
<object class="IBToOneOutletInfo" key="videoButton">
<string key="name">videoButton</string>
<string key="candidateClassName">UIVideoButton</string>
</object>
<object class="IBToOneOutletInfo" key="zeroButton">
<string key="name">zeroButton</string>
<string key="candidateClassName">UIDigitButton</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UICallBar.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIDigitButton</string>
<string key="superclassName">UILongTouchButton</string>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">addressField</string>
<string key="NS.object.0">UITextField</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">addressField</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">addressField</string>
<string key="candidateClassName">UITextField</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIDigitButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIHangUpButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIHangUpButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UILongTouchButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UILongTouchButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIMicroButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIMicroButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIPauseButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIPauseButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UISpeakerButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UISpeakerButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIToggleButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIToggleButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UITransparentView</string>
<string key="superclassName">UIView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UITransparentView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIVideoButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">waitView</string>
<string key="NS.object.0">UIActivityIndicatorView</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">waitView</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">waitView</string>
<string key="candidateClassName">UIActivityIndicatorView</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIVideoButton.h</string>
</object>
</object>
</array>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="callbar_left_padding.png">{88, 180}</string>
<string key="callbar_right_padding.png">{88, 180}</string>
<string key="conference_default.png">{209, 136}</string>
<string key="conference_default_landscape.png">{130, 163}</string>
<string key="conference_over.png">{209, 136}</string>

View file

@ -326,6 +326,10 @@
D33CF34B15D3A03400CD4B85 /* linphone_icon_57@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D33CF34815D3A03400CD4B85 /* linphone_icon_57@2x.png */; };
D33CF34C15D3A03400CD4B85 /* linphone_icon_72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D33CF34915D3A03400CD4B85 /* linphone_icon_72@2x.png */; };
D33CF34D15D3A03400CD4B85 /* linphone_icon_72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D33CF34915D3A03400CD4B85 /* linphone_icon_72@2x.png */; };
D33E1F08164CF35100CFA363 /* callbar_left_padding.png in Resources */ = {isa = PBXBuildFile; fileRef = D33E1F06164CF35100CFA363 /* callbar_left_padding.png */; };
D33E1F09164CF35100CFA363 /* callbar_left_padding.png in Resources */ = {isa = PBXBuildFile; fileRef = D33E1F06164CF35100CFA363 /* callbar_left_padding.png */; };
D33E1F0A164CF35100CFA363 /* callbar_right_padding.png in Resources */ = {isa = PBXBuildFile; fileRef = D33E1F07164CF35100CFA363 /* callbar_right_padding.png */; };
D33E1F0B164CF35100CFA363 /* callbar_right_padding.png in Resources */ = {isa = PBXBuildFile; fileRef = D33E1F07164CF35100CFA363 /* callbar_right_padding.png */; };
D3432A62158A4446001C6B0B /* led_connected.png in Resources */ = {isa = PBXBuildFile; fileRef = D3432A5C158A4446001C6B0B /* led_connected.png */; };
D3432A64158A4446001C6B0B /* led_error.png in Resources */ = {isa = PBXBuildFile; fileRef = D3432A5D158A4446001C6B0B /* led_error.png */; };
D3432A66158A4446001C6B0B /* call_quality_indicator_0.png in Resources */ = {isa = PBXBuildFile; fileRef = D3432A5E158A4446001C6B0B /* call_quality_indicator_0.png */; };
@ -1757,6 +1761,8 @@
D339890515C6E16F00CAF1E4 /* dialer_alt_back_over_landscape~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "dialer_alt_back_over_landscape~ipad.png"; path = "Resources/dialer_alt_back_over_landscape~ipad.png"; sourceTree = "<group>"; };
D33CF34815D3A03400CD4B85 /* linphone_icon_57@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "linphone_icon_57@2x.png"; path = "Resources/linphone_icon_57@2x.png"; sourceTree = "<group>"; };
D33CF34915D3A03400CD4B85 /* linphone_icon_72@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "linphone_icon_72@2x.png"; path = "Resources/linphone_icon_72@2x.png"; sourceTree = "<group>"; };
D33E1F06164CF35100CFA363 /* callbar_left_padding.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = callbar_left_padding.png; path = Resources/callbar_left_padding.png; sourceTree = "<group>"; };
D33E1F07164CF35100CFA363 /* callbar_right_padding.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = callbar_right_padding.png; path = Resources/callbar_right_padding.png; sourceTree = "<group>"; };
D3432A5C158A4446001C6B0B /* led_connected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = led_connected.png; path = Resources/led_connected.png; sourceTree = "<group>"; };
D3432A5D158A4446001C6B0B /* led_error.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = led_error.png; path = Resources/led_error.png; sourceTree = "<group>"; };
D3432A5E158A4446001C6B0B /* call_quality_indicator_0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = call_quality_indicator_0.png; path = Resources/call_quality_indicator_0.png; sourceTree = "<group>"; };
@ -2998,6 +3004,8 @@
D31C9C8D158A1C1000756B45 /* call_status_incoming.png */,
D31C9C8E158A1C1000756B45 /* call_status_missed.png */,
D31C9C8F158A1C1000756B45 /* call_status_outgoing.png */,
D33E1F06164CF35100CFA363 /* callbar_left_padding.png */,
D33E1F07164CF35100CFA363 /* callbar_right_padding.png */,
D3E84F1715B00F4100420DAC /* cancel_default.png */,
D3E84F1815B00F4100420DAC /* cancel_over.png */,
D36C43CC158F2F370048BA40 /* cell_call.png */,
@ -4201,6 +4209,8 @@
D3103926162C3C5200C00C18 /* linphone_splashscreen-Landscape@2x.png in Resources */,
D3103928162C3C5200C00C18 /* linphone_splashscreen-Portrait.png in Resources */,
D310392A162C3C5200C00C18 /* linphone_splashscreen-Portrait@2x.png in Resources */,
D33E1F08164CF35100CFA363 /* callbar_left_padding.png in Resources */,
D33E1F0A164CF35100CFA363 /* callbar_right_padding.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -4707,6 +4717,8 @@
D3103927162C3C5200C00C18 /* linphone_splashscreen-Landscape@2x.png in Resources */,
D3103929162C3C5200C00C18 /* linphone_splashscreen-Portrait.png in Resources */,
D310392B162C3C5200C00C18 /* linphone_splashscreen-Portrait@2x.png in Resources */,
D33E1F09164CF35100CFA363 /* callbar_left_padding.png in Resources */,
D33E1F0B164CF35100CFA363 /* callbar_right_padding.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -5266,7 +5278,7 @@
HEADER_SEARCH_PATHS = "";
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
LIBRARY_SEARCH_PATHS = "";
PROVISIONING_PROFILE = "EE9CAF78-3536-4133-BAAA-020FDF65D279";
PROVISIONING_PROFILE = "7763350E-083E-4ADA-8535-05883F19F947";
SDKROOT = iphoneos;
STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic;
TARGETED_DEVICE_FAMILY = "1,2";
@ -5676,7 +5688,7 @@
HEADER_SEARCH_PATHS = "";
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
LIBRARY_SEARCH_PATHS = "";
PROVISIONING_PROFILE = "79E53132-649F-48B3-A931-24792E466A11";
PROVISIONING_PROFILE = "2AC0DC11-4546-47B6-8B8A-453CCA80903C";
SDKROOT = iphoneos;
STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic;
TARGETED_DEVICE_FAMILY = "1,2";

View file

@ -43,12 +43,12 @@ ifneq (,$(findstring armv7,$(host)))
endif
x264_dir?=externals/x264
$(BUILDER_SRC_DIR)/$(x264_dir)/patched :
cd $(BUILDER_SRC_DIR)/$(x264_dir) \
&& git apply $(BUILDER_SRC_DIR)/build/builders.d/x264.patch \
&& touch $(BUILDER_SRC_DIR)/$(x264_dir)/patched
#$(BUILDER_SRC_DIR)/$(x264_dir)/patched :
# cd $(BUILDER_SRC_DIR)/$(x264_dir) \
# && git apply $(BUILDER_SRC_DIR)/build/builders.d/x264.patch \
# && touch $(BUILDER_SRC_DIR)/$(x264_dir)/patched
$(BUILDER_BUILD_DIR)/$(x264_dir)/configure: $(BUILDER_SRC_DIR)/$(x264_dir)/patched
$(BUILDER_BUILD_DIR)/$(x264_dir)/configure:
mkdir -p $(BUILDER_BUILD_DIR)/$(x264_dir)
cd $(BUILDER_BUILD_DIR)/$(x264_dir)/ \
&& rsync -av --exclude ".git" $(BUILDER_SRC_DIR)/$(x264_dir)/* .
@ -66,6 +66,9 @@ clean-x264:
veryclean-x264:
-cd $(BUILDER_BUILD_DIR)/$(x264_dir) && make distclean
cd $(BUILDER_SRC_DIR)/$(x264_dir)/ \
&& git checkout common/arm/asm.S \
&& rm -f patched
rm -rf $(BUILDER_BUILD_DIR)/$(x264_dir)
clean-makefile-x264:

@ -1 +1 @@
Subproject commit 926a03a9c1f48d0fbd54b0e802d740774c100a78
Subproject commit f6a8615ab0c922ac2cb5c82c9824f6f4742b1725

@ -1 +1 @@
Subproject commit e829fa6e222f37de9c26e4e82f0227078f4b6629
Subproject commit 501c5ce4db223514bdb9090405b264e862c028ad