Skip to content

Commit 2b9a00b

Browse files
committed
IOS-6755 T4624736 Fixed selection Cancel button on Shared Items
(cherry picked from commit 85613bb)
1 parent dffa065 commit 2b9a00b

File tree

3 files changed

+55
-32
lines changed

3 files changed

+55
-32
lines changed

iMEGA/Node/Shared Items/SharedItemsViewController+Additions.swift

+42-7
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ extension SharedItemsViewController {
8484
}
8585

8686
@objc func searchUnverifiedNodes(key: String) {
87-
searchUnverifiedNodesArray?.removeAllObjects()
88-
searchUnverifiedSharesArray?.removeAllObjects()
87+
searchUnverifiedNodesArray.removeAllObjects()
88+
searchUnverifiedSharesArray.removeAllObjects()
8989

9090
var nodes: [MEGANode]?
9191
var shares: [MEGAShare]?
@@ -101,24 +101,24 @@ extension SharedItemsViewController {
101101

102102
guard let nodes, let shares else { return }
103103
guard key.isNotEmpty else {
104-
searchUnverifiedSharesArray?.addObjects(from: shares)
105-
searchUnverifiedNodesArray?.addObjects(from: nodes)
104+
searchUnverifiedSharesArray.addObjects(from: shares)
105+
searchUnverifiedNodesArray.addObjects(from: nodes)
106106
return
107107
}
108108

109109
nodes.indices.filter {
110110
nodes[$0].name?.lowercased().contains(key.lowercased()) == true
111111
}.forEach { index in
112-
searchUnverifiedSharesArray?.add(shares[index])
113-
searchUnverifiedNodesArray?.add(nodes[index])
112+
searchUnverifiedSharesArray.add(shares[index])
113+
searchUnverifiedNodesArray.add(nodes[index])
114114
}
115115
}
116116

117117
@objc func shareAtIndexPath(_ indexPath: IndexPath) -> MEGAShare? {
118118
guard indexPath.section == 0, linksButton?.isSelected == false else { return nil }
119119

120120
if searchController.isActive {
121-
return searchUnverifiedSharesArray?[indexPath.row] as? MEGAShare
121+
return searchUnverifiedSharesArray[indexPath.row] as? MEGAShare
122122
}
123123

124124
if outgoingButton?.isSelected == true {
@@ -149,6 +149,41 @@ extension SharedItemsViewController {
149149
return 1
150150
}
151151

152+
@objc func configNavigationBarButtonItems() {
153+
let isEditing = tableView?.isEditing ?? false
154+
guard MEGAReachabilityManager.isReachableHUDIfNot() else {
155+
setNavigationBarButtonItemsEnabled(isEditing)
156+
return
157+
}
158+
159+
guard !searchController.isActive else {
160+
var isEnabled = searchNodesArray.count > 0
161+
162+
if incomingButton?.isSelected == true ||
163+
outgoingButton?.isSelected == true {
164+
isEnabled = isEnabled || searchUnverifiedNodesArray.count > 0
165+
}
166+
setNavigationBarButtonItemsEnabled(isEnabled || isEditing)
167+
return
168+
}
169+
170+
var isEnabled = false
171+
if incomingButton?.isSelected == true {
172+
isEnabled = incomingShareList.size.intValue > 0 ||
173+
incomingUnverifiedShareList.size.intValue > 0
174+
} else if outgoingButton?.isSelected == true {
175+
isEnabled = outgoingShareList.size.intValue > 0
176+
} else if linksButton?.isSelected == true {
177+
isEnabled = publicLinksArray.isNotEmpty
178+
}
179+
180+
setNavigationBarButtonItemsEnabled(isEnabled || isEditing)
181+
}
182+
183+
@objc func setNavigationBarButtonItemsEnabled(_ isEnabled: Bool) {
184+
self.editBarButtonItem?.isEnabled = isEnabled
185+
}
186+
152187
private func shares(from shareList: MEGAShareList) -> [MEGAShare] {
153188
(0..<shareList.size.intValue).compactMap { index in
154189
let share: MEGAShare = shareList.share(at: index)

iMEGA/Node/Shared Items/SharedItemsViewController.h

+8-3
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,21 @@ NS_ASSUME_NONNULL_BEGIN
2929
@property (weak, nonatomic) IBOutlet UIView *outgoingLineView;
3030
@property (weak, nonatomic) IBOutlet UIView *linksLineView;
3131

32+
@property (nonatomic, strong) MEGAShareList *outgoingShareList;
3233
@property (nonatomic, strong, nullable) MEGAShareList *outgoingUnverifiedShareList;
3334
@property (nonatomic, strong, nullable) NSMutableArray<MEGAShare *> *outgoingUnverifiedSharesMutableArray;
3435
@property (nonatomic, strong, nullable) NSMutableArray<MEGANode *> *outgoingUnverifiedNodesMutableArray;
3536

36-
@property (nonatomic, strong, nullable) MEGAShareList *incomingUnverifiedShareList;
37+
@property (nonatomic, strong) MEGAShareList *incomingShareList;
38+
@property (nonatomic, strong) MEGAShareList *incomingUnverifiedShareList;
3739
@property (nonatomic, strong, nullable) NSMutableArray<MEGAShare *> *incomingUnverifiedSharesMutableArray;
3840
@property (nonatomic, strong, nullable) NSMutableArray<MEGANode *> *incomingUnverifiedNodesMutableArray;
3941

40-
@property (nonatomic, strong, nullable) NSMutableArray<MEGAShare *> *searchUnverifiedSharesArray;
41-
@property (nonatomic, strong, nullable) NSMutableArray<MEGANode *> *searchUnverifiedNodesArray;
42+
@property (nonatomic) NSMutableArray *searchNodesArray;
43+
@property (nonatomic, strong) NSMutableArray<MEGAShare *> *searchUnverifiedSharesArray;
44+
@property (nonatomic, strong) NSMutableArray<MEGANode *> *searchUnverifiedNodesArray;
45+
46+
@property (nonatomic, strong) NSArray *publicLinksArray;
4247

4348
@property (strong, nonatomic) SharedItemsViewModel *viewModel;
4449

iMEGA/Node/Shared Items/SharedItemsViewController.m

+5-22
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,16 @@ @interface SharedItemsViewController () <UITableViewDataSource, UITableViewDeleg
4242
@property (weak, nonatomic) IBOutlet UIBarButtonItem *removeShareBarButtonItem;
4343
@property (weak, nonatomic) IBOutlet UIBarButtonItem *removeLinkBarButtonItem;
4444

45-
@property (nonatomic, strong) MEGAShareList *incomingShareList;
4645
@property (nonatomic, strong) NSMutableArray *incomingNodesMutableArray;
47-
48-
@property (nonatomic, strong) MEGAShareList *outgoingShareList;
49-
@property (nonatomic, strong) NSMutableArray *outgoingSharesMutableArray;
5046
@property (nonatomic, strong) NSMutableArray *outgoingNodesMutableArray;
51-
52-
@property (nonatomic, strong) NSArray *publicLinksArray;
53-
47+
@property (nonatomic, strong) NSMutableArray *outgoingSharesMutableArray;
5448
@property (nonatomic, strong) NSMutableArray *selectedSharesMutableArray;
5549

5650
@property (nonatomic, strong) NSMutableDictionary *incomingNodesForEmailMutableDictionary;
5751
@property (nonatomic, strong) NSMutableDictionary *incomingIndexPathsMutableDictionary;
5852
@property (nonatomic, strong) NSMutableDictionary *outgoingNodesForEmailMutableDictionary;
5953
@property (nonatomic, strong) NSMutableDictionary *outgoingIndexPathsMutableDictionary;
6054

61-
@property (nonatomic) NSMutableArray *searchNodesArray;
62-
6355
@property (nonatomic, assign) BOOL shouldRemovePlayerDelegate;
6456

6557
@end
@@ -227,24 +219,21 @@ - (void)reloadUI {
227219
}
228220

229221
[self updateNavigationBarTitle];
222+
[self configNavigationBarButtonItems];
230223

231224
[self.tableView reloadData];
232225
}
233226

234227
- (void)internetConnectionChanged {
235228
BOOL boolValue = [MEGAReachabilityManager isReachable];
236-
[self setNavigationBarButtonItemsEnabled:boolValue];
229+
[self setNavigationBarButtonItemsEnabled:boolValue || self.tableView.isEditing];
237230
[self toolbarItemsSetEnabled:boolValue];
238231

239232
boolValue ? [self addSearchBar] : [self hideSearchBarIfNotActive];
240233

241234
[self.tableView reloadData];
242235
}
243236

244-
- (void)setNavigationBarButtonItemsEnabled:(BOOL)boolValue {
245-
[self.editBarButtonItem setEnabled:boolValue];
246-
}
247-
248237
- (void)toolbarItemsSetEnabled:(BOOL)boolValue {
249238
[_downloadBarButtonItem setEnabled:boolValue];
250239
[_carbonCopyBarButtonItem setEnabled:boolValue];
@@ -631,6 +620,7 @@ - (void)didTapSelect {
631620
self.selectedSharesMutableArray = NSMutableArray.alloc.init;
632621

633622
[self configToolbarItemsForSharedItems];
623+
[self configNavigationBarButtonItems];
634624
[self toolbarItemsSetEnabled:NO];
635625
}
636626

@@ -932,13 +922,6 @@ - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger
932922
}
933923
}
934924
}
935-
936-
if (numberOfRows == 0) {
937-
[self setNavigationBarButtonItemsEnabled:NO];
938-
} else {
939-
[self setNavigationBarButtonItemsEnabled:YES];
940-
}
941-
942925
return numberOfRows;
943926
}
944927

@@ -1133,7 +1116,7 @@ - (void)tableView:(UITableView *)tableView willPerformPreviewActionForMenuWithCo
11331116
#pragma mark - UISearchBarDelegate
11341117

11351118
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
1136-
self.searchNodesArray = nil;
1119+
[self.searchNodesArray removeAllObjects];
11371120
[self.searchUnverifiedNodesArray removeAllObjects];
11381121
[self.searchUnverifiedSharesArray removeAllObjects];
11391122

0 commit comments

Comments
 (0)