all needed view for creating/editing a chatroom

This commit is contained in:
Benjamin Reis 2017-10-24 11:39:10 +02:00
parent f52d5368f3
commit 7d53422e65
24 changed files with 552 additions and 421 deletions

View file

@ -1,12 +0,0 @@
//
// ChatConversationCreateConfirmCollectionViewController.h
// linphone
//
// Created by REIS Benjamin on 05/10/2017.
//
#import <UIKit/UIKit.h>
@interface ChatConversationCreateConfirmCollectionViewController : UICollectionViewController
@end

View file

@ -1,30 +0,0 @@
//
// ChatConversationCreateConfirmCollectionViewController.m
// linphone
//
// Created by REIS Benjamin on 05/10/2017.
//
#import "ChatConversationCreateConfirmCollectionViewController.h"
#import "UIChatCreateConfirmCollectionViewCell.h"
@interface ChatConversationCreateConfirmCollectionViewController ()
@end
@implementation ChatConversationCreateConfirmCollectionViewController
static NSString * const reuseIdentifier = @"Cell";
- (void)viewDidLoad {
[super viewDidLoad];
// Register cell classes
[self.collectionView registerClass:[UIChatCreateConfirmCollectionViewCell class] forCellWithReuseIdentifier:reuseIdentifier];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end

View file

@ -1,23 +0,0 @@
//
// ChatConversationCreateConfirmView.h
// linphone
//
// Created by REIS Benjamin on 04/10/2017.
//
#import <UIKit/UIKit.h>
#import "UICompositeView.h"
#import "ChatConversationCreateConfirmCollectionViewController.h"
@interface ChatConversationCreateConfirmView : UIViewController <UICompositeViewDelegate, UITextFieldDelegate, UIGestureRecognizerDelegate, UICollectionViewDataSource>
@property (weak, nonatomic) IBOutlet UITextField *nameField;
@property (weak, nonatomic) IBOutlet UIIconButton *validateButton;
@property(nonatomic, strong) NSMutableDictionary *contacts;
@property(nonatomic, strong) NSMutableArray *contactsGroup;
@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
@property(strong, nonatomic) IBOutlet ChatConversationCreateConfirmCollectionViewController *collectionController;
- (IBAction)onBackClick:(id)sender;
- (IBAction)onValidateClick:(id)sender;
- (void)deleteContact:(NSString *)uri;
@end

View file

@ -1,120 +0,0 @@
//
// ChatConversationCreateConfirmView.m
// linphone
//
// Created by REIS Benjamin on 04/10/2017.
//
#import "ChatConversationCreateConfirmView.h"
#import "PhoneMainView.h"
#import "UIChatCreateConfirmCollectionViewCell.h"
@implementation ChatConversationCreateConfirmView
static UICompositeViewDescription *compositeDescription = nil;
+ (UICompositeViewDescription *)compositeViewDescription {
if (compositeDescription == nil) {
compositeDescription = [[UICompositeViewDescription alloc] init:self.class
statusBar:StatusBarView.class
tabBar:TabBarView.class
sideMenu:SideMenuView.class
fullscreen:false
isLeftFragment:NO
fragmentWith:ChatsListView.class];
}
return compositeDescription;
}
- (UICompositeViewDescription *)compositeViewDescription {
return self.class.compositeViewDescription;
}
- (void)viewDidLoad {
[super viewDidLoad];
_contactsGroup = [[NSMutableArray alloc] init];
_nameField.delegate = self;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(dismissKeyboards)];
tap.delegate = self;
[self.view addGestureRecognizer:tap];
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.scrollDirection = UICollectionViewScrollDirectionVertical;
layout.itemSize = CGSizeMake(100.0 , 50.0);
_collectionController.collectionView = _collectionView;
_collectionController = (ChatConversationCreateConfirmCollectionViewController *)[[UICollectionViewController alloc] initWithCollectionViewLayout:layout];
_collectionView.dataSource = self;
[_collectionView setCollectionViewLayout:layout];
}
- (void) viewWillAppear:(BOOL)animated {
for(id uri in _contacts.allKeys) {
[_collectionView registerClass:UIChatCreateConfirmCollectionViewCell.class forCellWithReuseIdentifier:uri];
if(![_contactsGroup containsObject:uri])
[_contactsGroup addObject:uri];
}
[_collectionView reloadData];
}
- (void)viewWillDisappear:(BOOL)animated {
[_contactsGroup removeAllObjects];
[_contacts removeAllObjects];
}
- (void)dismissKeyboards {
if ([_nameField isFirstResponder]) {
[_nameField resignFirstResponder];
}
}
- (IBAction)onBackClick:(id)sender {
[PhoneMainView.instance popToView:ChatConversationCreateView.compositeViewDescription];
}
- (IBAction)onValidateClick:(id)sender {
LinphoneChatRoom *room = linphone_core_create_client_group_chat_room(LC, _nameField.text.UTF8String);
bctbx_list_t *addresses = NULL;
for (id object in _contactsGroup) {
LinphoneAddress *addr = linphone_address_new(((NSString *)object).UTF8String);
if(addresses)
bctbx_list_append(addresses, addr);
else
addresses = bctbx_list_new(addr);
}
linphone_chat_room_add_participants(room, addresses);
}
- (void)deleteContact:(NSString *)uri {
[_contacts removeObjectForKey:uri];
[_contactsGroup removeObject:uri];
[_collectionView reloadData];
}
#pragma mark - UITextFieldDelegate
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
_validateButton.enabled = !((string.length == 0 || string == nil || [string isEqual:@""]) && (textField.text.length == 1));
return TRUE;
}
#pragma mark - UICollectionViewDataSource
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return _contacts.count;
}
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
return 1;
}
- (UIChatCreateConfirmCollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
NSString *uri = _contactsGroup[indexPath.item];
UIChatCreateConfirmCollectionViewCell *cell = (UIChatCreateConfirmCollectionViewCell *)[_collectionView dequeueReusableCellWithReuseIdentifier:uri forIndexPath:indexPath];
cell.uri = uri;
cell.confirmController = self;
cell = [cell initWithName:_contacts[uri]];
return cell;
}
@end

View file

