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;
|
- (void)stop;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Get the current state of the sonar client
|
||||||
|
*/
|
||||||
|
- (NSString *)getState;
|
||||||
|
|
||||||
// initializers are disabled. You must use `+[SonarClient sharedClient]` instance.
|
// initializers are disabled. You must use `+[SonarClient sharedClient]` instance.
|
||||||
- (instancetype)init NS_UNAVAILABLE;
|
- (instancetype)init NS_UNAVAILABLE;
|
||||||
+ (instancetype)new NS_UNAVAILABLE;
|
+ (instancetype)new NS_UNAVAILABLE;
|
||||||
|
|||||||
@@ -121,6 +121,10 @@ using WrapperPlugin = facebook::sonar::SonarCppWrapperPlugin;
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (NSString *)getState {
|
||||||
|
return @(_cppClient->getState().c_str());
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user