Files
flipper/iOS/SonarKit/FlipperDiagnosticsViewController.m
John Knox d8e5e31c9a iOS: Update diagnostic screen on state update
Summary: Update the diagnostic screen whenever the sonar state changes.

Reviewed By: priteshrnandgaonkar

Differential Revision: D9218765

fbshipit-source-id: 654a35e309cb43df18bc8c8a645d469eddc1031d
2018-08-20 05:11:49 -07:00

56 lines
1.7 KiB
Objective-C

#ifdef FB_SONARKIT_ENABLED
#import "FlipperDiagnosticsViewController.h"
#import "SonarClient.h"
@implementation FlipperDiagnosticsViewController
- (void)viewDidLoad {
[super viewDidLoad];
UILabel *text = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 50)];
text.text = @"Flipper Diagnostics";
[self.view addSubview:text];
self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 50, self.view.frame.size.width, self.view.frame.size.height - 100)];
self.stateLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 1000)];
self.stateLabel.numberOfLines = 0;
self.stateLabel.text = [[SonarClient sharedClient] getState];
[self.scrollView addSubview:self.stateLabel];
self.scrollView.contentSize = self.stateLabel.frame.size;
[self.view addSubview:self.scrollView];
}
- (void)onUpdate {
FlipperDiagnosticsViewController __weak *weakSelf = self;
dispatch_async(dispatch_get_main_queue(), ^{
FlipperDiagnosticsViewController *strongSelf = weakSelf;
if (!strongSelf) {
return;
}
NSString *state = [[SonarClient sharedClient] getState];
strongSelf.stateLabel.text = state;
[strongSelf.stateLabel sizeToFit];
strongSelf.scrollView.contentSize = strongSelf.stateLabel.frame.size;
});
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
id<FlipperStateUpdateListener> weakSelf = self;
[[SonarClient sharedClient] subscribeForUpdates:weakSelf];
}
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationMaskPortrait;
}
@end
#endif