@ -1,105 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13196" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13173"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ChatConversationCreateConfirmView">
<connections>
<outlet property="collectionView" destination="vxZ-Pk-gLv" id="Tl3-qq-DIh"/>
<outlet property="nameField" destination="5uU-sb-Hle" id="XjS-4y-ooZ"/>
<outlet property="validateButton" destination="aZ4-Rl-kUQ" id="H8t-tQ-Kjg"/>
<outlet property="view" destination="GFA-Ly-0cJ" id="pRe-As-q8O"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="1Dv-N8-O6g" 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" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="GFA-Ly-0cJ">
<rect key="frame" x="0.0" y="42" width="375" height="559"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vxZ-Pk-gLv" userLabel="addedContacts" customClass="UICollectionView">
<rect key="frame" x="8" y="112" width="359" height="439"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<accessibility key="accessibilityConfiguration" label="addedContacts"/>
</view>
<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fb4-Ne-SMe">
<rect key="frame" x="0.0" y="56" width="375" height="66"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</view>
<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2Kg-fP-a78" userLabel="topBar">
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="color_F.png" translatesAutoresizingMaskIntoConstraints="NO" id="hFd-RB-VGm" userLabel="backgroundColor">
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
</imageView>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Evf-57-b9t" userLabel="backButton" customClass="UIIconButton">
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="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_default.png">
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<state key="disabled" image="back_disabled.png"/>
<state key="highlighted" backgroundImage="color_E.png"/>
<connections>
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="OHI-PY-KTc"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="aZ4-Rl-kUQ" userLabel="nextButton" customClass="UIIconButton">
<rect key="frame" x="300" y="0.0" width="75" height="66"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="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="valid_default.png">
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<state key="disabled" image="valid_disabled.png"/>
<state key="highlighted" backgroundImage="color_E.png"/>
<connections>
<action selector="onValidateClick:" destination="-1" eventType="touchUpInside" id="0o4-sl-d1U"/>
</connections>
</button>
</subviews>
</view>
<textField opaque="NO" clipsSubviews="YES" tag="100" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="Name this chatroom" borderStyle="roundedRect" textAlignment="center" adjustsFontSizeToFit="NO" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="5uU-sb-Hle" userLabel="chatRoomNameField">
<rect key="frame" x="8" y="74" width="359" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" red="0.85415387149999999" green="0.85412830110000004" blue="0.85414278509999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<accessibility key="accessibilityConfiguration" label="ChatRoomName"/>
<color key="textColor" red="0.20521381499999999" green="0.20520767570000001" blue="0.2052111626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<textInputTraits key="textInputTraits" autocorrectionType="no" returnKeyType="next" enablesReturnKeyAutomatically="YES"/>
</textField>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</view>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<point key="canvasLocation" x="33.5" y="89.5"/>
</view>
</objects>
<resources>
<image name="back_default.png" width="24" height="22"/>
<image name="back_disabled.png" width="24" height="22"/>
<image name="color_E.png" width="2" height="2"/>
<image name="color_F.png" width="2" height="2"/>
<image name="valid_default.png" width="28" height="19"/>
<image name="valid_disabled.png" width="28" height="19"/>
</resources>
</document>

View file

@ -11,6 +11,7 @@
@interface ChatConversationCreateTableView : UITableViewController <UISearchBarDelegate>
@property(weak, nonatomic) IBOutlet UISearchBar *searchBar;
@property(nonatomic) Boolean allFilter;
@property(nonatomic) Boolean notFirstTime;
@property(nonatomic, strong) NSMutableArray *contactsGroup;
@property(nonatomic, strong) NSMutableDictionary *contactsDict;
@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;

View file

@ -24,6 +24,13 @@
[super viewWillAppear:animated];
_allContacts =
[[NSDictionary alloc] initWithDictionary:LinphoneManager.instance.fastAddressBook.addressBookMap];
if(_notFirstTime) {
_notFirstTime = FALSE;
for(NSString *addr in _contactsGroup) {
[_collectionView registerClass:UIChatCreateCollectionViewCell.class forCellWithReuseIdentifier:addr];
}
return;
}
_contacts = [[NSMutableDictionary alloc] initWithCapacity:_allContacts.count];
_contactsGroup = [[NSMutableArray alloc] init];
_contactsDict = [[NSMutableDictionary alloc] init];
@ -33,6 +40,10 @@
self.tableView.accessibilityIdentifier = @"Suggested addresses";
}
- (void) viewWillDisappear:(BOOL)animated {
_notFirstTime = FALSE;
}
- (void) loadData {
[self reloadDataWithFilter:_searchBar.text];
}

View file

@ -6,6 +6,9 @@
//
//
#ifndef ChatConversationCreateView_h
#define ChatConversationCreateView_h
#import <UIKit/UIKit.h>
#import "ChatConversationCreateTableView.h"
#import "ChatConversationCreateCollectionViewController.h"
@ -28,3 +31,5 @@
- (IBAction)onNextClick:(id)sender;
@end
#endif /* ChatConversationCreateView_h */

View file

@ -57,13 +57,16 @@ static UICompositeViewDescription *compositeDescription = nil;
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
_nextButton.enabled = FALSE;
_tableController.tableView.frame = CGRectMake(_tableController.tableView.frame.origin.x,
_tableController.searchBar.frame.origin.y + _tableController.searchBar.frame.size.height,
_tableController.tableView.frame.size.width,
_tableController.tableView.frame.size.height + _collectionView.frame.size.height);
if(_tableController.contactsGroup.count == 0) {
_nextButton.enabled = FALSE;
_tableController.tableView.frame = CGRectMake(_tableController.tableView.frame.origin.x,
_tableController.searchBar.frame.origin.y + _tableController.searchBar.frame.size.height,
_tableController.tableView.frame.size.width,
_tableController.tableView.frame.size.height + _collectionView.frame.size.height);
}
[_collectionView reloadData];
[self changeView:ContactsAll];
[_tableController loadData];
}
#pragma mark - searchBar delegate
@ -75,8 +78,9 @@ static UICompositeViewDescription *compositeDescription = nil;
}
- (IBAction)onNextClick:(id)sender {
ChatConversationCreateConfirmView *view = VIEW(ChatConversationCreateConfirmView);
ChatConversationInfoView *view = VIEW(ChatConversationInfoView);
view.contacts = _tableController.contactsDict;
view.create = TRUE;
[PhoneMainView.instance changeCurrentView:view.compositeViewDescription];
}

View file

@ -0,0 +1,29 @@
//
// ChatConversationInfoView.h
// linphone
//
// Created by REIS Benjamin on 23/10/2017.
//
#import <UIKit/UIKit.h>
#import "UICompositeView.h"
#import "UIRoundBorderedButton.h"
@interface ChatConversationInfoView : UIViewController <UICompositeViewDelegate, UIGestureRecognizerDelegate, UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource>
@property(nonatomic, strong) NSMutableDictionary *contacts;
@property(nonatomic, strong) NSMutableArray *admins;
@property(nonatomic) BOOL create;
@property (weak, nonatomic) IBOutlet UIIconButton *nextButton;
@property (weak, nonatomic) IBOutlet UIIconButton *backButton;
@property (weak, nonatomic) IBOutlet UIRoundBorderedButton *quitButton;
@property (weak, nonatomic) IBOutlet UITextField *nameLabel;
@property (weak, nonatomic) IBOutlet UITableView *tableView;
- (IBAction)onNextClick:(id)sender;
- (IBAction)onBackClick:(id)sender;
- (IBAction)onQuitClick:(id)sender;
@end

