chat: search view

This commit is contained in:
Gautier Pelloux-Prayer 2015-10-12 11:30:53 +02:00
parent eea9d0e11f
commit 31ba4d0a51
29 changed files with 473 additions and 494 deletions

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14F27" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
@ -117,7 +117,7 @@
</accessibility>
</view>
<view contentMode="scaleAspectFit" id="127" userLabel="preview">
<rect key="frame" x="254.00000029960563" y="354.99999967643191" width="113" height="140"/>
<rect key="frame" x="254" y="354.99999934763446" width="113" height="140"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</view>
@ -538,43 +538,43 @@
</view>
</objects>
<resources>
<image name="avatar.png" width="261" height="261"/>
<image name="call_hangup.png" width="42" height="37"/>
<image name="camera_default.png" width="33" height="19"/>
<image name="camera_selected.png" width="33" height="19"/>
<image name="camera_switch_default.png" width="52" height="52"/>
<image name="camera_switch_disabled.png" width="52" height="52"/>
<image name="camera_switch_over.png" width="52" height="52"/>
<image name="avatar.png" width="255" height="255"/>
<image name="call_hangup.png" width="41" height="36"/>
<image name="camera_default.png" width="32" height="19"/>
<image name="camera_selected.png" width="32" height="19"/>
<image name="camera_switch_default.png" width="51" height="50"/>
<image name="camera_switch_disabled.png" width="51" height="50"/>
<image name="camera_switch_over.png" width="51" height="50"/>
<image name="color_C.png" width="1" height="1"/>
<image name="color_D.png" width="1" height="1"/>
<image name="color_F.png" width="1" height="1"/>
<image name="color_L.png" width="1" height="1"/>
<image name="conference_start.png" width="34" height="34"/>
<image name="footer_chat.png" width="28" height="28"/>
<image name="footer_dialer.png" width="28" height="28"/>
<image name="micro_default.png" width="30" height="38"/>
<image name="micro_selected.png" width="30" height="38"/>
<image name="numpad_0.png" width="53" height="50"/>
<image name="numpad_1.png" width="53" height="49"/>
<image name="numpad_2.png" width="53" height="50"/>
<image name="numpad_3.png" width="53" height="50"/>
<image name="numpad_4.png" width="53" height="49"/>
<image name="numpad_5.png" width="53" height="49"/>
<image name="numpad_6.png" width="53" height="50"/>
<image name="numpad_7.png" width="53" height="49"/>
<image name="numpad_8.png" width="53" height="50"/>
<image name="numpad_9.png" width="53" height="50"/>
<image name="conference_start.png" width="33" height="33"/>
<image name="footer_chat.png" width="27" height="27"/>
<image name="footer_dialer.png" width="27" height="27"/>
<image name="micro_default.png" width="29" height="37"/>
<image name="micro_selected.png" width="29" height="37"/>
<image name="numpad_0.png" width="52" height="48"/>
<image name="numpad_1.png" width="52" height="48"/>
<image name="numpad_2.png" width="52" height="48"/>
<image name="numpad_3.png" width="52" height="48"/>
<image name="numpad_4.png" width="52" height="48"/>
<image name="numpad_5.png" width="52" height="48"/>
<image name="numpad_6.png" width="52" height="48"/>
<image name="numpad_7.png" width="52" height="48"/>
<image name="numpad_8.png" width="52" height="48"/>
<image name="numpad_9.png" width="52" height="48"/>
<image name="numpad_sharp.png" width="53" height="50"/>
<image name="numpad_star.png" width="53" height="52"/>
<image name="options_add_call.png" width="30" height="31"/>
<image name="options_default.png" width="26" height="26"/>
<image name="options_selected.png" width="26" height="26"/>
<image name="options_transfer_call.png" width="30" height="31"/>
<image name="pause_big_default.png" width="52" height="52"/>
<image name="pause_big_disabled.png" width="52" height="52"/>
<image name="pause_big_over_selected.png" width="52" height="52"/>
<image name="speaker_default.png" width="28" height="26"/>
<image name="speaker_selected.png" width="28" height="26"/>
<image name="numpad_star.png" width="52" height="50"/>
<image name="options_add_call.png" width="29" height="30"/>
<image name="options_default.png" width="25" height="25"/>
<image name="options_selected.png" width="25" height="25"/>
<image name="options_transfer_call.png" width="29" height="30"/>
<image name="pause_big_default.png" width="51" height="50"/>
<image name="pause_big_disabled.png" width="51" height="50"/>
<image name="pause_big_over_selected.png" width="51" height="50"/>
<image name="speaker_default.png" width="27" height="25"/>
<image name="speaker_selected.png" width="27" height="25"/>
</resources>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar"/>

