From 44ce5688b17cb6c0de7e8ed7d44977e0c1d0c3d1 Mon Sep 17 00:00:00 2001 From: Diogo Simao Marques <dogo@videolabs.io> Date: Mon, 27 Jan 2025 13:30:52 +0100 Subject: [PATCH] VLCNetworkServerBrowserViewController: Remove the play all button when necessary The play all button is now hidden when necessary to avoid having it being displayed when the view is empty. --- .../View Controllers/VLCNetworkListViewController.h | 3 +++ .../View Controllers/VLCNetworkListViewController.m | 12 +++++++++++- .../VLCNetworkServerBrowserViewController.m | 11 ++++++++++- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/Sources/Network/Server Browsing/View Controllers/VLCNetworkListViewController.h b/Sources/Network/Server Browsing/View Controllers/VLCNetworkListViewController.h index 24b5d04b5..157e2247a 100644 --- a/Sources/Network/Server Browsing/View Controllers/VLCNetworkListViewController.h +++ b/Sources/Network/Server Browsing/View Controllers/VLCNetworkListViewController.h @@ -25,4 +25,7 @@ extern NSString *VLCNetworkListCellIdentifier; - (IBAction)playAllAction:(id)sender; - (void)tableView:(UITableView *)tableView willDisplayCell:(VLCNetworkListCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath; +- (void)addPlayAllAction; +- (void)removePlayAllAction; + @end diff --git a/Sources/Network/Server Browsing/View Controllers/VLCNetworkListViewController.m b/Sources/Network/Server Browsing/View Controllers/VLCNetworkListViewController.m index 05cac4497..bfa9b2ef1 100644 --- a/Sources/Network/Server Browsing/View Controllers/VLCNetworkListViewController.m +++ b/Sources/Network/Server Browsing/View Controllers/VLCNetworkListViewController.m @@ -91,7 +91,7 @@ NSString *VLCNetworkListCellIdentifier = @"VLCNetworkListCellIdentifier"; } self.definesPresentationContext = YES; - self.navigationItem.rightBarButtonItems = @[[UIBarButtonItem themedPlayAllButtonWithTarget:self andSelector:@selector(playAllAction:)]]; + [self addPlayAllAction]; _searchData = [[NSMutableArray alloc] init]; [_searchData removeAllObjects]; @@ -138,6 +138,16 @@ NSString *VLCNetworkListCellIdentifier = @"VLCNetworkListCellIdentifier"; [_activityIndicator stopAnimating]; } +- (void)addPlayAllAction +{ + self.navigationItem.rightBarButtonItems = @[[UIBarButtonItem themedPlayAllButtonWithTarget:self andSelector:@selector(playAllAction:)]]; +} + +- (void)removePlayAllAction +{ + self.navigationItem.rightBarButtonItems = @[]; +} + #pragma mark - Table view data source - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView diff --git a/Sources/Network/Server Browsing/View Controllers/VLCNetworkServerBrowserViewController.m b/Sources/Network/Server Browsing/View Controllers/VLCNetworkServerBrowserViewController.m index 101eb20f9..808655392 100644 --- a/Sources/Network/Server Browsing/View Controllers/VLCNetworkServerBrowserViewController.m +++ b/Sources/Network/Server Browsing/View Controllers/VLCNetworkServerBrowserViewController.m @@ -97,6 +97,7 @@ if (_serverBrowser.items.count == 0 && [(VLCNetworkServerBrowserVLCMedia *)_serverBrowser retrieveParsedStatus] == VLCMediaParsedStatusDone) { [self stopActivityIndicator]; + [self removePlayAllAction]; } } @@ -126,6 +127,7 @@ - (void)networkServerBrowserEndParsing:(id<VLCNetworkServerBrowser>)networkBrowser { [self stopActivityIndicator]; + [self removePlayAllActionIfNeeded]; } - (void)networkServerBrowser:(id<VLCNetworkServerBrowser>)networkBrowser requestDidFailWithError:(NSError *)error @@ -153,11 +155,18 @@ [[VLCActivityManager defaultManager] networkActivityStarted]; } --(void)handleRefresh +- (void)handleRefresh { [self update]; } +- (void)removePlayAllActionIfNeeded +{ + if ([_serverBrowser.items count] == 0) { + [self removePlayAllAction]; + } +} + #pragma mark - server browser item specifics - (void)didSelectItem:(id<VLCNetworkServerBrowserItem>)item index:(NSUInteger)index singlePlayback:(BOOL)singlePlayback -- GitLab