View file

@ -0,0 +1,121 @@
//
// ChatConversationInfoView.m
// linphone
//
// Created by REIS Benjamin on 23/10/2017.
//
#import <Foundation/Foundation.h>
#import "ChatConversationInfoView.h"
#import "PhoneMainView.h"
#import "UIChatConversationInfoTableViewCell.h"
@implementation ChatConversationInfoView
#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
sideMenu:SideMenuView.class
fullscreen:false
isLeftFragment:NO
fragmentWith:ChatsListView.class];
}
return compositeDescription;
}
- (UICompositeViewDescription *)compositeViewDescription {
return self.class.compositeViewDescription;
}
- (void)viewDidLoad {
[super viewDidLoad];
// if we use fragments, remove back button
if (IPAD) {
_backButton.hidden = YES;
}
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(dismissKeyboards)];
tap.delegate = self;
[self.view addGestureRecognizer:tap];
_nameLabel.delegate = self;
_tableView.dataSource = self;
_tableView.delegate = self;
_admins = [[NSMutableArray alloc] init];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
_nextButton.enabled = _nameLabel.text.length > 0 && _contacts.count > 0;
[_tableView reloadData];
_quitButton.hidden = _create;
}
#pragma mark - Buttons responders
- (IBAction)onNextClick:(id)sender {
}
- (IBAction)onBackClick:(id)sender {
if(_create) {
ChatConversationCreateView *view = VIEW(ChatConversationCreateView);
view.tableController.contactsDict = _contacts;
view.tableController.contactsGroup = [[_contacts allKeys] mutableCopy];
view.tableController.notFirstTime = TRUE;
[PhoneMainView.instance popToView:view.compositeViewDescription];
}
}
- (IBAction)onQuitClick:(id)sender {
}
#pragma mark - TableView
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return _contacts.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *kCellId = NSStringFromClass(UIChatConversationInfoTableViewCell.class);
UIChatConversationInfoTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId];
if (cell == nil) {
cell = [[UIChatConversationInfoTableViewCell alloc] initWithIdentifier:kCellId];
}
cell.uri = _contacts.allKeys[indexPath.row];
cell.nameLabel.text = [_contacts objectForKey:cell.uri];
cell.controllerView = self;
if(![_admins containsObject:cell.uri]) {
cell.adminLabel.enabled = FALSE;
cell.adminImage.image = [UIImage imageNamed:@"check_unselected.png"];
}
return cell;
}
#pragma mark - searchBar delegate
- (void)dismissKeyboards {
if ([_nameLabel isFirstResponder]) {
[_nameLabel resignFirstResponder];
}
}
#pragma mark - UITextFieldDelegate
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
_nextButton.enabled = (!((string.length == 0 || string == nil || [string isEqual:@""]) && (textField.text.length == 1))
&& _contacts.count > 0);
return TRUE;
}
@end

View file

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13196" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13174"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ChatConversationInfoView">
<connections>
<outlet property="backButton" destination="HVD-Ql-SJG" id="iHL-Rf-gT2"/>
<outlet property="nameLabel" destination="69I-Un-ASz" id="qmU-o2-TmF"/>
<outlet property="nextButton" destination="0v1-qv-lPd" id="nPu-w2-iy3"/>
<outlet property="quitButton" destination="Hnm-7C-dBQ" id="Kp1-Aw-FQq"/>
<outlet property="tableView" destination="pMq-Gv-0uu" id="ELS-RQ-olX"/>
<outlet property="view" destination="zgv-a8-72k" id="Gbu-s2-SgQ"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="BKk-x7-cO3" 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" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zgv-a8-72k">
<rect key="frame" x="0.0" y="42" width="375" height="559"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" alwaysBounceVertical="YES" style="plain" separatorStyle="default" allowsSelectionDuringEditing="YES" allowsMultipleSelectionDuringEditing="YES" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="pMq-Gv-0uu">
<rect key="frame" x="0.0" y="148" width="375" height="315"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="separatorColor" red="0.67030966280000004" green="0.71867996450000005" blue="0.75078284740000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</tableView>
<view contentMode="scaleToFill" fixedFrame="YES" insetsLayoutMarginsFromSafeArea="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Meo-HD-uD0" userLabel="topBar">
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="color_F.png" translatesAutoresizingMaskIntoConstraints="NO" id="Sna-Ku-1Aq" userLabel="backgroundColor">
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
</imageView>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="5" contentMode="left" fixedFrame="YES" text="Info" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="tJn-Nv-Duq" userLabel="addressLabel">
<rect key="frame" x="112" y="0.0" width="150" height="66"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
<accessibility key="accessibilityConfiguration" label="Contact name">
<accessibilityTraits key="traits" none="YES"/>
</accessibility>
<fontDescription key="fontDescription" type="system" pointSize="22"/>
<color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="HVD-Ql-SJG" userLabel="backButton" customClass="UIIconButton">
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="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_default.png">
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<state key="disabled" image="back_disabled.png"/>
<state key="highlighted" backgroundImage="color_E.png"/>
<connections>
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="MaN-Ja-qM2"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0v1-qv-lPd" userLabel="nextButton" customClass="UIIconButton">
<rect key="frame" x="300" y="0.0" width="75" height="66"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="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="valid_default.png">
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<state key="disabled" image="valid_disabled.png"/>
<state key="highlighted" backgroundImage="color_E.png"/>
<connections>
<action selector="onNextClick:" destination="-1" eventType="touchUpInside" id="OC1-up-De3"/>
</connections>
</button>
</subviews>
</view>
<textField opaque="NO" clipsSubviews="YES" tag="100" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Name this chatroom" textAlignment="center" adjustsFontSizeToFit="NO" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="69I-Un-ASz" userLabel="chatRoomNameField">
<rect key="frame" x="8" y="74" width="359" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" red="0.85415387149999999" green="0.85412830110000004" blue="0.85414278509999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<accessibility key="accessibilityConfiguration" label="ChatRoomName"/>
<color key="textColor" red="0.20521381499999999" green="0.20520767570000001" blue="0.2052111626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<textInputTraits key="textInputTraits" autocorrectionType="no" returnKeyType="next" enablesReturnKeyAutomatically="YES"/>
</textField>
<view contentMode="scaleToFill" fixedFrame="YES" insetsLayoutMarginsFromSafeArea="NO" translatesAutoresizingMaskIntoConstraints="NO" id="n8e-tx-jlu" userLabel="particpantsBar">
<rect key="frame" x="0.0" y="112" width="375" height="28"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="color_G.png" translatesAutoresizingMaskIntoConstraints="NO" id="t4R-zd-mU3" userLabel="backgroundColor">
<rect key="frame" x="0.0" y="0.0" width="375" height="28"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
</imageView>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="5" contentMode="left" fixedFrame="YES" text="Participants" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="vof-h9-AN3" userLabel="participantsLabel">
<rect key="frame" x="0.0" y="0.0" width="375" height="28"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
<accessibility key="accessibilityConfiguration" label="Contact name">
<accessibilityTraits key="traits" none="YES"/>
</accessibility>
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
<color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="XSI-9T-NtW" userLabel="addButton" customClass="UIIconButton">
<rect key="frame" x="346" y="4" width="21" height="21"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="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="chat_group_add.png">
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<state key="disabled" image="valid_disabled.png"/>
<state key="highlighted" backgroundImage="color_E.png"/>
<connections>
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="EHU-0A-zHi"/>
</connections>
</button>
</subviews>
</view>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="wordWrap" translatesAutoresizingMaskIntoConstraints="NO" id="Hnm-7C-dBQ" userLabel="quitButton" customClass="UIRoundBorderedButton">
<rect key="frame" x="93" y="471" width="189" height="43"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" red="0.98766469960000003" green="0.27512490750000002" blue="0.029739789660000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<accessibility key="accessibilityConfiguration" label="Use SIP account">
<bool key="isElement" value="YES"/>
</accessibility>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<state key="normal" title="QUIT CHATROOM">
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
</state>
<state key="highlighted" backgroundImage="color_F.png">
<color key="titleColor" red="0.67030966280000004" green="0.71867996450000005" blue="0.75078284740000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</state>
<connections>
<action selector="onQuitClick:" destination="-1" eventType="touchUpInside" id="TT0-hW-JMh"/>
</connections>
</button>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</view>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<point key="canvasLocation" x="33.5" y="89.5"/>
</view>
</objects>
<resources>
<image name="back_default.png" width="24" height="22"/>
<image name="back_disabled.png" width="24" height="22"/>
<image name="chat_group_add.png" width="42" height="42"/>
<image name="color_E.png" width="2" height="2"/>
<image name="color_F.png" width="2" height="2"/>
<image name="color_G.png" width="2" height="2"/>
<image name="valid_default.png" width="28" height="19"/>
<image name="valid_disabled.png" width="28" height="19"/>
</resources>
</document>

