forked from mirrors/linphone-iphone
Continue working on Contact views
This commit is contained in:
parent
12e82b9d22
commit
1b952fcd1f
35 changed files with 1215 additions and 220 deletions
|
|
@ -54,9 +54,10 @@
|
|||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
UIChatRoomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UIChatRoomCell"];
|
||||
static NSString *kCellId = @"UIChatRoomCell";
|
||||
UIChatRoomCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId];
|
||||
if (cell == nil) {
|
||||
cell = [[UIChatRoomCell alloc] initWithIdentifier:@"UIChatRoomCell"];
|
||||
cell = [[[UIChatRoomCell alloc] initWithIdentifier:kCellId] autorelease];
|
||||
}
|
||||
|
||||
[cell setChat:[data objectAtIndex:[indexPath row]]];
|
||||
|
|
|
|||
|
|
@ -63,6 +63,8 @@
|
|||
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
|
||||
// Set selected+over background: IB lack !
|
||||
[editButton setImage:[UIImage imageNamed:@"chat_ok_over.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
|
|
@ -83,8 +85,8 @@
|
|||
selector:@selector(textReceivedEvent:)
|
||||
name:@"LinphoneTextReceived"
|
||||
object:nil];
|
||||
|
||||
[[tableController tableView] setEditing:FALSE];
|
||||
if([tableController isEditing])
|
||||
[tableController setEditing:FALSE];
|
||||
[editButton setOff];
|
||||
[[tableController tableView] reloadData];
|
||||
}
|
||||
|
|
@ -180,7 +182,7 @@
|
|||
}
|
||||
|
||||
- (IBAction)onEditClick:(id)event {
|
||||
[[tableController tableView] setEditing:![[tableController tableView] isEditing] animated:TRUE];
|
||||
[tableController setEditing:![tableController isEditing] animated:TRUE];
|
||||
}
|
||||
|
||||
- (IBAction)onSendClick:(id)event {
|
||||
|
|
|
|||
|
|
@ -45,22 +45,20 @@
|
|||
|
||||
#pragma mark - UITableViewDataSource Functions
|
||||
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
|
||||
{
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
||||
return 1;
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
|
||||
{
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
[self reloadData];
|
||||
return [data count];
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
UIChatCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UIChatCell"];
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
static NSString *kCellId = @"UIChatCell";
|
||||
UIChatCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId];
|
||||
if (cell == nil) {
|
||||
cell = [[UIChatCell alloc] initWithIdentifier:@"UIChatCell"];
|
||||
cell = [[[UIChatCell alloc] initWithIdentifier:kCellId] autorelease];
|
||||
}
|
||||
|
||||
[cell setChat:[data objectAtIndex:[indexPath row]]];
|
||||
|
|
|
|||
|
|
@ -45,6 +45,8 @@
|
|||
#pragma mark - ViewController Functions
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
|
||||
// Set selected+over background: IB lack !
|
||||
[editButton setImage:[UIImage imageNamed:@"chat_ok_over.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
|
|
@ -56,8 +58,8 @@
|
|||
selector:@selector(textReceivedEvent:)
|
||||
name:@"LinphoneTextReceived"
|
||||
object:nil];
|
||||
|
||||
[[tableController tableView] setEditing:FALSE];
|
||||
if([tableController isEditing])
|
||||
[tableController setEditing:FALSE];
|
||||
[editButton setOff];
|
||||
[[tableController tableView] reloadData];
|
||||
}
|
||||
|
|
@ -99,7 +101,7 @@
|
|||
}
|
||||
|
||||
- (IBAction)onEditClick:(id)event {
|
||||
[[tableController tableView] setEditing:![[tableController tableView] isEditing] animated:TRUE];
|
||||
[tableController setEditing:![tableController isEditing] animated:TRUE];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
36
Classes/ContactDetailsLabelViewController.h
Normal file
36
Classes/ContactDetailsLabelViewController.h
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
/* ContactDetailsLabelViewController.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>
|
||||
|
||||
#import "UIModalViewController.h"
|
||||
|
||||
@interface ContactDetailsLabelViewController : UIModalViewController<UITableViewDelegate, UITableViewDataSource> {
|
||||
NSDictionary *dataList;
|
||||
UITableView *tableView;
|
||||
NSString *selectedData;
|
||||
}
|
||||
|
||||
@property (nonatomic, copy) NSString *selectedData;
|
||||
@property (nonatomic, retain) NSDictionary *dataList;
|
||||
@property (nonatomic, retain) IBOutlet UITableView *tableView;
|
||||
|
||||
- (IBAction)onBackClick:(id)event;
|
||||
|
||||
@end
|
||||
86
Classes/ContactDetailsLabelViewController.m
Normal file
86
Classes/ContactDetailsLabelViewController.m
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
/* ContactDetailsLabelViewController.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 "ContactDetailsLabelViewController.h"
|
||||
|
||||
@implementation ContactDetailsLabelViewController
|
||||
|
||||
@synthesize dataList;
|
||||
@synthesize tableView;
|
||||
@synthesize selectedData;
|
||||
|
||||
|
||||
#pragma mark - Property Functions
|
||||
|
||||
- (void)setDataList:(NSDictionary *)adatalist {
|
||||
if (self->dataList != nil) {
|
||||
[self->dataList release];
|
||||
}
|
||||
self->dataList = [adatalist retain];
|
||||
[tableView reloadData];
|
||||
}
|
||||
|
||||
|
||||
- (void)setSelectedData:(NSString *)aselectedData {
|
||||
if (selectedData != nil) {
|
||||
[selectedData release];
|
||||
}
|
||||
selectedData = [[NSString alloc] initWithString:aselectedData];
|
||||
[tableView reloadData];
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewDataSource Functions
|
||||
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
||||
return 1;
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
return [dataList count];
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)atableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
static NSString *kCellId = @"ContactDetailsLabelCell";
|
||||
UITableViewCell *cell = [atableView dequeueReusableCellWithIdentifier:kCellId];
|
||||
if (cell == nil) {
|
||||
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:kCellId] autorelease];
|
||||
}
|
||||
NSString* key = [[dataList allKeys] objectAtIndex:[indexPath row]];
|
||||
[cell.textLabel setText:[dataList objectForKey:key]];
|
||||
if ([key compare:selectedData]==0) {
|
||||
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
|
||||
} else {
|
||||
[cell setAccessoryType:UITableViewCellAccessoryNone];
|
||||
}
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
NSString* key = [[dataList allKeys] objectAtIndex:[indexPath row]];
|
||||
[self setSelectedData:key];
|
||||
[self dismiss:key];
|
||||
}
|
||||
|
||||
#pragma mark - Action Functions
|
||||
|
||||
- (IBAction)onBackClick:(id)event {
|
||||
[self dismiss];
|
||||
}
|
||||
|
||||
@end
|
||||
354
Classes/ContactDetailsLabelViewController.xib
Normal file
354
Classes/ContactDetailsLabelViewController.xib
Normal file
|
|
@ -0,0 +1,354 @@
|
|||
<?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>IBUITableView</string>
|
||||
<string>IBUIImageView</string>
|
||||
<string>IBUIView</string>
|
||||
<string>IBUIButton</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="1031663480">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="617331118">
|
||||
<reference key="NSNextResponder" ref="1031663480"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<reference key="NSSuperview" ref="1031663480"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="786589861"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">numpad_background.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIView" id="786589861">
|
||||
<reference key="NSNextResponder" ref="1031663480"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIButton" id="1031075615">
|
||||
<reference key="NSNextResponder" ref="786589861"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrameSize">{160, 58}</string>
|
||||
<reference key="NSSuperview" ref="786589861"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="868223268"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Add contact</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">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUIHighlightedImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">contact_back_over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">contact_back_default.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>
|
||||
<object class="IBUIImageView" id="868223268">
|
||||
<reference key="NSNextResponder" ref="786589861"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{160, 0}, {160, 58}}</string>
|
||||
<reference key="NSSuperview" ref="786589861"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="1001416449"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">contact_bar_background.png</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{320, 58}</string>
|
||||
<reference key="NSSuperview" ref="1031663480"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="1031075615"/>
|
||||
<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="839456500">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUITableView" id="1001416449">
|
||||
<reference key="NSNextResponder" ref="1031663480"/>
|
||||
<int key="NSvFlags">306</int>
|
||||
<string key="NSFrame">{{0, 59}, {320, 401}}</string>
|
||||
<reference key="NSSuperview" ref="1031663480"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<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>
|
||||
<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="IBUIStyle">1</int>
|
||||
<int key="IBUISeparatorStyle">2</int>
|
||||
<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
|
||||
<bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
|
||||
<float key="IBUIRowHeight">44</float>
|
||||
<float key="IBUISectionHeaderHeight">10</float>
|
||||
<float key="IBUISectionFooterHeight">10</float>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{0, 20}, {320, 460}}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="617331118"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<reference key="NSCustomColorSpace" ref="839456500"/>
|
||||
</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="1031663480"/>
|
||||
</object>
|
||||
<int key="connectionID">12</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">tableView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="1001416449"/>
|
||||
</object>
|
||||
<int key="connectionID">15</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">dataSource</string>
|
||||
<reference key="source" ref="1001416449"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
</object>
|
||||
<int key="connectionID">13</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="1001416449"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
</object>
|
||||
<int key="connectionID">14</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onBackClick:</string>
|
||||
<reference key="source" ref="1031075615"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">11</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">4</int>
|
||||
<reference key="object" ref="1031663480"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="1001416449"/>
|
||||
<reference ref="786589861"/>
|
||||
<reference ref="617331118"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">5</int>
|
||||
<reference key="object" ref="1001416449"/>
|
||||
<reference key="parent" ref="1031663480"/>
|
||||
<string key="objectName">tableView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">6</int>
|
||||
<reference key="object" ref="786589861"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="1031075615"/>
|
||||
<reference ref="868223268"/>
|
||||
</array>
|
||||
<reference key="parent" ref="1031663480"/>
|
||||
<string key="objectName">header</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">7</int>
|
||||
<reference key="object" ref="617331118"/>
|
||||
<reference key="parent" ref="1031663480"/>
|
||||
<string key="objectName">background</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">8</int>
|
||||
<reference key="object" ref="1031075615"/>
|
||||
<reference key="parent" ref="786589861"/>
|
||||
<string key="objectName">backButton</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">10</int>
|
||||
<reference key="object" ref="868223268"/>
|
||||
<reference key="parent" ref="786589861"/>
|
||||
<string key="objectName">barBackground</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">ContactDetailsLabelViewController</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="10.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</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="8.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="0.0" key="8.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">15</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">ContactDetailsLabelViewController</string>
|
||||
<string key="superclassName">UIModalViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">onBackClick:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">onBackClick:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">onBackClick:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">tableView</string>
|
||||
<string key="NS.object.0">UITableView</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">tableView</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<string key="name">tableView</string>
|
||||
<string key="candidateClassName">UITableView</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/ContactDetailsLabelViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIModalViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/UIModalViewController.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="contact_back_default.png">{320, 117}</string>
|
||||
<string key="contact_back_over.png">{320, 117}</string>
|
||||
<string key="contact_bar_background.png">{5, 117}</string>
|
||||
<string key="numpad_background.png">{640, 523}</string>
|
||||
</dictionary>
|
||||
<string key="IBCocoaTouchPluginVersion">1181</string>
|
||||
</data>
|
||||
</archive>
|
||||
|
|
@ -20,11 +20,16 @@
|
|||
#import <UIKit/UIKit.h>
|
||||
#import <AddressBook/AddressBook.h>
|
||||
|
||||
@interface ContactDetailsTableViewController : UITableViewController {
|
||||
#import "ContactDetailsLabelViewController.h"
|
||||
|
||||
@interface ContactDetailsTableViewController : UITableViewController<UIModalViewDelegate> {
|
||||
@private
|
||||
ABRecordRef contact;
|
||||
NSMutableArray *dataCache;
|
||||
ABAddressBookRef addressBook;
|
||||
ContactDetailsLabelViewController *contactDetailsLabelViewController;
|
||||
NSMutableArray *labelArray;
|
||||
NSIndexPath *editingIndexPath;
|
||||
}
|
||||
|
||||
@property (nonatomic, assign) ABRecordRef contact;
|
||||
|
|
|
|||
|
|
@ -20,6 +20,41 @@
|
|||
#import "ContactDetailsTableViewController.h"
|
||||
#import "UIContactDetailsHeader.h"
|
||||
#import "PhoneMainView.h"
|
||||
#import "UIEditableTableViewCell.h"
|
||||
#import "UIView+ModalStack.h"
|
||||
|
||||
@interface Entry : NSObject
|
||||
|
||||
@property (retain) NSString *key;
|
||||
@property (retain) NSString *value;
|
||||
|
||||
@end
|
||||
|
||||
@implementation Entry
|
||||
|
||||
@synthesize key;
|
||||
@synthesize value;
|
||||
|
||||
|
||||
#pragma mark - Lifecycle Functions
|
||||
|
||||
- (id)initWithData:(NSString*)akey value:(NSString*)avalue {
|
||||
self = [super init];
|
||||
if (self != NULL) {
|
||||
[self setKey:akey];
|
||||
[self setValue:avalue];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[key release];
|
||||
[value release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation ContactDetailsTableViewController
|
||||
|
||||
|
|
@ -31,6 +66,12 @@
|
|||
- (void)initContactDetailsTableViewController {
|
||||
addressBook = ABAddressBookCreate();
|
||||
dataCache = [[NSMutableArray alloc] init];
|
||||
labelArray = [[NSMutableArray alloc] initWithObjects:
|
||||
[NSString stringWithString:(NSString*)kABPersonPhoneMobileLabel],
|
||||
[NSString stringWithString:(NSString*)kABPersonPhoneIPhoneLabel],
|
||||
[NSString stringWithString:(NSString*)kABPersonPhoneMainLabel],
|
||||
[NSString stringWithString:(NSString*)kABPersonPhoneHomeFAXLabel],
|
||||
[NSString stringWithString:(NSString*)kABPersonPhoneWorkFAXLabel], nil];
|
||||
}
|
||||
|
||||
- (id)init {
|
||||
|
|
@ -50,7 +91,8 @@
|
|||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[dataCache dealloc];
|
||||
[labelArray release];
|
||||
[dataCache release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
|
@ -64,12 +106,47 @@
|
|||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
[super viewWillDisappear:animated];
|
||||
contact = nil; // Clear previous selection
|
||||
ABAddressBookUnregisterExternalChangeCallback(addressBook, sync_toc_address_book, self);
|
||||
if(contactDetailsLabelViewController != nil) {
|
||||
[[[self view] superview] removeModalView:[contactDetailsLabelViewController view]];
|
||||
[editingIndexPath release];
|
||||
editingIndexPath = nil;
|
||||
[contactDetailsLabelViewController release];
|
||||
contactDetailsLabelViewController = nil;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#pragma mark -
|
||||
|
||||
+ (BOOL)findAndResignFirstResponder:(UIView*)view {
|
||||
if (view.isFirstResponder) {
|
||||
[view resignFirstResponder];
|
||||
return YES;
|
||||
}
|
||||
for (UIView *subView in view.subviews) {
|
||||
if ([ContactDetailsTableViewController findAndResignFirstResponder:subView])
|
||||
return YES;
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
+ (NSString*)localizeLabel:(NSString*)str {
|
||||
CFStringRef lLocalizedLabel = ABAddressBookCopyLocalizedLabel((CFStringRef) str);
|
||||
NSString * retStr = [NSString stringWithString:(NSString*) lLocalizedLabel];
|
||||
CFRelease(lLocalizedLabel);
|
||||
return retStr;
|
||||
}
|
||||
|
||||
- (NSDictionary*)getLocalizedLabels {
|
||||
NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:[labelArray count]];
|
||||
for(NSString *str in labelArray) {
|
||||
[dict setObject:[ContactDetailsTableViewController localizeLabel:str] forKey:str];
|
||||
}
|
||||
return [dict autorelease];
|
||||
}
|
||||
|
||||
static void sync_toc_address_book (ABAddressBookRef addressBook, CFDictionaryRef info, void *context) {
|
||||
ContactDetailsTableViewController* controller = (ContactDetailsTableViewController*)context;
|
||||
ABRecordID recordID = ABRecordGetRecordID([controller contact]);
|
||||
|
|
@ -92,10 +169,9 @@ static void sync_toc_address_book (ABAddressBookRef addressBook, CFDictionaryRef
|
|||
for(int i = 0; i < ABMultiValueGetCount(lMap); ++i) {
|
||||
CFStringRef lValue = ABMultiValueCopyValueAtIndex(lMap, i);
|
||||
CFStringRef lLabel = ABMultiValueCopyLabelAtIndex(lMap, i);
|
||||
CFStringRef lLocalizedLabel = ABAddressBookCopyLocalizedLabel(lLabel);
|
||||
[subArray addObject:[NSArray arrayWithObjects:[NSString stringWithString:(NSString*)lValue], [NSString stringWithString:(NSString*)lLocalizedLabel], nil]];
|
||||
if(lLocalizedLabel)
|
||||
CFRelease(lLocalizedLabel);
|
||||
Entry *entry = [[Entry alloc] initWithData:[NSString stringWithString:(NSString*)lLabel] value:[NSString stringWithString:(NSString*)lValue]];
|
||||
[subArray addObject: entry];
|
||||
[entry release];
|
||||
CFRelease(lLabel);
|
||||
CFRelease(lValue);
|
||||
}
|
||||
|
|
@ -109,16 +185,15 @@ static void sync_toc_address_book (ABAddressBookRef addressBook, CFDictionaryRef
|
|||
NSMutableArray *subArray = [[NSMutableArray alloc] init];
|
||||
for(int i = 0; i < ABMultiValueGetCount(lMap); ++i) {
|
||||
CFDictionaryRef lDict = ABMultiValueCopyValueAtIndex(lMap, i);
|
||||
if(CFDictionaryContainsKey(lDict, @"service")) {
|
||||
if(CFStringCompare((CFStringRef)@"SIP", CFDictionaryGetValue(lDict, @"service"), kCFCompareCaseInsensitive) == 0) {
|
||||
CFStringRef lValue = CFDictionaryGetValue(lDict, @"username");
|
||||
if(CFDictionaryContainsKey(lDict, kABPersonInstantMessageServiceKey)) {
|
||||
if(CFStringCompare((CFStringRef)@"SIP", CFDictionaryGetValue(lDict, kABPersonInstantMessageServiceKey), kCFCompareCaseInsensitive) == 0) {
|
||||
CFStringRef lValue = CFDictionaryGetValue(lDict, kABPersonInstantMessageUsernameKey);
|
||||
CFStringRef lLabel = ABMultiValueCopyLabelAtIndex(lMap, i);
|
||||
CFStringRef lLocalizedLabel = ABAddressBookCopyLocalizedLabel(lLabel);
|
||||
[subArray addObject:[NSArray arrayWithObjects:[NSString stringWithString:(NSString*)lValue], [NSString stringWithString:(NSString*)lLocalizedLabel], nil]];
|
||||
if(lLocalizedLabel)
|
||||
CFRelease(lLocalizedLabel);
|
||||
Entry *entry = [[Entry alloc] initWithData:[NSString stringWithString:(NSString*)lLabel] value:[NSString stringWithString:(NSString*)lValue]];
|
||||
[subArray addObject: entry];
|
||||
[entry release];
|
||||
CFRelease(lLabel);
|
||||
|
||||
CFRelease(lValue);
|
||||
}
|
||||
}
|
||||
CFRelease(lDict);
|
||||
|
|
@ -128,62 +203,150 @@ static void sync_toc_address_book (ABAddressBookRef addressBook, CFDictionaryRef
|
|||
}
|
||||
}
|
||||
|
||||
- (void)addEntry:(UITableView*)tableview section:(NSInteger)section editing:(BOOL)editing animated:(BOOL)animated {
|
||||
NSMutableArray *sectionArray = [dataCache objectAtIndex:section];
|
||||
NSUInteger count = [sectionArray count];
|
||||
Entry *entry = [[Entry alloc] initWithData:[labelArray objectAtIndex:0] value:@""];
|
||||
[sectionArray addObject:entry];
|
||||
|
||||
NSArray *tagInsertIndexPath = [NSArray arrayWithObject:[NSIndexPath indexPathForRow:count inSection:section]];
|
||||
|
||||
// Add or remove the Add row as appropriate.
|
||||
UITableViewRowAnimation animationStyle = UITableViewRowAnimationNone;
|
||||
if (animated) {
|
||||
animationStyle = UITableViewRowAnimationFade;
|
||||
}
|
||||
[self.tableView insertRowsAtIndexPaths:tagInsertIndexPath withRowAnimation:animationStyle];
|
||||
}
|
||||
|
||||
- (void)removeEntry:(UITableView*)tableview section:(NSInteger)section editing:(BOOL)editing animated:(BOOL)animated {
|
||||
NSMutableArray *sectionArray = [dataCache objectAtIndex:section];
|
||||
for (int i = 0; i < [sectionArray count]; ++i) {
|
||||
Entry *entry = [sectionArray objectAtIndex:i];
|
||||
if(![[entry value] length]) {
|
||||
[sectionArray removeObjectAtIndex:i];
|
||||
NSArray *tagInsertIndexPath = [NSArray arrayWithObject:[NSIndexPath indexPathForRow:i inSection:section]];
|
||||
UITableViewRowAnimation animationStyle = UITableViewRowAnimationNone;
|
||||
if (animated) {
|
||||
animationStyle = UITableViewRowAnimationFade;
|
||||
}
|
||||
[self.tableView deleteRowsAtIndexPaths:tagInsertIndexPath withRowAnimation:animationStyle];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Property Functions
|
||||
|
||||
- (void)setContact:(ABRecordRef)acontact {
|
||||
self->contact = acontact;
|
||||
[[self tableView] reloadData];
|
||||
[self loadData];
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - UITableViewDataSource Functions
|
||||
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
||||
[self loadData];
|
||||
return [dataCache count];
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
NSMutableDictionary *dict = [dataCache objectAtIndex:section];
|
||||
return [dict count];
|
||||
return [[dataCache objectAtIndex:section] count];
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ContactDetailsCell"];
|
||||
if (cell == nil) {
|
||||
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:@"ContactDetailsCell"];
|
||||
//[cell setSelectedBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"list_hightlight.png"]]];
|
||||
static NSString *kCellId = @"ContactDetailsCell";
|
||||
UIEditableTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId];
|
||||
if (cell == nil) {
|
||||
cell = [[[UIEditableTableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:kCellId] autorelease];
|
||||
// [cell setEditingAccessoryType:UITableViewCellAccessoryNone];
|
||||
// [cell setSelectionStyle: UITableViewCellSelectionStyleNone];
|
||||
}
|
||||
if ([indexPath row] < [[dataCache objectAtIndex:[indexPath section]] count]) {
|
||||
NSMutableArray *sectionDict = [dataCache objectAtIndex:[indexPath section]];
|
||||
Entry *entry = [sectionDict objectAtIndex:[indexPath row]];
|
||||
[cell.textLabel setText:[ContactDetailsTableViewController localizeLabel:[entry key]]];
|
||||
NSString *value = [entry value];
|
||||
[cell.detailTextLabel setText:value];
|
||||
[cell.detailTextField setText:value];
|
||||
}
|
||||
if ([indexPath section] == 0) {
|
||||
[cell.detailTextField setKeyboardType:UIKeyboardTypeNumbersAndPunctuation];
|
||||
[cell.detailTextField setPlaceholder:@"Phone number"];
|
||||
} else {
|
||||
[cell.detailTextField setKeyboardType:UIKeyboardTypeEmailAddress];
|
||||
[cell.detailTextField setPlaceholder:@"SIP address"];
|
||||
}
|
||||
NSMutableArray *sectionDict = [dataCache objectAtIndex:[indexPath section]];
|
||||
NSArray *tuple = [sectionDict objectAtIndex:[indexPath row]];
|
||||
[cell.textLabel setText:[tuple objectAtIndex:1]];
|
||||
[cell.detailTextLabel setText:[tuple objectAtIndex:0]];
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:NO];
|
||||
NSMutableArray *sectionDict = [dataCache objectAtIndex:[indexPath section]];
|
||||
NSArray *tuple = [sectionDict objectAtIndex:[indexPath row]];
|
||||
|
||||
NSString *dest = [tuple objectAtIndex:0];
|
||||
if(![dest hasPrefix:@"sip:"])
|
||||
dest = [NSString stringWithFormat:@"sip:%@", [tuple objectAtIndex:0]];
|
||||
CFStringRef lDisplayName = ABRecordCopyCompositeName(contact);
|
||||
NSString *displayName = [NSString stringWithString:(NSString*) lDisplayName];
|
||||
CFRelease(lDisplayName);
|
||||
|
||||
// Go to dialer view
|
||||
NSDictionary *dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
[[[NSArray alloc] initWithObjects: dest, displayName, nil] autorelease]
|
||||
, @"call:displayName:",
|
||||
nil] autorelease];
|
||||
[[PhoneMainView instance] changeView:PhoneView_Dialer dict:dict];
|
||||
Entry *entry = [sectionDict objectAtIndex:[indexPath row]];
|
||||
if (![self isEditing]) {
|
||||
NSString *dest = [entry value];
|
||||
if(![dest hasPrefix:@"sip:"])
|
||||
dest = [NSString stringWithFormat:@"sip:%@", [entry key]];
|
||||
CFStringRef lDisplayName = ABRecordCopyCompositeName(contact);
|
||||
NSString *displayName = [NSString stringWithString:(NSString*) lDisplayName];
|
||||
CFRelease(lDisplayName);
|
||||
|
||||
// Go to dialer view
|
||||
NSDictionary *dict = [[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
[[[NSArray alloc] initWithObjects: dest, displayName, nil] autorelease]
|
||||
, @"call:displayName:",
|
||||
nil] autorelease];
|
||||
[[PhoneMainView instance] changeView:PhoneView_Dialer dict:dict];
|
||||
} else {
|
||||
contactDetailsLabelViewController = [[ContactDetailsLabelViewController alloc] initWithNibName:@"ContactDetailsLabelViewController"
|
||||
bundle:[NSBundle mainBundle]];
|
||||
[contactDetailsLabelViewController setSelectedData:[entry key]];
|
||||
[contactDetailsLabelViewController setDataList:[self getLocalizedLabels]];
|
||||
[contactDetailsLabelViewController setModalDelegate:self];
|
||||
editingIndexPath = [indexPath copy];
|
||||
[[[self view] superview] addModalView:[contactDetailsLabelViewController view]];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - UITableViewDelegate Functions
|
||||
|
||||
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
|
||||
// Add entries
|
||||
|
||||
if(editing) {
|
||||
[self.tableView beginUpdates];
|
||||
for (int section = 0; section <[self numberOfSectionsInTableView:[self tableView]]; ++section) {
|
||||
[self addEntry:self.tableView section:section editing:editing animated:animated];
|
||||
}
|
||||
[self.tableView endUpdates];
|
||||
} else {
|
||||
[self.tableView beginUpdates];
|
||||
for (int section = 0; section <[self numberOfSectionsInTableView:[self tableView]]; ++section) {
|
||||
[self removeEntry:self.tableView section:section editing:editing animated:animated];
|
||||
}
|
||||
[self.tableView endUpdates];
|
||||
}
|
||||
|
||||
// Set animated
|
||||
[super setEditing:editing animated:animated];
|
||||
|
||||
// Resign keyboard
|
||||
if(!editing) {
|
||||
[ContactDetailsTableViewController findAndResignFirstResponder:[self tableView]];
|
||||
}
|
||||
}
|
||||
|
||||
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
int last_index = [[dataCache objectAtIndex:[indexPath section]] count] - 1;
|
||||
if (indexPath.row == last_index) {
|
||||
return UITableViewCellEditingStyleInsert;
|
||||
}
|
||||
return UITableViewCellEditingStyleDelete;
|
||||
}
|
||||
|
||||
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
|
||||
if(section == 0) {
|
||||
UIContactDetailsHeader *headerController = [[UIContactDetailsHeader alloc] init];
|
||||
|
|
@ -193,16 +356,38 @@ static void sync_toc_address_book (ABAddressBookRef addressBook, CFDictionaryRef
|
|||
[headerController release];
|
||||
return headerView;
|
||||
} else {
|
||||
return [[UIView alloc] initWithFrame:CGRectZero];
|
||||
return [super tableView:tableView viewForHeaderInSection:section];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
|
||||
if(section == 0) {
|
||||
return [super tableView:tableView titleForHeaderInSection:section];
|
||||
} else {
|
||||
return @"SIP";
|
||||
}
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
|
||||
if(section == 0)
|
||||
if(section == 0) {
|
||||
return [UIContactDetailsHeader height];
|
||||
else {
|
||||
return 0.000001f; // Hack UITableView = 0
|
||||
} else {
|
||||
return 22;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - UIModalViewDeletage Functions
|
||||
|
||||
- (void)modalViewDismiss:(UIModalViewController*)controller value:(id)value {
|
||||
[[[self view]superview] removeModalView:[contactDetailsLabelViewController view]];
|
||||
contactDetailsLabelViewController = nil;
|
||||
NSMutableArray *sectionDict = [dataCache objectAtIndex:[editingIndexPath section]];
|
||||
Entry *entry = [sectionDict objectAtIndex:[editingIndexPath row]];
|
||||
[entry setKey:value];
|
||||
[[self tableView] reloadRowsAtIndexPaths:[NSArray arrayWithObject: editingIndexPath] withRowAnimation:FALSE];
|
||||
[editingIndexPath release];
|
||||
editingIndexPath = nil;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -22,15 +22,19 @@
|
|||
|
||||
#import "UICompositeViewController.h"
|
||||
#import "ContactDetailsTableViewController.h"
|
||||
#import "UIToggleButton.h"
|
||||
|
||||
@interface ContactDetailsViewController : UIViewController<UICompositeViewDelegate> {
|
||||
ContactDetailsTableViewController *tableController;
|
||||
ABRecordRef contact;
|
||||
UIToggleButton *editButton;
|
||||
}
|
||||
|
||||
@property (nonatomic, assign) ABRecordRef contact;
|
||||
@property (nonatomic, retain) IBOutlet ContactDetailsTableViewController *tableController;
|
||||
@property (nonatomic, retain) IBOutlet UIToggleButton *editButton;
|
||||
|
||||
- (IBAction)onBackClick:(id)event;
|
||||
- (IBAction)onEditClick:(id)event;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
|
||||
@synthesize tableController;
|
||||
@synthesize contact;
|
||||
@synthesize editButton;
|
||||
|
||||
#pragma mark - Lifecycle Functions
|
||||
|
||||
|
|
@ -40,13 +41,29 @@
|
|||
|
||||
#pragma mark - Property Functions
|
||||
|
||||
|
||||
- (void)setContact:(ABRecordRef)acontact {
|
||||
self->contact = acontact;
|
||||
[tableController setContact:contact];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - ViewController Functions
|
||||
|
||||
- (void)viewDidLoad{
|
||||
[super viewDidLoad];
|
||||
// Set selected+over background: IB lack !
|
||||
[editButton setImage:[UIImage imageNamed:@"contact_ok_over.png"]
|
||||
forState:(UIControlStateHighlighted | UIControlStateSelected)];
|
||||
}
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated {
|
||||
[super viewDidAppear:animated];
|
||||
if([tableController isEditing])
|
||||
[tableController setEditing:FALSE];
|
||||
[editButton setOff];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - UICompositeViewDelegate Functions
|
||||
|
||||
+ (UICompositeViewDescription*) compositeViewDescription {
|
||||
|
|
@ -67,4 +84,8 @@
|
|||
[[PhoneMainView instance] popView];
|
||||
}
|
||||
|
||||
- (IBAction)onEditClick:(id)event {
|
||||
[tableController setEditing:![tableController isEditing] animated:TRUE];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -116,6 +116,10 @@
|
|||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">contact_edit_over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUISelectedImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">contact_ok_default.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">contact_edit_default.png</string>
|
||||
|
|
@ -144,7 +148,6 @@
|
|||
<string key="NSFrame">{{0, 59}, {320, 401}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
|
|
@ -152,10 +155,15 @@
|
|||
</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="IBUIStyle">1</int>
|
||||
<int key="IBUISeparatorStyle">2</int>
|
||||
<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
|
||||
<bool key="IBUIAllowsSelectionDuringEditing">YES</bool>
|
||||
<bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
|
||||
<float key="IBUIRowHeight">44</float>
|
||||
<float key="IBUISectionHeaderHeight">10</float>
|
||||
|
|
@ -202,6 +210,23 @@
|
|||
</object>
|
||||
<int key="connectionID">27</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">editButton</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="100677920"/>
|
||||
</object>
|
||||
<int key="connectionID">31</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onEditClick:</string>
|
||||
<reference key="source" ref="100677920"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">30</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onBackClick:</string>
|
||||
|
|
@ -319,8 +344,9 @@
|
|||
<string key="20.CustomClassName">ContactDetailsTableViewController</string>
|
||||
<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="8.CustomClassName">UIToggleButton</string>
|
||||
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="0.0" key="8.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
<real value="2" key="8.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="0.0" key="9.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
</dictionary>
|
||||
|
|
@ -328,7 +354,7 @@
|
|||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">29</int>
|
||||
<int key="maxID">46</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
|
|
@ -343,33 +369,47 @@
|
|||
<object class="IBPartialClassDescription">
|
||||
<string key="className">ContactDetailsViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">onBackClick:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">onBackClick:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<dictionary class="NSMutableDictionary" key="actions">
|
||||
<string key="onBackClick:">id</string>
|
||||
<string key="onEditClick:">id</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||
<object class="IBActionInfo" key="onBackClick:">
|
||||
<string key="name">onBackClick:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">tableController</string>
|
||||
<string key="NS.object.0">ContactDetailsTableViewController</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">tableController</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<object class="IBActionInfo" key="onEditClick:">
|
||||
<string key="name">onEditClick:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="editButton">UIToggleButton</string>
|
||||
<string key="tableController">ContactDetailsTableViewController</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="editButton">
|
||||
<string key="name">editButton</string>
|
||||
<string key="candidateClassName">UIToggleButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="tableController">
|
||||
<string key="name">tableController</string>
|
||||
<string key="candidateClassName">ContactDetailsTableViewController</string>
|
||||
</object>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/ContactDetailsViewController.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>
|
||||
|
|
@ -385,6 +425,7 @@
|
|||
<string key="contact_back_over.png">{320, 117}</string>
|
||||
<string key="contact_edit_default.png">{320, 117}</string>
|
||||
<string key="contact_edit_over.png">{320, 117}</string>
|
||||
<string key="contact_ok_default.png">{320, 117}</string>
|
||||
<string key="numpad_background.png">{640, 523}</string>
|
||||
</dictionary>
|
||||
<string key="IBCocoaTouchPluginVersion">1181</string>
|
||||
|
|
|
|||
|
|
@ -155,9 +155,10 @@ static void sync_toc_address_book (ABAddressBookRef addressBook, CFDictionaryRef
|
|||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
UIContactCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UIContactCell"];
|
||||
static NSString *kCellId = @"UIContactCell";
|
||||
UIContactCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId];
|
||||
if (cell == nil) {
|
||||
cell = [[UIContactCell alloc] initWithIdentifier:@"UIContactCell"];
|
||||
cell = [[[UIContactCell alloc] initWithIdentifier:kCellId] autorelease];
|
||||
}
|
||||
|
||||
OrderedDictionary *subDic = [addressBookMap objectForKey: [addressBookMap keyAtIndex: [indexPath section]]];
|
||||
|
|
|
|||
|
|
@ -37,11 +37,11 @@
|
|||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[loginButton dealloc];
|
||||
[siteButton dealloc];
|
||||
[usernameField dealloc];
|
||||
[passwordField dealloc];
|
||||
[waitView dealloc];
|
||||
[loginButton release];
|
||||
[siteButton release];
|
||||
[usernameField release];
|
||||
[passwordField release];
|
||||
[waitView release];
|
||||
|
||||
// Remove all observer
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
|
|
@ -97,6 +97,8 @@
|
|||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
|
||||
NSString* siteUrl = [[LinphoneManager instance].settingsStore objectForKey:@"first_login_view_url"];
|
||||
if (siteUrl==nil) {
|
||||
siteUrl=@"http://www.linphone.org";
|
||||
|
|
|
|||
|
|
@ -91,9 +91,10 @@
|
|||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
UIHistoryCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UIHistoryCell"];
|
||||
static NSString *kCellId = @"UIHistoryCell";
|
||||
UIHistoryCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId];
|
||||
if (cell == nil) {
|
||||
cell = [[UIHistoryCell alloc] initWithIdentifier:@"UIHistoryCell"];
|
||||
cell = [[[UIHistoryCell alloc] initWithIdentifier:kCellId] autorelease];
|
||||
}
|
||||
|
||||
LinphoneCallLog *log = [[callLogs objectAtIndex:[indexPath row]] pointerValue];
|
||||
|
|
|
|||
|
|
@ -70,9 +70,10 @@ typedef enum _HistoryView {
|
|||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
[[tableController tableView] setEditing:FALSE];
|
||||
[self changeView: History_All];
|
||||
if([tableController isEditing])
|
||||
[tableController setEditing:FALSE];
|
||||
[editButton setOff];
|
||||
[self changeView: History_All];
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
|
||||
|
|
@ -124,7 +125,7 @@ typedef enum _HistoryView {
|
|||
}
|
||||
|
||||
- (IBAction)onEditClick:(id) event {
|
||||
[[tableController tableView] setEditing:![[tableController tableView] isEditing] animated:TRUE];
|
||||
[tableController setEditing:![tableController isEditing] animated:TRUE];
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ enum TableSection {
|
|||
|
||||
- (void)dealloc {
|
||||
[callCellData removeAllObjects];
|
||||
[callCellData dealloc];
|
||||
[callCellData release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
|
@ -196,9 +196,10 @@ enum TableSection {
|
|||
#pragma mark - UITableViewDataSource Functions
|
||||
|
||||
- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
UICallCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UICallCell"];
|
||||
static NSString *kCellId = @"UICallCell";
|
||||
UICallCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId];
|
||||
if (cell == nil) {
|
||||
cell = [[UICallCell alloc] initWithIdentifier:@"UICallCell"];
|
||||
cell = [[[UICallCell alloc] initWithIdentifier:kCellId] autorelease];
|
||||
}
|
||||
|
||||
bool inConference = indexPath.section == ConferenceSection;
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@
|
|||
|
||||
- (void)callUpdate:(LinphoneCall *)acall state:(LinphoneCallState)astate {
|
||||
if(call == acall && (astate == LinphoneCallEnd || astate == LinphoneCallError)) {
|
||||
[self dismiss: IncomingCall_Aborted];
|
||||
[self dismiss: [NSNumber numberWithInt: IncomingCall_Aborted]];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -103,12 +103,12 @@
|
|||
|
||||
- (IBAction)onAcceptClick:(id)event {
|
||||
linphone_core_accept_call([LinphoneManager getLc], call);
|
||||
[self dismiss: IncomingCall_Accepted];
|
||||
[self dismiss: [NSNumber numberWithInt:IncomingCall_Accepted]];
|
||||
}
|
||||
|
||||
- (IBAction)onDeclineClick:(id)event {
|
||||
linphone_core_terminate_call([LinphoneManager getLc], call);
|
||||
[self dismiss: IncomingCall_Decline];
|
||||
[self dismiss: [NSNumber numberWithInt:IncomingCall_Decline]];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -99,6 +99,8 @@
|
|||
#pragma mark - ViewController Functions
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
|
||||
[pauseButton setType:UIPauseButtonType_CurrentCall call:nil];
|
||||
|
||||
[zeroButton setDigit:'0'];
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@
|
|||
[stateBarView release];
|
||||
[tabBarView release];
|
||||
[viewControllerCache removeAllObjects];
|
||||
[currentViewDescription dealloc];
|
||||
[currentViewDescription release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
|
@ -268,7 +268,7 @@
|
|||
|
||||
// Dealloc old view description
|
||||
if(oldViewDescription != nil) {
|
||||
[oldViewDescription dealloc];
|
||||
[oldViewDescription release];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
28
Classes/LinphoneUI/UIEditableTableViewCell.h
Normal file
28
Classes/LinphoneUI/UIEditableTableViewCell.h
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
/* UIEditableTableViewCell.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 UIEditableTableViewCell : UITableViewCell<UITextFieldDelegate> {
|
||||
UITextField *detailTextField;
|
||||
}
|
||||
|
||||
@property (nonatomic, retain) IBOutlet UITextField *detailTextField;
|
||||
|
||||
@end
|
||||
100
Classes/LinphoneUI/UIEditableTableViewCell.m
Normal file
100
Classes/LinphoneUI/UIEditableTableViewCell.m
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
/* UIEditableTableViewCell.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 "UIEditableTableViewCell.h"
|
||||
|
||||
@implementation UIEditableTableViewCell
|
||||
|
||||
@synthesize detailTextField;
|
||||
|
||||
|
||||
#pragma mark - Lifecycle Functions
|
||||
|
||||
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
|
||||
{
|
||||
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
|
||||
if (self) {
|
||||
UIView *parent = [self.detailTextLabel superview];
|
||||
self.detailTextField = [[UITextField alloc] init];
|
||||
[self.detailTextField setHidden:TRUE];
|
||||
[self.detailTextField setDelegate:self];
|
||||
[self.detailTextField setClearButtonMode: UITextFieldViewModeWhileEditing];
|
||||
[self.detailTextField setContentVerticalAlignment: UIControlContentVerticalAlignmentCenter];
|
||||
|
||||
UIFont *font = [UIFont fontWithName:@"Helvetica-Bold" size:[UIFont systemFontSize]];
|
||||
[self.detailTextLabel setFont:font];
|
||||
[self.detailTextField setFont:font];
|
||||
[parent addSubview:detailTextField];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[self.detailTextField release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - View Functions
|
||||
|
||||
- (void)layoutSubviews {
|
||||
[super layoutSubviews];
|
||||
|
||||
CGRect frame;
|
||||
frame.origin.x = 83;
|
||||
frame.origin.y = 0;
|
||||
frame.size.height = 44;
|
||||
|
||||
CGRect superframe = [self frame];
|
||||
frame.size.width = superframe.size.width - frame.origin.x - 10;
|
||||
[self.detailTextField setFrame:frame];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - UITableViewCell Functions
|
||||
|
||||
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
|
||||
[super setEditing:editing animated:animated];
|
||||
if(editing) {
|
||||
[self.detailTextField setHidden:FALSE];
|
||||
[self.detailTextLabel setHidden:TRUE];
|
||||
} else {
|
||||
[self.detailTextField setHidden:TRUE];
|
||||
[self.detailTextLabel setHidden:FALSE];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setEditing:(BOOL)editing {
|
||||
[self setEditing:editing animated:FALSE];
|
||||
}
|
||||
|
||||
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
|
||||
{
|
||||
[super setSelected:selected animated:animated];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - UITextFieldDelegate Functions
|
||||
|
||||
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
|
||||
[textField resignFirstResponder];
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -23,16 +23,17 @@
|
|||
|
||||
@protocol UIModalViewDelegate <NSObject>
|
||||
|
||||
- (void)modalViewDismiss:(UIModalViewController*)controller value:(int)value;
|
||||
- (void)modalViewDismiss:(UIModalViewController*)controller value:(id)value;
|
||||
|
||||
@end
|
||||
|
||||
@interface UIModalViewController : UIViewController {
|
||||
BOOL dismissed;
|
||||
id<UIModalViewDelegate> modalDelegate;
|
||||
}
|
||||
|
||||
- (void)setModalDelegate:(id<UIModalViewDelegate>)delegate;
|
||||
- (void)dismiss:(int)value;
|
||||
- (void)dismiss:(id)value;
|
||||
- (void)dismiss;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -21,14 +21,52 @@
|
|||
|
||||
@implementation UIModalViewController
|
||||
|
||||
- (void)dismiss:(int)value {
|
||||
- (void)initUIModalViewController {
|
||||
dismissed = FALSE;
|
||||
}
|
||||
|
||||
- (id)init {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self initUIModalViewController];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
|
||||
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
|
||||
if (self) {
|
||||
[self initUIModalViewController];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)decoder {
|
||||
self = [super initWithCoder:decoder];
|
||||
if (self) {
|
||||
[self initUIModalViewController];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dismiss:(id)value {
|
||||
if(modalDelegate != nil)
|
||||
[modalDelegate modalViewDismiss:self value:value];
|
||||
|
||||
if(!dismissed) {
|
||||
dismissed = true;
|
||||
[self autorelease];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)dismiss{
|
||||
if(modalDelegate != nil)
|
||||
[modalDelegate modalViewDismiss:self value:0];
|
||||
[modalDelegate modalViewDismiss:self value:nil];
|
||||
|
||||
if(!dismissed) {
|
||||
dismissed = true;
|
||||
[self autorelease];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setModalDelegate:(id<UIModalViewDelegate>)delegate {
|
||||
|
|
|
|||
29
Classes/LinphoneUI/UIView+ModalStack.h
Normal file
29
Classes/LinphoneUI/UIView+ModalStack.h
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
/* UIView+ModalStack.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>
|
||||
|
||||
#import "UIModalViewController.h"
|
||||
|
||||
@interface UIView (ModalStack)
|
||||
|
||||
- (void)addModalView:(UIView*)view;
|
||||
- (void)removeModalView:(UIView*)view;
|
||||
|
||||
@end
|
||||
49
Classes/LinphoneUI/UIView+ModalStack.m
Normal file
49
Classes/LinphoneUI/UIView+ModalStack.m
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
/* UIView+ModalStack.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 <QuartzCore/QuartzCore.h>
|
||||
|
||||
#import "UIView+ModalStack.h"
|
||||
|
||||
@implementation UIView (ModalStack)
|
||||
|
||||
- (void)addModalView:(UIView*)view {
|
||||
CATransition* trans = [CATransition animation];
|
||||
[trans setType:kCATransitionFade];
|
||||
[trans setDuration:0.35];
|
||||
[trans setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
|
||||
[trans setSubtype:kCATransitionFromRight];
|
||||
[self.layer addAnimation:trans forKey:@"Appear"];
|
||||
|
||||
[self addSubview:view];
|
||||
[self bringSubviewToFront:view];
|
||||
}
|
||||
|
||||
- (void)removeModalView:(UIView*)view {
|
||||
CATransition* trans = [CATransition animation];
|
||||
[trans setType:kCATransitionFade];
|
||||
[trans setDuration:0.35];
|
||||
[trans setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
|
||||
[trans setSubtype:kCATransitionFromRight];
|
||||
[self.layer addAnimation:trans forKey:@"Disappear"];
|
||||
|
||||
[view removeFromSuperview];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -43,8 +43,6 @@ typedef enum _PhoneView {
|
|||
@private
|
||||
UICompositeViewController *mainViewController;
|
||||
|
||||
NSMutableArray *modalControllers;
|
||||
|
||||
NSMutableDictionary *viewDescriptions;
|
||||
|
||||
UIActionSheet *incomingCallActionSheet;
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
#import "ContactDetailsViewController.h"
|
||||
|
||||
#import "AbstractCall.h"
|
||||
#import "UIView+ModalStack.h"
|
||||
|
||||
static PhoneMainView* phoneMainViewInstance=nil;
|
||||
|
||||
|
|
@ -55,7 +56,6 @@ static PhoneMainView* phoneMainViewInstance=nil;
|
|||
|
||||
// Init view descriptions
|
||||
viewDescriptions = [[NSMutableDictionary alloc] init];
|
||||
modalControllers = [[NSMutableArray alloc] init];
|
||||
}
|
||||
|
||||
- (id)init {
|
||||
|
|
@ -90,9 +90,6 @@ static PhoneMainView* phoneMainViewInstance=nil;
|
|||
[viewDescriptions removeAllObjects];
|
||||
[viewDescriptions release];
|
||||
|
||||
[modalControllers removeAllObjects];
|
||||
[modalControllers release];
|
||||
|
||||
[viewStack release];
|
||||
|
||||
[super dealloc];
|
||||
|
|
@ -458,7 +455,8 @@ static PhoneMainView* phoneMainViewInstance=nil;
|
|||
} else {
|
||||
IncomingCallViewController *controller = [[IncomingCallViewController alloc] init];
|
||||
[controller setCall:call];
|
||||
[self addModalViewController:controller];
|
||||
[controller setModalDelegate:self];
|
||||
[[self view] addModalView:[controller view]];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -519,37 +517,9 @@ static PhoneMainView* phoneMainViewInstance=nil;
|
|||
|
||||
#pragma mark - Modal Functions
|
||||
|
||||
- (void)modalViewDismiss:(UIModalViewController*)controller value:(int)value {
|
||||
[self removeModalViewController:controller];
|
||||
}
|
||||
|
||||
- (void)addModalViewController:(UIModalViewController*)controller {
|
||||
[controller setModalDelegate:self];
|
||||
[modalControllers insertObject:controller atIndex:0];
|
||||
|
||||
CATransition* trans = [CATransition animation];
|
||||
[trans setType:kCATransitionFade];
|
||||
[trans setDuration:0.35];
|
||||
[trans setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
|
||||
[trans setSubtype:kCATransitionFromRight];
|
||||
[[self view].layer addAnimation:trans forKey:@"Appear"];
|
||||
|
||||
[[self view] addSubview:[controller view]];
|
||||
[[self view] bringSubviewToFront:[controller view]];
|
||||
}
|
||||
|
||||
- (void)removeModalViewController:(UIModalViewController*)controller {
|
||||
- (void)modalViewDismiss:(UIModalViewController*)controller value:(id)value {
|
||||
[controller setModalDelegate:nil];
|
||||
[modalControllers removeObject:controller];
|
||||
|
||||
CATransition* trans = [CATransition animation];
|
||||
[trans setType:kCATransitionFade];
|
||||
[trans setDuration:0.35];
|
||||
[trans setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
|
||||
[trans setSubtype:kCATransitionFromRight];
|
||||
[[self view].layer addAnimation:trans forKey:@"Disappear"];
|
||||
|
||||
[[controller view] removeFromSuperview];
|
||||
[[self view] removeModalView:[controller view]];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -46,18 +46,35 @@
|
|||
}
|
||||
|
||||
|
||||
#pragma mark -
|
||||
|
||||
+ (void)removeBackground:(UIView*)view {
|
||||
if([view isKindOfClass:[UITableView class]]) {
|
||||
[view setBackgroundColor:[UIColor clearColor]];
|
||||
}
|
||||
for(UIView *subview in [view subviews]) {
|
||||
[SettingsViewController removeBackground:subview];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - ViewController Functions
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
|
||||
settingsController.delegate = self;
|
||||
settingsController.settingsReaderDelegate = self;
|
||||
settingsController.settingsStore=[[LinphoneManager instance] settingsStore];
|
||||
settingsController.showCreditsFooter = FALSE;
|
||||
|
||||
navigationController.view.frame = self.view.frame;
|
||||
[SettingsViewController removeBackground:navigationController.view];
|
||||
[SettingsViewController removeBackground:settingsController.view];
|
||||
[self.view addSubview: navigationController.view];
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
[super viewWillDisappear:animated];
|
||||
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
|
||||
|
|
|
|||
|
|
@ -11,12 +11,13 @@
|
|||
<string key="NS.object.0">1181</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUINavigationController</string>
|
||||
<string>IBUIViewController</string>
|
||||
<string>IBUIImageView</string>
|
||||
<string>IBUINavigationBar</string>
|
||||
<string>IBUINavigationItem</string>
|
||||
<string>IBUIViewController</string>
|
||||
<string>IBUIView</string>
|
||||
<string>IBUINavigationController</string>
|
||||
<string>IBProxyObject</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
|
|
@ -37,9 +38,23 @@
|
|||
<object class="IBUIView" id="802564442">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="286350256">
|
||||
<reference key="NSNextResponder" ref="802564442"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<reference key="NSSuperview" ref="802564442"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">numpad_background.png</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
|
|
@ -66,7 +81,6 @@
|
|||
<object class="IBUIViewController" id="73380722">
|
||||
<bool key="IBUIAutoresizesArchivedViewToFullSize">NO</bool>
|
||||
<object class="IBUINavigationItem" key="IBUINavigationItem" id="1014852814">
|
||||
<reference key="IBUINavigationBar"/>
|
||||
<string key="IBUITitle">Settings</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
|
|
@ -132,6 +146,9 @@
|
|||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="802564442"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="286350256"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
|
|
@ -165,6 +182,12 @@
|
|||
<reference key="parent" ref="73380722"/>
|
||||
<string key="objectName">settingsItem</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">16</int>
|
||||
<reference key="object" ref="286350256"/>
|
||||
<reference key="parent" ref="802564442"/>
|
||||
<string key="objectName">background</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
|
|
@ -175,6 +198,7 @@
|
|||
<string key="10.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="11.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="14.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="16.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="6.CustomClassName">IASKAppSettingsViewController</string>
|
||||
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
|
|
@ -183,64 +207,9 @@
|
|||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">15</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">IASKAppSettingsViewController</string>
|
||||
<string key="superclassName">UITableViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">dismiss:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">dismiss:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">dismiss:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">delegate</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">delegate</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<string key="name">delegate</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/IASKAppSettingsViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">SettingsViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="navigationController">UINavigationController</string>
|
||||
<string key="settingsController">IASKAppSettingsViewController</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="navigationController">
|
||||
<string key="name">navigationController</string>
|
||||
<string key="candidateClassName">UINavigationController</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="settingsController">
|
||||
<string key="name">settingsController</string>
|
||||
<string key="candidateClassName">IASKAppSettingsViewController</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/SettingsViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<int key="maxID">17</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes"/>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||
|
|
@ -249,6 +218,10 @@
|
|||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="NS.key.0">numpad_background.png</string>
|
||||
<string key="NS.object.0">{640, 523}</string>
|
||||
</object>
|
||||
<string key="IBCocoaTouchPluginVersion">1181</string>
|
||||
</data>
|
||||
</archive>
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@ UICompositeViewDescription *description = [UICompositeViewDescription alloc];
|
|||
#pragma mark - ViewController Functions
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self changeView:welcomeView back:FALSE animation:FALSE];
|
||||
}
|
||||
|
||||
|
|
|
|||
BIN
Resources/contact_bar_background.png
Normal file
BIN
Resources/contact_bar_background.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 161 B |
BIN
Resources/contact_ok_default.png
Normal file
BIN
Resources/contact_ok_default.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
BIN
Resources/contact_ok_over.png
Normal file
BIN
Resources/contact_ok_over.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
|
|
@ -370,6 +370,14 @@
|
|||
D37295DB158B3C9600D2C0C7 /* video_off_disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = D37295DA158B3C9600D2C0C7 /* video_off_disabled.png */; };
|
||||
D37295DC158B3C9600D2C0C7 /* video_off_disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = D37295DA158B3C9600D2C0C7 /* video_off_disabled.png */; };
|
||||
D377BBFA15A19DA6002B696B /* video_on_disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = D377BBF915A19DA6002B696B /* video_on_disabled.png */; };
|
||||
D378906515AC373B00BD776C /* ContactDetailsLabelViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D378906315AC373B00BD776C /* ContactDetailsLabelViewController.m */; };
|
||||
D378906615AC373B00BD776C /* ContactDetailsLabelViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D378906315AC373B00BD776C /* ContactDetailsLabelViewController.m */; };
|
||||
D378906715AC373B00BD776C /* ContactDetailsLabelViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D378906415AC373B00BD776C /* ContactDetailsLabelViewController.xib */; };
|
||||
D378906815AC373B00BD776C /* ContactDetailsLabelViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = D378906415AC373B00BD776C /* ContactDetailsLabelViewController.xib */; };
|
||||
D378906A15AC37C800BD776C /* contact_bar_background.png in Resources */ = {isa = PBXBuildFile; fileRef = D378906915AC37C800BD776C /* contact_bar_background.png */; };
|
||||
D378906B15AC37C800BD776C /* contact_bar_background.png in Resources */ = {isa = PBXBuildFile; fileRef = D378906915AC37C800BD776C /* contact_bar_background.png */; };
|
||||
D378907515AC448A00BD776C /* UIView+ModalStack.m in Sources */ = {isa = PBXBuildFile; fileRef = D378907415AC448A00BD776C /* UIView+ModalStack.m */; };
|
||||
D378907615AC448A00BD776C /* UIView+ModalStack.m in Sources */ = {isa = PBXBuildFile; fileRef = D378907415AC448A00BD776C /* UIView+ModalStack.m */; };
|
||||
D37B96B715A1A6F20005CCD2 /* call_state_delete_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D37B96B515A1A6F20005CCD2 /* call_state_delete_default.png */; };
|
||||
D37B96B815A1A6F20005CCD2 /* call_state_delete_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D37B96B515A1A6F20005CCD2 /* call_state_delete_default.png */; };
|
||||
D37B96B915A1A6F20005CCD2 /* call_state_delete_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D37B96B615A1A6F20005CCD2 /* call_state_delete_over.png */; };
|
||||
|
|
@ -487,6 +495,12 @@
|
|||
D3C2814C15A2D38D0098AA42 /* dialer_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C2814A15A2D38D0098AA42 /* dialer_selected.png */; };
|
||||
D3C2815215A2D64A0098AA42 /* numpad_star_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C2815115A2D64A0098AA42 /* numpad_star_over.png */; };
|
||||
D3C2815315A2D64A0098AA42 /* numpad_star_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C2815115A2D64A0098AA42 /* numpad_star_over.png */; };
|
||||
D3C6526715AC1A8F0092A874 /* UIEditableTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3C6526615AC1A8F0092A874 /* UIEditableTableViewCell.m */; };
|
||||
D3C6526815AC1A8F0092A874 /* UIEditableTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3C6526615AC1A8F0092A874 /* UIEditableTableViewCell.m */; };
|
||||
D3C6526B15AC228A0092A874 /* contact_ok_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C6526915AC228A0092A874 /* contact_ok_default.png */; };
|
||||
D3C6526C15AC228A0092A874 /* contact_ok_default.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C6526915AC228A0092A874 /* contact_ok_default.png */; };
|
||||
D3C6526D15AC228A0092A874 /* contact_ok_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C6526A15AC228A0092A874 /* contact_ok_over.png */; };
|
||||
D3C6526E15AC228A0092A874 /* contact_ok_over.png in Resources */ = {isa = PBXBuildFile; fileRef = D3C6526A15AC228A0092A874 /* contact_ok_over.png */; };
|
||||
D3C714B3159DB84400705B8E /* toy-mono.wav in Resources */ = {isa = PBXBuildFile; fileRef = D3C714B2159DB84400705B8E /* toy-mono.wav */; };
|
||||
D3C714B4159DB84400705B8E /* toy-mono.wav in Resources */ = {isa = PBXBuildFile; fileRef = D3C714B2159DB84400705B8E /* toy-mono.wav */; };
|
||||
D3D14E7715A70EE30074A527 /* UIChatRoomHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = D3D14E7515A70EE20074A527 /* UIChatRoomHeader.m */; };
|
||||
|
|
@ -869,7 +883,7 @@
|
|||
2214EBF212F86360002A5394 /* UIMicroButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIMicroButton.m; sourceTree = "<group>"; };
|
||||
2218A5CE12F973450088A667 /* LogView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LogView.h; sourceTree = "<group>"; };
|
||||
2218A92212FBE1340088A667 /* FirstLoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FirstLoginViewController.h; sourceTree = "<group>"; };
|
||||
2218A92312FBE1340088A667 /* FirstLoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FirstLoginViewController.m; sourceTree = "<group>"; };
|
||||
2218A92312FBE1340088A667 /* FirstLoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = FirstLoginViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
2218A92412FBE1340088A667 /* FirstLoginViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FirstLoginViewController.xib; sourceTree = "<group>"; };
|
||||
22276E8013C73D3100210156 /* libavcodec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavcodec.a; path = "liblinphone-sdk/apple-darwin/lib/libavcodec.a"; sourceTree = "<group>"; };
|
||||
22276E8113C73D3100210156 /* libavutil.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavutil.a; path = "liblinphone-sdk/apple-darwin/lib/libavutil.a"; sourceTree = "<group>"; };
|
||||
|
|
@ -914,11 +928,11 @@
|
|||
22C7555F1317E59C007BC101 /* UIBluetoothButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIBluetoothButton.m; sourceTree = "<group>"; };
|
||||
22C7560513265C6A007BC101 /* aes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aes.h; sourceTree = "<group>"; };
|
||||
22C7560613265C6A007BC101 /* asn1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asn1.h; sourceTree = "<group>"; };
|
||||
22C7560713265C6A007BC101 /* asn1_mac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asn1_mac.h; sourceTree = "<group>"; };
|
||||
22C7560713265C6A007BC101 /* asn1_mac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = asn1_mac.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||
22C7560813265C6A007BC101 /* asn1t.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asn1t.h; sourceTree = "<group>"; };
|
||||
22C7560913265C6A007BC101 /* bio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bio.h; sourceTree = "<group>"; };
|
||||
22C7560A13265C6A007BC101 /* blowfish.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = blowfish.h; sourceTree = "<group>"; };
|
||||
22C7560B13265C6A007BC101 /* bn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bn.h; sourceTree = "<group>"; };
|
||||
22C7560B13265C6A007BC101 /* bn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = bn.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||
22C7560C13265C6A007BC101 /* buffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = buffer.h; sourceTree = "<group>"; };
|
||||
22C7560D13265C6A007BC101 /* cast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cast.h; sourceTree = "<group>"; };
|
||||
22C7560E13265C6A007BC101 /* comp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = comp.h; sourceTree = "<group>"; };
|
||||
|
|
@ -936,7 +950,7 @@
|
|||
22C7561A13265C6A007BC101 /* ec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ec.h; sourceTree = "<group>"; };
|
||||
22C7561B13265C6A007BC101 /* ecdh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ecdh.h; sourceTree = "<group>"; };
|
||||
22C7561C13265C6A007BC101 /* ecdsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ecdsa.h; sourceTree = "<group>"; };
|
||||
22C7561D13265C6A007BC101 /* engine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = engine.h; sourceTree = "<group>"; };
|
||||
22C7561D13265C6A007BC101 /* engine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = engine.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||
22C7561E13265C6A007BC101 /* err.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = err.h; sourceTree = "<group>"; };
|
||||
22C7561F13265C6A007BC101 /* evp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = evp.h; sourceTree = "<group>"; };
|
||||
22C7562013265C6A007BC101 /* fips.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fips.h; sourceTree = "<group>"; };
|
||||
|
|
@ -994,7 +1008,7 @@
|
|||
22E5B0AD133B5EA20044EA25 /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libssl.a; path = "liblinphone-sdk/apple-darwin/lib/libssl.a"; sourceTree = "<group>"; };
|
||||
22E5B0AE133B5EA20044EA25 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = "liblinphone-sdk/apple-darwin/lib/libcrypto.a"; sourceTree = "<group>"; };
|
||||
22F2508B107141E100AC9B3F /* DialerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DialerViewController.h; sourceTree = "<group>"; };
|
||||
22F2508C107141E100AC9B3F /* DialerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DialerViewController.m; sourceTree = "<group>"; };
|
||||
22F2508C107141E100AC9B3F /* DialerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = DialerViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
22F2508D107141E100AC9B3F /* DialerViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = DialerViewController.xib; sourceTree = "<group>"; };
|
||||
22F254801073D99800AC9B3F /* ringback.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = ringback.wav; path = "liblinphone-sdk/apple-darwin/share/sounds/linphone/ringback.wav"; sourceTree = "<group>"; };
|
||||
22F51EF5107FA66500F98953 /* untitled.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = untitled.plist; sourceTree = "<group>"; };
|
||||
|
|
@ -1075,7 +1089,7 @@
|
|||
D32B6E2B15A5C0800033019F /* database.sqlite */ = {isa = PBXFileReference; lastKnownFileType = file; name = database.sqlite; path = Resources/database.sqlite; sourceTree = "<group>"; };
|
||||
D32B6E2E15A5C0AC0033019F /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
|
||||
D32B6E3615A5C2430033019F /* ChatModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ChatModel.h; path = Model/ChatModel.h; sourceTree = "<group>"; };
|
||||
D32B6E3715A5C2430033019F /* ChatModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ChatModel.m; path = Model/ChatModel.m; sourceTree = "<group>"; };
|
||||
D32B6E3715A5C2430033019F /* ChatModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; name = ChatModel.m; path = Model/ChatModel.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
D32B9DFA15A2F131000B6DEC /* FastAddressBook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FastAddressBook.h; path = Utils/FastAddressBook.h; sourceTree = "<group>"; };
|
||||
D32B9DFB15A2F131000B6DEC /* FastAddressBook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FastAddressBook.m; path = Utils/FastAddressBook.m; sourceTree = "<group>"; };
|
||||
D3432A5C158A4446001C6B0B /* led_connected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = led_connected.png; path = Resources/led_connected.png; sourceTree = "<group>"; };
|
||||
|
|
@ -1105,7 +1119,7 @@
|
|||
D35406F515A47E9E007E7E81 /* button_background_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = button_background_default.png; path = Resources/button_background_default.png; sourceTree = "<group>"; };
|
||||
D35406F615A47E9E007E7E81 /* button_background_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = button_background_over.png; path = Resources/button_background_over.png; sourceTree = "<group>"; };
|
||||
D35497FB15875372000081D8 /* ContactsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactsViewController.h; sourceTree = "<group>"; };
|
||||
D35497FC15875372000081D8 /* ContactsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContactsViewController.m; sourceTree = "<group>"; };
|
||||
D35497FC15875372000081D8 /* ContactsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = ContactsViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
D35497FD15875372000081D8 /* ContactsViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ContactsViewController.xib; sourceTree = "<group>"; };
|
||||
D354980215875534000081D8 /* contacts_all_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contacts_all_selected.png; path = Resources/contacts_all_selected.png; sourceTree = "<group>"; };
|
||||
D354980315875534000081D8 /* contacts_all_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contacts_all_default.png; path = Resources/contacts_all_default.png; sourceTree = "<group>"; };
|
||||
|
|
@ -1114,7 +1128,7 @@
|
|||
D354980E15875608000081D8 /* contacts_add_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contacts_add_default.png; path = Resources/contacts_add_default.png; sourceTree = "<group>"; };
|
||||
D354980F15875608000081D8 /* contacts_add_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contacts_add_over.png; path = Resources/contacts_add_over.png; 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>"; };
|
||||
D3549815158761D0000081D8 /* ContactsTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = ContactsTableViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
D354981815876FE7000081D8 /* list_details_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = list_details_default.png; path = Resources/list_details_default.png; sourceTree = "<group>"; };
|
||||
D354981915876FE7000081D8 /* list_details_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = list_details_over.png; path = Resources/list_details_over.png; sourceTree = "<group>"; };
|
||||
D354981E1587716B000081D8 /* UIStateBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIStateBar.h; sourceTree = "<group>"; };
|
||||
|
|
@ -1153,6 +1167,12 @@
|
|||
D36FB2D41589EF7C0036F6F2 /* UIPauseButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIPauseButton.m; sourceTree = "<group>"; };
|
||||
D37295DA158B3C9600D2C0C7 /* video_off_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = video_off_disabled.png; path = Resources/video_off_disabled.png; sourceTree = "<group>"; };
|
||||
D377BBF915A19DA6002B696B /* video_on_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = video_on_disabled.png; path = Resources/video_on_disabled.png; sourceTree = "<group>"; };
|
||||
D378906215AC373B00BD776C /* ContactDetailsLabelViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactDetailsLabelViewController.h; sourceTree = "<group>"; };
|
||||
D378906315AC373B00BD776C /* ContactDetailsLabelViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContactDetailsLabelViewController.m; sourceTree = "<group>"; };
|
||||
D378906415AC373B00BD776C /* ContactDetailsLabelViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ContactDetailsLabelViewController.xib; sourceTree = "<group>"; };
|
||||
D378906915AC37C800BD776C /* contact_bar_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contact_bar_background.png; path = Resources/contact_bar_background.png; sourceTree = "<group>"; };
|
||||
D378907415AC448A00BD776C /* UIView+ModalStack.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+ModalStack.m"; sourceTree = "<group>"; };
|
||||
D378907715AC44A300BD776C /* UIView+ModalStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+ModalStack.h"; sourceTree = "<group>"; };
|
||||
D37B96B515A1A6F20005CCD2 /* call_state_delete_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = call_state_delete_default.png; path = Resources/call_state_delete_default.png; sourceTree = "<group>"; };
|
||||
D37B96B615A1A6F20005CCD2 /* call_state_delete_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = call_state_delete_over.png; path = Resources/call_state_delete_over.png; sourceTree = "<group>"; };
|
||||
D37C638C15AAD251009D0BAC /* contact_number_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contact_number_over.png; path = Resources/contact_number_over.png; sourceTree = "<group>"; };
|
||||
|
|
@ -1165,18 +1185,18 @@
|
|||
D37DC6BF1594AE1800B2A5EB /* LinphoneCoreSettingsStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinphoneCoreSettingsStore.h; sourceTree = "<group>"; };
|
||||
D37DC6C01594AE1800B2A5EB /* LinphoneCoreSettingsStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LinphoneCoreSettingsStore.m; sourceTree = "<group>"; };
|
||||
D37DC6C51594AE6F00B2A5EB /* IASKAppSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKAppSettingsViewController.h; sourceTree = "<group>"; };
|
||||
D37DC6C61594AE6F00B2A5EB /* IASKAppSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKAppSettingsViewController.m; sourceTree = "<group>"; };
|
||||
D37DC6C61594AE6F00B2A5EB /* IASKAppSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = IASKAppSettingsViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
D37DC6C71594AE6F00B2A5EB /* IASKAppSettingsWebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKAppSettingsWebViewController.h; sourceTree = "<group>"; };
|
||||
D37DC6C81594AE6F00B2A5EB /* IASKAppSettingsWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKAppSettingsWebViewController.m; sourceTree = "<group>"; };
|
||||
D37DC6C81594AE6F00B2A5EB /* IASKAppSettingsWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = IASKAppSettingsWebViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
D37DC6C91594AE6F00B2A5EB /* IASKSpecifierValuesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSpecifierValuesViewController.h; sourceTree = "<group>"; };
|
||||
D37DC6CA1594AE6F00B2A5EB /* IASKSpecifierValuesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSpecifierValuesViewController.m; sourceTree = "<group>"; };
|
||||
D37DC6CB1594AE6F00B2A5EB /* IASKViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKViewController.h; sourceTree = "<group>"; };
|
||||
D37DC6CD1594AE6F00B2A5EB /* IASKSettingsReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSettingsReader.h; sourceTree = "<group>"; };
|
||||
D37DC6CE1594AE6F00B2A5EB /* IASKSettingsReader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSettingsReader.m; sourceTree = "<group>"; };
|
||||
D37DC6CE1594AE6F00B2A5EB /* IASKSettingsReader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = IASKSettingsReader.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
D37DC6CF1594AE6F00B2A5EB /* IASKSettingsStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSettingsStore.h; sourceTree = "<group>"; };
|
||||
D37DC6D01594AE6F00B2A5EB /* IASKSettingsStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSettingsStore.m; sourceTree = "<group>"; };
|
||||
D37DC6D11594AE6F00B2A5EB /* IASKSettingsStoreFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSettingsStoreFile.h; sourceTree = "<group>"; };
|
||||
D37DC6D21594AE6F00B2A5EB /* IASKSettingsStoreFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSettingsStoreFile.m; sourceTree = "<group>"; };
|
||||
D37DC6D21594AE6F00B2A5EB /* IASKSettingsStoreFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = IASKSettingsStoreFile.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
D37DC6D31594AE6F00B2A5EB /* IASKSettingsStoreUserDefaults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSettingsStoreUserDefaults.h; sourceTree = "<group>"; };
|
||||
D37DC6D41594AE6F00B2A5EB /* IASKSettingsStoreUserDefaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSettingsStoreUserDefaults.m; sourceTree = "<group>"; };
|
||||
D37DC6D51594AE6F00B2A5EB /* IASKSpecifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSpecifier.h; sourceTree = "<group>"; };
|
||||
|
|
@ -1188,7 +1208,7 @@
|
|||
D37DC6DC1594AE6F00B2A5EB /* IASKPSTitleValueSpecifierViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKPSTitleValueSpecifierViewCell.h; sourceTree = "<group>"; };
|
||||
D37DC6DD1594AE6F00B2A5EB /* IASKPSTitleValueSpecifierViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKPSTitleValueSpecifierViewCell.m; sourceTree = "<group>"; };
|
||||
D37DC6DE1594AE6F00B2A5EB /* IASKPSToggleSwitchSpecifierViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKPSToggleSwitchSpecifierViewCell.h; sourceTree = "<group>"; };
|
||||
D37DC6DF1594AE6F00B2A5EB /* IASKPSToggleSwitchSpecifierViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKPSToggleSwitchSpecifierViewCell.m; sourceTree = "<group>"; };
|
||||
D37DC6DF1594AE6F00B2A5EB /* IASKPSToggleSwitchSpecifierViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = IASKPSToggleSwitchSpecifierViewCell.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
D37DC6E01594AE6F00B2A5EB /* IASKSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSlider.h; sourceTree = "<group>"; };
|
||||
D37DC6E11594AE6F00B2A5EB /* IASKSlider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IASKSlider.m; sourceTree = "<group>"; };
|
||||
D37DC6E21594AE6F00B2A5EB /* IASKSwitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IASKSwitch.h; sourceTree = "<group>"; };
|
||||
|
|
@ -1241,6 +1261,10 @@
|
|||
D3B9A3DE15A58C450096EA4E /* chat_send_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = chat_send_over.png; path = Resources/chat_send_over.png; sourceTree = "<group>"; };
|
||||
D3C2814A15A2D38D0098AA42 /* dialer_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = dialer_selected.png; path = Resources/dialer_selected.png; sourceTree = "<group>"; };
|
||||
D3C2815115A2D64A0098AA42 /* numpad_star_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = numpad_star_over.png; path = Resources/numpad_star_over.png; sourceTree = "<group>"; };
|
||||
D3C6526515AC1A8F0092A874 /* UIEditableTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIEditableTableViewCell.h; sourceTree = "<group>"; };
|
||||
D3C6526615AC1A8F0092A874 /* UIEditableTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIEditableTableViewCell.m; sourceTree = "<group>"; };
|
||||
D3C6526915AC228A0092A874 /* contact_ok_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contact_ok_default.png; path = Resources/contact_ok_default.png; sourceTree = "<group>"; };
|
||||
D3C6526A15AC228A0092A874 /* contact_ok_over.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = contact_ok_over.png; path = Resources/contact_ok_over.png; sourceTree = "<group>"; };
|
||||
D3C714B2159DB84400705B8E /* toy-mono.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = "toy-mono.wav"; path = "Resources/toy-mono.wav"; sourceTree = "<group>"; };
|
||||
D3D14E7415A70EE20074A527 /* UIChatRoomHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIChatRoomHeader.h; sourceTree = "<group>"; };
|
||||
D3D14E7515A70EE20074A527 /* UIChatRoomHeader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIChatRoomHeader.m; sourceTree = "<group>"; };
|
||||
|
|
@ -1288,12 +1312,12 @@
|
|||
D3ED3E9615872EF1006C0DE4 /* history_missed_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_missed_selected.png; path = Resources/history_missed_selected.png; sourceTree = "<group>"; };
|
||||
D3ED3E9715872EF1006C0DE4 /* history_missed_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = history_missed_default.png; path = Resources/history_missed_default.png; sourceTree = "<group>"; };
|
||||
D3ED3EA41587334B006C0DE4 /* HistoryTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryTableViewController.h; sourceTree = "<group>"; };
|
||||
D3ED3EA51587334C006C0DE4 /* HistoryTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryTableViewController.m; sourceTree = "<group>"; };
|
||||
D3ED3EA51587334C006C0DE4 /* HistoryTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = HistoryTableViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
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>"; };
|
||||
D3ED3EB615873929006C0DE4 /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = HistoryViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
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>"; };
|
||||
D3F26BEB159869A6005F9CAB /* AbstractCall.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; name = AbstractCall.m; path = Utils/AbstractCall.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
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>"; };
|
||||
|
|
@ -1479,6 +1503,9 @@
|
|||
22E0A820111C44E100B04932 /* ConsoleViewController.h */,
|
||||
22E0A81F111C44E100B04932 /* ConsoleViewController.m */,
|
||||
22E0A81E111C44E100B04932 /* ConsoleViewController.xib */,
|
||||
D378906215AC373B00BD776C /* ContactDetailsLabelViewController.h */,
|
||||
D378906315AC373B00BD776C /* ContactDetailsLabelViewController.m */,
|
||||
D378906415AC373B00BD776C /* ContactDetailsLabelViewController.xib */,
|
||||
D37C639915AADEF4009D0BAC /* ContactDetailsTableViewController.h */,
|
||||
D37C639A15AADEF5009D0BAC /* ContactDetailsTableViewController.m */,
|
||||
D3128FDE15AABC7E00A2147A /* ContactDetailsViewController.h */,
|
||||
|
|
@ -1784,6 +1811,8 @@
|
|||
D37C639415AADDAF009D0BAC /* UIContactDetailsHeader.xib */,
|
||||
2248E90C12F7E4CF00220D9C /* UIDigitButton.h */,
|
||||
2248E90D12F7E4CF00220D9C /* UIDigitButton.m */,
|
||||
D3C6526515AC1A8F0092A874 /* UIEditableTableViewCell.h */,
|
||||
D3C6526615AC1A8F0092A874 /* UIEditableTableViewCell.m */,
|
||||
22BB1A67132FF16A005CD7AA /* UIEraseButton.h */,
|
||||
22BB1A68132FF16A005CD7AA /* UIEraseButton.m */,
|
||||
2214EB8712F84EBB002A5394 /* UIHangUpButton.h */,
|
||||
|
|
@ -1815,6 +1844,8 @@
|
|||
D3196D3D15A32BD8007FEEBA /* UITransferButton.m */,
|
||||
340751E5150F38FC00B89C47 /* UIVideoButton.h */,
|
||||
340751E6150F38FD00B89C47 /* UIVideoButton.m */,
|
||||
D378907715AC44A300BD776C /* UIView+ModalStack.h */,
|
||||
D378907415AC448A00BD776C /* UIView+ModalStack.m */,
|
||||
);
|
||||
path = LinphoneUI;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -2042,10 +2073,13 @@
|
|||
D31AAF62159B5B6E002C6B02 /* conference_over.png */,
|
||||
D3128FE715AABE4E00A2147A /* contact_back_default.png */,
|
||||
D3128FE815AABE4E00A2147A /* contact_back_over.png */,
|
||||
D378906915AC37C800BD776C /* contact_bar_background.png */,
|
||||
D3128FE915AABE4E00A2147A /* contact_edit_default.png */,
|
||||
D3128FEA15AABE4E00A2147A /* contact_edit_over.png */,
|
||||
D37C638D15AAD251009D0BAC /* contact_number.png */,
|
||||
D37C638C15AAD251009D0BAC /* contact_number_over.png */,
|
||||
D3C6526915AC228A0092A874 /* contact_ok_default.png */,
|
||||
D3C6526A15AC228A0092A874 /* contact_ok_over.png */,
|
||||
D354980E15875608000081D8 /* contacts_add_default.png */,
|
||||
D354980F15875608000081D8 /* contacts_add_over.png */,
|
||||
D354980315875534000081D8 /* contacts_all_default.png */,
|
||||
|
|
@ -2643,6 +2677,10 @@
|
|||
D37C638E15AAD251009D0BAC /* contact_number_over.png in Resources */,
|
||||
D37C639015AAD251009D0BAC /* contact_number.png in Resources */,
|
||||
D37C639715AADDAF009D0BAC /* UIContactDetailsHeader.xib in Resources */,
|
||||
D3C6526B15AC228A0092A874 /* contact_ok_default.png in Resources */,
|
||||
D3C6526D15AC228A0092A874 /* contact_ok_over.png in Resources */,
|
||||
D378906715AC373B00BD776C /* ContactDetailsLabelViewController.xib in Resources */,
|
||||
D378906A15AC37C800BD776C /* contact_bar_background.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -2869,6 +2907,10 @@
|
|||
D37C638F15AAD251009D0BAC /* contact_number_over.png in Resources */,
|
||||
D37C639115AAD251009D0BAC /* contact_number.png in Resources */,
|
||||
D37C639815AADDAF009D0BAC /* UIContactDetailsHeader.xib in Resources */,
|
||||
D3C6526C15AC228A0092A874 /* contact_ok_default.png in Resources */,
|
||||
D3C6526E15AC228A0092A874 /* contact_ok_over.png in Resources */,
|
||||
D378906815AC373B00BD776C /* ContactDetailsLabelViewController.xib in Resources */,
|
||||
D378906B15AC37C800BD776C /* contact_bar_background.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -2954,6 +2996,9 @@
|
|||
D3128FE115AABC7E00A2147A /* ContactDetailsViewController.m in Sources */,
|
||||
D37C639515AADDAF009D0BAC /* UIContactDetailsHeader.m in Sources */,
|
||||
D37C639B15AADEF6009D0BAC /* ContactDetailsTableViewController.m in Sources */,
|
||||
D3C6526715AC1A8F0092A874 /* UIEditableTableViewCell.m in Sources */,
|
||||
D378906515AC373B00BD776C /* ContactDetailsLabelViewController.m in Sources */,
|
||||
D378907515AC448A00BD776C /* UIView+ModalStack.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -3036,6 +3081,9 @@
|
|||
D3128FE215AABC7E00A2147A /* ContactDetailsViewController.m in Sources */,
|
||||
D37C639615AADDAF009D0BAC /* UIContactDetailsHeader.m in Sources */,
|
||||
D37C639C15AADEF6009D0BAC /* ContactDetailsTableViewController.m in Sources */,
|
||||
D3C6526815AC1A8F0092A874 /* UIEditableTableViewCell.m in Sources */,
|
||||
D378906615AC373B00BD776C /* ContactDetailsLabelViewController.m in Sources */,
|
||||
D378907615AC448A00BD776C /* UIView+ModalStack.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue