Edit mode in history

Move setting delegate to setting controller
Start chat view
Start incoming call view
This commit is contained in:
Yann Diorcet 2012-06-25 12:40:29 +02:00
parent 44e438ab33
commit 3dbced109b
54 changed files with 6635 additions and 498 deletions

View file

@ -0,0 +1,26 @@
/* ChatTableViewController.h
*
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import <UIKit/UIKit.h>
@interface ChatTableViewController : UITableViewController {
}
@end

View file

@ -0,0 +1,48 @@
/* ChatTableViewController.m
*
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import "ChatTableViewController.h"
#import "UIChatCell.h"
@implementation ChatTableViewController
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UIChatCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UIChatCell"];
if (cell == nil) {
cell = [[UIChatCell alloc] init];
}
[cell update];
return cell;
}
@end

View file

@ -23,4 +23,7 @@
}
- (IBAction)onNew:(id) event;
- (IBAction)onEdit:(id) event;
@end

View file

@ -21,4 +21,12 @@
@implementation ChatViewController
- (IBAction)onNew: (id) event {
}
- (IBAction)onEdit: (id) event {
}
@end

View file

@ -11,8 +11,11 @@
<string key="NS.object.0">1181</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>IBProxyObject</string>
<string>IBUITableViewController</string>
<string>IBUITableView</string>
<string>IBUIView</string>
<string>IBUIButton</string>
<string>IBProxyObject</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@ -30,22 +33,151 @@
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="191373211">
<object class="IBUIView" id="1010501960">
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<string key="NSFrame">{{0, 20}, {320, 460}}</string>
<int key="NSvFlags">292</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIView" id="852221244">
<reference key="NSNextResponder" ref="1010501960"/>
<int key="NSvFlags">288</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIButton" id="174033966">
<reference key="NSNextResponder" ref="852221244"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{160, 58}</string>
<reference key="NSSuperview" ref="852221244"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1001279594"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
<string key="IBUIAccessibilityLabel">All</string>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
<object class="NSColor" key="IBUINormalTitleShadowColor" id="378691752">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">tchat-new-discussion-over.png</string>
</object>
<object class="NSCustomResource" key="IBUISelectedBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">all-call-selectionne.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">tchat-new-discussion-actif.png</string>
</object>
<object class="IBUIFontDescription" key="IBUIFontDescription" id="854320817">
<int key="type">2</int>
<double key="pointSize">15</double>
</object>
<object class="NSFont" key="IBUIFont" id="704081311">
<string key="NSName">Helvetica-Bold</string>
<double key="NSSize">15</double>
<int key="NSfFlags">16</int>
</object>
</object>
<object class="IBUIButton" id="1001279594">
<reference key="NSNextResponder" ref="852221244"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{160, 0}, {160, 58}}</string>
<reference key="NSSuperview" ref="852221244"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="69932958"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
<string key="IBUIAccessibilityLabel">Missed</string>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
<reference key="IBUINormalTitleShadowColor" ref="378691752"/>
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">tchat-edit-over.png</string>
</object>
<object class="NSCustomResource" key="IBUISelectedBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">missed-selectionne.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">tchat-edit-actif.png</string>
</object>
<reference key="IBUIFontDescription" ref="854320817"/>
<reference key="IBUIFont" ref="704081311"/>
</object>
</array>
<string key="NSFrameSize">{320, 58}</string>
<reference key="NSSuperview" ref="1010501960"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="174033966"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<object class="NSColorSpace" key="NSCustomColorSpace" id="13432237">
<int key="NSID">2</int>
</object>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUITableView" id="69932958">
<reference key="NSNextResponder" ref="1010501960"/>
<int key="NSvFlags">274</int>
<string key="NSFrame">{{0, 58}, {320, 402}}</string>
<reference key="NSSuperview" ref="1010501960"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<bool key="IBUIClipsSubviews">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<double key="IBUIContentInset.top">0.0</double>
<double key="IBUIContentInset.bottom">10</double>
<double key="IBUIContentInset.left">0.0</double>
<double key="IBUIContentInset.right">0.0</double>
<bool key="IBUIAlwaysBounceVertical">YES</bool>
<int key="IBUISeparatorStyle">1</int>
<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
<bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
<float key="IBUIRowHeight">44</float>
<float key="IBUISectionHeaderHeight">22</float>
<float key="IBUISectionFooterHeight">22</float>
</object>
</array>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="852221244"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<object class="NSColorSpace" key="NSCustomColorSpace">
<int key="NSID">2</int>
</object>
<reference key="NSCustomColorSpace" ref="13432237"/>
</object>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUITableViewController" id="766067093">
<bool key="IBUIAutoresizesArchivedViewToFullSize">NO</bool>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
<int key="IBUIInterfaceOrientation">1</int>
<int key="interfaceOrientation">1</int>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBUIHorizontal">NO</bool>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
@ -53,9 +185,51 @@
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="191373211"/>
<reference key="destination" ref="1010501960"/>
</object>
<int key="connectionID">3</int>
<int key="connectionID">14</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="766067093"/>
<reference key="destination" ref="69932958"/>
</object>
<int key="connectionID">13</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">dataSource</string>
<reference key="source" ref="69932958"/>
<reference key="destination" ref="766067093"/>
</object>
<int key="connectionID">11</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="69932958"/>
<reference key="destination" ref="766067093"/>
</object>
<int key="connectionID">12</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">onEdit:</string>
<reference key="source" ref="1001279594"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">17</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">onNew:</string>
<reference key="source" ref="174033966"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">15</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
@ -66,11 +240,6 @@
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="191373211"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="372490531"/>
@ -82,6 +251,49 @@
<reference key="object" ref="975951072"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="766067093"/>
<reference key="parent" ref="0"/>
<string key="objectName">tableController</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="1010501960"/>
<array class="NSMutableArray" key="children">
<reference ref="69932958"/>
<reference ref="852221244"/>
</array>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="69932958"/>
<reference key="parent" ref="1010501960"/>
<string key="objectName">tableView</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="852221244"/>
<array class="NSMutableArray" key="children">
<reference ref="1001279594"/>
<reference ref="174033966"/>
</array>
<reference key="parent" ref="1010501960"/>
<string key="objectName">header</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="1001279594"/>
<reference key="parent" ref="852221244"/>
<string key="objectName">edit</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">10</int>
<reference key="object" ref="174033966"/>
<reference key="parent" ref="852221244"/>
<string key="objectName">new</string>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
@ -89,19 +301,49 @@
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="-2.CustomClassName">UIResponder</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="10.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="0.0" key="10.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="4.CustomClassName">ChatTableViewController</string>
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="0.0" key="9.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">3</int>
<int key="maxID">17</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">ChatTableViewController</string>
<string key="superclassName">UITableViewController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/ChatTableViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">ChatViewController</string>
<string key="superclassName">UIViewController</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="onEdit:">id</string>
<string key="onNew:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="onEdit:">
<string key="name">onEdit:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onNew:">
<string key="name">onNew:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/ChatViewController.h</string>
@ -117,6 +359,14 @@
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="all-call-selectionne.png">{213, 117}</string>
<string key="missed-selectionne.png">{213, 117}</string>
<string key="tchat-edit-actif.png">{320, 117}</string>
<string key="tchat-edit-over.png">{320, 117}</string>
<string key="tchat-new-discussion-actif.png">{320, 117}</string>
<string key="tchat-new-discussion-over.png">{320, 117}</string>
</dictionary>
<string key="IBCocoaTouchPluginVersion">1181</string>
</data>
</archive>

View file

@ -1,4 +1,4 @@
/* ContactTableViewController.h
/* ContactsTableViewController.h
*
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
*
@ -22,7 +22,7 @@
#import "OrderedDictionary.h"
@interface ContactTableViewController : UITableViewController {
@interface ContactsTableViewController : UITableViewController {
OrderedDictionary* addressBookMap;
ABAddressBookRef addressBook;

View file

@ -1,4 +1,4 @@
/* ContactTableViewController.m
/* ContactsTableViewController.m
*
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
*
@ -17,16 +17,16 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import "ContactTableViewController.h"
#import "ContactsTableViewController.h"
#import "UIContactCell.h"
#import "LinphoneManager.h"
@implementation ContactTableViewController
@implementation ContactsTableViewController
#pragma mark Table view methods
void sync_toc_address_book (ABAddressBookRef addressBook, CFDictionaryRef info, void *context) {
ContactTableViewController* controller = (ContactTableViewController*)context;
ContactsTableViewController* controller = (ContactsTableViewController*)context;
OrderedDictionary* lAddressBookMap = controller->addressBookMap;
@synchronized (lAddressBookMap) {

View file

@ -19,22 +19,22 @@
#import <UIKit/UIKit.h>
#import "ContactTableViewController.h"
#import "ContactsTableViewController.h"
@interface ContactsViewController : UIViewController {
ContactTableViewController *tableController;
ContactsTableViewController *tableController;
UITableView *tableView;
UIButton *allButton;
UIButton *linphoneButton;
}
@property (nonatomic, retain) IBOutlet UITableViewController* tableController;
@property (nonatomic, retain) IBOutlet ContactsTableViewController* tableController;
@property (nonatomic, retain) IBOutlet UITableView *tableView;
@property (nonatomic, retain) IBOutlet UIButton* allButton;
@property (nonatomic, retain) IBOutlet UIButton* linphoneButton;
-(IBAction) onAllClick: (id) event;
-(IBAction) onLinphoneClick: (id) event;
- (IBAction)onAllClick:(id) event;
- (IBAction)onLinphoneClick:(id) event;
@end

View file

@ -374,7 +374,7 @@
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="1" key="6.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="69.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="76.CustomClassName">ContactTableViewController</string>
<string key="76.CustomClassName">ContactsTableViewController</string>
<string key="76.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
@ -386,11 +386,11 @@
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">ContactTableViewController</string>
<string key="className">ContactsTableViewController</string>
<string key="superclassName">UITableViewController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/ContactTableViewController.h</string>
<string key="minorKey">./Classes/ContactsTableViewController.h</string>
</object>
</object>
<object class="IBPartialClassDescription">

View file

@ -487,7 +487,6 @@
<int key="IBUIKeyboardType">3</int>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<int key="IBUIClearButtonMode">1</int>
<object class="IBUIFontDescription" key="IBUIFontDescription">
<string key="name">Helvetica</string>
<string key="family">Helvetica</string>

View file

@ -20,7 +20,10 @@
#import <UIKit/UIKit.h>
@interface HistoryTableViewController : UITableViewController {
@private
BOOL editMode;
}
- (void) toggleEditMode;
@end

View file

@ -23,9 +23,11 @@
@implementation HistoryTableViewController
-(void) doAction:(id)sender {
linphone_core_clear_call_logs([LinphoneManager getLc]);
[self.tableView reloadData];
- (id)init {
if((self = [super init]) != nil) {
self->editMode = false;
}
return self;
}
#pragma mark Table view methods
@ -48,6 +50,11 @@
const MSList * logs = linphone_core_get_call_logs([LinphoneManager getLc]);
LinphoneCallLog* callLogs = ms_list_nth_data(logs, indexPath.row);
if(editMode)
[cell enterEditMode];
else
[cell exitEditMode];
[cell update:callLogs];
return cell;
@ -61,10 +68,8 @@
LinphoneAddress* partyToCall;
if (callLogs->dir == LinphoneCallIncoming) {
partyToCall=callLogs->from;
} else {
partyToCall=callLogs->to;
}
const char* username = linphone_address_get_username(partyToCall)!=0?linphone_address_get_username(partyToCall):"";
const char* displayName = linphone_address_get_display_name(partyToCall)!=0?linphone_address_get_display_name(partyToCall):"";
@ -94,6 +99,11 @@
[dispName release];
}
- (void) toggleEditMode {
editMode = !editMode;
[(UITableView*)[self view] reloadData];
}
- (void)dealloc {
[super dealloc];
}

View file

@ -22,11 +22,13 @@
#import "HistoryTableViewController.h"
@interface HistoryViewController : UIViewController {
@private
HistoryTableViewController *tableController;
UITableView *tableView;
UIButton *allButton;
UIButton *missedButton;
UIButton *editButton;
}
@property (nonatomic, retain) IBOutlet HistoryTableViewController* tableController;
@ -34,8 +36,10 @@
@property (nonatomic, retain) IBOutlet UIButton* allButton;
@property (nonatomic, retain) IBOutlet UIButton* missedButton;
@property (nonatomic, retain) IBOutlet UIButton* editButton;
-(IBAction) onAllClick: (id) event;
-(IBAction) onMissedClick: (id) event;
- (IBAction)onAllClick:(id) event;
- (IBAction)onMissedClick:(id) event;
- (IBAction)onEditClick:(id) event;
@end

View file

@ -26,6 +26,7 @@
@synthesize allButton;
@synthesize missedButton;
@synthesize editButton;
typedef enum _HistoryView {
History_All,
@ -55,14 +56,29 @@ typedef enum _HistoryView {
- (void)viewDidLoad {
[super viewDidLoad];
[self changeView: History_All];
// Set selected+over background: IB lack !
[editButton setBackgroundImage:[UIImage imageNamed:@"ok-edit-list-history-over.png"]
forState:(UIControlStateHighlighted | UIControlStateSelected)];
}
- (IBAction)onAllClick: (id) event {
- (IBAction)onAllClick:(id) event {
[self changeView: History_All];
}
- (IBAction)onMissedClick: (id) event {
- (IBAction)onMissedClick:(id) event {
[self changeView: History_Missed];
}
- (IBAction)onEditClick:(id) event {
[tableController toggleEditMode];
}
- (void)dealloc {
[allButton release];
[missedButton release];
[editButton release];
[super dealloc];
}
@end

View file

@ -128,6 +128,10 @@
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">edit-history-over.png</string>
</object>
<object class="NSCustomResource" key="IBUISelectedBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">ok-edit-list-history-actif.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">edit-history-actif.png</string>
@ -241,6 +245,14 @@
</object>
<int key="connectionID">31</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">editButton</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="600417980"/>
</object>
<int key="connectionID">33</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">onAllClick:</string>
@ -259,6 +271,15 @@
</object>
<int key="connectionID">30</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">onEditClick:</string>
<reference key="source" ref="600417980"/>
<reference key="destination" ref="841351856"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">32</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">dataSource</string>
@ -370,14 +391,15 @@
<real value="1" key="4.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="1" key="5.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="6.CustomClassName">UIToggleButton</string>
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="1" key="6.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<real value="2" key="6.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">31</int>
<int key="maxID">33</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -394,6 +416,7 @@
<string key="superclassName">UIViewController</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="onAllClick:">id</string>
<string key="onEditClick:">id</string>
<string key="onMissedClick:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
@ -401,6 +424,10 @@
<string key="name">onAllClick:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onEditClick:">
<string key="name">onEditClick:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onMissedClick:">
<string key="name">onMissedClick:</string>
<string key="candidateClassName">id</string>
@ -408,6 +435,7 @@
</dictionary>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="allButton">UIButton</string>
<string key="editButton">UIButton</string>
<string key="missedButton">UIButton</string>
<string key="tableController">HistoryTableViewController</string>
<string key="tableView">UITableView</string>
@ -417,6 +445,10 @@
<string key="name">allButton</string>
<string key="candidateClassName">UIButton</string>
</object>
<object class="IBToOneOutletInfo" key="editButton">
<string key="name">editButton</string>
<string key="candidateClassName">UIButton</string>
</object>
<object class="IBToOneOutletInfo" key="missedButton">
<string key="name">missedButton</string>
<string key="candidateClassName">UIButton</string>
@ -435,6 +467,14 @@
<string key="minorKey">./Classes/HistoryViewController.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>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
@ -452,6 +492,7 @@
<string key="edit-history-over.png">{214, 117}</string>
<string key="missed-actif.png">{213, 117}</string>
<string key="missed-selectionne.png">{213, 117}</string>
<string key="ok-edit-list-history-actif.png">{214, 117}</string>
</dictionary>
<string key="IBCocoaTouchPluginVersion">1181</string>
</data>

View file

@ -415,7 +415,7 @@ void addAnimationFadeTransition(UIView* view, float duration) {
if ([LinphoneManager runningOnIpad]) {
//[visibleActionSheet showFromRect:transfer.bounds inView:transfer animated:NO];
} else
[visibleActionSheet showInView:self.view];
[visibleActionSheet showInView:[[UIApplication sharedApplication].delegate window]];
}
}
@ -543,8 +543,7 @@ static void hideSpinner(LinphoneCall* lc, void* user_data);
}
- (void)callUpdate: (NSNotification*) notif {
LinphoneCallWrapper *callWrapper = [notif.userInfo objectForKey: @"call"];
LinphoneCall *call = callWrapper->call;
LinphoneCall *call = [[notif.userInfo objectForKey: @"call"] pointerValue];
LinphoneCallState state = [[notif.userInfo objectForKey: @"state"] intValue];
const char* lUserNameChars=linphone_address_get_username(linphone_call_get_remote_address(call));
@ -655,7 +654,7 @@ static void hideSpinner(LinphoneCall* call, void* user_data) {
otherButtonTitles:nil];
visibleActionSheet.actionSheetStyle = UIActionSheetStyleDefault;
[visibleActionSheet showInView:self.view];
[visibleActionSheet showInView:[[UIApplication sharedApplication].delegate window]];
/* start cancel timer */
cd.timeout = [NSTimer scheduledTimerWithTimeInterval:30 target:self selector:@selector(dismissActionSheet:) userInfo:nil repeats:NO];
@ -972,7 +971,7 @@ static void hideSpinner(LinphoneCall* call, void* user_data) {
otherButtonTitles:nil];
visibleActionSheet.actionSheetStyle = UIActionSheetStyleDefault;
[visibleActionSheet showInView:self.view];
[visibleActionSheet showInView:[[UIApplication sharedApplication].delegate window]];
[visibleActionSheet release];
}
}