View file

@ -0,0 +1,21 @@
//
// UIChatConversationInfoTableViewCell.h
// linphone
//
// Created by REIS Benjamin on 23/10/2017.
//
#import <UIKit/UIKit.h>
#import "ChatConversationInfoView.h"
@interface UIChatConversationInfoTableViewCell : UITableViewCell <UIGestureRecognizerDelegate>
@property (weak, nonatomic) IBOutlet UIView *adminButton;
@property (weak, nonatomic) IBOutlet UILabel *adminLabel;
@property (weak, nonatomic) IBOutlet UIImageView *adminImage;
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) ChatConversationInfoView *controllerView;
@property (strong) NSString *uri;
- (id)initWithIdentifier:(NSString *)identifier;
@end

View file

@ -0,0 +1,61 @@
//
// UIChatConversationInfoTableViewCell.m
// linphone
//
// Created by REIS Benjamin on 23/10/2017.
//
#import "PhoneMainView.h"
#import "UIChatConversationInfoTableViewCell.h"
@implementation UIChatConversationInfoTableViewCell
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (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) {
UIChatConversationInfoTableViewCell *sub = ((UIChatConversationInfoTableViewCell *)[arrayOfViews objectAtIndex:0]);
self = sub;
}
}
UITapGestureRecognizer *adminTap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(onAdmin)];
adminTap.delegate = self;
adminTap.numberOfTapsRequired = 1;
[_adminButton addGestureRecognizer:adminTap];
return self;
}
- (IBAction)onDelete:(id)sender {
[_controllerView.contacts removeObjectForKey:_uri];
if ([_controllerView.admins containsObject:_uri])
[_controllerView.admins removeObject:_uri];
[_controllerView.tableView reloadData];
_controllerView.nextButton.enabled = _controllerView.nameLabel.text.length > 0 && _controllerView.contacts.count > 0;
}
- (void)onAdmin {
_adminLabel.enabled = !_adminLabel.enabled;
NSString *content = _adminLabel.enabled
? @"check_selected.png"
: @"check_unselected.png";
_adminImage.image = [UIImage imageNamed:content];
if (_adminLabel.enabled)
[_controllerView.admins addObject:_uri];
else
[_controllerView.admins removeObject:_uri];
}
@end

View file

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13196" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13174"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="KGk-i7-Jjw" customClass="UIChatConversationInfoTableViewCell">
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="John Doe" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rrT-f7-NQO" userLabel="displayNameLabel">
<rect key="frame" x="46" y="11" width="184" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" fixedFrame="YES" image="avatar.png" translatesAutoresizingMaskIntoConstraints="NO" id="Zsv-H9-9Dv" userLabel="avatarImage" customClass="UIRoundedImageView">
<rect key="frame" x="0.0" y="7" width="43" height="28"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</imageView>
<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="PbQ-SL-kUk">
<rect key="frame" x="213" y="2" width="98" height="39"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" fixedFrame="YES" image="check_selected.png" translatesAutoresizingMaskIntoConstraints="NO" id="FOh-C4-1Is" userLabel="adminImage">
<rect key="frame" x="26" y="13" width="18" height="13"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
<accessibility key="accessibilityConfiguration">
<bool key="isElement" value="YES"/>
</accessibility>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Admin" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DYS-vK-7Ol" userLabel="displayNameLabel">
<rect key="frame" x="50" y="10" width="71" height="19"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<accessibility key="accessibilityConfiguration">
<accessibilityTraits key="traits" button="YES"/>
</accessibility>
</view>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JPd-hQ-On6" userLabel="deleteButton" customClass="UIIconButton">
<rect key="frame" x="335" y="0.0" width="40" height="44"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="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="conference_delete.png">
<color key="titleShadowColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
</state>
<state key="disabled" image="valid_disabled.png"/>
<state key="highlighted" backgroundImage="color_E.png"/>
<connections>
<action selector="onDelete:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="gSd-t2-eDY"/>
</connections>
</button>
</subviews>
</tableViewCellContentView>
<connections>
<outlet property="adminButton" destination="PbQ-SL-kUk" id="Fgj-Oc-VhO"/>
<outlet property="adminImage" destination="FOh-C4-1Is" id="g51-C3-Ua8"/>
<outlet property="adminLabel" destination="DYS-vK-7Ol" id="OCp-Sw-hSc"/>
<outlet property="nameLabel" destination="rrT-f7-NQO" id="iwZ-ou-jVQ"/>
</connections>
<point key="canvasLocation" x="61.5" y="52"/>
</tableViewCell>
</objects>
<resources>
<image name="avatar.png" width="259" height="259"/>
<image name="check_selected.png" width="47" height="32"/>
<image name="color_E.png" width="2" height="2"/>
<image name="conference_delete.png" width="11" height="11"/>
<image name="valid_disabled.png" width="28" height="19"/>
</resources>
</document>

