From 10310ac56ffeb92f5a3ddfcc7ecc80a5a6bb3af0 Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Mon, 27 Jul 2015 16:52:11 +0200 Subject: [PATCH] history details --- Classes/Base.lproj/ChatRoomViewController.xib | 1 - Classes/Base.lproj/ChatViewController.xib | 8 +- .../HistoryDetailsViewController.xib | 257 +++++------------- Classes/Base.lproj/HistoryViewController.xib | 18 +- Classes/HistoryDetailsTableViewController.h | 16 ++ Classes/HistoryDetailsTableViewController.m | 54 ++++ Classes/HistoryDetailsViewController.h | 5 +- Classes/HistoryDetailsViewController.m | 7 + linphone.xcodeproj/project.pbxproj | 24 ++ 9 files changed, 189 insertions(+), 201 deletions(-) create mode 100644 Classes/HistoryDetailsTableViewController.h create mode 100644 Classes/HistoryDetailsTableViewController.m diff --git a/Classes/Base.lproj/ChatRoomViewController.xib b/Classes/Base.lproj/ChatRoomViewController.xib index 2a1247799..eeb4b8342 100644 --- a/Classes/Base.lproj/ChatRoomViewController.xib +++ b/Classes/Base.lproj/ChatRoomViewController.xib @@ -1,7 +1,6 @@ - diff --git a/Classes/Base.lproj/ChatViewController.xib b/Classes/Base.lproj/ChatViewController.xib index fb33f11e4..3f2afd259 100644 --- a/Classes/Base.lproj/ChatViewController.xib +++ b/Classes/Base.lproj/ChatViewController.xib @@ -17,7 +17,7 @@ - + - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - + + + + + + diff --git a/Classes/Base.lproj/HistoryViewController.xib b/Classes/Base.lproj/HistoryViewController.xib index 9b4702c44..0801e37cd 100644 --- a/Classes/Base.lproj/HistoryViewController.xib +++ b/Classes/Base.lproj/HistoryViewController.xib @@ -47,10 +47,10 @@ - + - + @@ -60,10 +60,10 @@ - + - + @@ -116,10 +116,12 @@ - - - - + + + + + + diff --git a/Classes/HistoryDetailsTableViewController.h b/Classes/HistoryDetailsTableViewController.h new file mode 100644 index 000000000..62e335171 --- /dev/null +++ b/Classes/HistoryDetailsTableViewController.h @@ -0,0 +1,16 @@ +// +// HistoryDetailsTableViewController.h +// linphone +// +// Created by Gautier Pelloux-Prayer on 27/07/15. +// +// + +#import + +@interface HistoryDetailsTableViewController : UITableViewController { + @private + NSMutableArray *callLogs; +} +- (void)loadData; +@end diff --git a/Classes/HistoryDetailsTableViewController.m b/Classes/HistoryDetailsTableViewController.m new file mode 100644 index 000000000..7f36f46b3 --- /dev/null +++ b/Classes/HistoryDetailsTableViewController.m @@ -0,0 +1,54 @@ +// +// HistoryDetailsTableViewController.m +// linphone +// +// Created by Gautier Pelloux-Prayer on 27/07/15. +// +// + +#import "HistoryDetailsTableViewController.h" +#import "LinphoneManager.h" + +@implementation HistoryDetailsTableViewController + +- (void)loadData { + if (callLogs == nil) { + callLogs = [[NSMutableArray alloc] init]; + } else { + [callLogs removeAllObjects]; + } + const MSList *logs = linphone_core_get_call_logs([LinphoneManager getLc]); + while (logs != NULL) { + LinphoneCallLog *log = (LinphoneCallLog *)logs->data; + [callLogs addObject:[NSValue valueWithPointer:log]]; + logs = ms_list_next(logs); + } + [[self tableView] reloadData]; +} + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return [callLogs count]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + static NSString *kCellId = @"UITableViewCell"; + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId]; + if (cell == nil) { + cell = [[UITableViewCell alloc] init]; + } + + LinphoneCallLog *log = [[callLogs objectAtIndex:[indexPath row]] pointerValue]; + int duration = linphone_call_log_get_duration(log); + time_t callTime = linphone_call_log_get_start_date(log); + + [cell.textLabel + setText:[NSString stringWithFormat:@"%@ - %d sec", + [LinphoneUtils timeToString:callTime withStyle:NSDateFormatterMediumStyle], + duration]]; + return cell; +} +@end diff --git a/Classes/HistoryDetailsViewController.h b/Classes/HistoryDetailsViewController.h index 179493aa1..ca292f75b 100644 --- a/Classes/HistoryDetailsViewController.h +++ b/Classes/HistoryDetailsViewController.h @@ -22,7 +22,7 @@ #import #import "UICompositeViewController.h" - +#import "HistoryDetailsTableViewController.h" @interface HistoryDetailsViewController : UIViewController { @private ABRecordRef contact; @@ -43,6 +43,9 @@ @property (nonatomic, strong) IBOutlet UIButton *messageButton; @property (nonatomic, strong) IBOutlet UIButton *addContactButton; @property (nonatomic, copy, setter=setCallLogId:) NSString *callLogId; +@property(weak, nonatomic) IBOutlet UIView *headerView; +@property(weak, nonatomic) IBOutlet UITableView *callsTableView; +@property(strong, nonatomic) IBOutlet HistoryDetailsTableViewController *tableView; - (IBAction)onBackClick:(id)event; - (IBAction)onContactClick:(id)event; diff --git a/Classes/HistoryDetailsViewController.m b/Classes/HistoryDetailsViewController.m index cf32d8d03..6f95cfbac 100644 --- a/Classes/HistoryDetailsViewController.m +++ b/Classes/HistoryDetailsViewController.m @@ -86,6 +86,11 @@ static UICompositeViewDescription *compositeDescription = nil; - (void)viewDidLoad { [super viewDidLoad]; + + UITapGestureRecognizer *headerTapGesture = + [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onContactClick:)]; + [_headerView addGestureRecognizer:headerTapGesture]; + [HistoryDetailsViewController adaptSize:dateHeaderLabel field:dateLabel]; [HistoryDetailsViewController adaptSize:durationHeaderLabel field:durationLabel]; [HistoryDetailsViewController adaptSize:typeHeaderLabel field:typeLabel]; @@ -100,6 +105,8 @@ static UICompositeViewDescription *compositeDescription = nil; [addContactButton setHidden:TRUE]; } + [_tableView loadData]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(update) name:kLinphoneAddressBookUpdate diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 201508cad..42c20ee9c 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -243,6 +243,9 @@ 634CEE151B6630DB00D7A921 /* status_disconnected_phone.png in Resources */ = {isa = PBXBuildFile; fileRef = 634CED901B6630DB00D7A921 /* status_disconnected_phone.png */; }; 634CEE161B6630DB00D7A921 /* valid.png in Resources */ = {isa = PBXBuildFile; fileRef = 634CED911B6630DB00D7A921 /* valid.png */; }; 634CEE171B6630DB00D7A921 /* voicemail.png in Resources */ = {isa = PBXBuildFile; fileRef = 634CED921B6630DB00D7A921 /* voicemail.png */; }; + 635775251B6673EC00C8B704 /* HistoryDetailsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 635775241B6673EC00C8B704 /* HistoryDetailsTableViewController.m */; }; + 6357752E1B6676C200C8B704 /* UIHistoryDetailsCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6357752D1B6676C200C8B704 /* UIHistoryDetailsCell.m */; }; + 635775311B66777200C8B704 /* UIHistoryDetailsCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6357752F1B66777200C8B704 /* UIHistoryDetailsCell.xib */; }; 636316D11A1DEBCB0009B839 /* AboutViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 636316D31A1DEBCB0009B839 /* AboutViewController.xib */; }; 636316D41A1DEC650009B839 /* SettingsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 636316D61A1DEC650009B839 /* SettingsViewController.xib */; }; 636316D91A1DECC90009B839 /* PhoneMainView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 636316D71A1DECC90009B839 /* PhoneMainView.xib */; }; @@ -798,6 +801,11 @@ 634CED901B6630DB00D7A921 /* status_disconnected_phone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = status_disconnected_phone.png; sourceTree = ""; }; 634CED911B6630DB00D7A921 /* valid.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = valid.png; sourceTree = ""; }; 634CED921B6630DB00D7A921 /* voicemail.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = voicemail.png; sourceTree = ""; }; + 635775231B6673EC00C8B704 /* HistoryDetailsTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryDetailsTableViewController.h; sourceTree = ""; }; + 635775241B6673EC00C8B704 /* HistoryDetailsTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryDetailsTableViewController.m; sourceTree = ""; }; + 6357752C1B6676C200C8B704 /* UIHistoryDetailsCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIHistoryDetailsCell.h; sourceTree = ""; }; + 6357752D1B6676C200C8B704 /* UIHistoryDetailsCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIHistoryDetailsCell.m; sourceTree = ""; }; + 635775301B66777200C8B704 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UIHistoryDetailsCell.xib; sourceTree = ""; }; 636316D21A1DEBCB0009B839 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/AboutViewController.xib; sourceTree = ""; }; 636316D51A1DEC650009B839 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/SettingsViewController.xib; sourceTree = ""; }; 636316D81A1DECC90009B839 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PhoneMainView.xib; sourceTree = ""; }; @@ -1285,6 +1293,8 @@ 2218A92212FBE1340088A667 /* FirstLoginViewController.h */, 2218A92312FBE1340088A667 /* FirstLoginViewController.m */, D38187CC15FE346400C3EDCA /* FirstLoginViewController.xib */, + 635775231B6673EC00C8B704 /* HistoryDetailsTableViewController.h */, + 635775241B6673EC00C8B704 /* HistoryDetailsTableViewController.m */, C90FAA7615AF54E6002091CB /* HistoryDetailsViewController.h */, C90FAA7715AF54E6002091CB /* HistoryDetailsViewController.m */, D38187D015FE346700C3EDCA /* HistoryDetailsViewController.xib */, @@ -1438,6 +1448,9 @@ 340751E6150F38FD00B89C47 /* UIVideoButton.m */, 634610041B61330300548952 /* UILabel+Boldify.h */, 634610051B61330300548952 /* UILabel+Boldify.m */, + 6357752C1B6676C200C8B704 /* UIHistoryDetailsCell.h */, + 6357752D1B6676C200C8B704 /* UIHistoryDetailsCell.m */, + 6357752F1B66777200C8B704 /* UIHistoryDetailsCell.xib */, ); path = LinphoneUI; sourceTree = ""; @@ -2188,6 +2201,7 @@ buildActionMask = 2147483647; files = ( 634CEE161B6630DB00D7A921 /* valid.png in Resources */, + 635775311B66777200C8B704 /* UIHistoryDetailsCell.xib in Resources */, 634CEDC71B6630DB00D7A921 /* delete.png in Resources */, 636316D11A1DEBCB0009B839 /* AboutViewController.xib in Resources */, 634CEDF31B6630DB00D7A921 /* options_start_conference.png in Resources */, @@ -2523,6 +2537,7 @@ D3E8F68615ADE05B0065A226 /* UIContactDetailsFooter.m in Sources */, C90FAA7915AF54E6002091CB /* HistoryDetailsViewController.m in Sources */, 63FB30351A680E73008CA393 /* UIRoundedImageView.m in Sources */, + 635775251B6673EC00C8B704 /* HistoryDetailsTableViewController.m in Sources */, F066515517F9A02E0064280C /* UITransparentTVCell.m in Sources */, D3F9A9EE15AF277E0045320F /* UACellBackgroundView.m in Sources */, 6346100F1B61409800548952 /* OutgoingCallViewController.m in Sources */, @@ -2554,6 +2569,7 @@ D3ED40191602172200BF332B /* HPGrowingTextView.m in Sources */, D3ED401B1602172200BF332B /* HPTextViewInternal.m in Sources */, D37EE162160377D7003608A6 /* DTActionSheet.m in Sources */, + 6357752E1B6676C200C8B704 /* UIHistoryDetailsCell.m in Sources */, D35E91F4160CA10B0023116B /* UILinphoneTextField.m in Sources */, D35E91F8160CA4FF0023116B /* UILinphoneButton.m in Sources */, D306459E1611EC2A00BB571E /* UILoadingImageView.m in Sources */, @@ -2685,6 +2701,14 @@ name = OutgoingCallViewController.xib; sourceTree = ""; }; + 6357752F1B66777200C8B704 /* UIHistoryDetailsCell.xib */ = { + isa = PBXVariantGroup; + children = ( + 635775301B66777200C8B704 /* Base */, + ); + name = UIHistoryDetailsCell.xib; + sourceTree = ""; + }; 636316D31A1DEBCB0009B839 /* AboutViewController.xib */ = { isa = PBXVariantGroup; children = (