View file

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14F27" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ChatConversationCreateView">
<connections>
<outlet property="tableController" destination="4" id="18"/>
<outlet property="view" destination="5" id="14"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="WKv-mw-S2B" userLabel="iphone6MetricsView">
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" id="5">
<rect key="frame" x="0.0" y="42" width="375" height="559"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" id="7" userLabel="topBar">
<rect key="frame" x="0.0" y="0.0" width="375" height="40"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="jVg-vj-VOw" userLabel="backgroundColor">
<rect key="frame" x="0.0" y="0.0" width="375" height="40"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
</imageView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="fNt-yb-wsf" userLabel="backButton" customClass="UIIconButton">
<rect key="frame" x="0.0" y="0.0" width="75" height="40"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<accessibility key="accessibilityConfiguration" label="Back"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
<state key="normal" image="back.png">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<state key="highlighted" backgroundImage="color_E.png"/>
<connections>
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="463-Qr-hJG"/>
</connections>
</button>
</subviews>
</view>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" allowsSelectionDuringEditing="YES" allowsMultipleSelectionDuringEditing="YES" showsSelectionImmediatelyOnTouchBegin="NO" rowHeight="60" sectionHeaderHeight="22" sectionFooterHeight="22" id="6" userLabel="tableView">
<rect key="frame" x="0.0" y="84" width="375" height="475"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<color key="separatorColor" red="0.7254902124" green="0.76862746479999999" blue="0.79607844350000001" alpha="1" colorSpace="deviceRGB"/>
<connections>
<outlet property="dataSource" destination="4" id="11"/>
<outlet property="delegate" destination="4" id="12"/>
</connections>
</tableView>
<searchBar contentMode="redraw" id="Rd9-hK-nqR">
<rect key="frame" x="0.0" y="40" width="375" height="44"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<textInputTraits key="textInputTraits"/>
<connections>
<outlet property="delegate" destination="4" id="MJr-oP-Hib"/>
</connections>
</searchBar>
</subviews>
</view>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
</view>
<tableViewController autoresizesArchivedViewToFullSize="NO" id="4" userLabel="tableController" customClass="ChatConversationCreateTableView">
<extendedEdge key="edgesForExtendedLayout"/>
<nil key="simulatedStatusBarMetrics"/>
<connections>
<outlet property="view" destination="6" id="13"/>
</connections>
</tableViewController>
</objects>
<resources>
<image name="back.png" width="24" height="21"/>
<image name="color_E.png" width="1" height="1"/>
<image name="color_F.png" width="1" height="1"/>
</resources>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar"/>
<simulatedOrientationMetrics key="orientation"/>
<simulatedScreenMetrics key="destination" type="retina4"/>
</simulatedMetricsContainer>
</document>

View file

@ -64,11 +64,14 @@
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="Wzg-i0-spp" userLabel="callButton" customClass="UIIconButton">
<rect key="frame" x="225" y="0.0" width="75" height="40"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<state key="normal" image="status_busy.png">
<state key="normal" image="call_alt_start.png">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<state key="disabled" image="call_start_body_disabled.png"/>
<state key="highlighted" image="call_start_body_over.png"/>
<connections>
<action selector="onCallClick:" destination="-1" eventType="touchUpInside" id="Dsf-nS-K3V"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="10" userLabel="editButton" customClass="UIToggleButton">
<rect key="frame" x="300" y="0.0" width="75" height="40"/>
@ -87,15 +90,15 @@
</subviews>
</view>
<view contentMode="scaleToFill" id="49" userLabel="contentView">
<rect key="frame" x="0.0" y="44" width="375" height="515"/>
<rect key="frame" x="0.0" y="40" width="375" height="515"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" id="bJF-qS-vBP" userLabel="chatView">
<rect key="frame" x="0.0" y="0.0" width="375" height="446"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="450"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="60" sectionHeaderHeight="22" sectionFooterHeight="22" id="8" userLabel="messagesTableView">
<rect key="frame" x="0.0" y="0.0" width="375" height="418"/>
<rect key="frame" x="0.0" y="0.0" width="375" height="422"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<gestureRecognizers/>
@ -105,7 +108,7 @@
</connections>
</tableView>
<view contentMode="scaleToFill" id="fx4-ao-53M" userLabel="composeIndicatorView">
<rect key="frame" x="0.0" y="426" width="375" height="22"/>
<rect key="frame" x="0.0" y="427" width="375" height="22"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="%@ is composing..." lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="fpY-Fv-ht2" userLabel="composeLabel">
@ -185,6 +188,7 @@
</objects>
<resources>
<image name="back.png" width="24" height="21"/>
<image name="call_alt_start.png" width="29" height="29"/>
<image name="call_start_body_disabled.png" width="51" height="51"/>
<image name="call_start_body_over.png" width="51" height="51"/>
<image name="chat_picture_default.png" width="25" height="19"/>
@ -194,7 +198,6 @@
<image name="color_E.png" width="1" height="1"/>
<image name="color_F.png" width="1" height="1"/>
<image name="edit_list.png" width="29" height="28"/>
<image name="status_busy.png" width="27" height="28"/>
</resources>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar"/>

View file

@ -30,16 +30,6 @@
@synthesize call;
@synthesize delegate;
#pragma mark - Lifecycle Functions
- (id)init {
return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]];
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
#pragma mark - ViewController Functions
- (void)viewWillAppear:(BOOL)animated {

View file

@ -8,6 +8,6 @@
#import <UIKit/UIKit.h>
@interface ChatConversationSearchTableView : UITableViewController <UISearchBarDelegate>
@interface ChatConversationCreateTableView : UITableViewController <UISearchBarDelegate>
@end

View file

@ -0,0 +1,96 @@
//
// MyTableViewController.m
// UISearchDisplayController
//
// Created by Phillip Harris on 4/19/14.
// Copyright (c) 2014 Phillip Harris. All rights reserved.
//
#import "ChatConversationCreateTableView.h"
#import "UIChatCreateCell.h"
#import "LinphoneManager.h"
#import "PhoneMainView.h"
@interface ChatConversationCreateTableView ()
@property(nonatomic, strong) NSMutableArray *contacts;
@property(nonatomic, strong) NSMutableArray *allContacts;
@end
@implementation ChatConversationCreateTableView
- (void)viewWillAppear:(BOOL)animated {
self.contacts = [[NSMutableArray alloc] init];
self.allContacts = [[NSMutableArray alloc] init];
for (NSString *ref in LinphoneManager.instance.fastAddressBook.addressBookMap.allKeys) {
[self.contacts addObject:ref];
[self.allContacts addObject:ref];
}
}
- (void)reloadDataWithFilter:(NSString *)filter {
[_contacts removeAllObjects];
if (filter.length == 0) {
_contacts = [[NSMutableArray alloc] initWithArray:_allContacts];
} else {
for (NSString *contact in _allContacts) {
if ([contact containsString:filter]) {
[_contacts addObject:contact];
}
}
}
[self.tableView reloadData];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.contacts count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *kCellId = NSStringFromClass(UIChatCreateCell.class);
UIChatCreateCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId];
if (cell == nil) {
cell = [[UIChatCreateCell alloc] initWithIdentifier:kCellId];
}
cell.addressLabel.text = _contacts[indexPath.row];
const LinphoneAddress *addr = linphone_address_new(cell.addressLabel.text.UTF8String);
[ContactDisplay setDisplayNameLabel:cell.displayNameLabel forAddress:addr];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
LinphoneChatRoom *room = linphone_core_get_chat_room_from_uri([LinphoneManager getLc],
((NSString *)_contacts[indexPath.row]).UTF8String);
ChatConversationView *view = VIEW(ChatConversationView);
[view setChatRoom:room];
[PhoneMainView.instance popCurrentView];
[PhoneMainView.instance changeCurrentView:view.compositeViewDescription push:TRUE];
}
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
// display searchtext in UPPERCASE
searchBar.showsCancelButton = (searchText.length > 0);
[self reloadDataWithFilter:searchText];
}
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar {
[searchBar setShowsCancelButton:FALSE animated:TRUE];
}
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar {
[searchBar setShowsCancelButton:TRUE animated:TRUE];
}
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
[searchBar resignFirstResponder];
}
@end

View file

@ -0,0 +1,17 @@
//
// ChatConversationCreateViewViewController.h
// linphone
//
// Created by Gautier Pelloux-Prayer on 12/10/15.
//
//
#import <UIKit/UIKit.h>
#import "ChatConversationCreateTableView.h"
#import "UICompositeView.h"
@interface ChatConversationCreateView : UIViewController <UICompositeViewDelegate, UISearchBarDelegate>
@property(strong, nonatomic) IBOutlet ChatConversationCreateTableView *tableController;
- (IBAction)onBackClick:(id)sender;
@end

View file

@ -0,0 +1,59 @@
//
// ChatConversationCreateViewViewController.m
// linphone
//
// Created by Gautier Pelloux-Prayer on 12/10/15.
//
//
#import "ChatConversationCreateView.h"
#import "PhoneMainView.h"
@implementation ChatConversationCreateView
#pragma mark - UICompositeViewDelegate Functions
static UICompositeViewDescription *compositeDescription = nil;
+ (UICompositeViewDescription *)compositeViewDescription {
if (compositeDescription == nil) {
compositeDescription = [[UICompositeViewDescription alloc] init:self.class
statusBar:StatusBarView.class
tabBar:TabBarView.class
fullscreen:false
landscapeMode:false
portraitMode:true];
}
return compositeDescription;
}
- (UICompositeViewDescription *)compositeViewDescription {
return self.class.compositeViewDescription;
}
#pragma mark - searchBar delegate
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
// // display searchtext in UPPERCASE
// // searchBar.text = [searchText uppercaseString];
// searchBar.showsCancelButton = (searchText.length > 0);
// [ContactSelection setNameOrEmailFilter:searchText];
// [tableController loadData];
}
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar {
[searchBar setShowsCancelButton:FALSE animated:TRUE];
}
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar {
[searchBar setShowsCancelButton:TRUE animated:TRUE];
}
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
[searchBar resignFirstResponder];
}
- (IBAction)onBackClick:(id)sender {
[PhoneMainView.instance popCurrentView];
}
@end

View file

@ -1,330 +0,0 @@
//
// MyTableViewController.m
// UISearchDisplayController
//
// Created by Phillip Harris on 4/19/14.
// Copyright (c) 2014 Phillip Harris. All rights reserved.
//
#import "ChatConversationSearchTableView.h"
@interface ChatConversationSearchTableView ()
@property(nonatomic, strong) NSArray *names;
@property(nonatomic, strong) NSArray *searchResults;
@end
@implementation ChatConversationSearchTableView
//===============================================
#pragma mark -
#pragma mark Initialization
//===============================================
- (id)initWithStyle:(UITableViewStyle)style {
self = [super initWithStyle:style];
if (self) {
[self commonInit];
}
return self;
}
- (instancetype)initWithCoder:(NSCoder *)coder {
self = [super initWithCoder:coder];
if (self) {
[self commonInit];
}
return self;
}
- (void)commonInit {
_names = @[
@"Aaliyah",
@"Aaron",
@"Abigail",
@"Adam",
@"Addison",
@"Adrian",
@"Aiden",
@"Alex",
@"Alexa",
@"Alexander",
@"Alexandra",
@"Alexis",
@"Allison",
@"Alyssa",
@"Amelia",
@"Andrea",
@"Andrew",
@"Angel",
@"Anna",
@"Annabelle",
@"Anthony",
@"Aria",
@"Ariana",
@"Arianna",
@"Ashley",
@"Aubree",
@"Aubrey",
@"Audrey",
@"Austin",
@"Autumn",
@"Ava",
@"Avery",
@"Ayden",
@"Bailey",
@"Bella",
@"Benjamin",
@"Bentley",
@"Blake",
@"Brandon",
@"Brayden",
@"Brianna",
@"Brody",
@"Brooklyn",
@"Bryson",
@"Caleb",
@"Cameron",
@"Camila",
@"Carlos",
@"Caroline",
@"Carson",
@"Carter",
@"Charles",
@"Charlotte",
@"Chase",
@"Chloe",
@"Christian",
@"Christopher",
@"Claire",
@"Colton",
@"Connor",
@"Cooper",
@"Damian",
@"Daniel",
@"David",
@"Dominic",
@"Dylan",
@"Easton",
@"Eli",
@"Elijah",
@"Elizabeth",
@"Ella",
@"Ellie",
@"Emily",
@"Emma",
@"Ethan",
@"Eva",
@"Evan",
@"Evelyn",
@"Faith",
@"Gabriel",
@"Gabriella",
@"Gavin",
@"Genesis",
@"Gianna",
@"Grace",
@"Grayson",
@"Hailey",
@"Hannah",
@"Harper",
@"Henry",
@"Hudson",
@"Hunter",
@"Ian",
@"Isaac",
@"Isabella",
@"Isaiah",
@"Jace",
@"Jack",
@"Jackson",
@"Jacob",
@"James",
@"Jasmine",
@"Jason",
@"Jaxon",
@"Jayden",
@"Jeremiah",
@"Jocelyn",
@"John",
@"Jonathan",
@"Jordan",
@"Jose",
@"Joseph",
@"Joshua",
@"Josiah",
@"Juan",
@"Julia",
@"Julian",
@"Justin",
@"Katherine",
@"Kayden",
@"Kayla",
@"Kaylee",
@"Kennedy",
@"Kevin",
@"Khloe",
@"Kimberly",
@"Kylie",
@"Landon",
@"Lauren",
@"Layla",
@"Leah",
@"Levi",
@"Liam",
@"Lillian",
@"Lily",
@"Logan",
@"London",
@"Lucas",
@"Lucy",
@"Luis",
@"Luke",
@"Lydia",
@"Mackenzie",
@"Madeline",
@"Madelyn",
@"Madison",
@"Makayla",
@"Mason",
@"Matthew",
@"Maya",
@"Melanie",
@"Mia",
@"Michael",
@"Molly",
@"Morgan",
@"Naomi",
@"Natalie",
@"Nathan",
@"Nathaniel",
@"Nevaeh",
@"Nicholas",
@"Noah",
@"Nolan",
@"Oliver",
@"Olivia",
@"Owen",
@"Parker",
@"Peyton",
@"Piper",
@"Reagan",
@"Riley",
@"Robert",
@"Ryan",
@"Ryder",
@"Samantha",
@"Samuel",
@"Sarah",
@"Savannah",
@"Scarlett",
@"Sebastian",
@"Serenity",
@"Skylar",
@"Sofia",
@"Sophia",
@"Sophie",
@"Stella",
@"Sydney",
@"Taylor",
@"Thomas",
@"Trinity",
@"Tristan",
@"Tyler",
@"Victoria",
@"Violet",
@"William",
@"Wyatt",
@"Xavier",
@"Zachary",
@"Zoe",
@"Zoey"
];
}
//===============================================
#pragma mark -
#pragma mark View Methods
//===============================================
- (void)viewDidLoad {
[super viewDidLoad];
[self configureTableView:self.tableView];
}
//===============================================
#pragma mark -
#pragma mark Helper
//===============================================
- (void)configureTableView:(UITableView *)tableView {
//
tableView.separatorInset = UIEdgeInsetsZero;
[tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cellId"];
UIView *tableFooterViewToGetRidOfBlankRows = [[UIView alloc] initWithFrame:CGRectZero];
tableFooterViewToGetRidOfBlankRows.backgroundColor = [UIColor clearColor];
tableView.tableFooterView = tableFooterViewToGetRidOfBlankRows;
}
//===============================================
#pragma mark -
#pragma mark UITableView
//===============================================
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// if (tableView == self.tableView) {
return [self.names count];
// } else {
// return [self.searchResults count];
// }
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellId" forIndexPath:indexPath];
// NSString *name = (tableView == self.tableView) ? self.names[indexPath.row] : self.searchResults[indexPath.row];
//
// cell.textLabel.text = name;
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
#pragma mark - searchBar delegate
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
// display searchtext in UPPERCASE
// searchBar.text = [searchText uppercaseString];
// searchBar.showsCancelButton = (searchText.length > 0);
// [ContactSelection setNameOrEmailFilter:searchText];
// [tableController loadData];
}
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar {
// [searchBar setShowsCancelButton:FALSE animated:TRUE];
}
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar {
// [searchBar setShowsCancelButton:TRUE animated:TRUE];
}
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
// [searchBar resignFirstResponder];
}
@end

View file

@ -57,6 +57,7 @@
- (IBAction)onSendClick:(id)event;
- (IBAction)onPictureClick:(id)event;
- (IBAction)onListTap:(id)sender;
- (IBAction)onCallClick:(id)sender;
- (void)setChatRoom:(LinphoneChatRoom *)room;

View file