View file

@ -1,17 +0,0 @@
//
// UIChatCreateConfirmCollectionViewCell.h
// linphone
//
// Created by REIS Benjamin on 05/10/2017.
//
#import <UIKit/UIKit.h>
#import "UIChatCreateCollectionViewCell.h"
#import "ChatConversationCreateConfirmView.h"
@interface UIChatCreateConfirmCollectionViewCell : UICollectionViewCell
@property (weak, nonatomic) IBOutlet UILabel *displayNameLabel;
@property (strong, nonatomic) ChatConversationCreateConfirmView *confirmController;
@property (strong, nonatomic) NSString *uri;
- (id)initWithName:(NSString *)identifier;
@end

View file

@ -1,33 +0,0 @@
//
// UIChatCreateConfirmCollectionViewCell.m
// linphone
//
// Created by REIS Benjamin on 05/10/2017.
//
#import "UIChatCreateConfirmCollectionViewCell.h"
@implementation UIChatCreateConfirmCollectionViewCell
- (id)initWithName:(NSString *)identifier {
if (self != nil) {
NSArray *arrayOfViews =
[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self.class) owner:self options:nil];
if ([arrayOfViews count] >= 1) {
UIChatCreateCollectionViewCell *sub = ((UIChatCreateCollectionViewCell *)[arrayOfViews objectAtIndex:0]);
[self addSubview:sub];
_displayNameLabel = sub.nameLabel;
}
}
[_displayNameLabel setText:identifier];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onDelete)];
tap.numberOfTouchesRequired = 1;
[self addGestureRecognizer:tap];
return self;
}
- (void)onDelete {
[_confirmController deleteContact:_uri];
}
@end

View file

@ -1,48 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13196" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13173"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIChatCreateConfirmCollectionViewCell">
<connections>
<outlet property="displayNameLabel" destination="Wm0-Lb-XxP" id="TAE-Sa-n0a"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" id="blP-I3-gjJ" customClass="UIChatCreateCollectionViewCell">
<rect key="frame" x="0.0" y="0.0" width="100" height="50"/>
<autoresizingMask key="autoresizingMask"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
<rect key="frame" x="0.0" y="0.0" width="100" height="50"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="John Doe" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Wm0-Lb-XxP" userLabel="displayNameLabel">
<rect key="frame" x="14" y="18" width="92" height="20"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" fixedFrame="YES" image="conference_delete.png" translatesAutoresizingMaskIntoConstraints="NO" id="uyA-OW-PoB" userLabel="selectedImage">
<rect key="frame" x="1" y="23" width="10" height="10"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
</imageView>
</subviews>
</view>
<size key="customSize" width="170" height="45"/>
<connections>
<outlet property="nameLabel" destination="Wm0-Lb-XxP" id="MAU-k0-kts"/>
</connections>
<point key="canvasLocation" x="2" y="86"/>
</collectionViewCell>
</objects>
<resources>
<image name="conference_delete.png" width="11" height="11"/>
</resources>
</document>

View file

@ -31,7 +31,7 @@
#import "CallSideMenuView.h"
#import "CallView.h"
#import "ChatConversationCreateView.h"
#import "ChatConversationCreateConfirmView.h"
#import "ChatConversationInfoView.h"
#import "ChatConversationView.h"
#import "ChatsListView.h"
#import "ContactDetailsView.h"

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View file

