diff --git a/Classes/Base.lproj/ChatConversationView.xib b/Classes/Base.lproj/ChatConversationView.xib
index 194d0a235..698035386 100644
--- a/Classes/Base.lproj/ChatConversationView.xib
+++ b/Classes/Base.lproj/ChatConversationView.xib
@@ -181,6 +181,14 @@
+
diff --git a/Classes/Base.lproj/ChatsListView.xib b/Classes/Base.lproj/ChatsListView.xib
index 23b57e7fb..36c8aa701 100644
--- a/Classes/Base.lproj/ChatsListView.xib
+++ b/Classes/Base.lproj/ChatsListView.xib
@@ -128,6 +128,14 @@
+
@@ -141,6 +149,7 @@
+
diff --git a/Classes/Base.lproj/ContactsListView.xib b/Classes/Base.lproj/ContactsListView.xib
index 3b3fcc674..610a0c310 100644
--- a/Classes/Base.lproj/ContactsListView.xib
+++ b/Classes/Base.lproj/ContactsListView.xib
@@ -1,5 +1,5 @@
-
+
@@ -179,6 +179,14 @@
+
@@ -191,6 +199,7 @@
+
@@ -200,9 +209,9 @@
-
-
-
+
+
+
diff --git a/Classes/Base.lproj/HistoryListView.xib b/Classes/Base.lproj/HistoryListView.xib
index ede59c685..c7bcaee90 100644
--- a/Classes/Base.lproj/HistoryListView.xib
+++ b/Classes/Base.lproj/HistoryListView.xib
@@ -1,5 +1,5 @@
-
+
@@ -144,6 +144,14 @@
+
@@ -158,6 +166,7 @@
+
@@ -167,9 +176,9 @@
-
-
-
+
+
+
diff --git a/Classes/ChatConversationTableView.h b/Classes/ChatConversationTableView.h
index 59ad225bf..dd8c95d45 100644
--- a/Classes/ChatConversationTableView.h
+++ b/Classes/ChatConversationTableView.h
@@ -20,7 +20,7 @@
#import
#include "linphone/linphonecore.h"
-#import "UICheckBoxTVTableViewController.h"
+#import "UICheckBoxTableViewController.h"
@protocol ChatConversationDelegate
@@ -29,7 +29,7 @@
@end
-@interface ChatConversationTableView : UICheckBoxTVTableViewController {
+@interface ChatConversationTableView : UICheckBoxTableViewController {
@private
LinphoneChatRoom *chatRoom;
MSList *messageList;
diff --git a/Classes/ChatsListTableView.h b/Classes/ChatsListTableView.h
index 35fb52d1d..5641b117f 100644
--- a/Classes/ChatsListTableView.h
+++ b/Classes/ChatsListTableView.h
@@ -19,9 +19,9 @@
#import
#include "linphone/linphonecore.h"
-#include "UICheckBoxTVTableViewController.h"
+#include "UICheckBoxTableViewController.h"
-@interface ChatsListTableView : UICheckBoxTVTableViewController
+@interface ChatsListTableView : UICheckBoxTableViewController
- (void)loadData;
@end
diff --git a/Classes/ContactsListTableView.h b/Classes/ContactsListTableView.h
index 5f03946bc..db11afe3a 100644
--- a/Classes/ContactsListTableView.h
+++ b/Classes/ContactsListTableView.h
@@ -20,11 +20,11 @@
#import
#import
-#import "UICheckBoxTVTableViewController.h"
+#import "UICheckBoxTableViewController.h"
#import "OrderedDictionary.h"
-@interface ContactsListTableView : UICheckBoxTVTableViewController {
+@interface ContactsListTableView : UICheckBoxTableViewController {
@private
OrderedDictionary *addressBookMap;
NSMutableDictionary *avatarMap;
diff --git a/Classes/HistoryListTableView.h b/Classes/HistoryListTableView.h
index dfae042e0..bc06538ec 100644
--- a/Classes/HistoryListTableView.h
+++ b/Classes/HistoryListTableView.h
@@ -19,9 +19,9 @@
#import
-#import "UICheckBoxTVTableViewController.h"
+#import "UICheckBoxTableViewController.h"
-@interface HistoryListTableView : UICheckBoxTVTableViewController {
+@interface HistoryListTableView : UICheckBoxTableViewController {
}
@property(nonatomic, assign) BOOL missedFilter;
diff --git a/Classes/LinphoneUI/UICheckBoxTVTableViewController.h b/Classes/LinphoneUI/UICheckBoxTableViewController.h
similarity index 85%
rename from Classes/LinphoneUI/UICheckBoxTVTableViewController.h
rename to Classes/LinphoneUI/UICheckBoxTableViewController.h
index 6e91f04ac..bf273fc0e 100644
--- a/Classes/LinphoneUI/UICheckBoxTVTableViewController.h
+++ b/Classes/LinphoneUI/UICheckBoxTableViewController.h
@@ -10,13 +10,14 @@
#import
-@interface UICheckBoxTVTableViewController : UITableViewController
+@interface UICheckBoxTableViewController : UITableViewController
@property(nonatomic, readonly) NSMutableArray *selectedItems;
@property(weak, nonatomic) IBOutlet UIButton *deleteButton;
@property(weak, nonatomic) IBOutlet UIButton *editButton;
@property(weak, nonatomic) IBOutlet UIButton *cancelButton;
@property(weak, nonatomic) IBOutlet UIButton *toggleSelectionButton;
+@property(weak, nonatomic) IBOutlet UIView *emptyView;
- (void)loadData;
- (void)accessoryForCell:(UITableViewCell *)cell atPath:(NSIndexPath *)indexPath;
diff --git a/Classes/LinphoneUI/UICheckBoxTVTableViewController.m b/Classes/LinphoneUI/UICheckBoxTableViewController.m
similarity index 80%
rename from Classes/LinphoneUI/UICheckBoxTVTableViewController.m
rename to Classes/LinphoneUI/UICheckBoxTableViewController.m
index ebf9df871..02f93a357 100644
--- a/Classes/LinphoneUI/UICheckBoxTVTableViewController.m
+++ b/Classes/LinphoneUI/UICheckBoxTableViewController.m
@@ -17,10 +17,10 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#import "UICheckBoxTVTableViewController.h"
+#import "UICheckBoxTableViewController.h"
#import "Utils.h"
-@implementation UICheckBoxTVTableViewController
+@implementation UICheckBoxTableViewController
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
@@ -38,15 +38,17 @@
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
- _editButton.enabled = (([self numberOfSectionsInTableView:self.tableView] > 0) &&
- ([self tableView:self.tableView numberOfRowsInSection:0] != 0));
+ _emptyView.hidden = _editButton.enabled = ([self totalNumberOfItems] != 0);
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
[tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:NO];
- cell.accessoryType = (cell.accessoryType == UITableViewCellAccessoryCheckmark) ? UITableViewCellAccessoryNone
- : UITableViewCellAccessoryCheckmark;
+ if ([_selectedItems containsObject:indexPath]) {
+ [_selectedItems removeObject:indexPath];
+ } else {
+ [_selectedItems addObject:indexPath];
+ }
[self accessoryForCell:cell atPath:indexPath];
_toggleSelectionButton.selected = (_selectedItems.count == [self totalNumberOfItems]);
}
@@ -57,11 +59,9 @@
cell.selectionStyle = UITableViewCellSelectionStyleNone;
if ([self isEditing]) {
UIImage *image = nil;
- if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
- [_selectedItems addObject:indexPath];
+ if ([_selectedItems containsObject:indexPath]) {
image = [UIImage imageNamed:@"checkbox_checked.png"];
- } else if (cell.accessoryType == UITableViewCellAccessoryNone) {
- [_selectedItems removeObject:indexPath];
+ } else {
image = [UIImage imageNamed:@"checkbox_unchecked.png"];
}
UIButton *checkBoxButton = [UIButton buttonWithType:UIButtonTypeCustom];
@@ -93,8 +93,7 @@
[_selectedItems removeAllObjects];
[self.tableView reloadData];
- _editButton.enabled = ([self numberOfSectionsInTableView:self.tableView] > 0 &&
- [self tableView:self.tableView numberOfRowsInSection:0] != 0);
+ _editButton.enabled = _emptyView.hidden = ([self totalNumberOfItems] > 0);
}
- (void)removeSelection {
@@ -118,12 +117,12 @@
_toggleSelectionButton.selected = !_toggleSelectionButton.selected; // TODO: why do we need that?
for (int i = 0; i < [self numberOfSectionsInTableView:self.tableView]; i++) {
for (int j = 0; j < [self tableView:self.tableView numberOfRowsInSection:i]; j++) {
- NSIndexPath *idx = [NSIndexPath indexPathForRow:j inSection:i];
-
- UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:idx];
- cell.accessoryType =
- _toggleSelectionButton.selected ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;
- [self accessoryForCell:cell atPath:idx];
+ NSIndexPath *indexPath = [NSIndexPath indexPathForRow:j inSection:i];
+ UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
+ if (_toggleSelectionButton.selected) {
+ [_selectedItems addObject:indexPath];
+ }
+ [self accessoryForCell:cell atPath:indexPath];
}
}
}
diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj
index 8b24ddf80..1c01f5c05 100755
--- a/linphone.xcodeproj/project.pbxproj
+++ b/linphone.xcodeproj/project.pbxproj
@@ -89,7 +89,7 @@
6334DDFB1BBAC99400631900 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D32B6E2E15A5C0AC0033019F /* libsqlite3.dylib */; };
6334DDFC1BBAC99B00631900 /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 152F22351B15E889008C0621 /* libxml2.dylib */; };
6334DDFD1BBAC9A200631900 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F0B026F21AA710AF00FF49F7 /* libiconv.dylib */; };
- 6334DE001BBAD5AA00631900 /* UICheckBoxTVTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6334DDFF1BBAD5AA00631900 /* UICheckBoxTVTableViewController.m */; };
+ 6334DE001BBAD5AA00631900 /* UICheckBoxTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6334DDFF1BBAD5AA00631900 /* UICheckBoxTableViewController.m */; };
633671611BCBAAD200BFCBDE /* ChatConversationCreateView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6336715F1BCBAAD200BFCBDE /* ChatConversationCreateView.m */; };
633756391B67BAF400E21BAD /* SideMenuTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 633756381B67BAF400E21BAD /* SideMenuTableView.m */; };
633756451B67D2B200E21BAD /* SideMenuView.m in Sources */ = {isa = PBXBuildFile; fileRef = 633756431B67D2B100E21BAD /* SideMenuView.m */; };
@@ -741,8 +741,8 @@
6313482F1B6F7B6600C6BDCB /* UIRoundBorderedButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIRoundBorderedButton.m; sourceTree = ""; };
631348311B6FA53300C6BDCB /* rootca.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = rootca.pem; path = "liblinphone-sdk/apple-darwin/share/linphone/rootca.pem"; sourceTree = SOURCE_ROOT; };
63158FAC1B468E0E00969917 /* ImageOptim.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = ImageOptim.sh; path = Tools/ImageOptim.sh; sourceTree = ""; };
- 6334DDFE1BBAD5AA00631900 /* UICheckBoxTVTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UICheckBoxTVTableViewController.h; sourceTree = ""; };
- 6334DDFF1BBAD5AA00631900 /* UICheckBoxTVTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UICheckBoxTVTableViewController.m; sourceTree = ""; };
+ 6334DDFE1BBAD5AA00631900 /* UICheckBoxTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UICheckBoxTableViewController.h; sourceTree = ""; };
+ 6334DDFF1BBAD5AA00631900 /* UICheckBoxTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UICheckBoxTableViewController.m; sourceTree = ""; };
6336715E1BCBAAD200BFCBDE /* ChatConversationCreateView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatConversationCreateView.h; sourceTree = ""; };
6336715F1BCBAAD200BFCBDE /* ChatConversationCreateView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatConversationCreateView.m; sourceTree = ""; };
633756371B67BAF400E21BAD /* SideMenuTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SideMenuTableView.h; sourceTree = ""; };
@@ -1567,8 +1567,8 @@
63B8D69F1BCBF43100C12B09 /* UIChatCreateCell.h */,
63B8D6A01BCBF43100C12B09 /* UIChatCreateCell.m */,
63B8D6A11BCBF43100C12B09 /* UIChatCreateCell.xib */,
- 6334DDFE1BBAD5AA00631900 /* UICheckBoxTVTableViewController.h */,
- 6334DDFF1BBAD5AA00631900 /* UICheckBoxTVTableViewController.m */,
+ 6334DDFE1BBAD5AA00631900 /* UICheckBoxTableViewController.h */,
+ 6334DDFF1BBAD5AA00631900 /* UICheckBoxTableViewController.m */,
D31B4B1E159876C0002E6C72 /* UICompositeView.h */,
D31B4B1F159876C0002E6C72 /* UICompositeView.m */,
639CEB051A1DF4EB004DE38F /* UICompositeView.xib */,
@@ -2881,7 +2881,7 @@
D3807FC515C28940005BE9BC /* DCRoundSwitchToggleLayer.m in Sources */,
D3807FE815C2894A005BE9BC /* IASKAppSettingsViewController.m in Sources */,
D3807FEA15C2894A005BE9BC /* IASKAppSettingsWebViewController.m in Sources */,
- 6334DE001BBAD5AA00631900 /* UICheckBoxTVTableViewController.m in Sources */,
+ 6334DE001BBAD5AA00631900 /* UICheckBoxTableViewController.m in Sources */,
D3807FEC15C2894A005BE9BC /* IASKSpecifierValuesViewController.m in Sources */,
D3807FEE15C2894A005BE9BC /* IASKSettingsReader.m in Sources */,
D3807FF015C2894A005BE9BC /* IASKSettingsStore.m in Sources */,