@ -455,6 +455,16 @@ static void message_status(LinphoneChatMessage *msg, LinphoneChatMessageState st
- (IBAction)onListTap:(id)sender {
[messageField resignFirstResponder];
}
- (IBAction)onCallClick:(id)sender {
NSString *displayName = [FastAddressBook getContactDisplayName:linphone_chat_room_get_peer_address(chatRoom)];
// Go to dialer view
DialerView *view = VIEW(DialerView);
[PhoneMainView.instance changeCurrentView:view.compositeViewDescription];
char *uri = linphone_address_as_string(linphone_chat_room_get_peer_address(chatRoom));
[view call:[NSString stringWithUTF8String:uri] displayName:displayName];
ms_free(uri);
}
- (IBAction)onListSwipe:(id)sender {
[self onBackClick:sender];
}

View file

@ -20,14 +20,9 @@
#import "ChatsListView.h"
#import "PhoneMainView.h"
#import "ChatConversationCreateView.h"
@implementation ChatsListView
#pragma mark - Lifecycle Functions
- (id)init {
return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]];
}
#pragma mark - ViewController Functions
- (void)viewWillAppear:(BOOL)animated {
@ -74,9 +69,8 @@ static UICompositeViewDescription *compositeDescription = nil;
#pragma mark - Action Functions
- (IBAction)onAddClick:(id)event {
ChatConversationView *view = VIEW(ChatConversationView);
[PhoneMainView.instance changeCurrentView:view.compositeViewDescription push:TRUE];
[view setChatRoom:NULL];
ChatConversationCreateView *view = VIEW(ChatConversationCreateView);
[PhoneMainView.instance changeCurrentView:view.compositeViewDescription push:YES];
}
- (IBAction)onEditionChangeClick:(id)sender {

View file

@ -85,12 +85,6 @@ static NSString *sNameOrEmailFilter;
typedef enum _HistoryView { History_All, History_Linphone, History_Search, History_MAX } HistoryView;
#pragma mark - Lifecycle Functions
- (id)init {
return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]];
}
#pragma mark - UICompositeViewDelegate Functions
static UICompositeViewDescription *compositeDescription = nil;

View file

@ -24,12 +24,6 @@
typedef enum _HistoryView { History_All, History_Missed, History_MAX } HistoryView;
#pragma mark - Lifecycle Functions
- (id)init {
return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]];
}
#pragma mark - UICompositeViewDelegate Functions
static UICompositeViewDescription *compositeDescription = nil;

View file

@ -112,12 +112,6 @@
@synthesize backButton;
@synthesize image;
#pragma mark - Lifecycle Functions
- (id)init {
return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]];
}
#pragma mark - UICompositeViewDelegate Functions
static UICompositeViewDescription *compositeDescription = nil;

View file

@ -34,11 +34,6 @@
#pragma mark - Lifecycle Functions
- (id)init {
self = [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]];
return self;
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[callQualityTimer invalidate];

View file

@ -36,12 +36,6 @@ static NSString *const kDisappearAnimation = @"disappear";
@synthesize chatNotificationView;
@synthesize chatNotificationLabel;
#pragma mark - Lifecycle Functions
- (id)init {
return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]];
}
#pragma mark - ViewController Functions
- (void)viewWillAppear:(BOOL)animated {

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14F27" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
</dependencies>
<objects>
@ -84,11 +85,11 @@
</view>
</objects>
<resources>
<image name="avatar.png" width="261" height="261"/>
<image name="avatar.png" width="255" height="255"/>
<image name="color_A.png" width="1" height="1"/>
<image name="pause_big_default.png" width="52" height="52"/>
<image name="pause_big_disabled.png" width="52" height="52"/>
<image name="pause_big_over_selected.png" width="52" height="52"/>
<image name="pause_big_default.png" width="51" height="50"/>
<image name="pause_big_disabled.png" width="51" height="50"/>
<image name="pause_big_over_selected.png" width="51" height="50"/>
</resources>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar"/>

View file

@ -0,0 +1,17 @@
//
// UIChatCreateCellViewTableViewCell.h
// linphone
//
// Created by Gautier Pelloux-Prayer on 12/10/15.
//
//
#import <UIKit/UIKit.h>
@interface UIChatCreateCell : UITableViewCell
@property(weak, nonatomic) IBOutlet UILabel *displayNameLabel;
@property(weak, nonatomic) IBOutlet UILabel *addressLabel;
- (id)initWithIdentifier:(NSString *)identifier;
@end

View file

@ -0,0 +1,29 @@
//
// UIChatCreateCellViewTableViewCell.m
// linphone
//
// Created by Gautier Pelloux-Prayer on 12/10/15.
//
//
#import "UIChatCreateCell.h"
@implementation UIChatCreateCell
- (id)initWithIdentifier:(NSString *)identifier {
self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
if (self != nil) {
NSArray *arrayOfViews =
[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self.class) owner:self options:nil];
if ([arrayOfViews count] >= 1) {
// resize cell to match .nib size. It is needed when resized the cell to
// correctly adapt its height too
UIView *sub = ((UIView *)[arrayOfViews objectAtIndex:0]);
[self setFrame:CGRectMake(0, 0, sub.frame.size.width, sub.frame.size.height)];
[self addSubview:sub];
}
}
return self;
}
@end

View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14F27" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIChatCreateCell">
<connections>
<outlet property="addressLabel" destination="Bjy-H9-VyJ" id="YFi-IY-Omd"/>
<outlet property="displayNameLabel" destination="Hrt-Iz-T2j" id="0tY-FY-dFe"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="WTc-GF-a0y">
<rect key="frame" x="0.0" y="0.0" width="375" height="50"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="john.doe@linphone.org" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Bjy-H9-VyJ" userLabel="addressLabel">
<rect key="frame" x="0.0" y="30" width="375" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="John Doe" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Hrt-Iz-T2j" userLabel="displayNameLabel">
<rect key="frame" x="0.0" y="0.0" width="375" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<nil key="simulatedStatusBarMetrics"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="556.5" y="214"/>
</view>
</objects>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar"/>
<simulatedOrientationMetrics key="orientation"/>
<simulatedScreenMetrics key="destination" type="retina4"/>
</simulatedMetricsContainer>
</document>

View file

@ -6,6 +6,8 @@
//
//
#pragma once
#import <UIKit/UIKit.h>
@interface UICheckBoxTVTableViewController : UITableViewController

View file