View file

@ -0,0 +1,31 @@
/* IncomingCallViewController.h
*
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import <UIKit/UIKit.h>
@interface IncomingCallViewController : UIViewController {
UILabel* addressLabel;
}
@property (nonatomic, retain) IBOutlet UILabel* addressLabel;
- (IBAction)onAcceptClick:(id) event;
- (IBAction)onDeclineClick:(id) event;
@end

View file

@ -0,0 +1,34 @@
/* IncomingCallViewController.m
*
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import "IncomingCallViewController.h"
@implementation IncomingCallViewController
@synthesize addressLabel;
- (IBAction)onAcceptClick:(id) event {
}
- (IBAction)onDeclineClick:(id) event {
}
@end

File diff suppressed because it is too large Load diff

View file

@ -78,7 +78,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
const MSList *elem=codecs;
for(;elem!=NULL;elem=elem->next){
PayloadType *pt=(PayloadType*)elem->data;
NSString *pref=[LinphoneManager getPrefForCodec:pt->mime_type withRate:pt->clock_rate];
NSString *pref=[LinphoneManager getPreferenceForCodec:pt->mime_type withRate:pt->clock_rate];
if (pref){
[self setBool: linphone_core_payload_type_enabled(lc,pt) forKey: pref];
}else{
@ -173,7 +173,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
if (linphone_core_tunnel_available()){
/*FIXME: enhance linphonecore API to handle tunnel more easily in applications */
LinphoneTunnel *tun=linphone_core_get_tunnel(lc);
//LinphoneTunnel *tun=linphone_core_get_tunnel(lc);
//[self setString: linphone_tunnel_get_servers(tun) forKey:tunnel_address_preference];
//[self setInteger: blabla forKey:tunnel_port_preference];
//[self setString: forKey:@"tunnel_enabled_preference"];
@ -350,12 +350,12 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
for (elem=linphone_core_get_audio_codecs(lc);elem!=NULL;elem=elem->next){
pt=(PayloadType*)elem->data;
NSString *pref=[LinphoneManager getPrefForCodec:pt->mime_type withRate:pt->clock_rate];
NSString *pref=[LinphoneManager getPreferenceForCodec:pt->mime_type withRate:pt->clock_rate];
linphone_core_enable_payload_type(lc,pt,[self boolForKey: pref]);
}
for (elem=linphone_core_get_video_codecs(lc);elem!=NULL;elem=elem->next){
pt=(PayloadType*)elem->data;
NSString *pref=[LinphoneManager getPrefForCodec:pt->mime_type withRate:pt->clock_rate];
NSString *pref=[LinphoneManager getPreferenceForCodec:pt->mime_type withRate:pt->clock_rate];
linphone_core_enable_payload_type(lc,pt,[self boolForKey: pref]);
}

View file

