iOS: Add very basic diagnostic screen
Summary: Adds an extremely barebones in-app screen for showing sonar diagnostics. The UI is laughable, but it's wired up. Leaving proper design to a later commit. Like in the android case, state is currently passed as a string, but will become something much more structured after this is in place. Reviewed By: priteshrnandgaonkar Differential Revision: D9218766 fbshipit-source-id: 4889ed79b928056a67b1e8cb8a40a9bd52e084f1
This commit is contained in:
committed by
Facebook Github Bot
parent
be4b45c703
commit
21888157df
17
iOS/SonarKit/FlipperDiagnosticsViewController.h
Normal file
17
iOS/SonarKit/FlipperDiagnosticsViewController.h
Normal file
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* Copyright (c) 2018-present, Facebook, Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the LICENSE
|
||||
* file in the root directory of this source tree.
|
||||
*
|
||||
*/
|
||||
#ifdef FB_SONARKIT_ENABLED
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface FlipperDiagnosticsViewController : UIViewController
|
||||
@property(strong, nonatomic) UIScrollView *scrollView;
|
||||
@property(strong, nonatomic) UILabel *stateLabel;
|
||||
@end
|
||||
|
||||
#endif
|
||||
39
iOS/SonarKit/FlipperDiagnosticsViewController.m
Normal file
39
iOS/SonarKit/FlipperDiagnosticsViewController.m
Normal file
@@ -0,0 +1,39 @@
|
||||
#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 - 50)];
|
||||
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 {
|
||||
self.stateLabel.text = [[SonarClient sharedClient] getState];
|
||||
self.scrollView.contentSize = self.stateLabel.frame.size;
|
||||
}
|
||||
|
||||
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
|
||||
return UIInterfaceOrientationMaskPortrait;
|
||||
}
|
||||
|
||||
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
|
||||
return UIInterfaceOrientationMaskPortrait;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
||||
@@ -45,6 +45,11 @@ Stop the connection to the Sonar desktop.
|
||||
*/
|
||||
- (void)stop;
|
||||
|
||||
/**
|
||||
Get the current state of the sonar client
|
||||
*/
|
||||
- (NSString *)getState;
|
||||
|
||||
// initializers are disabled. You must use `+[SonarClient sharedClient]` instance.
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
+ (instancetype)new NS_UNAVAILABLE;
|
||||
|
||||
@@ -121,6 +121,10 @@ using WrapperPlugin = facebook::sonar::SonarCppWrapperPlugin;
|
||||
#endif
|
||||
}
|
||||
|
||||
- (NSString *)getState {
|
||||
return @(_cppClient->getState().c_str());
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user