@ -26,18 +26,6 @@
@synthesize stateImage;
@synthesize pauseButton;
#pragma mark - Lifecycle Functions
- (id)init {
return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]];
}
#pragma mark - ViewController Functions
- (void)viewDidLoad {
[super viewDidLoad];
}
#pragma mark - Static size Functions
+ (int)getHeight {

View file

@ -39,7 +39,7 @@
#import "SettingsView.h"
#import "SideMenuView.h"
#import "AssistantView.h"
//#import "ChatConversationCreateView.h"
#import "UIConfirmationDialog.h"
#import "DTAlertView.h"
#import "DTActionSheet.h"

View file

@ -361,17 +361,6 @@
@synthesize settingsController;
@synthesize navigationController;
#pragma mark - Lifecycle Functions
- (id)init {
return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]];
}
- (void)dealloc {
// Remove all observer
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
#pragma mark - UICompositeViewDelegate Functions
static UICompositeViewDescription *compositeDescription = nil;

View file

@ -14,12 +14,6 @@
@implementation SideMenuView
#pragma mark - Lifecycle Functions
- (id)init {
return [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]];
}
- (void)updateHeader {
LinphoneProxyConfig *default_proxy = linphone_core_get_default_proxy_config([LinphoneManager getLc]);
if (default_proxy != NULL) {

View file

@ -4,18 +4,18 @@
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed |in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
*/
#import <Foundation/Foundation.h>
#import <AddressBook/AddressBook.h>
@ -23,10 +23,11 @@
#include "linphone/linphonecore.h"
@interface FastAddressBook : NSObject {
NSMutableDictionary *addressBookMap;
ABAddressBookRef addressBook;
}
@property(readonly, nonatomic) NSMutableDictionary *addressBookMap;
- (void)reload;
- (void)saveAddressBook;
- (int)removeContact:(ABRecordRef)contact;

View file

@ -54,9 +54,8 @@ static void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info
+ (ABRecordRef)getContact:(NSString *)address {
if (LinphoneManager.instance.fastAddressBook != nil) {
@synchronized(LinphoneManager.instance.fastAddressBook->addressBookMap) {
return (
__bridge ABRecordRef)[LinphoneManager.instance.fastAddressBook->addressBookMap objectForKey:address];
@synchronized(LinphoneManager.instance.fastAddressBook.addressBookMap) {
return (__bridge ABRecordRef)[LinphoneManager.instance.fastAddressBook.addressBookMap objectForKey:address];
}
}
return nil;
@ -137,7 +136,7 @@ static void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info
- (FastAddressBook *)init {
if ((self = [super init]) != nil) {
addressBookMap = [NSMutableDictionary dictionary];
_addressBookMap = [NSMutableDictionary dictionary];
addressBook = nil;
[self reload];
}
@ -179,8 +178,8 @@ static void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info
- (void)loadData {
ABAddressBookRevert(addressBook);
@synchronized(addressBookMap) {
[addressBookMap removeAllObjects];
@synchronized(_addressBookMap) {
[_addressBookMap removeAllObjects];
CFArrayRef lContacts = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex count = CFArrayGetCount(lContacts);
@ -198,7 +197,7 @@ static void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info
if (lNormalizedSipKey != NULL)
lNormalizedKey = lNormalizedSipKey;
[addressBookMap setObject:(__bridge id)(lPerson)forKey:lNormalizedKey];
[_addressBookMap setObject:(__bridge id)(lPerson) forKey:lNormalizedKey];
CFRelease(lValue);
}
@ -227,9 +226,9 @@ static void sync_address_book(ABAddressBookRef addressBook, CFDictionaryRef info
(__bridge NSString *)CFDictionaryGetValue(lDict, kABPersonInstantMessageUsernameKey);
NSString *lNormalizedKey = [FastAddressBook normalizeSipURI:lValue];
if (lNormalizedKey != NULL) {
[addressBookMap setObject:(__bridge id)(lPerson)forKey:lNormalizedKey];
[_addressBookMap setObject:(__bridge id)(lPerson) forKey:lNormalizedKey];
} else {
[addressBookMap setObject:(__bridge id)(lPerson)forKey:lValue];
[_addressBookMap setObject:(__bridge id)(lPerson) forKey:lValue];
}
}
CFRelease(lDict);

View file

@ -90,10 +90,11 @@
6334DDFC1BBAC99B00631900 /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 152F22351B15E889008C0621 /* libxml2.dylib */; };
6334DDFD1BBAC9A200631900 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F0B026F21AA710AF00FF49F7 /* libiconv.dylib */; };
6334DE001BBAD5AA00631900 /* UICheckBoxTVTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6334DDFF1BBAD5AA00631900 /* UICheckBoxTVTableViewController.m */; };
633671611BCBAAD200BFCBDE /* ChatConversationCreateView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6336715F1BCBAAD200BFCBDE /* ChatConversationCreateView.m */; };
633756391B67BAF400E21BAD /* SideMenuTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 633756381B67BAF400E21BAD /* SideMenuTableView.m */; };
633756451B67D2B200E21BAD /* SideMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 633756431B67D2B100E21BAD /* SideMenuView.m */; };
633756461B67D2B200E21BAD /* SideMenuView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 633756441B67D2B100E21BAD /* SideMenuView.xib */; };
6341807C1BBC103100F71761 /* ChatConversationSearchTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6341807B1BBC103100F71761 /* ChatConversationSearchTableView.m */; };
6341807C1BBC103100F71761 /* ChatConversationCreateTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6341807B1BBC103100F71761 /* ChatConversationCreateTableView.m */; };
634610061B61330300548952 /* UILabel+Boldify.m in Sources */ = {isa = PBXBuildFile; fileRef = 634610051B61330300548952 /* UILabel+Boldify.m */; };
6346100F1B61409800548952 /* CallOutgoingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6346100E1B61409800548952 /* CallOutgoingView.m */; };
634610121B6140A500548952 /* CallOutgoingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 634610101B6140A500548952 /* CallOutgoingView.xib */; };
@ -309,6 +310,9 @@
63B81A0E1B57DA33009604A6 /* TPKeyboardAvoidingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63B81A071B57DA33009604A6 /* TPKeyboardAvoidingScrollView.m */; };
63B81A0F1B57DA33009604A6 /* TPKeyboardAvoidingTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63B81A091B57DA33009604A6 /* TPKeyboardAvoidingTableView.m */; };
63B81A101B57DA33009604A6 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 63B81A0B1B57DA33009604A6 /* UIScrollView+TPKeyboardAvoidingAdditions.m */; };
63B8D68C1BCBE65600C12B09 /* ChatConversationCreateView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 63B8D68E1BCBE65600C12B09 /* ChatConversationCreateView.xib */; };
63B8D6A21BCBF43100C12B09 /* UIChatCreateCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 63B8D6A01BCBF43100C12B09 /* UIChatCreateCell.m */; };
63B8D6A31BCBF43100C12B09 /* UIChatCreateCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 63B8D6A11BCBF43100C12B09 /* UIChatCreateCell.xib */; };
63BC49D41BA1AA6F004EC273 /* UIChatBubbleTextCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 63BC49D31BA1AA6F004EC273 /* UIChatBubbleTextCell.xib */; };
63BC49E21BA2CDFC004EC273 /* UICallPausedCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 63BC49E11BA2CDFC004EC273 /* UICallPausedCell.m */; };
63BC49EA1BA2CEDF004EC273 /* UICallPausedCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 63BC49E91BA2CEDF004EC273 /* UICallPausedCell.xib */; };
@ -700,14 +704,16 @@
63158FAC1B468E0E00969917 /* ImageOptim.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = ImageOptim.sh; path = Tools/ImageOptim.sh; sourceTree = "<group>"; };
6334DDFE1BBAD5AA00631900 /* UICheckBoxTVTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UICheckBoxTVTableViewController.h; sourceTree = "<group>"; };
6334DDFF1BBAD5AA00631900 /* UICheckBoxTVTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UICheckBoxTVTableViewController.m; sourceTree = "<group>"; };
6336715E1BCBAAD200BFCBDE /* ChatConversationCreateView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatConversationCreateView.h; sourceTree = "<group>"; };
6336715F1BCBAAD200BFCBDE /* ChatConversationCreateView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatConversationCreateView.m; sourceTree = "<group>"; };
633756371B67BAF400E21BAD /* SideMenuTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SideMenuTableView.h; sourceTree = "<group>"; };
633756381B67BAF400E21BAD /* SideMenuTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SideMenuTableView.m; sourceTree = "<group>"; };
633756421B67D2B100E21BAD /* SideMenuView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SideMenuView.h; sourceTree = "<group>"; };
633756431B67D2B100E21BAD /* SideMenuView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SideMenuView.m; sourceTree = "<group>"; };
633756441B67D2B100E21BAD /* SideMenuView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SideMenuView.xib; sourceTree = "<group>"; };
633E388219FFB0F400936D1C /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
6341807A1BBC103100F71761 /* ChatConversationSearchTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatConversationSearchTableView.h; sourceTree = "<group>"; };
6341807B1BBC103100F71761 /* ChatConversationSearchTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatConversationSearchTableView.m; sourceTree = "<group>"; };
6341807A1BBC103100F71761 /* ChatConversationCreateTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatConversationCreateTableView.h; sourceTree = "<group>"; };
6341807B1BBC103100F71761 /* ChatConversationCreateTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatConversationCreateTableView.m; sourceTree = "<group>"; };
634610041B61330300548952 /* UILabel+Boldify.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UILabel+Boldify.h"; sourceTree = "<group>"; };
634610051B61330300548952 /* UILabel+Boldify.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UILabel+Boldify.m"; sourceTree = "<group>"; };
6346100D1B61409800548952 /* CallOutgoingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CallOutgoingView.h; sourceTree = "<group>"; };
@ -943,6 +949,10 @@
63B81A091B57DA33009604A6 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; };
63B81A0A1B57DA33009604A6 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; };
63B81A0B1B57DA33009604A6 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; };
63B8D68D1BCBE65600C12B09 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ChatConversationCreateView.xib; sourceTree = "<group>"; };
63B8D69F1BCBF43100C12B09 /* UIChatCreateCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIChatCreateCell.h; sourceTree = "<group>"; };
63B8D6A01BCBF43100C12B09 /* UIChatCreateCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIChatCreateCell.m; sourceTree = "<group>"; };
63B8D6A11BCBF43100C12B09 /* UIChatCreateCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIChatCreateCell.xib; sourceTree = "<group>"; };
63BC49D31BA1AA6F004EC273 /* UIChatBubbleTextCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIChatBubbleTextCell.xib; sourceTree = "<group>"; };
63BC49E01BA2CDFC004EC273 /* UICallPausedCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UICallPausedCell.h; sourceTree = "<group>"; };
63BC49E11BA2CDFC004EC273 /* UICallPausedCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UICallPausedCell.m; sourceTree = "<group>"; };
@ -1356,8 +1366,11 @@
D3F83EE91582021700336684 /* CallView.h */,
D3F83EEA1582021700336684 /* CallView.m */,
D381881C15FE3FCA00C3EDCA /* CallView.xib */,
6341807A1BBC103100F71761 /* ChatConversationSearchTableView.h */,
6341807B1BBC103100F71761 /* ChatConversationSearchTableView.m */,
6341807A1BBC103100F71761 /* ChatConversationCreateTableView.h */,
6341807B1BBC103100F71761 /* ChatConversationCreateTableView.m */,
6336715E1BCBAAD200BFCBDE /* ChatConversationCreateView.h */,
6336715F1BCBAAD200BFCBDE /* ChatConversationCreateView.m */,
63B8D68E1BCBE65600C12B09 /* ChatConversationCreateView.xib */,
D32B6E2715A5BC430033019F /* ChatConversationTableView.h */,
D32B6E2815A5BC430033019F /* ChatConversationTableView.m */,
D3F795D315A582800077328B /* ChatConversationView.h */,
@ -1518,6 +1531,9 @@
6334DDFF1BBAD5AA00631900 /* UICheckBoxTVTableViewController.m */,
63C441C11BBC23ED0053DC5E /* UIAssistantTextField.h */,
63C441C21BBC23ED0053DC5E /* UIAssistantTextField.m */,
63B8D69F1BCBF43100C12B09 /* UIChatCreateCell.h */,
63B8D6A01BCBF43100C12B09 /* UIChatCreateCell.m */,
63B8D6A11BCBF43100C12B09 /* UIChatCreateCell.xib */,
);
path = LinphoneUI;
sourceTree = "<group>";
@ -2394,6 +2410,7 @@
637528401BBA8EF700FDEA6F /* numpad_hash_over.png in Resources */,
637527F41BBA8EF700FDEA6F /* chat_start_body_disabled.png in Resources */,
637527DE1BBA8EF700FDEA6F /* call_status_missed.png in Resources */,
63B8D68C1BCBE65600C12B09 /* ChatConversationCreateView.xib in Resources */,
6375286B1BBA8EF700FDEA6F /* status_away_phone.png in Resources */,
637528231BBA8EF700FDEA6F /* led_error.png in Resources */,
637527D11BBA8EF700FDEA6F /* call_alt_start.png in Resources */,
@ -2435,6 +2452,7 @@
637527D51BBA8EF700FDEA6F /* call_quality_indicator_0.png in Resources */,
D38187CD15FE346700C3EDCA /* HistoryDetailsView.xib in Resources */,
637527D81BBA8EF700FDEA6F /* call_quality_indicator_3.png in Resources */,
63B8D6A31BCBF43100C12B09 /* UIChatCreateCell.xib in Resources */,
6375284B1BBA8EF700FDEA6F /* pause_big_over_selected.png in Resources */,
F0642EF119DAC891009DB336 /* MainStoryboard.storyboard in Resources */,
6375284C1BBA8EF700FDEA6F /* pause_small_default.png in Resources */,
@ -2593,19 +2611,6 @@
shellPath = /bin/sh;
shellScript = $SRCROOT/Tools/git_version.sh;
};
63F0162D1BB3E9D5001FAD87 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "test -f liblinphone-sdk/apple-darwin/share/linphone/rootca.pem || (echo 'liblinphone SDK not found. Please refer to the README: you have to compile liblinphone SDK before building Linphone application.' && exit 1)";
};
D33CF34715D3985000CD4B85 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@ -2645,6 +2650,7 @@
22F2508E107141E100AC9B3F /* DialerView.m in Sources */,
633756451B67D2B200E21BAD /* SideMenuView.m in Sources */,
22E0A822111C44E100B04932 /* AboutView.m in Sources */,
633671611BCBAAD200BFCBDE /* ChatConversationCreateView.m in Sources */,
634610061B61330300548952 /* UILabel+Boldify.m in Sources */,
2248E90E12F7E4CF00220D9C /* UIDigitButton.m in Sources */,
633756391B67BAF400E21BAD /* SideMenuTableView.m in Sources */,
@ -2656,6 +2662,7 @@
63701DDF1BA32039006A9AE3 /* UIConfirmationDialog.m in Sources */,
22C755601317E59C007BC101 /* UIBluetoothButton.m in Sources */,
22AA8B0113D83F6300B30535 /* UICamSwitch.m in Sources */,
63B8D6A21BCBF43100C12B09 /* UIChatCreateCell.m in Sources */,
636BC9971B5F921B00C754CE /* UIIconButton.m in Sources */,
340751E7150F38FD00B89C47 /* UIVideoButton.m in Sources */,
34216F401547EBCD00EA9777 /* VideoZoomHandler.m in Sources */,
@ -2669,7 +2676,7 @@
D3549816158761D0000081D8 /* ContactsListTableView.m in Sources */,
D35498211587716B000081D8 /* StatusBarView.m in Sources */,
D3A55FBC15877E5E003FD403 /* UIContactCell.m in Sources */,
6341807C1BBC103100F71761 /* ChatConversationSearchTableView.m in Sources */,
6341807C1BBC103100F71761 /* ChatConversationCreateTableView.m in Sources */,
D326483815887D5200930C67 /* OrderedDictionary.m in Sources */,
D32648441588F6FC00930C67 /* UIToggleButton.m in Sources */,
D36FB2D51589EF7C0036F6F2 /* UIPauseButton.m in Sources */,
@ -2940,6 +2947,14 @@
name = Localizable.strings;
sourceTree = "<group>";
};
63B8D68E1BCBE65600C12B09 /* ChatConversationCreateView.xib */ = {
isa = PBXVariantGroup;
children = (
63B8D68D1BCBE65600C12B09 /* Base */,
);
name = ChatConversationCreateView.xib;
sourceTree = "<group>";
};
D37EE11016035793003608A6 /* ImageView.xib */ = {
isa = PBXVariantGroup;
children = (