@ -35,6 +35,7 @@ typedef enum _PhoneView {
PhoneView_Chat,
PhoneView_Contacts,
PhoneView_InCall,
PhoneView_IncomingCall,
PhoneView_END
} PhoneView;
@ -43,6 +44,7 @@ typedef enum _Connectivity {
wwan
,none
} Connectivity;
@class FastAddressBook;
/* Application specific call context */
@ -62,14 +64,7 @@ typedef struct _LinphoneCallAppData {
int transferButtonIndex;
} LinphoneCallAppData;
@interface LinphoneCallWrapper : NSObject {
@public
LinphoneCall* call;
}
- (id) initWithCall: (LinphoneCall*) call;
@end
@interface LinphoneManager : NSObject <AVAudioSessionDelegate, IASKSettingsReaderFilterDelegate, IASKSettingsDelegate> {
@interface LinphoneManager : NSObject <AVAudioSessionDelegate> {
@protected
SCNetworkReachabilityRef proxyReachability;
@private
@ -96,10 +91,11 @@ typedef struct _LinphoneCallAppData {
+ (void)set:(UIView*)view hidden: (BOOL) hidden withName:(const char*)name andReason:(const char*) reason;
+ (void)set:(UIButton*)view enabled: (BOOL) enabled withName:(const char*)name andReason:(const char*) reason;
+ (void)logUIElementPressed:(const char*) name;
+ (void)abstractCall:(id) object dict:(NSDictionary *) dict;
- (void)registerLogView:(id<LogView>) view;
+ (NSString *)getPrefForCodec: (const char*) name withRate: (int) rate;
+ (NSString *)getPreferenceForCodec: (const char*) name withRate: (int) rate;
+ (BOOL)codecIsSupported:(NSString *) prefName;
- (void)startLibLinphone;
- (BOOL)isNotIphone3G;
- (void)destroyLibLinphone;

View file

@ -54,17 +54,6 @@ extern void libmssilk_init();
extern void libmsbcg729_init();
#endif
@implementation LinphoneCallWrapper
- (id) initWithCall: (LinphoneCall*) acall {
if((self = [super init]) != nil) {
call = acall;
}
return self;
}
@end
@implementation LinphoneManager
PhoneView currentView = -1;
@ -76,9 +65,9 @@ PhoneView currentView = -1;
@synthesize settingsStore;
struct codec_name_pref_table{
const char *name;
int rate;
NSString *prefname;
const char *name;
int rate;
NSString *prefname;
};
struct codec_name_pref_table codec_pref_table[]={
@ -98,7 +87,7 @@ struct codec_name_pref_table codec_pref_table[]={
{ NULL,0,Nil }
};
+ (NSString *) getPrefForCodec: (const char*) name withRate: (int) rate{
+ (NSString *)getPreferenceForCodec: (const char*) name withRate: (int) rate{
int i;
for(i=0;codec_pref_table[i].name!=NULL;++i){
if (strcasecmp(codec_pref_table[i].name,name)==0 && codec_pref_table[i].rate==rate)
@ -107,6 +96,15 @@ struct codec_name_pref_table codec_pref_table[]={
return Nil;
}
+ (BOOL)codecIsSupported:(NSString *) prefName{
int i;
for(i=0;codec_pref_table[i].name!=NULL;++i){
if ([prefName compare:codec_pref_table[i].prefname]==0){
return linphone_core_find_payload_type([LinphoneManager getLc],codec_pref_table[i].name, codec_pref_table[i].rate)!=NULL;
}
}
return TRUE;
}
- (id)init {
assert (!theLinphoneManager);
@ -221,7 +219,7 @@ struct codec_name_pref_table codec_pref_table[]={
return;
}
-(void) onCall:(LinphoneCall*) call StateChanged: (LinphoneCallState) new_state withMessage: (const char *) message {
- (void)onCall:(LinphoneCall*) call StateChanged: (LinphoneCallState) new_state withMessage: (const char *) message {
// Handling wrapper
if(new_state == LinphoneCallReleased) {
if(linphone_call_get_user_pointer(call) != NULL) {
@ -242,7 +240,7 @@ struct codec_name_pref_table codec_pref_table[]={
// Post event
NSDictionary* dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
[[[LinphoneCallWrapper alloc] initWithCall: call] autorelease], @"call",
[NSValue valueWithPointer:call], @"call",
[NSNumber numberWithInt:new_state], @"state",
[NSString stringWithUTF8String:message], @"message", nil] autorelease];
[[NSNotificationCenter defaultCenter] postNotificationName:@"LinphoneCallUpdate" object:self userInfo:dict];
@ -328,38 +326,12 @@ static void linphone_iphone_transfer_state_changed(LinphoneCore* lc, LinphoneCal
// Post event
NSDictionary* dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
[NSNumber numberWithInt:state], @"state",
[NSString stringWithFormat:@"%c", message], @"message",
[NSValue valueWithPointer:cfg], @"cfg",
[NSString stringWithUTF8String:message], @"message",
nil] autorelease];
[[NSNotificationCenter defaultCenter] postNotificationName:@"LinphoneRegistrationUpdate" object:self userInfo:dict];
// Show error
if (state == LinphoneRegistrationFailed) {
NSString* lErrorMessage=nil;
if (linphone_proxy_config_get_error(cfg) == LinphoneReasonBadCredentials) {
lErrorMessage = NSLocalizedString(@"Bad credentials, check your account settings",nil);
} else if (linphone_proxy_config_get_error(cfg) == LinphoneReasonNoResponse) {
lErrorMessage = NSLocalizedString(@"SIP server unreachable",nil);
}
if (lErrorMessage != nil
&& linphone_proxy_config_get_error(cfg) != LinphoneReasonNoResponse) { //do not report network connection issue on registration
//default behavior if no registration delegates
UIApplicationState s = [UIApplication sharedApplication].applicationState;
// do not stack error message when going to backgroud
if (s != UIApplicationStateBackground) {
UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Registration failure",nil)
message:lErrorMessage
delegate:nil
cancelButtonTitle:NSLocalizedString(@"Continue",nil)
otherButtonTitles:nil ,nil];
[error show];
[error release];
}
}
}
}
static void linphone_iphone_registration_state(LinphoneCore *lc, LinphoneProxyConfig* cfg, LinphoneRegistrationState state,const char* message) {
[(LinphoneManager*)linphone_core_get_user_data(lc) onRegister:lc cfg:cfg state:state message:message];
}
@ -502,6 +474,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
[[NSUserDefaults standardUserDefaults] setBool:true forKey:@"check_config_disable_preference"];
}
}
- (void)destroyLibLinphone {
[mIterateTimer invalidate];
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
@ -762,6 +735,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
linphone_core_start_dtmf_stream(theLinphoneCore);
}
- (void)registerLogView:(id<LogView>) view {
mLogView = view;
}
@ -778,6 +752,7 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
ms_message("Sound interruption ended!");
//let the user resume the call manually.
}
+ (BOOL)runningOnIpad {
#ifdef UI_USER_INTERFACE_IDIOM
return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
@ -803,80 +778,4 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
ms_message("UI - '%s' pressed", name);
}
+ (void)abstractCall:(id) object dict:(NSDictionary *) dict {
for (NSString* identifier in dict) {
if([identifier characterAtIndex:([identifier length] -1)] == ':') {
NSArray *arguments = [dict objectForKey:identifier];
SEL selector = NSSelectorFromString(identifier);
NSMethodSignature *signature = [object methodSignatureForSelector:selector];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setTarget:object];
[invocation setSelector:selector];
for(int i=0; i<[arguments count]; i++)
{
id arg = [arguments objectAtIndex:i];
[invocation setArgument:&arg atIndex:i+2]; // The first two arguments are the hidden arguments self and _cmd
}
[invocation invoke]; // Invoke the selector
} else {
NSDictionary *arguments = [dict objectForKey:identifier];
id new_object = [object performSelector:NSSelectorFromString(identifier)];
[LinphoneManager abstractCall:new_object dict:arguments];
}
}
}
- (void)settingsViewControllerDidEnd:(IASKAppSettingsViewController *)sender {
ms_message("Synchronize settings");
[[self settingsStore] synchronize];
}
- (BOOL)codecSupported:(NSString *) prefName{
int i;
for(i=0;codec_pref_table[i].name!=NULL;++i){
if ([prefName compare:codec_pref_table[i].prefname]==0){
return linphone_core_find_payload_type(theLinphoneCore,codec_pref_table[i].name, codec_pref_table[i].rate)!=NULL;
}
}
return TRUE;
}
- (NSDictionary*)filterPreferenceSpecifier:(NSDictionary *)specifier {
if (!theLinphoneCore) {
// LinphoneCore not ready: do not filter
return specifier;
}
NSString* identifier = [specifier objectForKey:@"Identifier"];
if (identifier == nil) {
identifier = [specifier objectForKey:@"Key"];
}
if (!identifier) {
// child pane maybe
NSString* title = [specifier objectForKey:@"Title"];
if ([title isEqualToString:@"Video"]) {
if (!linphone_core_video_supported(theLinphoneCore))
return nil;
}
return specifier;
}
// NSLog(@"Specifier received: %@", identifier);
if ([identifier isEqualToString:@"silk_24k_preference"]) {
if (![self isNotIphone3G])
return nil;
}
if ([identifier isEqualToString:@"backgroundmode_preference"]) {
UIDevice* device = [UIDevice currentDevice];
if ([device respondsToSelector:@selector(isMultitaskingSupported)]) {
if ([device isMultitaskingSupported]) {
return specifier;
}
}
// hide setting if bg mode not supported
return nil;
}
if (![self codecSupported:identifier])
return Nil;
return specifier;
}
@end

View file

@ -0,0 +1,33 @@
/* UIChatCell.h
*
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import <UIKit/UIKit.h>
@interface UIChatCell : UITableViewCell {
UILabel *displayNameLabel;
UILabel *chatContentLabel;
}
@property (nonatomic, retain) IBOutlet UILabel* displayNameLabel;
@property (nonatomic, retain) IBOutlet UILabel* chatContentLabel;
- (IBAction)onDetails: (id) event;
- (void)update;
@end

View file

@ -0,0 +1,75 @@
/* UIChatCell.m
*
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import "UIChatCell.h"
@implementation UIChatCell
@synthesize displayNameLabel;
@synthesize chatContentLabel;
- (id)init {
if ((self = [super init]) != nil) {
NSArray *arrayOfViews = [[NSBundle mainBundle] loadNibNamed:@"UIChatCell"
owner:self
options:nil];
if ([arrayOfViews count] >= 1) {
[self addSubview:[[arrayOfViews objectAtIndex:0] retain]];
}
}
return self;
}
- (IBAction)onDetails: (id) event {
}
- (void)update{
//
// Adapt size
//
CGRect firstNameFrame = [displayNameLabel frame];
CGRect lastNameFrame = [chatContentLabel frame];
lastNameFrame.origin.x -= firstNameFrame.size.width;
// Compute firstName size
CGSize contraints;
contraints.height = [displayNameLabel frame].size.height;
contraints.width = ([chatContentLabel frame].size.width + [chatContentLabel frame].origin.x) - [displayNameLabel frame].origin.x;
CGSize firstNameSize = [[displayNameLabel text] sizeWithFont:[displayNameLabel font] constrainedToSize: contraints];
firstNameFrame.size.width = firstNameSize.width;
// Compute lastName size & position
lastNameFrame.origin.x += firstNameFrame.size.width;
lastNameFrame.size.width = (contraints.width + [displayNameLabel frame].origin.x) - lastNameFrame.origin.x;
[displayNameLabel setFrame: firstNameFrame];
[chatContentLabel setFrame: lastNameFrame];
}
- (void)dealloc {
[displayNameLabel release];
[chatContentLabel release];
[super dealloc];
}
@end

View file

@ -0,0 +1,337 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1296</int>
<string key="IBDocument.SystemVersion">11E53</string>
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
<string key="IBDocument.AppKitVersion">1138.47</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">1181</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>IBUIButton</string>
<string>IBUIImageView</string>
<string>IBUIView</string>
<string>IBUILabel</string>
<string>IBProxyObject</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</array>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="IBProxyObject" id="372490531">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBProxyObject" id="975951072">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="316763236">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIImageView" id="567463562">
<reference key="NSNextResponder" ref="316763236"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{10, 8}, {27, 27}}</string>
<reference key="NSSuperview" ref="316763236"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="394118737"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUILabel" id="394118737">
<reference key="NSNextResponder" ref="316763236"/>
<int key="NSvFlags">274</int>
<string key="NSFrame">{{45, 0}, {60, 44}}</string>
<reference key="NSSuperview" ref="316763236"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="641729677"/>
<string key="NSReuseIdentifierKey">_NS:328</string>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<int key="IBUIContentMode">7</int>
<int key="IBUITag">2</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
<string key="IBUIAccessibilityLabel">Firstname</string>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<string key="IBUIText">John</string>
<object class="NSColor" key="IBUITextColor" id="829378485">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwIDAAA</bytes>
</object>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">10</float>
<object class="IBUIFontDescription" key="IBUIFontDescription">
<int key="type">1</int>
<double key="pointSize">25</double>
</object>
<object class="NSFont" key="IBUIFont">
<string key="NSName">Helvetica</string>
<double key="NSSize">25</double>
<int key="NSfFlags">16</int>
</object>
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
</object>
<object class="IBUILabel" id="641729677">
<reference key="NSNextResponder" ref="316763236"/>
<int key="NSvFlags">274</int>
<string key="NSFrame">{{110, 0}, {170, 44}}</string>
<reference key="NSSuperview" ref="316763236"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="162769001"/>
<string key="NSReuseIdentifierKey">_NS:328</string>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
<int key="IBUIContentMode">7</int>
<int key="IBUITag">2</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
<string key="IBUIAccessibilityLabel">Firstname</string>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<string key="IBUIText">This is a message</string>
<reference key="IBUITextColor" ref="829378485"/>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">10</float>
<object class="IBUIFontDescription" key="IBUIFontDescription">
<int key="type">1</int>
<double key="pointSize">12</double>
</object>
<object class="NSFont" key="IBUIFont">
<string key="NSName">Helvetica</string>
<double key="NSSize">12</double>
<int key="NSfFlags">16</int>
</object>
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
</object>
<object class="IBUIButton" id="162769001">
<reference key="NSNextResponder" ref="316763236"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{276, 0}, {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>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
<double key="IBUIImageEdgeInsets.top">11</double>
<double key="IBUIImageEdgeInsets.bottom">11</double>
<double key="IBUIImageEdgeInsets.left">11</double>
<double key="IBUIImageEdgeInsets.right">11</double>
<object class="NSColor" key="IBUIHighlightedTitleColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleShadowColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">bouton-detail-contact-over.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">bouton-detail-contact-actif.png</string>
</object>
<object class="IBUIFontDescription" key="IBUIFontDescription">
<int key="type">2</int>
<double key="pointSize">15</double>
</object>
<object class="NSFont" key="IBUIFont">
<string key="NSName">Helvetica-Bold</string>
<double key="NSSize">15</double>
<int key="NSfFlags">16</int>
</object>
</object>
</array>
<string key="NSFrameSize">{320, 44}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="567463562"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<object class="NSColorSpace" key="NSCustomColorSpace">
<int key="NSID">2</int>
</object>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">displayNameLabel</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="394118737"/>
</object>
<int key="connectionID">23</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">chatContentLabel</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="641729677"/>
</object>
<int key="connectionID">24</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">onDetails:</string>
<reference key="source" ref="162769001"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">22</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="372490531"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="975951072"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">17</int>
<reference key="object" ref="316763236"/>
<array class="NSMutableArray" key="children">
<reference ref="162769001"/>
<reference ref="567463562"/>
<reference ref="641729677"/>
<reference ref="394118737"/>
</array>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">18</int>
<reference key="object" ref="162769001"/>
<reference key="parent" ref="316763236"/>
<string key="objectName">detailsButton</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">19</int>
<reference key="object" ref="567463562"/>
<reference key="parent" ref="316763236"/>
<string key="objectName">imageView</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">20</int>
<reference key="object" ref="394118737"/>
<reference key="parent" ref="316763236"/>
<string key="objectName">displayNameLabel</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">21</int>
<reference key="object" ref="641729677"/>
<reference key="parent" ref="316763236"/>
<string key="objectName">chatContentLabel</string>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.CustomClassName">UIChatCell</string>
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="-2.CustomClassName">UIResponder</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="17.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="2" key="18.IBUIButtonInspectorSelectedEdgeInsetMetadataKey"/>
<real value="1" key="18.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">24</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">UIChatCell</string>
<string key="superclassName">UITableViewCell</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">onDetails:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<string key="NS.key.0">onDetails:</string>
<object class="IBActionInfo" key="NS.object.0">
<string key="name">onDetails:</string>
<string key="candidateClassName">id</string>
</object>
</object>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="chatContentLabel">UILabel</string>
<string key="displayNameLabel">UILabel</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="chatContentLabel">
<string key="name">chatContentLabel</string>
<string key="candidateClassName">UILabel</string>
</object>
<object class="IBToOneOutletInfo" key="displayNameLabel">
<string key="name">displayNameLabel</string>
<string key="candidateClassName">UILabel</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIChatCell.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
<real value="1296" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="bouton-detail-contact-actif.png">{45, 45}</string>
<string key="bouton-detail-contact-over.png">{45, 45}</string>
</dictionary>
<string key="IBCocoaTouchPluginVersion">1181</string>
</data>
</archive>

View file

@ -0,0 +1,26 @@
/* UICompositeViewController.h
*
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import <UIKit/UIKit.h>
@interface UICompositeViewController : UIViewController {
}
@end

View file

@ -0,0 +1,24 @@
/* UICompositeViewController.m
*
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Library General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import "UICompositeViewController.h"
@implementation UICompositeViewController
@end

View file

@ -0,0 +1,189 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1296</int>
<string key="IBDocument.SystemVersion">11E53</string>
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
<string key="IBDocument.AppKitVersion">1138.47</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">1181</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>IBProxyObject</string>
<string>IBUIView</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</array>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="IBProxyObject" id="372490531">
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBProxyObject" id="975951072">
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="191373211">
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIView" id="481442126">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">314</int>
<string key="NSFrame">{{0, 23}, {320, 380}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIClipsSubviews">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="256276698">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{320, 23}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="481442126"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<bool key="IBUIClipsSubviews">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="548578981">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">280</int>
<string key="NSFrame">{{0, 400}, {320, 60}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MCAwAA</bytes>
</object>
<bool key="IBUIClipsSubviews">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
</array>
<string key="NSFrame">{{0, 20}, {320, 460}}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<object class="NSColorSpace" key="NSCustomColorSpace">
<int key="NSID">2</int>
</object>
</object>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="191373211"/>
</object>
<int key="connectionID">3</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="191373211"/>
<array class="NSMutableArray" key="children">
<reference ref="481442126"/>
<reference ref="256276698"/>
<reference ref="548578981"/>
</array>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="372490531"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="975951072"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">15</int>
<reference key="object" ref="481442126"/>
<reference key="parent" ref="191373211"/>
<string key="objectName">content</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">14</int>
<reference key="object" ref="256276698"/>
<reference key="parent" ref="191373211"/>
<string key="objectName">stateBar</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">16</int>
<reference key="object" ref="548578981"/>
<reference key="parent" ref="191373211"/>
<string key="objectName">tabBar</string>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.CustomClassName">UICompositeViewController</string>
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="-2.CustomClassName">UIResponder</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="14.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="15.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="16.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">16</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">UICompositeViewController</string>
<string key="superclassName">UIViewController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UICompositeViewController.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
<real value="1296" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">1181</string>
</data>
</archive>

View file

@ -21,12 +21,13 @@
#import <AddressBook/AddressBook.h>
@interface UIContactCell : UITableViewCell {
UILabel *firstName;
UILabel *lastName;
UILabel *firstNameLabel;
UILabel *lastNameLabel;
}
@property (nonatomic, retain) IBOutlet UILabel* firstName;
@property (nonatomic, retain) IBOutlet UILabel* lastName;
@property (nonatomic, retain) IBOutlet UILabel* firstNameLabel;
@property (nonatomic, retain) IBOutlet UILabel* lastNameLabel;
- (void)update:(ABRecordRef) record;
@end

View file

@ -21,8 +21,8 @@
@implementation UIContactCell
@synthesize firstName;
@synthesize lastName;
@synthesize firstNameLabel;
@synthesize lastNameLabel;
- (id)init {
if ((self = [super init]) != nil) {
@ -45,21 +45,21 @@
[self setHighlighted:false animated:true];
}
- (void) update:(ABRecordRef) record {
- (void)update:(ABRecordRef) record {
CFStringRef lFirstName = ABRecordCopyValue(record, kABPersonFirstNameProperty);
CFStringRef lLocalizedFirstName = (lFirstName != nil)?ABAddressBookCopyLocalizedLabel(lFirstName):nil;
CFStringRef lLastName = ABRecordCopyValue(record, kABPersonLastNameProperty);
CFStringRef lLocalizedLastName = (lFirstName != nil)?ABAddressBookCopyLocalizedLabel(lLastName):nil;
if(lLocalizedFirstName != nil)
[firstName setText: [(NSString *)lLocalizedFirstName retain]];
[firstNameLabel setText: [(NSString *)lLocalizedFirstName retain]];
else
[firstName setText: @""];
[firstNameLabel setText: @""];
if(lLocalizedLastName != nil)
[lastName setText: [(NSString *)lLocalizedLastName retain]];
[lastNameLabel setText: [(NSString *)lLocalizedLastName retain]];
else
[lastName setText: @""];
[lastNameLabel setText: @""];
if(lLocalizedLastName != nil)
CFRelease(lLocalizedLastName);
@ -70,29 +70,32 @@
if(lFirstName != nil)
CFRelease(lFirstName);
CGRect firstNameFrame = [firstName frame];
CGRect lastNameFrame = [lastName frame];
//
// Adapt size
//
CGRect firstNameFrame = [firstNameLabel frame];
CGRect lastNameFrame = [lastNameLabel frame];
lastNameFrame.origin.x -= firstNameFrame.size.width;
// Compute firstName size
CGSize contraints;
contraints.height = [firstName frame].size.height;
contraints.width = ([lastName frame].size.width + [lastName frame].origin.x) - [firstName frame].origin.x;
CGSize firstNameSize = [[firstName text] sizeWithFont:[firstName font] constrainedToSize: contraints];
contraints.height = [firstNameLabel frame].size.height;
contraints.width = ([lastNameLabel frame].size.width + [lastNameLabel frame].origin.x) - [firstNameLabel frame].origin.x;
CGSize firstNameSize = [[firstNameLabel text] sizeWithFont:[firstNameLabel font] constrainedToSize: contraints];
firstNameFrame.size.width = firstNameSize.width;
// Compute lastName size & position
lastNameFrame.origin.x += firstNameFrame.size.width;
lastNameFrame.size.width = (contraints.width + [firstName frame].origin.x) - lastNameFrame.origin.x;
lastNameFrame.size.width = (contraints.width + [firstNameLabel frame].origin.x) - lastNameFrame.origin.x;
[firstName setFrame: firstNameFrame];
[lastName setFrame: lastNameFrame];
[firstNameLabel setFrame: firstNameFrame];
[lastNameLabel setFrame: lastNameFrame];
}
- (void) dealloc {
[firstName release];
[lastName release];
[firstNameLabel release];
[lastNameLabel release];
[super dealloc];
}

View file

@ -113,7 +113,6 @@
<string key="NSFrame">{{75, 0}, {200, 44}}</string>
<reference key="NSSuperview" ref="675878782"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:328</string>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClipsSubviews">YES</bool>
@ -144,7 +143,6 @@
<string key="NSFrameSize">{320, 44}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -168,19 +166,19 @@
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">firstName</string>
<string key="label">firstNameLabel</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="505648338"/>
</object>
<int key="connectionID">11</int>
<int key="connectionID">17</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">lastName</string>
<string key="label">lastNameLabel</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="261477247"/>
</object>
<int key="connectionID">12</int>
<int key="connectionID">18</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
@ -246,7 +244,7 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">16</int>
<int key="maxID">18</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -254,16 +252,16 @@
<string key="className">UIContactCell</string>
<string key="superclassName">UITableViewCell</string>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="firstName">UILabel</string>
<string key="lastName">UILabel</string>
<string key="firstNameLabel">UILabel</string>
<string key="lastNameLabel">UILabel</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="firstName">
<string key="name">firstName</string>
<object class="IBToOneOutletInfo" key="firstNameLabel">
<string key="name">firstNameLabel</string>
<string key="candidateClassName">UILabel</string>
</object>
<object class="IBToOneOutletInfo" key="lastName">
<string key="name">lastName</string>
<object class="IBToOneOutletInfo" key="lastNameLabel">
<string key="name">lastNameLabel</string>
<string key="candidateClassName">UILabel</string>
</object>
</dictionary>

View file

@ -23,13 +23,23 @@
@interface UIHistoryCell : UITableViewCell {
UIImageView* imageView;
UILabel* displayName;
UILabel* displayNameLabel;
UIButton* detailsButton;
UIButton* deleteButton;
@private
LinphoneCallLog *callLog;
}
@property (nonatomic, retain) IBOutlet UIImageView* imageView;
@property (nonatomic, retain) IBOutlet UILabel* displayName;
@property (nonatomic, retain) IBOutlet UILabel* displayNameLabel;
@property (nonatomic, retain) IBOutlet UIButton* detailsButton;
@property (nonatomic, retain) IBOutlet UIButton* deleteButton;
- (IBAction)onDetails:(id) event;
- (IBAction)onDelete:(id) event;
-(IBAction) onDetails: (id) event;
- (void)update:(LinphoneCallLog*) callLogs;
- (void)enterEditMode;
- (void)exitEditMode;
@end

View file

@ -18,11 +18,14 @@
*/
#import "UIHistoryCell.h"
#import "LinphoneManager.h"
@implementation UIHistoryCell
@synthesize displayName;
@synthesize displayNameLabel;
@synthesize imageView;
@synthesize deleteButton;
@synthesize detailsButton;
- (id)init {
if ((self = [super init]) != nil) {
@ -33,45 +36,65 @@
if ([arrayOfViews count] >= 1) {
[self addSubview:[[arrayOfViews objectAtIndex:0] retain]];
}
self->callLog = NULL;
}
return self;
}
- (IBAction)onDetails: (id) event {
- (IBAction)onDetails:(id) event {
if(callLog != NULL) {
}
}
- (void)update:(LinphoneCallLog*) callLogs {
- (IBAction)onDelete:(id)event {
if(callLog != NULL) {
linphone_core_remove_call_log([LinphoneManager getLc], callLog);
UITableView *parentTable = (UITableView *)self.superview;
[parentTable reloadData];
}
}
- (void)update:(LinphoneCallLog*) aCallLog {
self->callLog = aCallLog;
// Set up the cell...
LinphoneAddress* partyToDisplay;
NSString *name;
if (callLogs->dir == LinphoneCallIncoming) {
if (callLogs->status == LinphoneCallSuccess) {
name = callLogs->video_enabled?@"appel-entrant.png":@"appel-entrant.png";
UIImage *image;
if (aCallLog->dir == LinphoneCallIncoming) {
if (aCallLog->status == LinphoneCallSuccess) {
image = [UIImage imageNamed:aCallLog->video_enabled?@"appel-entrant.png":@"appel-entrant.png"];
} else {
//missed call
name = @"appel-manque.png";
image = [UIImage imageNamed:@"appel-manque.png"];
}
partyToDisplay=callLogs->from;
partyToDisplay = aCallLog->from;
} else {
name = callLogs->video_enabled?@"appel-sortant.png":@"appel-sortant.png";
partyToDisplay=callLogs->to;
image = [UIImage imageNamed:aCallLog->video_enabled?@"appel-sortant.png":@"appel-sortant.png"];
partyToDisplay = aCallLog->to;
}
UIImage *image = [UIImage imageNamed:name];
const char* username = linphone_address_get_username(partyToDisplay)!=0?linphone_address_get_username(partyToDisplay):"";
//TODO
const char* username = linphone_address_get_username(partyToDisplay)!=0?linphone_address_get_username(partyToDisplay):"";
//const char* displayName = linphone_address_get_display_name(partyToDisplay);
[displayName setText:[NSString stringWithFormat:@"%s", username]];
[displayNameLabel setText:[NSString stringWithUTF8String: username]];
[imageView setImage: image];
}
- (void)enterEditMode {
[deleteButton setHidden:false];
[detailsButton setHidden:true];
}
- (void)exitEditMode {
[detailsButton setHidden:false];
[deleteButton setHidden:true];
}
- (void) dealloc {
[displayName release];
[detailsButton release];
[deleteButton release];
[displayNameLabel release];
[imageView release];
[super dealloc];

View file

@ -90,7 +90,7 @@
<string key="NSFrame">{{276, 0}, {44, 44}}</string>
<reference key="NSSuperview" ref="702431052"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<reference key="NSNextKeyView" ref="192050775"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@ -101,15 +101,7 @@
<double key="IBUIImageEdgeInsets.bottom">11</double>
<double key="IBUIImageEdgeInsets.left">11</double>
<double key="IBUIImageEdgeInsets.right">11</double>
<object class="NSColor" key="IBUIHighlightedTitleColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleShadowColor">
<object class="NSColor" key="IBUINormalTitleShadowColor" id="936824754">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
@ -121,16 +113,44 @@
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">bouton-detail-contact-actif.png</string>
</object>
<object class="IBUIFontDescription" key="IBUIFontDescription">
<object class="IBUIFontDescription" key="IBUIFontDescription" id="954936864">
<int key="type">2</int>
<double key="pointSize">15</double>
</object>
<object class="NSFont" key="IBUIFont">
<object class="NSFont" key="IBUIFont" id="377778557">
<string key="NSName">Helvetica-Bold</string>
<double key="NSSize">15</double>
<int key="NSfFlags">16</int>
</object>
</object>
<object class="IBUIButton" id="192050775">
<reference key="NSNextResponder" ref="702431052"/>
<int key="NSvFlags">-2147483356</int>
<string key="NSFrame">{{276, 0}, {44, 44}}</string>
<reference key="NSSuperview" ref="702431052"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
<double key="IBUIImageEdgeInsets.top">11</double>
<double key="IBUIImageEdgeInsets.bottom">11</double>
<double key="IBUIImageEdgeInsets.left">11</double>
<double key="IBUIImageEdgeInsets.right">11</double>
<reference key="IBUINormalTitleShadowColor" ref="936824754"/>
<object class="NSCustomResource" key="IBUIHighlightedImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">croix-supprimer-ligne-liste-history-over.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">croix-supprimer-ligne-liste-history-actif.png</string>
</object>
<reference key="IBUIFontDescription" ref="954936864"/>
<reference key="IBUIFont" ref="377778557"/>
</object>
</array>
<string key="NSFrameSize">{320, 44}</string>
<reference key="NSSuperview"/>
@ -159,11 +179,45 @@
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">displayName</string>
<string key="label">displayNameLabel</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="123093962"/>
</object>
<int key="connectionID">8</int>
<int key="connectionID">14</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">deleteButton</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="192050775"/>
</object>
<int key="connectionID">16</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">detailsButton</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="364135044"/>
</object>
<int key="connectionID">17</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">onDetails:</string>
<reference key="source" ref="364135044"/>
<reference key="destination" ref="841351856"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">19</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">onDelete:</string>
<reference key="source" ref="192050775"/>
<reference key="destination" ref="841351856"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">18</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
@ -192,6 +246,7 @@
<reference ref="123093962"/>
<reference ref="811339934"/>
<reference ref="364135044"/>
<reference ref="192050775"/>
</array>
<reference key="parent" ref="0"/>
</object>
@ -205,7 +260,7 @@
<int key="objectID">5</int>
<reference key="object" ref="123093962"/>
<reference key="parent" ref="702431052"/>
<string key="objectName">firstName</string>
<string key="objectName">displayNameLabel</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
@ -213,6 +268,12 @@
<reference key="parent" ref="702431052"/>
<string key="objectName">detailsButton</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">15</int>
<reference key="object" ref="192050775"/>
<reference key="parent" ref="702431052"/>
<string key="objectName">deleteButton</string>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
@ -221,41 +282,57 @@
<string key="-2.CustomClassName">UIResponder</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="15.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="2" key="15.IBUIButtonInspectorSelectedEdgeInsetMetadataKey"/>
<real value="0.0" key="15.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="2" key="7.IBUIButtonInspectorSelectedEdgeInsetMetadataKey"/>
<real value="1" key="7.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
<real value="0.0" key="7.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">13</int>
<int key="maxID">19</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">UIHistoryCell</string>
<string key="superclassName">UITableViewCell</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">onDetails:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<string key="NS.key.0">onDetails:</string>
<object class="IBActionInfo" key="NS.object.0">
<dictionary class="NSMutableDictionary" key="actions">
<string key="onDelete:">id</string>
<string key="onDetails:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="onDelete:">
<string key="name">onDelete:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="onDetails:">
<string key="name">onDetails:</string>
<string key="candidateClassName">id</string>
</object>
</object>
</dictionary>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="displayName">UILabel</string>
<string key="deleteButton">UIButton</string>
<string key="detailsButton">UIButton</string>
<string key="displayNameLabel">UILabel</string>
<string key="imageView">UIImageView</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="displayName">
<string key="name">displayName</string>
<object class="IBToOneOutletInfo" key="deleteButton">
<string key="name">deleteButton</string>
<string key="candidateClassName">UIButton</string>
</object>
<object class="IBToOneOutletInfo" key="detailsButton">
<string key="name">detailsButton</string>
<string key="candidateClassName">UIButton</string>
</object>
<object class="IBToOneOutletInfo" key="displayNameLabel">
<string key="name">displayNameLabel</string>
<string key="candidateClassName">UILabel</string>
</object>
<object class="IBToOneOutletInfo" key="imageView">
@ -281,6 +358,8 @@
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="bouton-detail-contact-actif.png">{45, 45}</string>
<string key="bouton-detail-contact-over.png">{45, 45}</string>
<string key="croix-supprimer-ligne-liste-history-actif.png">{45, 45}</string>
<string key="croix-supprimer-ligne-liste-history-over.png">{45, 45}</string>
</dictionary>
<string key="IBCocoaTouchPluginVersion">1181</string>
</data>

View file

@ -68,16 +68,16 @@
}
-(void) onOn {
[NSException raise:NSInternalInconsistencyException
format:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)];
/*[NSException raise:NSInternalInconsistencyException
format:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)];*/
}
-(void) onOff {
[NSException raise:NSInternalInconsistencyException
format:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)];
/*[NSException raise:NSInternalInconsistencyException
format:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)];*/
}
-(bool) onUpdate {
[NSException raise:NSInternalInconsistencyException
format:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)];
/*[NSException raise:NSInternalInconsistencyException
format:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)];*/
return false;
}

View file

@ -68,20 +68,27 @@
- (bool)onUpdate {
if([LinphoneManager isLcReady]) {
bool val = false;
LinphoneCall* currentCall = linphone_core_get_current_call([LinphoneManager getLc]);
if (currentCall) {
LinphoneCallState state = linphone_call_get_state(currentCall);
if (state == LinphoneCallStreamsRunning || state == LinphoneCallUpdated || state == LinphoneCallUpdatedByRemote) {
if (linphone_call_params_video_enabled(linphone_call_get_current_params(currentCall))) {
val = true;
if(linphone_core_video_enabled([LinphoneManager getLc])) {
LinphoneCall* currentCall = linphone_core_get_current_call([LinphoneManager getLc]);
if (currentCall) {
LinphoneCallState state = linphone_call_get_state(currentCall);
if (state == LinphoneCallStreamsRunning || state == LinphoneCallUpdated || state == LinphoneCallUpdatedByRemote) {
if (linphone_call_params_video_enabled(linphone_call_get_current_params(currentCall))) {
val = true;
}
[self setEnabled:TRUE];
} else {
// Disable button if the call is not running
[self setEnabled:FALSE];
}
[self setEnabled:TRUE];
} else {
// Disable button if there is no call
[self setEnabled:FALSE];
}
} else {
// Disable button if video is not enabled
[self setEnabled:FALSE];
}
}
return val;
} else {
//not ready yet

View file

@ -16,9 +16,11 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import "MainScreenWithVideoPreview.h"
#import <AVFoundation/AVFoundation.h>
#import "LinphoneUI/LinphoneManager.h"
#import "MainScreenWithVideoPreview.h"
#import "LinphoneManager.h"
@implementation MainScreenWithVideoPreview
@synthesize window;

View file

@ -23,10 +23,13 @@
#import "DialerViewController.h"
#import "HistoryViewController.h"
#import "ContactsViewController.h"
#import "IncomingCallViewController.h"
#import "InCallViewController.h"
#import "SettingsViewController.h"
#import "ChatViewController.h"
#import "AbstractCall.h"
@implementation ViewsDescription
- (id)copy {
@ -207,7 +210,7 @@
// Call abstractCall
NSDictionary *dict = [notif.userInfo objectForKey: @"args"];
if(dict != nil)
[LinphoneManager abstractCall:currentViewDescription->content dict:dict];
[AbstractCall call:currentViewDescription->content dict:dict];
// Dealloc old view description
if(oldViewDescription != nil) {
@ -275,6 +278,20 @@
historyDescription->tabBarEnabled = true;
[viewDescriptions setObject:historyDescription forKey:[NSNumber numberWithInt: PhoneView_History]];
//
// IncomingCall View
//
IncomingCallViewController* myIncomingCallController = [[IncomingCallViewController alloc]
initWithNibName:@"IncomingCallViewController"
bundle:[NSBundle mainBundle]];
//[myChatViewController loadView];
ViewsDescription *incomingCallDescription = [ViewsDescription alloc];
incomingCallDescription->content = myIncomingCallController;
incomingCallDescription->tabBar = mainTabBarController;
incomingCallDescription->statusEnabled = true;
incomingCallDescription->fullscreen = false;
incomingCallDescription->tabBarEnabled = true;
[viewDescriptions setObject:incomingCallDescription forKey:[NSNumber numberWithInt: PhoneView_Chat]];
//
// InCall View
@ -285,10 +302,10 @@
//[myInCallController loadView];
ViewsDescription *inCallDescription = [ViewsDescription alloc];
inCallDescription->content = myInCallController;
inCallDescription->tabBar = callTabBarController;
inCallDescription->tabBar = nil;
inCallDescription->statusEnabled = true;
inCallDescription->fullscreen = false;
inCallDescription->tabBarEnabled = true;
inCallDescription->tabBarEnabled = false;
[viewDescriptions setObject:inCallDescription forKey:[NSNumber numberWithInt: PhoneView_InCall]];
@ -302,7 +319,7 @@
ViewsDescription *settingsDescription = [ViewsDescription alloc];
settingsDescription->content = mySettingsViewController;
settingsDescription->tabBar = mainTabBarController;
settingsDescription->statusEnabled = true;
settingsDescription->statusEnabled = false;
settingsDescription->fullscreen = false;
settingsDescription->tabBarEnabled = true;
[viewDescriptions setObject:settingsDescription forKey:[NSNumber numberWithInt: PhoneView_Settings]];
@ -317,10 +334,10 @@
ViewsDescription *chatDescription = [ViewsDescription alloc];
chatDescription->content = myChatViewController;
chatDescription->tabBar = mainTabBarController;
chatDescription->statusEnabled = true;
chatDescription->statusEnabled = false;
chatDescription->fullscreen = false;
chatDescription->tabBarEnabled = true;
[viewDescriptions setObject:settingsDescription forKey:[NSNumber numberWithInt: PhoneView_Chat]];
[viewDescriptions setObject:chatDescription forKey:[NSNumber numberWithInt: PhoneView_Chat]];
// Set observers
[[NSNotificationCenter defaultCenter] addObserver:self
@ -331,6 +348,11 @@
selector:@selector(callUpdate:)
name:@"LinphoneCallUpdate"
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(registrationUpdate:)
name:@"LinphoneRegistrationUpdate"
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(batteryLevelChanged:)
name:UIDeviceBatteryLevelDidChangeNotification
@ -341,9 +363,40 @@
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)registrationUpdate: (NSNotification*) notif {
LinphoneRegistrationState state = [[notif.userInfo objectForKey: @"state"] intValue];
LinphoneProxyConfig *cfg = [[notif.userInfo objectForKey: @"cfg"] pointerValue];
// Show error
if (state == LinphoneRegistrationFailed) {
NSString* lErrorMessage=nil;
if (linphone_proxy_config_get_error(cfg) == LinphoneReasonBadCredentials) {
lErrorMessage = NSLocalizedString(@"Bad credentials, check your account settings",nil);
} else if (linphone_proxy_config_get_error(cfg) == LinphoneReasonNoResponse) {
lErrorMessage = NSLocalizedString(@"SIP server unreachable",nil);
}
if (lErrorMessage != nil && linphone_proxy_config_get_error(cfg) != LinphoneReasonNoResponse) {
//do not report network connection issue on registration
//default behavior if no registration delegates
UIApplicationState s = [UIApplication sharedApplication].applicationState;
// do not stack error message when going to backgroud
if (s != UIApplicationStateBackground) {
UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Registration failure",nil)
message:lErrorMessage
delegate:nil
cancelButtonTitle:NSLocalizedString(@"Continue",nil)
otherButtonTitles:nil ,nil];
[error show];
[error release];
}
}
}
}
- (void)callUpdate: (NSNotification*) notif {
LinphoneCallWrapper *callWrapper = [notif.userInfo objectForKey: @"call"];
LinphoneCall *call = callWrapper->call;
LinphoneCall *call = [[notif.userInfo objectForKey: @"call"] pointerValue];
LinphoneCallState state = [[notif.userInfo objectForKey: @"state"] intValue];
NSString *message = [notif.userInfo objectForKey: @"message"];
@ -370,14 +423,7 @@
const LinphoneCallParams* current = linphone_call_get_current_params(call);
const LinphoneCallParams* remote = linphone_call_get_remote_params(call);
/* remote wants to add video */
if (!linphone_call_params_video_enabled(current) &&
linphone_call_params_video_enabled(remote) &&
!linphone_core_get_video_policy([LinphoneManager getLc])->automatically_accept) {
linphone_core_defer_call_update([LinphoneManager getLc], call);
//TODO
//[self displayAskToEnableVideoCall:call forUser:lUserName withDisplayName:lDisplayName];
} else if (linphone_call_params_video_enabled(current) && !linphone_call_params_video_enabled(remote)) {
if (linphone_call_params_video_enabled(current) && !linphone_call_params_video_enabled(remote)) {
if ([[LinphoneManager instance] currentView] != PhoneView_InCall) {
[[LinphoneManager instance] changeView:PhoneView_InCall];
}

View file

@ -46,7 +46,7 @@
<string key="NSFrame">{{0, 23}, {320, 380}}</string>
<reference key="NSSuperview" ref="891400674"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="565712161"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIClipsSubviews">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@ -95,114 +95,6 @@
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="591517680">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIView" id="621041757">
<reference key="NSNextResponder" ref="591517680"/>
<int key="NSvFlags">-2147483356</int>
<string key="NSFrame">{{0, 9}, {320, 67}}</string>
<reference key="NSSuperview" ref="591517680"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1031661555"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
<reference key="NSCustomColorSpace" ref="267218165"/>
</object>
<int key="IBUITag">-1</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIButton" id="16200461">
<reference key="NSNextResponder" ref="591517680"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{160, 77}</string>
<reference key="NSSuperview" ref="591517680"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="621041757"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
<string key="IBUIAccessibilityLabel">Accept</string>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIHighlightedTitleColor" ref="197650205"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleShadowColor" id="308826858">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">decrocher-over.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">decrocher-actif.png</string>
</object>
<object class="IBUIFontDescription" key="IBUIFontDescription" id="9235248">
<int key="type">2</int>
<double key="pointSize">15</double>
</object>
<object class="NSFont" key="IBUIFont" id="756910294">
<string key="NSName">Helvetica-Bold</string>
<double key="NSSize">15</double>
<int key="NSfFlags">16</int>
</object>
</object>
<object class="IBUIButton" id="1031661555">
<reference key="NSNextResponder" ref="591517680"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{160, 0}, {160, 77}}</string>
<reference key="NSSuperview" ref="591517680"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
<string key="IBUIAccessibilityLabel">Decline</string>
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIHighlightedTitleColor" ref="197650205"/>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="308826858"/>
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">refuser-over.png</string>
</object>
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">refuser-actif.png</string>
</object>
<reference key="IBUIFontDescription" ref="9235248"/>
<reference key="IBUIFont" ref="756910294"/>
</object>
</object>
<string key="NSFrameSize">{320, 77}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="16200461"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAxIDAuMTkxOTQ1NDc1NSAwAA</bytes>
</object>
<bool key="IBUIAutoresizesSubviews">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="909644813">
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
@ -245,7 +137,10 @@
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<reference key="IBUINormalTitleShadowColor" ref="308826858"/>
<object class="NSColor" key="IBUINormalTitleShadowColor" id="308826858">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">contact-over-add-call.png</string>
@ -254,8 +149,15 @@
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">contact-actif-add-call.png</string>
</object>
<reference key="IBUIFontDescription" ref="9235248"/>
<reference key="IBUIFont" ref="756910294"/>
<object class="IBUIFontDescription" key="IBUIFontDescription" id="9235248">
<int key="type">2</int>
<double key="pointSize">15</double>
</object>
<object class="NSFont" key="IBUIFont" id="29819411">
<string key="NSName">Helvetica-Bold</string>
<double key="NSSize">15</double>
<int key="NSfFlags">16</int>
</object>
</object>
<object class="IBUIButton" id="242616498">
<reference key="NSNextResponder" ref="909644813"/>
@ -286,7 +188,7 @@
<string key="NSResourceName">cancel-actif.png</string>
</object>
<reference key="IBUIFontDescription" ref="9235248"/>
<reference key="IBUIFont" ref="756910294"/>
<reference key="IBUIFont" ref="29819411"/>
</object>
<object class="IBUIButton" id="143858935">
<reference key="NSNextResponder" ref="909644813"/>
@ -319,7 +221,7 @@
</object>
<reference key="IBUINormalBackgroundImage" ref="754280770"/>
<reference key="IBUIFontDescription" ref="9235248"/>
<reference key="IBUIFont" ref="756910294"/>
<reference key="IBUIFont" ref="29819411"/>
</object>
</object>
<string key="NSFrameSize">{320, 72}</string>
@ -387,14 +289,6 @@
</object>
<int key="connectionID">160</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">contentView</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="813768660"/>
</object>
<int key="connectionID">159</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mainTabBarController</string>
@ -427,6 +321,14 @@
</object>
<int key="connectionID">202</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">contentView</string>
<reference key="source" ref="841351856"/>
<reference key="destination" ref="813768660"/>
</object>
<int key="connectionID">159</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@ -450,18 +352,6 @@
<reference key="object" ref="450319686"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">123</int>
<reference key="object" ref="591517680"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="16200461"/>
<reference ref="1031661555"/>
<reference ref="621041757"/>
</object>
<reference key="parent" ref="0"/>
<string key="objectName">incomingTabBar</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">129</int>
<reference key="object" ref="909644813"/>
@ -529,27 +419,6 @@
<reference key="parent" ref="909644813"/>
<string key="objectName">mask</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">127</int>
<reference key="object" ref="1031661555"/>
<reference key="parent" ref="591517680"/>
<string key="objectName">decline</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">170</int>
<reference key="object" ref="621041757"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
<reference key="parent" ref="591517680"/>
<string key="objectName">mask</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">124</int>
<reference key="object" ref="16200461"/>
<reference key="parent" ref="591517680"/>
<string key="objectName">accept</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">175</int>
<reference key="object" ref="512515388"/>
@ -584,11 +453,6 @@
<string>-1.IBPluginDependency</string>
<string>-2.CustomClassName</string>
<string>-2.IBPluginDependency</string>
<string>123.IBPluginDependency</string>
<string>124.IBPluginDependency</string>
<string>124.IBUIButtonInspectorSelectedStateConfigurationMetadataKey</string>
<string>127.IBPluginDependency</string>
<string>127.IBUIButtonInspectorSelectedStateConfigurationMetadataKey</string>
<string>129.IBPluginDependency</string>
<string>130.IBPluginDependency</string>
<string>130.IBUIButtonInspectorSelectedStateConfigurationMetadataKey</string>
@ -599,7 +463,6 @@
<string>135.IBPluginDependency</string>
<string>152.IBPluginDependency</string>
<string>169.IBPluginDependency</string>
<string>170.IBPluginDependency</string>
<string>175.IBPluginDependency</string>
<string>178.CustomClassName</string>
<string>178.IBPluginDependency</string>
@ -617,11 +480,6 @@
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="2"/>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="2"/>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="1"/>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<real value="2"/>
@ -631,7 +489,6 @@
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UIMainBar</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UIStateBar</string>
@ -653,7 +510,7 @@
<reference key="dict.values" ref="0"/>
</object>
<nil key="sourceID"/>
<int key="maxID">202</int>
<int key="maxID">207</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@ -1025,12 +882,8 @@
<string>cancel-over.png</string>
<string>contact-actif-add-call.png</string>
<string>contact-over-add-call.png</string>
<string>decrocher-actif.png</string>
<string>decrocher-over.png</string>
<string>dialer-actif.png</string>
<string>dialer-over.png</string>
<string>refuser-actif.png</string>
<string>refuser-over.png</string>
</object>
<object class="NSArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -1038,12 +891,8 @@
<string>{254, 144}</string>
<string>{254, 144}</string>
<string>{254, 144}</string>
<string>{320, 154}</string>
<string>{320, 154}</string>
<string>{128, 154}</string>
<string>{128, 154}</string>
<string>{320, 154}</string>
<string>{320, 154}</string>
</object>
</object>
<string key="IBCocoaTouchPluginVersion">1181</string>

View file

@ -21,7 +21,7 @@
#import "IASKAppSettingsViewController.h"
@interface SettingsViewController: UIViewController {
@interface SettingsViewController: UIViewController<IASKSettingsReaderFilterDelegate, IASKSettingsDelegate> {
IASKAppSettingsViewController *settingsController;
UINavigationController *navigationController;
}

View file

@ -27,7 +27,7 @@
- (void)viewDidLoad {
settingsController.delegate = [LinphoneManager instance];
settingsController.settingsReaderDelegate = [LinphoneManager instance];
settingsController.settingsReaderDelegate = self;
settingsController.settingsStore=[[LinphoneManager instance] settingsStore];
settingsController.showCreditsFooter = FALSE;
@ -35,4 +35,47 @@
[self.view addSubview: navigationController.view];
}
- (NSDictionary*)filterPreferenceSpecifier:(NSDictionary *)specifier {
if (![LinphoneManager isLcReady]) {
// LinphoneCore not ready: do not filter
return specifier;
}
NSString* identifier = [specifier objectForKey:@"Identifier"];
if (identifier == nil) {
identifier = [specifier objectForKey:@"Key"];
}
if (!identifier) {
// child pane maybe
NSString* title = [specifier objectForKey:@"Title"];
if ([title isEqualToString:@"Video"]) {
if (!linphone_core_video_supported([LinphoneManager getLc]))
return nil;
}
return specifier;
}
// NSLog(@"Specifier received: %@", identifier);
if ([identifier isEqualToString:@"silk_24k_preference"]) {
if (![[LinphoneManager instance] isNotIphone3G])
return nil;
}
if ([identifier isEqualToString:@"backgroundmode_preference"]) {
UIDevice* device = [UIDevice currentDevice];
if ([device respondsToSelector:@selector(isMultitaskingSupported)]) {
if ([device isMultitaskingSupported]) {
return specifier;
}
}
// hide setting if bg mode not supported
return nil;
}
if (![LinphoneManager codecIsSupported:identifier])
return Nil;
return specifier;
}
- (void)settingsViewControllerDidEnd:(IASKAppSettingsViewController *)sender {
ms_message("Synchronize settings");
[[[LinphoneManager instance] settingsStore] synchronize];
}
@end

View file

@ -62,12 +62,12 @@
<bool key="IBUIMultipleTouchEnabled">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<array key="IBUIViewControllers">
<array class="NSMutableArray" key="IBUIViewControllers">
<object class="IBUIViewController" id="73380722">
<bool key="IBUIAutoresizesArchivedViewToFullSize">NO</bool>
<object class="IBUINavigationItem" key="IBUINavigationItem" id="1014852814">
<reference key="IBUINavigationBar"/>
<string key="IBUITitle">Item</string>
<string key="IBUITitle">Settings</string>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<reference key="IBUIParentViewController" ref="983459891"/>

View file

@ -0,0 +1,27 @@
/* AbstractCall.h
*
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import <Foundation/Foundation.h>
@interface AbstractCall : NSObject {
}
+ (void)call:(id) object dict:(NSDictionary *) dict;
@end

View file

@ -0,0 +1,47 @@
/* AbstractCall.m
*
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#import "AbstractCall.h"
@implementation AbstractCall
+ (void)call:(id) object dict:(NSDictionary *) dict {
for (NSString* identifier in dict) {
if([identifier characterAtIndex:([identifier length] -1)] == ':') {
NSArray *arguments = [dict objectForKey:identifier];
SEL selector = NSSelectorFromString(identifier);
NSMethodSignature *signature = [object methodSignatureForSelector:selector];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setTarget:object];
[invocation setSelector:selector];
for(int i=0; i<[arguments count]; i++)
{
id arg = [arguments objectAtIndex:i];
[invocation setArgument:&arg atIndex:i+2]; // The first two arguments are the hidden arguments self and _cmd
}
[invocation invoke]; // Invoke the selector
} else {
NSDictionary *arguments = [dict objectForKey:identifier];
id new_object = [object performSelector:NSSelectorFromString(identifier)];
[AbstractCall call:new_object dict:arguments];
}
}
}
@end

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

View file

@ -42,7 +42,6 @@
224567C2107B968500F10948 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 224567C1107B968500F10948 /* AVFoundation.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
2245F78A1201D38000C4179D /* MoreViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 22E0A81B111C44E100B04932 /* MoreViewController.xib */; };
2248E90E12F7E4CF00220D9C /* UIDigitButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2248E90D12F7E4CF00220D9C /* UIDigitButton.m */; };
2248E99F12F801C200220D9C /* LinphoneManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2248E99E12F801C200220D9C /* LinphoneManager.m */; };
225CB2FA11ABB76400628906 /* linphone-banner.png in Resources */ = {isa = PBXBuildFile; fileRef = 225CB2F911ABB76400628906 /* linphone-banner.png */; };
226183AD1472527D0037138E /* libSKP_SILK_SDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AA1472527D0037138E /* libSKP_SILK_SDK.a */; };
226183AE1472527D0037138E /* libsrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AB1472527D0037138E /* libsrtp.a */; };
@ -91,7 +90,6 @@
22D8F14A147548E2008C97DB /* MoreViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22E0A81C111C44E100B04932 /* MoreViewController.m */; };
22D8F14B147548E2008C97DB /* ConsoleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 22E0A81F111C44E100B04932 /* ConsoleViewController.m */; };
22D8F14C147548E2008C97DB /* UIDigitButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2248E90D12F7E4CF00220D9C /* UIDigitButton.m */; };
22D8F14D147548E2008C97DB /* LinphoneManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2248E99E12F801C200220D9C /* LinphoneManager.m */; };
22D8F14E147548E2008C97DB /* UICallButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2214EB7912F846B1002A5394 /* UICallButton.m */; };
22D8F14F147548E2008C97DB /* UIHangUpButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2214EB8812F84EBB002A5394 /* UIHangUpButton.m */; };
22D8F151147548E2008C97DB /* UIMicroButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2214EBF212F86360002A5394 /* UIMicroButton.m */; };
@ -185,6 +183,10 @@
70E542F513E147EB002BA2C0 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70E542F413E147EB002BA2C0 /* QuartzCore.framework */; };
D31AC4B0158A29C600C2638B /* UIHistoryCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D31AC4AF158A29C600C2638B /* UIHistoryCell.xib */; };
D31AC4B1158A29C600C2638B /* UIHistoryCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D31AC4AF158A29C600C2638B /* UIHistoryCell.xib */; };
D31B4B21159876C0002E6C72 /* UICompositeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D31B4B1F159876C0002E6C72 /* UICompositeViewController.m */; };
D31B4B22159876C0002E6C72 /* UICompositeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D31B4B1F159876C0002E6C72 /* UICompositeViewController.m */; };
D31B4B23159876C0002E6C72 /* UICompositeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D31B4B20159876C0002E6C72 /* UICompositeViewController.xib */; };
D31B4B24159876C0002E6C72 /* UICompositeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D31B4B20159876C0002E6C72 /* UICompositeViewController.xib */; };
D31C9C8A158A179A00756B45 /* fond-detail-numero.png in Resources */ = {isa = PBXBuildFile; fileRef = D31C9C89158A179A00756B45 /* fond-detail-numero.png */; };
D31C9C8B158A179A00756B45 /* fond-detail-numero.png in Resources */ = {isa = PBXBuildFile; fileRef = D31C9C89158A179A00756B45 /* fond-detail-numero.png */; };
D31C9C90158A1C1000756B45 /* appel-entrant.png in Resources */ = {isa = PBXBuildFile; fileRef = D31C9C8D158A1C1000756B45 /* appel-entrant.png */; };
@ -244,8 +246,8 @@
D354981115875608000081D8 /* add-contact-depuis-detail-actif.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980E15875608000081D8 /* add-contact-depuis-detail-actif.png */; };
D354981215875608000081D8 /* add-contact-depuis-detail-over.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980F15875608000081D8 /* add-contact-depuis-detail-over.png */; };
D354981315875608000081D8 /* add-contact-depuis-detail-over.png in Resources */ = {isa = PBXBuildFile; fileRef = D354980F15875608000081D8 /* add-contact-depuis-detail-over.png */; };
D3549816158761D0000081D8 /* ContactTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3549815158761D0000081D8 /* ContactTableViewController.m */; };
D3549817158761D0000081D8 /* ContactTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3549815158761D0000081D8 /* ContactTableViewController.m */; };
D3549816158761D0000081D8 /* ContactsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3549815158761D0000081D8 /* ContactsTableViewController.m */; };
D3549817158761D0000081D8 /* ContactsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3549815158761D0000081D8 /* ContactsTableViewController.m */; };
D354981A15876FE7000081D8 /* bouton-detail-contact-actif.png in Resources */ = {isa = PBXBuildFile; fileRef = D354981815876FE7000081D8 /* bouton-detail-contact-actif.png */; };
D354981B15876FE7000081D8 /* bouton-detail-contact-actif.png in Resources */ = {isa = PBXBuildFile; fileRef = D354981815876FE7000081D8 /* bouton-detail-contact-actif.png */; };
D354981C15876FE7000081D8 /* bouton-detail-contact-over.png in Resources */ = {isa = PBXBuildFile; fileRef = D354981915876FE7000081D8 /* bouton-detail-contact-over.png */; };
@ -364,6 +366,26 @@
D3A55FBD15877E5E003FD403 /* UIContactCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3A55FBB15877E5E003FD403 /* UIContactCell.m */; };
D3A55FBF15877E69003FD403 /* UIContactCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3A55FBE15877E69003FD403 /* UIContactCell.xib */; };
D3A55FC015877E69003FD403 /* UIContactCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3A55FBE15877E69003FD403 /* UIContactCell.xib */; };
D3EA53FD159850E80037DC6B /* LinphoneManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D3EA53FC159850E80037DC6B /* LinphoneManager.m */; };
D3EA53FE159850E80037DC6B /* LinphoneManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D3EA53FC159850E80037DC6B /* LinphoneManager.m */; };
D3EA5403159852080037DC6B /* tchat-edit-actif.png in Resources */ = {isa = PBXBuildFile; fileRef = D3EA53FF159852080037DC6B /* tchat-edit-actif.png */; };
D3EA5404159852080037DC6B /* tchat-edit-actif.png in Resources */ = {isa = PBXBuildFile; fileRef = D3EA53FF159852080037DC6B /* tchat-edit-actif.png */; };
D3EA5405159852080037DC6B /* tchat-edit-over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3EA5400159852080037DC6B /* tchat-edit-over.png */; };
D3EA5406159852080037DC6B /* tchat-edit-over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3EA5400159852080037DC6B /* tchat-edit-over.png */; };
D3EA5407159852080037DC6B /* tchat-new-discussion-actif.png in Resources */ = {isa = PBXBuildFile; fileRef = D3EA5401159852080037DC6B /* tchat-new-discussion-actif.png */; };
D3EA5408159852080037DC6B /* tchat-new-discussion-actif.png in Resources */ = {isa = PBXBuildFile; fileRef = D3EA5401159852080037DC6B /* tchat-new-discussion-actif.png */; };
D3EA5409159852080037DC6B /* tchat-new-discussion-over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3EA5402159852080037DC6B /* tchat-new-discussion-over.png */; };
D3EA540A159852080037DC6B /* tchat-new-discussion-over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3EA5402159852080037DC6B /* tchat-new-discussion-over.png */; };
D3EA540D1598528B0037DC6B /* ChatTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3EA540C1598528B0037DC6B /* ChatTableViewController.m */; };
D3EA540E1598528B0037DC6B /* ChatTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3EA540C1598528B0037DC6B /* ChatTableViewController.m */; };
D3EA5411159853750037DC6B /* UIChatCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3EA5410159853750037DC6B /* UIChatCell.m */; };
D3EA5412159853750037DC6B /* UIChatCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3EA5410159853750037DC6B /* UIChatCell.m */; };
D3EA5414159853C90037DC6B /* UIChatCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3EA5413159853C90037DC6B /* UIChatCell.xib */; };
D3EA5415159853C90037DC6B /* UIChatCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3EA5413159853C90037DC6B /* UIChatCell.xib */; };
D3EA5418159858A80037DC6B /* croix-supprimer-ligne-liste-history-actif.png in Resources */ = {isa = PBXBuildFile; fileRef = D3EA5416159858A80037DC6B /* croix-supprimer-ligne-liste-history-actif.png */; };
D3EA5419159858A80037DC6B /* croix-supprimer-ligne-liste-history-actif.png in Resources */ = {isa = PBXBuildFile; fileRef = D3EA5416159858A80037DC6B /* croix-supprimer-ligne-liste-history-actif.png */; };
D3EA541A159858A80037DC6B /* croix-supprimer-ligne-liste-history-over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3EA5417159858A80037DC6B /* croix-supprimer-ligne-liste-history-over.png */; };
D3EA541B159858A80037DC6B /* croix-supprimer-ligne-liste-history-over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3EA5417159858A80037DC6B /* croix-supprimer-ligne-liste-history-over.png */; };
D3ED3E411585FB4A006C0DE4 /* fond-clavier.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E401585FB4A006C0DE4 /* fond-clavier.png */; };
D3ED3E421585FB4A006C0DE4 /* fond-clavier.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E401585FB4A006C0DE4 /* fond-clavier.png */; };
D3ED3E451585FB8C006C0DE4 /* champ-saisie-numero.png in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3E441585FB8C006C0DE4 /* champ-saisie-numero.png */; };
@ -406,6 +428,18 @@
D3ED3EB4158738FB006C0DE4 /* HistoryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3ED3EB2158738FA006C0DE4 /* HistoryViewController.xib */; };
D3ED3EB81587392C006C0DE4 /* HistoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3ED3EB615873929006C0DE4 /* HistoryViewController.m */; };
D3ED3EB91587392C006C0DE4 /* HistoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3ED3EB615873929006C0DE4 /* HistoryViewController.m */; };
D3F26BEC159869A6005F9CAB /* AbstractCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F26BEB159869A6005F9CAB /* AbstractCall.m */; };
D3F26BED159869A6005F9CAB /* AbstractCall.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F26BEB159869A6005F9CAB /* AbstractCall.m */; };
D3F26BF115986B73005F9CAB /* IncomingCallViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F26BEF15986B71005F9CAB /* IncomingCallViewController.m */; };
D3F26BF215986B73005F9CAB /* IncomingCallViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F26BEF15986B71005F9CAB /* IncomingCallViewController.m */; };
D3F26BF315986B73005F9CAB /* IncomingCallViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3F26BF015986B72005F9CAB /* IncomingCallViewController.xib */; };
D3F26BF415986B73005F9CAB /* IncomingCallViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3F26BF015986B72005F9CAB /* IncomingCallViewController.xib */; };
D3F26BF715986DAD005F9CAB /* ok-edit-list-history-actif.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F26BF515986DAD005F9CAB /* ok-edit-list-history-actif.png */; };
D3F26BF815986DAD005F9CAB /* ok-edit-list-history-actif.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F26BF515986DAD005F9CAB /* ok-edit-list-history-actif.png */; };
D3F26BF915986DAD005F9CAB /* ok-edit-list-history-over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F26BF615986DAD005F9CAB /* ok-edit-list-history-over.png */; };
D3F26BFA15986DAD005F9CAB /* ok-edit-list-history-over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F26BF615986DAD005F9CAB /* ok-edit-list-history-over.png */; };
D3F26BFC15987083005F9CAB /* champ-titre-incoming.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F26BFB15987083005F9CAB /* champ-titre-incoming.png */; };
D3F26BFD15987083005F9CAB /* champ-titre-incoming.png in Resources */ = {isa = PBXBuildFile; fileRef = D3F26BFB15987083005F9CAB /* champ-titre-incoming.png */; };
D3F83EEC1582021700336684 /* InCallViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F83EEA1582021700336684 /* InCallViewController.m */; };
D3F83EED1582021700336684 /* InCallViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F83EEA1582021700336684 /* InCallViewController.m */; };
D3F83EEE1582021700336684 /* InCallViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3F83EEB1582021700336684 /* InCallViewController.xib */; };
@ -696,8 +730,6 @@
224567C1107B968500F10948 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
2248E90C12F7E4CF00220D9C /* UIDigitButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIDigitButton.h; sourceTree = "<group>"; };
2248E90D12F7E4CF00220D9C /* UIDigitButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIDigitButton.m; sourceTree = "<group>"; };
2248E99D12F801C200220D9C /* LinphoneManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinphoneManager.h; sourceTree = "<group>"; };
2248E99E12F801C200220D9C /* LinphoneManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LinphoneManager.m; sourceTree = "<group>"; };
2258633C11410BAC00C5A737 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; };
225CB2F911ABB76400628906 /* linphone-banner.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "linphone-banner.png"; path = "liblinphone-sdk/apple-darwin/share/pixmaps/linphone/linphone-banner.png"; sourceTree = "<group>"; };
226183AA1472527D0037138E /* libSKP_SILK_SDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSKP_SILK_SDK.a; path = "liblinphone-sdk/apple-darwin/lib/libSKP_SILK_SDK.a"; sourceTree = "<group>"; };
@ -849,6 +881,9 @@
70E542F413E147EB002BA2C0 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
8D1107310486CEB800E47090 /* linphone-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "linphone-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; };
D31AC4AF158A29C600C2638B /* UIHistoryCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIHistoryCell.xib; sourceTree = "<group>"; };
D31B4B1E159876C0002E6C72 /* UICompositeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UICompositeViewController.h; sourceTree = "<group>"; };
D31B4B1F159876C0002E6C72 /* UICompositeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UICompositeViewController.m; sourceTree = "<group>"; };
D31B4B20159876C0002E6C72 /* UICompositeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UICompositeViewController.xib; sourceTree = "<group>"; };
D31C9C89158A179A00756B45 /* fond-detail-numero.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "fond-detail-numero.png"; path = "Resources/fond-detail-numero.png"; sourceTree = "<group>"; };
D31C9C8D158A1C1000756B45 /* appel-entrant.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "appel-entrant.png"; path = "Resources/appel-entrant.png"; sourceTree = "<group>"; };
D31C9C8E158A1C1000756B45 /* appel-manque.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "appel-manque.png"; path = "Resources/appel-manque.png"; sourceTree = "<group>"; };
@ -886,8 +921,8 @@
D354980515875534000081D8 /* linphone-selectionne.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "linphone-selectionne.png"; path = "Resources/linphone-selectionne.png"; sourceTree = "<group>"; };
D354980E15875608000081D8 /* add-contact-depuis-detail-actif.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "add-contact-depuis-detail-actif.png"; path = "Resources/add-contact-depuis-detail-actif.png"; sourceTree = "<group>"; };
D354980F15875608000081D8 /* add-contact-depuis-detail-over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "add-contact-depuis-detail-over.png"; path = "Resources/add-contact-depuis-detail-over.png"; sourceTree = "<group>"; };
D3549814158761CF000081D8 /* ContactTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactTableViewController.h; sourceTree = "<group>"; };
D3549815158761D0000081D8 /* ContactTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContactTableViewController.m; sourceTree = "<group>"; };
D3549814158761CF000081D8 /* ContactsTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactsTableViewController.h; sourceTree = "<group>"; };
D3549815158761D0000081D8 /* ContactsTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContactsTableViewController.m; sourceTree = "<group>"; };
D354981815876FE7000081D8 /* bouton-detail-contact-actif.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "bouton-detail-contact-actif.png"; path = "Resources/bouton-detail-contact-actif.png"; sourceTree = "<group>"; };
D354981915876FE7000081D8 /* bouton-detail-contact-over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "bouton-detail-contact-over.png"; path = "Resources/bouton-detail-contact-over.png"; sourceTree = "<group>"; };
D354981E1587716B000081D8 /* UIStateBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIStateBar.h; sourceTree = "<group>"; };
@ -977,6 +1012,19 @@
D3A55FBA15877E5E003FD403 /* UIContactCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIContactCell.h; sourceTree = "<group>"; };
D3A55FBB15877E5E003FD403 /* UIContactCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIContactCell.m; sourceTree = "<group>"; };
D3A55FBE15877E69003FD403 /* UIContactCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIContactCell.xib; sourceTree = "<group>"; };
D3EA53FB159850E80037DC6B /* LinphoneManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinphoneManager.h; sourceTree = "<group>"; };
D3EA53FC159850E80037DC6B /* LinphoneManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LinphoneManager.m; sourceTree = "<group>"; };
D3EA53FF159852080037DC6B /* tchat-edit-actif.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "tchat-edit-actif.png"; path = "Resources/tchat-edit-actif.png"; sourceTree = "<group>"; };
D3EA5400159852080037DC6B /* tchat-edit-over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "tchat-edit-over.png"; path = "Resources/tchat-edit-over.png"; sourceTree = "<group>"; };
D3EA5401159852080037DC6B /* tchat-new-discussion-actif.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "tchat-new-discussion-actif.png"; path = "Resources/tchat-new-discussion-actif.png"; sourceTree = "<group>"; };
D3EA5402159852080037DC6B /* tchat-new-discussion-over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "tchat-new-discussion-over.png"; path = "Resources/tchat-new-discussion-over.png"; sourceTree = "<group>"; };
D3EA540B1598528B0037DC6B /* ChatTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatTableViewController.h; sourceTree = "<group>"; };
D3EA540C1598528B0037DC6B /* ChatTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatTableViewController.m; sourceTree = "<group>"; };
D3EA540F159853750037DC6B /* UIChatCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIChatCell.h; sourceTree = "<group>"; };
D3EA5410159853750037DC6B /* UIChatCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIChatCell.m; sourceTree = "<group>"; };
D3EA5413159853C90037DC6B /* UIChatCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIChatCell.xib; sourceTree = "<group>"; };
D3EA5416159858A80037DC6B /* croix-supprimer-ligne-liste-history-actif.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "croix-supprimer-ligne-liste-history-actif.png"; path = "Resources/croix-supprimer-ligne-liste-history-actif.png"; sourceTree = "<group>"; };
D3EA5417159858A80037DC6B /* croix-supprimer-ligne-liste-history-over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "croix-supprimer-ligne-liste-history-over.png"; path = "Resources/croix-supprimer-ligne-liste-history-over.png"; sourceTree = "<group>"; };
D3ED3E401585FB4A006C0DE4 /* fond-clavier.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "fond-clavier.png"; path = "Resources/fond-clavier.png"; sourceTree = "<group>"; };
D3ED3E441585FB8C006C0DE4 /* champ-saisie-numero.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "champ-saisie-numero.png"; path = "Resources/champ-saisie-numero.png"; sourceTree = "<group>"; };
D3ED3E511585FFFD006C0DE4 /* barre-noire-top.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "barre-noire-top.png"; path = "Resources/barre-noire-top.png"; sourceTree = "<group>"; };
@ -1001,6 +1049,14 @@
D3ED3EB2158738FA006C0DE4 /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; };
D3ED3EB515873928006C0DE4 /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; };
D3ED3EB615873929006C0DE4 /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; };
D3F26BEA159869A6005F9CAB /* AbstractCall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AbstractCall.h; path = Utils/AbstractCall.h; sourceTree = "<group>"; };
D3F26BEB159869A6005F9CAB /* AbstractCall.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AbstractCall.m; path = Utils/AbstractCall.m; sourceTree = "<group>"; };
D3F26BEE15986B71005F9CAB /* IncomingCallViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IncomingCallViewController.h; sourceTree = "<group>"; };
D3F26BEF15986B71005F9CAB /* IncomingCallViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IncomingCallViewController.m; sourceTree = "<group>"; };
D3F26BF015986B72005F9CAB /* IncomingCallViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IncomingCallViewController.xib; sourceTree = "<group>"; };
D3F26BF515986DAD005F9CAB /* ok-edit-list-history-actif.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ok-edit-list-history-actif.png"; path = "Resources/ok-edit-list-history-actif.png"; sourceTree = "<group>"; };
D3F26BF615986DAD005F9CAB /* ok-edit-list-history-over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "ok-edit-list-history-over.png"; path = "Resources/ok-edit-list-history-over.png"; sourceTree = "<group>"; };
D3F26BFB15987083005F9CAB /* champ-titre-incoming.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "champ-titre-incoming.png"; path = "Resources/champ-titre-incoming.png"; sourceTree = "<group>"; };
D3F83EE91582021700336684 /* InCallViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InCallViewController.h; sourceTree = "<group>"; };
D3F83EEA1582021700336684 /* InCallViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InCallViewController.m; sourceTree = "<group>"; };
D3F83EEB1582021700336684 /* InCallViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = InCallViewController.xib; sourceTree = "<group>"; };
@ -1166,6 +1222,8 @@
children = (
340751E4150E4D0200B89C47 /* CallDelegate.h */,
2211DBBB14769C8200DEE054 /* CallDelegate.m */,
D3EA540B1598528B0037DC6B /* ChatTableViewController.h */,
D3EA540C1598528B0037DC6B /* ChatTableViewController.m */,
D35E7594159460560066B1C1 /* ChatViewController.h */,
D35E7595159460560066B1C1 /* ChatViewController.m */,
D35E7596159460570066B1C1 /* ChatViewController.xib */,
@ -1177,11 +1235,11 @@
22E0A820111C44E100B04932 /* ConsoleViewController.h */,
22E0A81F111C44E100B04932 /* ConsoleViewController.m */,
22E0A81E111C44E100B04932 /* ConsoleViewController.xib */,
D3549814158761CF000081D8 /* ContactsTableViewController.h */,
D3549815158761D0000081D8 /* ContactsTableViewController.m */,
D35497FB15875372000081D8 /* ContactsViewController.h */,
D35497FC15875372000081D8 /* ContactsViewController.m */,
D35497FD15875372000081D8 /* ContactsViewController.xib */,
D3549814158761CF000081D8 /* ContactTableViewController.h */,
D3549815158761D0000081D8 /* ContactTableViewController.m */,
22F2508B107141E100AC9B3F /* DialerViewController.h */,
22F2508C107141E100AC9B3F /* DialerViewController.m */,
22F2508D107141E100AC9B3F /* DialerViewController.xib */,
@ -1197,11 +1255,16 @@
D3F83EE91582021700336684 /* InCallViewController.h */,
D3F83EEA1582021700336684 /* InCallViewController.m */,
D3F83EEB1582021700336684 /* InCallViewController.xib */,
D3F26BEE15986B71005F9CAB /* IncomingCallViewController.h */,
D3F26BEF15986B71005F9CAB /* IncomingCallViewController.m */,
D3F26BF015986B72005F9CAB /* IncomingCallViewController.xib */,
D3F83F9115824D3500336684 /* LinphoneApp.xib */,
1D3623240D0F684500981E51 /* LinphoneAppDelegate.h */,
1D3623250D0F684500981E51 /* LinphoneAppDelegate.m */,
D37DC6BF1594AE1800B2A5EB /* LinphoneCoreSettingsStore.h */,
D37DC6C01594AE1800B2A5EB /* LinphoneCoreSettingsStore.m */,
D3EA53FB159850E80037DC6B /* LinphoneManager.h */,
D3EA53FC159850E80037DC6B /* LinphoneManager.m */,
2214EB7012F84668002A5394 /* LinphoneUI */,
34CA8537148F692A00503C01 /* MainScreenWithVideoPreview.h */,
34CA8538148F692A00503C01 /* MainScreenWithVideoPreview.m */,
@ -1433,8 +1496,6 @@
children = (
223963151393CFAE001DE689 /* FastAddressBook.h */,
223963161393CFAF001DE689 /* FastAddressBook.m */,
2248E99D12F801C200220D9C /* LinphoneManager.h */,
2248E99E12F801C200220D9C /* LinphoneManager.m */,
2218A5CE12F973450088A667 /* LogView.h */,
D35E757F159328EA0066B1C1 /* UIAddressTextField.h */,
D35E7580159328EB0066B1C1 /* UIAddressTextField.m */,
@ -1450,6 +1511,12 @@
D36C43C9158F2EE50048BA40 /* UICallCell.xib */,
22AA8AFF13D83F6300B30535 /* UICamSwitch.h */,
22AA8B0013D83F6300B30535 /* UICamSwitch.m */,
D3EA540F159853750037DC6B /* UIChatCell.h */,
D3EA5410159853750037DC6B /* UIChatCell.m */,
D3EA5413159853C90037DC6B /* UIChatCell.xib */,
D31B4B1E159876C0002E6C72 /* UICompositeViewController.h */,
D31B4B1F159876C0002E6C72 /* UICompositeViewController.m */,
D31B4B20159876C0002E6C72 /* UICompositeViewController.xib */,
D3A55FBA15877E5E003FD403 /* UIContactCell.h */,
D3A55FBB15877E5E003FD403 /* UIContactCell.m */,
D3A55FBE15877E69003FD403 /* UIContactCell.xib */,
@ -1691,6 +1758,7 @@
D36C43CD158F2F370048BA40 /* champ-courbe-participant-conf.png */,
D3ED3E441585FB8C006C0DE4 /* champ-saisie-numero.png */,
D36C43CE158F2F370048BA40 /* champ-titre-conference.png */,
D3F26BFB15987083005F9CAB /* champ-titre-incoming.png */,
D36C43CF158F2F370048BA40 /* clavier-secondaire-actif.png */,
D36C43D0158F2F370048BA40 /* clavier-secondaire-over.png */,
D3F83F821582278D00336684 /* contact-actif-add-call.png */,
@ -1698,6 +1766,8 @@
D38327EB1580FE3A00FA0D23 /* contacts-actif.png */,
D38327FC158100E400FA0D23 /* contacts-over.png */,
D38327EC1580FE3A00FA0D23 /* contacts-selectionne.png */,
D3EA5416159858A80037DC6B /* croix-supprimer-ligne-liste-history-actif.png */,
D3EA5417159858A80037DC6B /* croix-supprimer-ligne-liste-history-over.png */,
D3F83F741582253100336684 /* decrocher-actif.png */,
D3F83F751582253100336684 /* decrocher-over.png */,
D38327ED1580FE3A00FA0D23 /* dialer-actif.png */,
@ -1733,6 +1803,8 @@
D3ED3E9615872EF1006C0DE4 /* missed-actif.png */,
D3ED3E9715872EF1006C0DE4 /* missed-selectionne.png */,
3418843614C58BB100EA48C7 /* nowebcamCIF.jpg */,
D3F26BF515986DAD005F9CAB /* ok-edit-list-history-actif.png */,
D3F26BF615986DAD005F9CAB /* ok-edit-list-history-over.png */,
2242E312125235120061DDCE /* oldphone-mono-30s.caf */,
2237D4081084D7A9001383EE /* oldphone-mono.wav */,
D3F83EF8158205A100336684 /* pause-actif.png */,
@ -1770,6 +1842,10 @@
D35E757515931E5D0066B1C1 /* switch_camera_default.png */,
D35E757615931E5D0066B1C1 /* switch_camera_over.png */,
D38327F11580FE3A00FA0D23 /* tchat-actif.png */,
D3EA53FF159852080037DC6B /* tchat-edit-actif.png */,
D3EA5400159852080037DC6B /* tchat-edit-over.png */,
D3EA5401159852080037DC6B /* tchat-new-discussion-actif.png */,
D3EA5402159852080037DC6B /* tchat-new-discussion-over.png */,
D38327FF158100E400FA0D23 /* tchat-over.png */,
D38327F21580FE3A00FA0D23 /* tchat-selectionne.png */,
D3F83F00158205A100336684 /* video-OFF-actif.png */,
@ -1794,6 +1870,8 @@
D326483415887D4400930C67 /* Utils */ = {
isa = PBXGroup;
children = (
D3F26BEA159869A6005F9CAB /* AbstractCall.h */,
D3F26BEB159869A6005F9CAB /* AbstractCall.m */,
D326483615887D5200930C67 /* OrderedDictionary.h */,
D326483715887D5200930C67 /* OrderedDictionary.m */,
);
@ -2127,6 +2205,18 @@
D37DC7151594AE6F00B2A5EB /* IASKSpecifierValuesView.xib in Resources */,
D32942A41594C94300556A1C /* SettingsViewController.xib in Resources */,
D34F6F9E1594D3FB0095705B /* InAppSettings.bundle in Resources */,
D3EA5403159852080037DC6B /* tchat-edit-actif.png in Resources */,
D3EA5405159852080037DC6B /* tchat-edit-over.png in Resources */,
D3EA5407159852080037DC6B /* tchat-new-discussion-actif.png in Resources */,
D3EA5409159852080037DC6B /* tchat-new-discussion-over.png in Resources */,
D3EA5414159853C90037DC6B /* UIChatCell.xib in Resources */,
D3EA5418159858A80037DC6B /* croix-supprimer-ligne-liste-history-actif.png in Resources */,
D3EA541A159858A80037DC6B /* croix-supprimer-ligne-liste-history-over.png in Resources */,
D3F26BF315986B73005F9CAB /* IncomingCallViewController.xib in Resources */,
D3F26BF715986DAD005F9CAB /* ok-edit-list-history-actif.png in Resources */,
D3F26BF915986DAD005F9CAB /* ok-edit-list-history-over.png in Resources */,
D3F26BFC15987083005F9CAB /* champ-titre-incoming.png in Resources */,
D31B4B23159876C0002E6C72 /* UICompositeViewController.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2285,6 +2375,18 @@
D37DC7161594AE6F00B2A5EB /* IASKSpecifierValuesView.xib in Resources */,
D32942A51594C94300556A1C /* SettingsViewController.xib in Resources */,
D34F6F9F1594D3FB0095705B /* InAppSettings.bundle in Resources */,
D3EA5404159852080037DC6B /* tchat-edit-actif.png in Resources */,
D3EA5406159852080037DC6B /* tchat-edit-over.png in Resources */,
D3EA5408159852080037DC6B /* tchat-new-discussion-actif.png in Resources */,
D3EA540A159852080037DC6B /* tchat-new-discussion-over.png in Resources */,
D3EA5415159853C90037DC6B /* UIChatCell.xib in Resources */,
D3EA5419159858A80037DC6B /* croix-supprimer-ligne-liste-history-actif.png in Resources */,
D3EA541B159858A80037DC6B /* croix-supprimer-ligne-liste-history-over.png in Resources */,
D3F26BF415986B73005F9CAB /* IncomingCallViewController.xib in Resources */,
D3F26BF815986DAD005F9CAB /* ok-edit-list-history-actif.png in Resources */,
D3F26BFA15986DAD005F9CAB /* ok-edit-list-history-over.png in Resources */,
D3F26BFD15987083005F9CAB /* champ-titre-incoming.png in Resources */,
D31B4B24159876C0002E6C72 /* UICompositeViewController.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2301,7 +2403,6 @@
22E0A822111C44E100B04932 /* MoreViewController.m in Sources */,
22E0A824111C44E100B04932 /* ConsoleViewController.m in Sources */,
2248E90E12F7E4CF00220D9C /* UIDigitButton.m in Sources */,
2248E99F12F801C200220D9C /* LinphoneManager.m in Sources */,
2214EB7A12F846B1002A5394 /* UICallButton.m in Sources */,
2214EB8912F84EBB002A5394 /* UIHangUpButton.m in Sources */,
2214EBF312F86360002A5394 /* UIMicroButton.m in Sources */,
@ -2323,7 +2424,7 @@
D3ED3EA71587334E006C0DE4 /* HistoryTableViewController.m in Sources */,
D3ED3EB81587392C006C0DE4 /* HistoryViewController.m in Sources */,
D35497FE15875372000081D8 /* ContactsViewController.m in Sources */,
D3549816158761D0000081D8 /* ContactTableViewController.m in Sources */,
D3549816158761D0000081D8 /* ContactsTableViewController.m in Sources */,
D35498211587716B000081D8 /* UIStateBar.m in Sources */,
D3A55FBC15877E5E003FD403 /* UIContactCell.m in Sources */,
D326483815887D5200930C67 /* OrderedDictionary.m in Sources */,
@ -2352,6 +2453,12 @@
D37DC7051594AE6F00B2A5EB /* IASKSlider.m in Sources */,
D37DC7071594AE6F00B2A5EB /* IASKSwitch.m in Sources */,
D37DC7091594AE6F00B2A5EB /* IASKTextField.m in Sources */,
D3EA53FD159850E80037DC6B /* LinphoneManager.m in Sources */,
D3EA540D1598528B0037DC6B /* ChatTableViewController.m in Sources */,
D3EA5411159853750037DC6B /* UIChatCell.m in Sources */,
D3F26BEC159869A6005F9CAB /* AbstractCall.m in Sources */,
D3F26BF115986B73005F9CAB /* IncomingCallViewController.m in Sources */,
D31B4B21159876C0002E6C72 /* UICompositeViewController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2365,7 +2472,6 @@
22D8F14A147548E2008C97DB /* MoreViewController.m in Sources */,
22D8F14B147548E2008C97DB /* ConsoleViewController.m in Sources */,
22D8F14C147548E2008C97DB /* UIDigitButton.m in Sources */,
22D8F14D147548E2008C97DB /* LinphoneManager.m in Sources */,
22D8F14E147548E2008C97DB /* UICallButton.m in Sources */,
22D8F14F147548E2008C97DB /* UIHangUpButton.m in Sources */,
22D8F151147548E2008C97DB /* UIMicroButton.m in Sources */,
@ -2387,7 +2493,7 @@
D3ED3EA81587334E006C0DE4 /* HistoryTableViewController.m in Sources */,
D3ED3EB91587392C006C0DE4 /* HistoryViewController.m in Sources */,
D35497FF15875372000081D8 /* ContactsViewController.m in Sources */,
D3549817158761D0000081D8 /* ContactTableViewController.m in Sources */,
D3549817158761D0000081D8 /* ContactsTableViewController.m in Sources */,
D35498221587716B000081D8 /* UIStateBar.m in Sources */,
D3A55FBD15877E5E003FD403 /* UIContactCell.m in Sources */,
D326483915887D5200930C67 /* OrderedDictionary.m in Sources */,
@ -2416,6 +2522,12 @@
D37DC7061594AE6F00B2A5EB /* IASKSlider.m in Sources */,
D37DC7081594AE6F00B2A5EB /* IASKSwitch.m in Sources */,
D37DC70A1594AE6F00B2A5EB /* IASKTextField.m in Sources */,
D3EA53FE159850E80037DC6B /* LinphoneManager.m in Sources */,
D3EA540E1598528B0037DC6B /* ChatTableViewController.m in Sources */,
D3EA5412159853750037DC6B /* UIChatCell.m in Sources */,
D3F26BED159869A6005F9CAB /* AbstractCall.m in Sources */,
D3F26BF215986B73005F9CAB /* IncomingCallViewController.m in Sources */,
D31B4B22159876C0002E6C72 /* UICompositeViewController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};