@ -626,7 +626,6 @@
8C2595DD1DEDC92D007A6424 /* ProviderDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2595DC1DEDC92D007A6424 /* ProviderDelegate.m */; };
8C2595DF1DEDCC8E007A6424 /* CallKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C2595DE1DEDCC8E007A6424 /* CallKit.framework */; };
8C2595E11DEDDC67007A6424 /* callkit_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C2595E01DEDDC67007A6424 /* callkit_logo.png */; };
8C2A81921F877EDC0012A66B /* UIChatCreateConfirmCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8C2A81911F877EDC0012A66B /* UIChatCreateConfirmCollectionViewCell.xib */; };
8C2A81951F87B8000012A66B /* chat_group_avatar@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C2A81931F87B7FF0012A66B /* chat_group_avatar@2x.png */; };
8C2A81961F87B8000012A66B /* chat_group_avatar.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C2A81941F87B8000012A66B /* chat_group_avatar.png */; };
8C300D9A1E40E0CC00728EF3 /* lime_ko.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C300D981E40E0CC00728EF3 /* lime_ko.png */; };
@ -688,20 +687,24 @@
8C9C5E111F83BD97006987FA /* UIChatCreateCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C9C5E0F1F83BD97006987FA /* UIChatCreateCollectionViewCell.m */; };
8C9C5E121F83BD97006987FA /* UIChatCreateCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8C9C5E101F83BD97006987FA /* UIChatCreateCollectionViewCell.xib */; };
8CA2004C1D8158440095F859 /* PushKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8CA2004B1D8158440095F859 /* PushKit.framework */; };
8CA70AC61F9DEDE000A3D2EB /* ChatConversationInfoView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8CA70AC51F9DEDE000A3D2EB /* ChatConversationInfoView.xib */; };
8CA70AD11F9E0AE100A3D2EB /* ChatConversationInfoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA70AD01F9E0AE100A3D2EB /* ChatConversationInfoView.m */; };
8CA70AD41F9E285C00A3D2EB /* chat_group_add@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CA70AD21F9E285B00A3D2EB /* chat_group_add@2x.png */; };
8CA70AD51F9E285C00A3D2EB /* chat_group_add.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CA70AD31F9E285B00A3D2EB /* chat_group_add.png */; };
8CA70AE41F9E39E400A3D2EB /* UIChatConversationInfoTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CA70AE21F9E39E400A3D2EB /* UIChatConversationInfoTableViewCell.m */; };
8CA70AE51F9E39E400A3D2EB /* UIChatConversationInfoTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8CA70AE31F9E39E400A3D2EB /* UIChatConversationInfoTableViewCell.xib */; };
8CB2B8F91F86229E0015CEE2 /* chat_secure.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CB2B8F61F86229B0015CEE2 /* chat_secure.png */; };
8CB2B8FA1F86229E0015CEE2 /* next_disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CB2B8F71F86229C0015CEE2 /* next_disabled.png */; };
8CB2B8FB1F86229E0015CEE2 /* next_disabled@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CB2B8F81F86229D0015CEE2 /* next_disabled@2x.png */; };
8CD3F5AC1F86632100680C98 /* UIChatCreateConfirmCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD3F5AB1F86632100680C98 /* UIChatCreateConfirmCollectionViewCell.m */; };
8CD3F5B71F867A1400680C98 /* ChatConversationCreateConfirmCollectionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD3F5B61F867A1400680C98 /* ChatConversationCreateConfirmCollectionViewController.m */; };
8CDC61951F84D89B0087CF7F /* check_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CDC618C1F84D89B0087CF7F /* check_selected.png */; };
8CDC61971F84D9270087CF7F /* check_selected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CDC61961F84D9270087CF7F /* check_selected@2x.png */; };
8CDC619A1F84EAC10087CF7F /* ChatConversationCreateConfirmView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CDC61991F84EAC10087CF7F /* ChatConversationCreateConfirmView.m */; };
8CDC619C1F84EAFD0087CF7F /* ChatConversationCreateConfirmView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8CDC619B1F84EAFD0087CF7F /* ChatConversationCreateConfirmView.xib */; };
8CE24F4B1F8234A30077AC0A /* next_default.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CE24F491F8234A20077AC0A /* next_default.png */; };
8CE24F4C1F8234A30077AC0A /* next_default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CE24F4A1F8234A30077AC0A /* next_default@2x.png */; };
8CE24F571F8268850077AC0A /* conference_delete.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CE24F551F8268840077AC0A /* conference_delete.png */; };
8CE24F581F8268850077AC0A /* conference_delete@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CE24F561F8268840077AC0A /* conference_delete@2x.png */; };
8CE845651EC3500A00A94D60 /* bctoolbox-tester.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C5BCEC61EB3859200A9AAEF /* bctoolbox-tester.framework */; };
8CF25D951F9F336100BEA0C1 /* check_unselected@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CF25D8B1F9F336000BEA0C1 /* check_unselected@2x.png */; };
8CF25D961F9F336100BEA0C1 /* check_unselected.png in Resources */ = {isa = PBXBuildFile; fileRef = 8CF25D941F9F336100BEA0C1 /* check_unselected.png */; };
C90FAA7915AF54E6002091CB /* HistoryDetailsView.m in Sources */ = {isa = PBXBuildFile; fileRef = C90FAA7715AF54E6002091CB /* HistoryDetailsView.m */; };
D306459E1611EC2A00BB571E /* UILoadingImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = D306459D1611EC2900BB571E /* UILoadingImageView.m */; };
D3128FE115AABC7E00A2147A /* ContactDetailsView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3128FDF15AABC7E00A2147A /* ContactDetailsView.m */; };
@ -1675,7 +1678,6 @@
8C2595DC1DEDC92D007A6424 /* ProviderDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProviderDelegate.m; sourceTree = "<group>"; };
8C2595DE1DEDCC8E007A6424 /* CallKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CallKit.framework; path = System/Library/Frameworks/CallKit.framework; sourceTree = SDKROOT; };
8C2595E01DEDDC67007A6424 /* callkit_logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = callkit_logo.png; sourceTree = "<group>"; };
8C2A81911F877EDC0012A66B /* UIChatCreateConfirmCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = UIChatCreateConfirmCollectionViewCell.xib; sourceTree = "<group>"; };
8C2A81931F87B7FF0012A66B /* chat_group_avatar@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "chat_group_avatar@2x.png"; sourceTree = "<group>"; };
8C2A81941F87B8000012A66B /* chat_group_avatar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = chat_group_avatar.png; sourceTree = "<group>"; };
8C300D981E40E0CC00728EF3 /* lime_ko.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lime_ko.png; sourceTree = "<group>"; };
@ -1703,22 +1705,25 @@
8C9C5E0F1F83BD97006987FA /* UIChatCreateCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UIChatCreateCollectionViewCell.m; sourceTree = "<group>"; };
8C9C5E101F83BD97006987FA /* UIChatCreateCollectionViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = UIChatCreateCollectionViewCell.xib; sourceTree = "<group>"; };
8CA2004B1D8158440095F859 /* PushKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PushKit.framework; path = System/Library/Frameworks/PushKit.framework; sourceTree = SDKROOT; };
8CA70AC51F9DEDE000A3D2EB /* ChatConversationInfoView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatConversationInfoView.xib; sourceTree = "<group>"; };
8CA70ACF1F9E0ABA00A3D2EB /* ChatConversationInfoView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChatConversationInfoView.h; sourceTree = "<group>"; };
8CA70AD01F9E0AE100A3D2EB /* ChatConversationInfoView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChatConversationInfoView.m; sourceTree = "<group>"; };
8CA70AD21F9E285B00A3D2EB /* chat_group_add@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "chat_group_add@2x.png"; sourceTree = "<group>"; };
8CA70AD31F9E285B00A3D2EB /* chat_group_add.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = chat_group_add.png; sourceTree = "<group>"; };
8CA70AE11F9E39E400A3D2EB /* UIChatConversationInfoTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UIChatConversationInfoTableViewCell.h; sourceTree = "<group>"; };
8CA70AE21F9E39E400A3D2EB /* UIChatConversationInfoTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UIChatConversationInfoTableViewCell.m; sourceTree = "<group>"; };
8CA70AE31F9E39E400A3D2EB /* UIChatConversationInfoTableViewCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = UIChatConversationInfoTableViewCell.xib; sourceTree = "<group>"; };
8CB2B8F61F86229B0015CEE2 /* chat_secure.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = chat_secure.png; sourceTree = "<group>"; };
8CB2B8F71F86229C0015CEE2 /* next_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = next_disabled.png; sourceTree = "<group>"; };
8CB2B8F81F86229D0015CEE2 /* next_disabled@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "next_disabled@2x.png"; sourceTree = "<group>"; };
8CD3F5AA1F86632100680C98 /* UIChatCreateConfirmCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UIChatCreateConfirmCollectionViewCell.h; sourceTree = "<group>"; };
8CD3F5AB1F86632100680C98 /* UIChatCreateConfirmCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UIChatCreateConfirmCollectionViewCell.m; sourceTree = "<group>"; };
8CD3F5B51F867A1400680C98 /* ChatConversationCreateConfirmCollectionViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChatConversationCreateConfirmCollectionViewController.h; sourceTree = "<group>"; };
8CD3F5B61F867A1400680C98 /* ChatConversationCreateConfirmCollectionViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChatConversationCreateConfirmCollectionViewController.m; sourceTree = "<group>"; };
8CDC618C1F84D89B0087CF7F /* check_selected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = check_selected.png; path = "../../../ressources 27.07.17/check_selected.png"; sourceTree = "<group>"; };
8CDC61961F84D9270087CF7F /* check_selected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "check_selected@2x.png"; path = "../../../ressources 27.07.17/check_selected@2x.png"; sourceTree = "<group>"; };
8CDC61981F84EAC10087CF7F /* ChatConversationCreateConfirmView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChatConversationCreateConfirmView.h; sourceTree = "<group>"; };
8CDC61991F84EAC10087CF7F /* ChatConversationCreateConfirmView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChatConversationCreateConfirmView.m; sourceTree = "<group>"; };
8CDC619B1F84EAFD0087CF7F /* ChatConversationCreateConfirmView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ChatConversationCreateConfirmView.xib; sourceTree = "<group>"; };
8CE24F491F8234A20077AC0A /* next_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = next_default.png; sourceTree = "<group>"; };
8CE24F4A1F8234A30077AC0A /* next_default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "next_default@2x.png"; sourceTree = "<group>"; };
8CE24F551F8268840077AC0A /* conference_delete.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = conference_delete.png; sourceTree = "<group>"; };
8CE24F561F8268840077AC0A /* conference_delete@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "conference_delete@2x.png"; sourceTree = "<group>"; };
8CF25D8B1F9F336000BEA0C1 /* check_unselected@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "check_unselected@2x.png"; sourceTree = "<group>"; };
8CF25D941F9F336100BEA0C1 /* check_unselected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = check_unselected.png; sourceTree = "<group>"; };
C90FAA7615AF54E6002091CB /* HistoryDetailsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryDetailsView.h; sourceTree = "<group>"; };
C90FAA7715AF54E6002091CB /* HistoryDetailsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryDetailsView.m; sourceTree = "<group>"; };
C9B3A6FD15B485DB006F52EE /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = Utils/Utils.h; sourceTree = "<group>"; };
@ -2040,6 +2045,9 @@
D3F83EEA1582021700336684 /* CallView.m */,
D381881C15FE3FCA00C3EDCA /* CallView.xib */,
638F1A861C2167C2004B8E02 /* CallView~ipad.xib */,
8CA70ACF1F9E0ABA00A3D2EB /* ChatConversationInfoView.h */,
8CA70AD01F9E0AE100A3D2EB /* ChatConversationInfoView.m */,
8CA70AC51F9DEDE000A3D2EB /* ChatConversationInfoView.xib */,
8C9C5E0B1F83B2EF006987FA /* ChatConversationCreateCollectionViewController.h */,
8C9C5E0C1F83B2EF006987FA /* ChatConversationCreateCollectionViewController.m */,
6341807A1BBC103100F71761 /* ChatConversationCreateTableView.h */,
@ -2047,11 +2055,6 @@
6336715E1BCBAAD200BFCBDE /* ChatConversationCreateView.h */,
6336715F1BCBAAD200BFCBDE /* ChatConversationCreateView.m */,
63B8D68E1BCBE65600C12B09 /* ChatConversationCreateView.xib */,
8CD3F5B51F867A1400680C98 /* ChatConversationCreateConfirmCollectionViewController.h */,
8CD3F5B61F867A1400680C98 /* ChatConversationCreateConfirmCollectionViewController.m */,
8CDC61981F84EAC10087CF7F /* ChatConversationCreateConfirmView.h */,
8CDC61991F84EAC10087CF7F /* ChatConversationCreateConfirmView.m */,
8CDC619B1F84EAFD0087CF7F /* ChatConversationCreateConfirmView.xib */,
D32B6E2715A5BC430033019F /* ChatConversationTableView.h */,
D32B6E2815A5BC430033019F /* ChatConversationTableView.m */,
D3F795D315A582800077328B /* ChatConversationView.h */,
@ -2185,12 +2188,12 @@
D3EA540F159853750037DC6B /* UIChatCell.h */,
D3EA5410159853750037DC6B /* UIChatCell.m */,
639CEB0B1A1DF4FA004DE38F /* UIChatCell.xib */,
8CA70AE11F9E39E400A3D2EB /* UIChatConversationInfoTableViewCell.h */,
8CA70AE21F9E39E400A3D2EB /* UIChatConversationInfoTableViewCell.m */,
8CA70AE31F9E39E400A3D2EB /* UIChatConversationInfoTableViewCell.xib */,
8C9C5E0E1F83BD97006987FA /* UIChatCreateCollectionViewCell.h */,
8C9C5E0F1F83BD97006987FA /* UIChatCreateCollectionViewCell.m */,
8C9C5E101F83BD97006987FA /* UIChatCreateCollectionViewCell.xib */,
8CD3F5AA1F86632100680C98 /* UIChatCreateConfirmCollectionViewCell.h */,
8CD3F5AB1F86632100680C98 /* UIChatCreateConfirmCollectionViewCell.m */,
8C2A81911F877EDC0012A66B /* UIChatCreateConfirmCollectionViewCell.xib */,
63B8D69F1BCBF43100C12B09 /* UIChatCreateCell.h */,
63B8D6A01BCBF43100C12B09 /* UIChatCreateCell.m */,
639E9CA81C0DB7F200019A75 /* UIChatCreateCell.xib */,
@ -2443,6 +2446,10 @@
633FEBE11D3CD5570014B822 /* images */ = {
isa = PBXGroup;
children = (
8CF25D941F9F336100BEA0C1 /* check_unselected.png */,
8CF25D8B1F9F336000BEA0C1 /* check_unselected@2x.png */,
8CA70AD31F9E285B00A3D2EB /* chat_group_add.png */,
8CA70AD21F9E285B00A3D2EB /* chat_group_add@2x.png */,
8C2A81941F87B8000012A66B /* chat_group_avatar.png */,
8C2A81931F87B7FF0012A66B /* chat_group_avatar@2x.png */,
8CB2B8F61F86229B0015CEE2 /* chat_secure.png */,
@ -3334,6 +3341,7 @@
633FEDC41D3CD5590014B822 /* call_hangup_disabled.png in Resources */,
633FEDA81D3CD5590014B822 /* backspace_default.png in Resources */,
636316D11A1DEBCB0009B839 /* AboutView.xib in Resources */,
8CA70AE51F9E39E400A3D2EB /* UIChatConversationInfoTableViewCell.xib in Resources */,
244523AF1E8266CC0037A187 /* chat_delivered.png in Resources */,
633FEF481D3CD55A0014B822 /* speaker_selected.png in Resources */,
633FEED91D3CD55A0014B822 /* numpad_7~ipad.png in Resources */,
@ -3343,6 +3351,7 @@
633FEF021D3CD55A0014B822 /* options_disabled.png in Resources */,
633FEDC81D3CD5590014B822 /* call_missed.png in Resources */,
8CB2B8FA1F86229E0015CEE2 /* next_disabled.png in Resources */,
8CF25D961F9F336100BEA0C1 /* check_unselected.png in Resources */,
633FEF4B1D3CD55A0014B822 /* splashscreen@2x.png in Resources */,
8C300D9A1E40E0CC00728EF3 /* lime_ko.png in Resources */,
633FEE311D3CD5590014B822 /* color_I.png in Resources */,
@ -3470,6 +3479,7 @@
244523B11E8266CC0037A187 /* chat_read.png in Resources */,
639E9CAC1C0DB80300019A75 /* UIContactDetailsCell.xib in Resources */,
633FEE511D3CD5590014B822 /* deselect_all@2x.png in Resources */,
8CF25D951F9F336100BEA0C1 /* check_unselected@2x.png in Resources */,
F088488A19FF8C41007FFCF3 /* UIContactCell.xib in Resources */,
633FEE381D3CD5590014B822 /* contact_add_default.png in Resources */,
633FEE6F1D3CD5590014B822 /* footer_history_default@2x.png in Resources */,
@ -3661,6 +3671,7 @@
633FEEE91D3CD55A0014B822 /* numpad_9~ipad.png in Resources */,
633FEE331D3CD5590014B822 /* color_M.png in Resources */,
633FEE811D3CD5590014B822 /* led_connected@2x.png in Resources */,
8CA70AD51F9E285C00A3D2EB /* chat_group_add.png in Resources */,
633FEE881D3CD5590014B822 /* linphone_logo.png in Resources */,
633FEE9B1D3CD55A0014B822 /* numpad_0_default.png in Resources */,
633FEE591D3CD5590014B822 /* dialer_background@2x.png in Resources */,
@ -3686,14 +3697,12 @@
633FEF1D1D3CD55A0014B822 /* presence_offline@2x.png in Resources */,
24A3459E1D95797700881A5C /* UIShopTableCell.xib in Resources */,
633FEE231D3CD5590014B822 /* chat_start_body_over@2x.png in Resources */,
8CDC619C1F84EAFD0087CF7F /* ChatConversationCreateConfirmView.xib in Resources */,
633FEEBE1D3CD55A0014B822 /* numpad_4_over@2x.png in Resources */,
633FEF471D3CD55A0014B822 /* speaker_disabled@2x.png in Resources */,
633FEEFE1D3CD55A0014B822 /* options_add_call_disabled.png in Resources */,
633FEE291D3CD5590014B822 /* checkbox_unchecked@2x.png in Resources */,
63AADC001B6A0FF200AA16FD /* assistant_linphone_create.rc in Resources */,
633FEF1C1D3CD55A0014B822 /* presence_offline.png in Resources */,
8C2A81921F877EDC0012A66B /* UIChatCreateConfirmCollectionViewCell.xib in Resources */,
633FEE901D3CD55A0014B822 /* list_details_over.png in Resources */,
633FEDE31D3CD5590014B822 /* call_status_incoming@2x.png in Resources */,
633FEE821D3CD5590014B822 /* led_disconnected.png in Resources */,
@ -3721,6 +3730,7 @@
633FEDB91D3CD5590014B822 /* call_alt_start_disabled@2x.png in Resources */,
633FEE691D3CD5590014B822 /* footer_contacts_disabled@2x.png in Resources */,
633FEE891D3CD5590014B822 /* linphone_logo@2x.png in Resources */,
8CA70AC61F9DEDE000A3D2EB /* ChatConversationInfoView.xib in Resources */,
633FEF071D3CD55A0014B822 /* options_start_conference_default@2x.png in Resources */,
633FEE151D3CD5590014B822 /* chat_send_default@2x.png in Resources */,
633FEDC31D3CD5590014B822 /* call_hangup_default@2x.png in Resources */,
@ -3847,6 +3857,7 @@
633FEF2F1D3CD55A0014B822 /* route_speaker_default@2x.png in Resources */,
633FEDDD1D3CD5590014B822 /* call_start_body_disabled~ipad@2x.png in Resources */,
633FEEBD1D3CD55A0014B822 /* numpad_4_over.png in Resources */,
8CA70AD41F9E285C00A3D2EB /* chat_group_add@2x.png in Resources */,
633FEEF11D3CD55A0014B822 /* numpad_hash~ipad.png in Resources */,
633FEE781D3CD5590014B822 /* history_chat_indicator.png in Resources */,
633FEF431D3CD55A0014B822 /* select_all_disabled@2x.png in Resources */,
@ -4001,11 +4012,9 @@
6341807C1BBC103100F71761 /* ChatConversationCreateTableView.m in Sources */,
63BE7A781D75BDF6000990EF /* ShopTableView.m in Sources */,
D326483815887D5200930C67 /* OrderedDictionary.m in Sources */,
8CD3F5AC1F86632100680C98 /* UIChatCreateConfirmCollectionViewCell.m in Sources */,
D32648441588F6FC00930C67 /* UIToggleButton.m in Sources */,
D36FB2D51589EF7C0036F6F2 /* UIPauseButton.m in Sources */,
D31C9C98158A1CDF00756B45 /* UIHistoryCell.m in Sources */,
8CDC619A1F84EAC10087CF7F /* ChatConversationCreateConfirmView.m in Sources */,
D35E7597159460580066B1C1 /* ChatsListView.m in Sources */,
D35E759F159460B70066B1C1 /* SettingsView.m in Sources */,
63B81A101B57DA33009604A6 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */,
@ -4053,8 +4062,10 @@
D3807FE815C2894A005BE9BC /* IASKAppSettingsViewController.m in Sources */,
D3807FEA15C2894A005BE9BC /* IASKAppSettingsWebViewController.m in Sources */,
D3807FEC15C2894A005BE9BC /* IASKSpecifierValuesViewController.m in Sources */,
8CA70AE41F9E39E400A3D2EB /* UIChatConversationInfoTableViewCell.m in Sources */,
D3807FEE15C2894A005BE9BC /* IASKSettingsReader.m in Sources */,
D3807FF015C2894A005BE9BC /* IASKSettingsStore.m in Sources */,
8CA70AD11F9E0AE100A3D2EB /* ChatConversationInfoView.m in Sources */,
D3807FF215C2894A005BE9BC /* IASKSettingsStoreFile.m in Sources */,
D3807FF415C2894A005BE9BC /* IASKSettingsStoreUserDefaults.m in Sources */,
639E9C801C0DB13D00019A75 /* UICheckBoxTableView.m in Sources */,
@ -4062,7 +4073,6 @@
D3807FF815C2894A005BE9BC /* IASKPSSliderSpecifierViewCell.m in Sources */,
D3807FFA15C2894A005BE9BC /* IASKPSTextFieldSpecifierViewCell.m in Sources */,
D3807FFC15C2894A005BE9BC /* IASKPSTitleValueSpecifierViewCell.m in Sources */,
8CD3F5B71F867A1400680C98 /* ChatConversationCreateConfirmCollectionViewController.m in Sources */,
D3807FFE15C2894A005BE9BC /* IASKSlider.m in Sources */,
D380800015C2894A005BE9BC /* IASKSwitch.m in Sources */,
D380800215C2894A005BE9BC /* IASKTextField.m in Sources */,