mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-17 11:08:06 +00:00
Add views for call recording display
This commit is contained in:
parent
9d1afa7cee
commit
191c8d8a2f
10 changed files with 646 additions and 9 deletions
19
Classes/LinphoneUI/UIRecordingCell.h
Normal file
19
Classes/LinphoneUI/UIRecordingCell.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// UIRecordingCell.h
|
||||
// linphone
|
||||
//
|
||||
// Created by benjamin_verdier on 25/07/2018.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface UIRecordingCell : UITableViewCell
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *dateLabel;
|
||||
|
||||
@property(nonatomic, assign) NSString *recording;
|
||||
|
||||
- (id)initWithIdentifier:(NSString*)identifier;
|
||||
|
||||
@end
|
||||
75
Classes/LinphoneUI/UIRecordingCell.m
Normal file
75
Classes/LinphoneUI/UIRecordingCell.m
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
//
|
||||
// UIRecordingCell.m
|
||||
// linphone
|
||||
//
|
||||
// Created by benjamin_verdier on 25/07/2018.
|
||||
//
|
||||
|
||||
#import "UIRecordingCell.h"
|
||||
#import "PhoneMainView.h"
|
||||
#import "UILabel+Boldify.h"
|
||||
#import "Utils.h"
|
||||
|
||||
@implementation UIRecordingCell
|
||||
|
||||
#pragma mark - Lifecycle Functions
|
||||
|
||||
- (id)initWithIdentifier:(NSString *)identifier {
|
||||
if ((self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]) != nil) {
|
||||
NSArray *arrayOfViews =
|
||||
[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self.class) owner:self options:nil];
|
||||
|
||||
// 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];
|
||||
self.recording = NULL;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
self.recording = NULL;
|
||||
[NSNotificationCenter.defaultCenter removeObserver:self];
|
||||
}
|
||||
|
||||
#pragma mark - Property Functions
|
||||
|
||||
- (void)setRecording:(NSString *)arecording {
|
||||
_recording = arecording;
|
||||
if(_recording) {
|
||||
//TODO: Parse file name to get name of contact and date
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
- (void)touchUp:(id)sender {
|
||||
[self setHighlighted:true animated:true];
|
||||
}
|
||||
|
||||
- (void)touchDown:(id)sender {
|
||||
[self setHighlighted:false animated:true];
|
||||
}
|
||||
|
||||
- (NSString *)accessibilityLabel {
|
||||
return _nameLabel.text;
|
||||
}
|
||||
|
||||
- (void)setEditing:(BOOL)editing {
|
||||
[self setEditing:editing animated:FALSE];
|
||||
}
|
||||
|
||||
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
|
||||
if (animated) {
|
||||
[UIView beginAnimations:nil context:nil];
|
||||
[UIView setAnimationDuration:0.3];
|
||||
}
|
||||
if (animated) {
|
||||
[UIView commitAnimations];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
46
Classes/LinphoneUI/UIRecordingCell.xib
Normal file
46
Classes/LinphoneUI/UIRecordingCell.xib
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<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" rowHeight="64" id="KGk-i7-Jjw" customClass="UIRecordingCell">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="64"/>
|
||||
<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="320" height="63.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Name" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XQs-XC-lBb">
|
||||
<rect key="frame" x="16" y="11" width="136" height="42"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Date" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="o4f-sF-niV">
|
||||
<rect key="frame" x="202" y="11" width="102" height="42"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
</tableViewCellContentView>
|
||||
<viewLayoutGuide key="safeArea" id="aW0-zy-SZf"/>
|
||||
<connections>
|
||||
<outlet property="dateLabel" destination="o4f-sF-niV" id="8A8-UM-4FP"/>
|
||||
<outlet property="nameLabel" destination="XQs-XC-lBb" id="1MA-DM-Xh7"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="-172" y="62"/>
|
||||
</tableViewCell>
|
||||
</objects>
|
||||
</document>
|
||||
23
Classes/RecordingsListTableView.h
Normal file
23
Classes/RecordingsListTableView.h
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
//
|
||||
// RecordingsListTableView.h
|
||||
// linphone
|
||||
//
|
||||
// Created by benjamin_verdier on 25/07/2018.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "UICheckBoxTableView.h"
|
||||
|
||||
#import "OrderedDictionary.h"
|
||||
|
||||
@interface RecordingsListTableView : UICheckBoxTableView {
|
||||
@private
|
||||
OrderedDictionary *recordings;
|
||||
//This has sub arrays indexed with the date of the recordings, themselves containings the recordings.
|
||||
}
|
||||
@property(nonatomic) BOOL ongoing;
|
||||
- (void)loadData;
|
||||
- (void)removeAllRecordings;
|
||||
|
||||
@end
|
||||
179
Classes/RecordingsListTableView.m
Normal file
179
Classes/RecordingsListTableView.m
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
//
|
||||
// RecordingsListTableView.m
|
||||
// linphone
|
||||
//
|
||||
// Created by benjamin_verdier on 25/07/2018.
|
||||
//
|
||||
|
||||
#import "RecordingsListTableView.h"
|
||||
#import "UIRecordingCell.h"
|
||||
#import "LinphoneManager.h"
|
||||
#import "PhoneMainView.h"
|
||||
#import "Utils.h"
|
||||
|
||||
@implementation RecordingsListTableView
|
||||
NSArray *sortedRecordings;
|
||||
|
||||
#pragma mark - Lifecycle Functions
|
||||
|
||||
- (void)initRecordingsTableViewController {
|
||||
recordings = [[OrderedDictionary alloc] init];
|
||||
sortedRecordings = [[NSArray alloc] init];
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
if (![self selectFirstRow]) {
|
||||
//TODO: Make first cell expand to show player
|
||||
}
|
||||
}
|
||||
|
||||
- (id)init {
|
||||
self = [super init];
|
||||
if (self) {
|
||||
[self initRecordingsTableViewController];
|
||||
}
|
||||
_ongoing = FALSE;
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithCoder:(NSCoder *)decoder {
|
||||
self = [super initWithCoder:decoder];
|
||||
if (self) {
|
||||
[self initRecordingsTableViewController];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
[self removeAllRecordings];
|
||||
}
|
||||
|
||||
- (void)removeAllRecordings {
|
||||
for (NSInteger j = 0; j < [self.tableView numberOfSections]; ++j) {
|
||||
for (NSInteger i = 0; i < [self.tableView numberOfRowsInSection:j]; ++i) {
|
||||
[[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:j]] setRecording:nil];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (void)loadData {
|
||||
_ongoing = TRUE;
|
||||
LOGI(@"====>>>> Load recording list - Start");
|
||||
|
||||
//Clear recording cells
|
||||
for (NSInteger j = 0; j < [self.tableView numberOfSections]; ++j){
|
||||
for (NSInteger i = 0; i < [self.tableView numberOfRowsInSection:j]; ++i)
|
||||
{
|
||||
[[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:j]] setContact:nil];
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: Fill the recordings dictionnary with the recording names, keys are dates
|
||||
|
||||
LOGI(@"====>>>> Load recording list - End");
|
||||
[super loadData];
|
||||
_ongoing = FALSE;
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewDataSource Functions
|
||||
|
||||
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
|
||||
return [recordings allKeys];
|
||||
}
|
||||
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
||||
return [recordings count];
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
return [(OrderedDictionary *)[recordings objectForKey:[recordings keyAtIndex:section]] count];
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
NSString *kCellId = NSStringFromClass(UIRecordingCell.class);
|
||||
UIRecordingCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId];
|
||||
if (cell == nil) {
|
||||
cell = [[UIRecordingCell alloc] initWithIdentifier:kCellId];
|
||||
}
|
||||
NSString *recording = @"";
|
||||
//TODO: Set recording to the path of the recording
|
||||
[cell setRecording:recording];
|
||||
[super accessoryForCell:cell atPath:indexPath];
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
|
||||
CGRect frame = CGRectMake(0, 0, tableView.frame.size.width, tableView.sectionHeaderHeight);
|
||||
UIView *tempView = [[UIView alloc] initWithFrame:frame];
|
||||
tempView.backgroundColor = [UIColor whiteColor];
|
||||
|
||||
UILabel *tempLabel = [[UILabel alloc] initWithFrame:frame];
|
||||
tempLabel.backgroundColor = [UIColor clearColor];
|
||||
tempLabel.textColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"color_A.png"]];
|
||||
tempLabel.text = [recordings keyAtIndex:section];
|
||||
tempLabel.textAlignment = NSTextAlignmentCenter;
|
||||
tempLabel.font = [UIFont boldSystemFontOfSize:17];
|
||||
tempLabel.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
|
||||
[tempView addSubview:tempLabel];
|
||||
|
||||
return tempView;
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[super tableView:tableView didSelectRowAtIndexPath:indexPath];
|
||||
if (![self isEditing]) {
|
||||
//TODO: Expand selected cell to display player
|
||||
}
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView
|
||||
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
|
||||
forRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
if (editingStyle == UITableViewCellEditingStyleDelete) {
|
||||
[NSNotificationCenter.defaultCenter removeObserver:self];
|
||||
[tableView beginUpdates];
|
||||
|
||||
|
||||
NSString *date = [recordings keyAtIndex:[indexPath section]];
|
||||
NSMutableArray *subAr = [recordings objectForKey:date];
|
||||
//NSString *recording = subAr[indexPath.row];
|
||||
[subAr removeObjectAtIndex:indexPath.row];
|
||||
if (subAr.count == 0) {
|
||||
[recordings removeObjectForKey:date];
|
||||
[tableView deleteSections:[NSIndexSet indexSetWithIndex:indexPath.section]
|
||||
withRowAnimation:UITableViewRowAnimationFade];
|
||||
}
|
||||
|
||||
UIRecordingCell* cell = [self.tableView cellForRowAtIndexPath:indexPath];
|
||||
[cell setRecording:NULL];
|
||||
//TODO: Delete recording file here
|
||||
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
|
||||
[tableView endUpdates];
|
||||
|
||||
[self loadData];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)removeSelectionUsing:(void (^)(NSIndexPath *))remover {
|
||||
[super removeSelectionUsing:^(NSIndexPath *indexPath) {
|
||||
[NSNotificationCenter.defaultCenter removeObserver:self];
|
||||
|
||||
NSString *date = [recordings keyAtIndex:[indexPath section]];
|
||||
NSMutableArray *subAr = [recordings objectForKey:date];
|
||||
//NSString *recording = subAr[indexPath.row];
|
||||
[subAr removeObjectAtIndex:indexPath.row];
|
||||
if (subAr.count == 0) {
|
||||
[recordings removeObjectForKey:date];
|
||||
}
|
||||
UIRecordingCell* cell = [self.tableView cellForRowAtIndexPath:indexPath];
|
||||
[cell setRecording:NULL];
|
||||
//TODO: Delete recording file here
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
33
Classes/RecordingsListView.h
Normal file
33
Classes/RecordingsListView.h
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
//
|
||||
// RecordingsListView.h
|
||||
// linphone
|
||||
//
|
||||
// Created by benjamin_verdier on 25/07/2018.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "UICompositeView.h"
|
||||
#import "RecordingsListTableView.h"
|
||||
#import "UIIconButton.h"
|
||||
|
||||
typedef enum _RecordingSelectionMode { RecordingSelectionModeNone, RecordingSelectionModeEdit } RecordingSelectionMode;
|
||||
|
||||
@interface RecordingSelection : NSObject <UISearchBarDelegate> {
|
||||
}
|
||||
|
||||
+ (void)setSelectionMode:(RecordingSelectionMode)selectionMode;
|
||||
+ (RecordingSelectionMode)getSelectionMode;
|
||||
|
||||
@end
|
||||
|
||||
@interface RecordingsListView : UIViewController <UICompositeViewDelegate>
|
||||
|
||||
@property(strong, nonatomic) IBOutlet RecordingsListTableView *tableController;
|
||||
@property(strong, nonatomic) IBOutlet UIView *topBar;
|
||||
@property(weak, nonatomic) IBOutlet UIIconButton *deleteButton;
|
||||
|
||||
- (IBAction)onDeleteClick:(id)sender;
|
||||
- (IBAction)onEditionChangeClick:(id)sender;
|
||||
|
||||
@end
|
||||
97
Classes/RecordingsListView.m
Normal file
97
Classes/RecordingsListView.m
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
//
|
||||
// RecordingsListView.m
|
||||
// linphone
|
||||
//
|
||||
// Created by benjamin_verdier on 25/07/2018.
|
||||
//
|
||||
|
||||
#import "RecordingsListView.h"
|
||||
#import "PhoneMainView.h"
|
||||
|
||||
@implementation RecordingSelection
|
||||
|
||||
static RecordingSelectionMode sSelectionMode = RecordingSelectionModeNone;
|
||||
|
||||
+ (void)setSelectionMode:(RecordingSelectionMode)selectionMode {
|
||||
sSelectionMode = selectionMode;
|
||||
}
|
||||
|
||||
+ (RecordingSelectionMode)getSelectionMode {
|
||||
return sSelectionMode;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation RecordingsListView
|
||||
|
||||
@synthesize tableController;
|
||||
@synthesize topBar;
|
||||
|
||||
#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:YES
|
||||
fragmentWith:ContactDetailsView.class];
|
||||
}
|
||||
return compositeDescription;
|
||||
}
|
||||
|
||||
- (UICompositeViewDescription *)compositeViewDescription {
|
||||
return self.class.compositeViewDescription;
|
||||
}
|
||||
|
||||
#pragma mark - ViewController Functions
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
tableController.tableView.accessibilityIdentifier = @"Recordings table";
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
|
||||
if (tableController.isEditing) {
|
||||
tableController.editing = NO;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated {
|
||||
[super viewDidAppear:animated];
|
||||
}
|
||||
|
||||
- (void) viewWillDisappear:(BOOL)animated {
|
||||
self.view = NULL;
|
||||
[self.tableController removeAllRecordings];
|
||||
}
|
||||
|
||||
#pragma mark - Action Functions
|
||||
|
||||
- (IBAction)onDeleteClick:(id)sender {
|
||||
NSString *msg = [NSString stringWithFormat:NSLocalizedString(@"Do you want to delete selected recordings?", nil)];
|
||||
[LinphoneManager.instance setContactsUpdated:TRUE];
|
||||
[UIConfirmationDialog ShowWithMessage:msg
|
||||
cancelMessage:nil
|
||||
confirmMessage:nil
|
||||
onCancelClick:^() {
|
||||
[self onEditionChangeClick:nil];
|
||||
}
|
||||
onConfirmationClick:^() {
|
||||
[tableController removeSelectionUsing:nil];
|
||||
[tableController loadData];
|
||||
[self onEditionChangeClick:nil];
|
||||
}];
|
||||
}
|
||||
|
||||
- (IBAction)onEditionChangeClick:(id)sender {
|
||||
_deleteButton.hidden = !self.tableController.isEditing;
|
||||
}
|
||||
|
||||
@end
|
||||
133
Classes/RecordingsListView.xib
Normal file
133
Classes/RecordingsListView.xib
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="RecordingsListView">
|
||||
<connections>
|
||||
<outlet property="deleteButton" destination="zDs-pW-vyA" id="mye-fK-RaT"/>
|
||||
<outlet property="tableController" destination="1pR-qo-CIP" id="FD0-NI-8ox"/>
|
||||
<outlet property="topBar" destination="See-Aw-LPP" id="daF-pK-NHy"/>
|
||||
<outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="See-Aw-LPP" userLabel="topBar">
|
||||
<rect key="frame" x="0.0" y="20" width="375" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="color_F.png" translatesAutoresizingMaskIntoConstraints="NO" id="7wu-Ow-YYU" 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 hidden="YES" opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CqG-tB-maQ" userLabel="cancelButton" 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="Delete all"/>
|
||||
<state key="normal" image="cancel_edit_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="cancel_edit_disabled.png"/>
|
||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
||||
<connections>
|
||||
<action selector="onCancelClick:" destination="1pR-qo-CIP" eventType="touchUpInside" id="qcZ-s6-jgK"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zDs-pW-vyA" userLabel="deleteButton" 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="Delete all"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" image="delete_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="delete_disabled.png"/>
|
||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
||||
<connections>
|
||||
<action selector="onDeleteClick:" destination="-1" eventType="touchUpInside" id="8LI-ry-dTU"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CWx-9g-0JG" userLabel="editButton" 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="Edit"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" image="edit_list_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="edit_list_disabled.png"/>
|
||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
||||
<connections>
|
||||
<action selector="onEditClick:" destination="1pR-qo-CIP" eventType="touchUpInside" id="0LH-n9-p0c"/>
|
||||
<action selector="onEditionChangeClick:" destination="-1" eventType="touchUpInside" id="IeY-Yd-XP2"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="16S-9G-2cb" userLabel="toggleSelectionButton" customClass="UIIconButton">
|
||||
<rect key="frame" x="225" y="0.0" width="75" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Select all"/>
|
||||
<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="deselect_all.png">
|
||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<state key="disabled" image="select_all_disabled.png"/>
|
||||
<state key="selected" image="select_all_default.png"/>
|
||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
||||
<connections>
|
||||
<action selector="onAllClick:" destination="-1" eventType="touchUpInside" id="CfU-Uf-lX8"/>
|
||||
<action selector="onSelectionToggle:" destination="1pR-qo-CIP" eventType="touchUpInside" id="Hfi-f6-qfI"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
</view>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="3b0-Nd-4r0">
|
||||
<rect key="frame" x="0.0" y="94" width="375" height="573"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="1pR-qo-CIP" id="z2V-Yd-AwQ"/>
|
||||
<outlet property="delegate" destination="1pR-qo-CIP" id="eJQ-AV-7ts"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<viewLayoutGuide key="safeArea" id="Q5M-cg-NOt"/>
|
||||
<point key="canvasLocation" x="25.5" y="51.5"/>
|
||||
</view>
|
||||
<tableViewController id="1pR-qo-CIP" customClass="RecordingsListTableView">
|
||||
<connections>
|
||||
<outlet property="cancelButton" destination="CqG-tB-maQ" id="C90-0S-5WL"/>
|
||||
<outlet property="deleteButton" destination="zDs-pW-vyA" id="mgV-PB-law"/>
|
||||
<outlet property="editButton" destination="CWx-9g-0JG" id="hAA-6f-kX8"/>
|
||||
<outlet property="toggleSelectionButton" destination="16S-9G-2cb" id="6pj-Yn-hy1"/>
|
||||
<outlet property="view" destination="3b0-Nd-4r0" id="ng8-q5-bwm"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="478" y="52"/>
|
||||
</tableViewController>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="cancel_edit_default.png" width="29" height="29"/>
|
||||
<image name="cancel_edit_disabled.png" width="29" height="29"/>
|
||||
<image name="color_E.png" width="2" height="2"/>
|
||||
<image name="color_F.png" width="2" height="2"/>
|
||||
<image name="delete_default.png" width="21" height="28"/>
|
||||
<image name="delete_disabled.png" width="21" height="28"/>
|
||||
<image name="deselect_all.png" width="27" height="27"/>
|
||||
<image name="edit_list_default.png" width="30" height="28"/>
|
||||
<image name="edit_list_disabled.png" width="30" height="28"/>
|
||||
<image name="select_all_default.png" width="27" height="27"/>
|
||||
<image name="select_all_disabled.png" width="27" height="27"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
|
@ -60,6 +60,12 @@
|
|||
}]];
|
||||
}
|
||||
|
||||
[_sideMenuEntries
|
||||
addObject:[[SideMenuEntry alloc] initWithTitle:NSLocalizedString(@"Recordings", nil)
|
||||
tapBlock:^() {
|
||||
[PhoneMainView.instance
|
||||
changeCurrentView:AssistantView.compositeViewDescription];
|
||||
}]];
|
||||
[_sideMenuEntries
|
||||
addObject:[[SideMenuEntry alloc] initWithTitle:NSLocalizedString(@"Settings", nil)
|
||||
tapBlock:^() {
|
||||
|
|
|
|||
|
|
@ -745,6 +745,11 @@
|
|||
C90FAA7915AF54E6002091CB /* HistoryDetailsView.m in Sources */ = {isa = PBXBuildFile; fileRef = C90FAA7715AF54E6002091CB /* HistoryDetailsView.m */; };
|
||||
CF15F21E20E4F9A3008B1DE6 /* UIImageViewDeletable.m in Sources */ = {isa = PBXBuildFile; fileRef = CF15F21C20E4F9A3008B1DE6 /* UIImageViewDeletable.m */; };
|
||||
CF15F21F20E4F9A3008B1DE6 /* UIImageViewDeletable.xib in Resources */ = {isa = PBXBuildFile; fileRef = CF15F21D20E4F9A3008B1DE6 /* UIImageViewDeletable.xib */; };
|
||||
CF7602D7210867E800749F76 /* RecordingsListView.m in Sources */ = {isa = PBXBuildFile; fileRef = CF7602D5210867E800749F76 /* RecordingsListView.m */; };
|
||||
CF7602D8210867E800749F76 /* RecordingsListView.xib in Resources */ = {isa = PBXBuildFile; fileRef = CF7602D6210867E800749F76 /* RecordingsListView.xib */; };
|
||||
CF7602E221086EB200749F76 /* RecordingsListTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CF7602E021086EB200749F76 /* RecordingsListTableView.m */; };
|
||||
CF7602E72108759A00749F76 /* UIRecordingCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CF7602E52108759A00749F76 /* UIRecordingCell.m */; };
|
||||
CF7602E82108759A00749F76 /* UIRecordingCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = CF7602E62108759A00749F76 /* UIRecordingCell.xib */; };
|
||||
CFBD7A2A20E504AE007C5286 /* delete_img.png in Resources */ = {isa = PBXBuildFile; fileRef = CFBD7A2320E504AD007C5286 /* delete_img.png */; };
|
||||
D306459E1611EC2A00BB571E /* UILoadingImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = D306459D1611EC2900BB571E /* UILoadingImageView.m */; };
|
||||
D3128FE115AABC7E00A2147A /* ContactDetailsView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3128FDF15AABC7E00A2147A /* ContactDetailsView.m */; };
|
||||
|
|
@ -1851,6 +1856,14 @@
|
|||
CF15F21B20E4F9A3008B1DE6 /* UIImageViewDeletable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UIImageViewDeletable.h; sourceTree = "<group>"; };
|
||||
CF15F21C20E4F9A3008B1DE6 /* UIImageViewDeletable.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UIImageViewDeletable.m; sourceTree = "<group>"; };
|
||||
CF15F21D20E4F9A3008B1DE6 /* UIImageViewDeletable.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = UIImageViewDeletable.xib; sourceTree = "<group>"; };
|
||||
CF7602D4210867E800749F76 /* RecordingsListView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RecordingsListView.h; sourceTree = "<group>"; };
|
||||
CF7602D5210867E800749F76 /* RecordingsListView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RecordingsListView.m; sourceTree = "<group>"; };
|
||||
CF7602D6210867E800749F76 /* RecordingsListView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RecordingsListView.xib; sourceTree = "<group>"; };
|
||||
CF7602DF21086EB100749F76 /* RecordingsListTableView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RecordingsListTableView.h; sourceTree = "<group>"; };
|
||||
CF7602E021086EB200749F76 /* RecordingsListTableView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RecordingsListTableView.m; sourceTree = "<group>"; };
|
||||
CF7602E42108759A00749F76 /* UIRecordingCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UIRecordingCell.h; sourceTree = "<group>"; };
|
||||
CF7602E52108759A00749F76 /* UIRecordingCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UIRecordingCell.m; sourceTree = "<group>"; };
|
||||
CF7602E62108759A00749F76 /* UIRecordingCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = UIRecordingCell.xib; sourceTree = "<group>"; };
|
||||
CFBD7A2320E504AD007C5286 /* delete_img.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = delete_img.png; sourceTree = "<group>"; };
|
||||
D306459C1611EC2900BB571E /* UILoadingImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UILoadingImageView.h; sourceTree = "<group>"; };
|
||||
D306459D1611EC2900BB571E /* UILoadingImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UILoadingImageView.m; sourceTree = "<group>"; };
|
||||
|
|
@ -2205,12 +2218,6 @@
|
|||
D3F83EEA1582021700336684 /* CallView.m */,
|
||||
D381881C15FE3FCA00C3EDCA /* CallView.xib */,
|
||||
638F1A861C2167C2004B8E02 /* CallView~ipad.xib */,
|
||||
8CA70ACF1F9E0ABA00A3D2EB /* ChatConversationInfoView.h */,
|
||||
8CA70AD01F9E0AE100A3D2EB /* ChatConversationInfoView.m */,
|
||||
8CBD7BA220B6B7FD00E5DCC0 /* ChatConversationInfoView.xib */,
|
||||
8CD99A3D2090BA24008A7CDA /* ChatConversationImdnView.h */,
|
||||
8CD99A3B2090B9FA008A7CDA /* ChatConversationImdnView.m */,
|
||||
8CBD7BA520B6B80D00E5DCC0 /* ChatConversationImdnView.xib */,
|
||||
8C9C5E0B1F83B2EF006987FA /* ChatConversationCreateCollectionViewController.h */,
|
||||
8C9C5E0C1F83B2EF006987FA /* ChatConversationCreateCollectionViewController.m */,
|
||||
6341807A1BBC103100F71761 /* ChatConversationCreateTableView.h */,
|
||||
|
|
@ -2218,6 +2225,12 @@
|
|||
6336715E1BCBAAD200BFCBDE /* ChatConversationCreateView.h */,
|
||||
6336715F1BCBAAD200BFCBDE /* ChatConversationCreateView.m */,
|
||||
63B8D68E1BCBE65600C12B09 /* ChatConversationCreateView.xib */,
|
||||
8CD99A3D2090BA24008A7CDA /* ChatConversationImdnView.h */,
|
||||
8CD99A3B2090B9FA008A7CDA /* ChatConversationImdnView.m */,
|
||||
8CBD7BA520B6B80D00E5DCC0 /* ChatConversationImdnView.xib */,
|
||||
8CA70ACF1F9E0ABA00A3D2EB /* ChatConversationInfoView.h */,
|
||||
8CA70AD01F9E0AE100A3D2EB /* ChatConversationInfoView.m */,
|
||||
8CBD7BA220B6B7FD00E5DCC0 /* ChatConversationInfoView.xib */,
|
||||
D32B6E2715A5BC430033019F /* ChatConversationTableView.h */,
|
||||
D32B6E2815A5BC430033019F /* ChatConversationTableView.m */,
|
||||
D3F795D315A582800077328B /* ChatConversationView.h */,
|
||||
|
|
@ -2238,9 +2251,9 @@
|
|||
D35497FB15875372000081D8 /* ContactsListView.h */,
|
||||
D35497FC15875372000081D8 /* ContactsListView.m */,
|
||||
D38187C015FE342800C3EDCA /* ContactsListView.xib */,
|
||||
631098501D4660630041F2B3 /* CountryListView.xib */,
|
||||
631098471D4660580041F2B3 /* CountryListView.h */,
|
||||
631098481D4660580041F2B3 /* CountryListView.m */,
|
||||
631098501D4660630041F2B3 /* CountryListView.xib */,
|
||||
22F2508B107141E100AC9B3F /* DialerView.h */,
|
||||
22F2508C107141E100AC9B3F /* DialerView.m */,
|
||||
D38187C415FE345B00C3EDCA /* DialerView.xib */,
|
||||
|
|
@ -2268,8 +2281,6 @@
|
|||
63E27A311C4FECD000D332AE /* LaunchScreen.xib */,
|
||||
1D3623240D0F684500981E51 /* LinphoneAppDelegate.h */,
|
||||
1D3623250D0F684500981E51 /* LinphoneAppDelegate.m */,
|
||||
8C2595D51DEDC8E1007A6424 /* ProviderDelegate.h */,
|
||||
8C2595DC1DEDC92D007A6424 /* ProviderDelegate.m */,
|
||||
D37DC6BF1594AE1800B2A5EB /* LinphoneCoreSettingsStore.h */,
|
||||
D37DC6C01594AE1800B2A5EB /* LinphoneCoreSettingsStore.m */,
|
||||
D3EA53FB159850E80037DC6B /* LinphoneManager.h */,
|
||||
|
|
@ -2279,6 +2290,13 @@
|
|||
D3F83F8C158229C500336684 /* PhoneMainView.h */,
|
||||
D3F83F8D15822ABD00336684 /* PhoneMainView.m */,
|
||||
639E9CB31C0DB88200019A75 /* PhoneMainView.xib */,
|
||||
8C2595D51DEDC8E1007A6424 /* ProviderDelegate.h */,
|
||||
8C2595DC1DEDC92D007A6424 /* ProviderDelegate.m */,
|
||||
CF7602DF21086EB100749F76 /* RecordingsListTableView.h */,
|
||||
CF7602E021086EB200749F76 /* RecordingsListTableView.m */,
|
||||
CF7602D4210867E800749F76 /* RecordingsListView.h */,
|
||||
CF7602D5210867E800749F76 /* RecordingsListView.m */,
|
||||
CF7602D6210867E800749F76 /* RecordingsListView.xib */,
|
||||
D35E759C159460B50066B1C1 /* SettingsView.h */,
|
||||
D35E759D159460B50066B1C1 /* SettingsView.m */,
|
||||
636316D61A1DEC650009B839 /* SettingsView.xib */,
|
||||
|
|
@ -2385,6 +2403,9 @@
|
|||
63701DDD1BA32039006A9AE3 /* UIConfirmationDialog.h */,
|
||||
63701DDE1BA32039006A9AE3 /* UIConfirmationDialog.m */,
|
||||
639E9CAB1C0DB7FB00019A75 /* UIConfirmationDialog.xib */,
|
||||
CF7602E42108759A00749F76 /* UIRecordingCell.h */,
|
||||
CF7602E52108759A00749F76 /* UIRecordingCell.m */,
|
||||
CF7602E62108759A00749F76 /* UIRecordingCell.xib */,
|
||||
D3A55FBA15877E5E003FD403 /* UIContactCell.h */,
|
||||
D3A55FBB15877E5E003FD403 /* UIContactCell.m */,
|
||||
F088488D19FF8C41007FFCF3 /* UIContactCell.xib */,
|
||||
|
|
@ -3818,6 +3839,7 @@
|
|||
633FEDE91D3CD5590014B822 /* call_status_missed~ipad@2x.png in Resources */,
|
||||
8CE24F4C1F8234A30077AC0A /* next_default@2x.png in Resources */,
|
||||
244523B11E8266CC0037A187 /* chat_read.png in Resources */,
|
||||
CF7602D8210867E800749F76 /* RecordingsListView.xib in Resources */,
|
||||
639E9CAC1C0DB80300019A75 /* UIContactDetailsCell.xib in Resources */,
|
||||
633FEE511D3CD5590014B822 /* deselect_all@2x.png in Resources */,
|
||||
8CF25D951F9F336100BEA0C1 /* check_unselected@2x.png in Resources */,
|
||||
|
|
@ -3914,6 +3936,7 @@
|
|||
633FEEA41D3CD55A0014B822 /* numpad_1_default@2x.png in Resources */,
|
||||
63E27A321C4FECD000D332AE /* LaunchScreen.xib in Resources */,
|
||||
633FEED11D3CD55A0014B822 /* numpad_6~ipad.png in Resources */,
|
||||
CF7602E82108759A00749F76 /* UIRecordingCell.xib in Resources */,
|
||||
633FEED21D3CD55A0014B822 /* numpad_6~ipad@2x.png in Resources */,
|
||||
633FEDCD1D3CD5590014B822 /* call_quality_indicator_0@2x.png in Resources */,
|
||||
636316D41A1DEC650009B839 /* SettingsView.xib in Resources */,
|
||||
|
|
@ -4384,6 +4407,7 @@
|
|||
34216F401547EBCD00EA9777 /* VideoZoomHandler.m in Sources */,
|
||||
D3F83EEC1582021700336684 /* CallView.m in Sources */,
|
||||
8C2595DD1DEDC92D007A6424 /* ProviderDelegate.m in Sources */,
|
||||
CF7602D7210867E800749F76 /* RecordingsListView.m in Sources */,
|
||||
63F1DF4B1BCE983200EDED90 /* CallConferenceTableView.m in Sources */,
|
||||
D3F83F8E15822ABE00336684 /* PhoneMainView.m in Sources */,
|
||||
6377AC801BDE4069007F7625 /* UIBackToCallButton.m in Sources */,
|
||||
|
|
@ -4447,6 +4471,7 @@
|
|||
D3807FC115C28940005BE9BC /* DCRoundSwitchKnobLayer.m in Sources */,
|
||||
6306440E1BECB08500134C72 /* FirstLoginView.m in Sources */,
|
||||
D3807FC315C28940005BE9BC /* DCRoundSwitchOutlineLayer.m in Sources */,
|
||||
CF7602E221086EB200749F76 /* RecordingsListTableView.m in Sources */,
|
||||
D3807FC515C28940005BE9BC /* DCRoundSwitchToggleLayer.m in Sources */,
|
||||
633E41821D74259000320475 /* AssistantLinkView.m in Sources */,
|
||||
D3807FE815C2894A005BE9BC /* IASKAppSettingsViewController.m in Sources */,
|
||||
|
|
@ -4459,6 +4484,7 @@
|
|||
D3807FF215C2894A005BE9BC /* IASKSettingsStoreFile.m in Sources */,
|
||||
D3807FF415C2894A005BE9BC /* IASKSettingsStoreUserDefaults.m in Sources */,
|
||||
639E9C801C0DB13D00019A75 /* UICheckBoxTableView.m in Sources */,
|
||||
CF7602E72108759A00749F76 /* UIRecordingCell.m in Sources */,
|
||||
D3807FF615C2894A005BE9BC /* IASKSpecifier.m in Sources */,
|
||||
D3807FF815C2894A005BE9BC /* IASKPSSliderSpecifierViewCell.m in Sources */,
|
||||
D3807FFA15C2894A005BE9BC /* IASKPSTextFieldSpecifierViewCell.m in Sources */,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue