fixed long clicking host on iPads and made applist appear immediately after the apps are known

This commit is contained in:
Diego Waxemberg
2015-01-08 19:37:51 -05:00
parent e9c449bbf4
commit b89515089f
3 changed files with 16 additions and 8 deletions
+1 -1
View File
@@ -12,7 +12,7 @@
@protocol HostCallback <NSObject> @protocol HostCallback <NSObject>
- (void) hostClicked:(Host*)host; - (void) hostClicked:(Host*)host;
- (void) hostLongClicked:(Host*)host; - (void) hostLongClicked:(Host*)host view:(UIView*)view;
- (void) addHostClicked; - (void) addHostClicked;
@end @end
+1 -1
View File
@@ -134,7 +134,7 @@ static const int LABEL_DY = 20;
- (void) hostLongClicked { - (void) hostLongClicked {
[_callback hostLongClicked:_host]; [_callback hostLongClicked:_host view:self];
} }
- (void) hostClicked { - (void) hostClicked {
@@ -67,14 +67,15 @@ static StreamConfiguration* streamConfig;
- (void)alreadyPaired { - (void)alreadyPaired {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_async(dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{
[self updateApps];
NSLog(@"Setting _computerNameButton.title: %@", _selectedHost.name);
_computerNameButton.title = _selectedHost.name; _computerNameButton.title = _selectedHost.name;
}); });
HttpManager* hMan = [[HttpManager alloc] initWithHost:_selectedHost.address uniqueId:_uniqueId deviceName:deviceName cert:_cert]; HttpManager* hMan = [[HttpManager alloc] initWithHost:_selectedHost.address uniqueId:_uniqueId deviceName:deviceName cert:_cert];
NSData* appListResp = [hMan executeRequestSynchronously:[hMan newAppListRequest]]; NSData* appListResp = [hMan executeRequestSynchronously:[hMan newAppListRequest]];
appList = [HttpManager getAppListFromXML:appListResp]; appList = [HttpManager getAppListFromXML:appListResp];
dispatch_async(dispatch_get_main_queue(), ^{
[self updateApps];
});
[AppManager retrieveAppAssets:appList withManager:hMan andCallback:self]; [AppManager retrieveAppAssets:appList withManager:hMan andCallback:self];
}); });
} }
@@ -117,7 +118,7 @@ static StreamConfiguration* streamConfig;
}); });
} }
- (void)hostLongClicked:(Host *)host { - (void)hostLongClicked:(Host *)host view:(UIView *)view {
NSLog(@"Long clicked host: %@", host.name); NSLog(@"Long clicked host: %@", host.name);
UIAlertController* longClickAlert = [UIAlertController alertControllerWithTitle:host.name message:@"" preferredStyle:UIAlertControllerStyleActionSheet]; UIAlertController* longClickAlert = [UIAlertController alertControllerWithTitle:host.name message:@"" preferredStyle:UIAlertControllerStyleActionSheet];
if (host.online) { if (host.online) {
@@ -145,14 +146,21 @@ static StreamConfiguration* streamConfig;
}]]; }]];
} }
[longClickAlert addAction:[UIAlertAction actionWithTitle:@"Remove Host" style:UIAlertActionStyleDestructive handler:^(UIAlertAction* action) { [longClickAlert addAction:[UIAlertAction actionWithTitle:@"Remove Host" style:UIAlertActionStyleDestructive handler:^(UIAlertAction* action) {
@synchronized(hostList) {
[hostList removeObject:host];
}
[_discMan removeHostFromDiscovery:host]; [_discMan removeHostFromDiscovery:host];
DataManager* dataMan = [[DataManager alloc] init]; DataManager* dataMan = [[DataManager alloc] init];
[dataMan removeHost:host]; [dataMan removeHost:host];
@synchronized(hostList) {
[hostList removeObject:host];
}
[self updateAllHosts:[hostList allObjects]];
}]]; }]];
[longClickAlert addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]]; [longClickAlert addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]];
// these two lines are required for iPad support of UIAlertSheet
longClickAlert.popoverPresentationController.sourceView = view;
longClickAlert.popoverPresentationController.sourceRect = CGRectMake(view.bounds.size.width / 2.0, view.bounds.size.height / 2.0, 1.0, 1.0); // center of the view
[self presentViewController:longClickAlert animated:YES completion:^{ [self presentViewController:longClickAlert animated:YES completion:^{
[self updateHosts]; [self updateHosts];
}]; }];