ExampleLogger/ExampleMakeLogsViewController.m (121 lines of code) (raw):
//
// ExampleSecondViewController.m
// ExampleLogger
//
// Created on 12/24/13.
// Copyright (c) 2016 Twitter, Inc.
//
#import <TwitterLoggingService/TLSLog.h>
#import "ExampleMakeLogsViewController.h"
#import "TLSLoggingService+ExampleAdditions.h"
@interface ExampleMakeLogsViewController () <UITextFieldDelegate>
@property (nonatomic) UISegmentedControl *levelControl;
@property (nonatomic) UISegmentedControl *channelControl;
@property (nonatomic) UITextField *logMessageField;
@property (nonatomic) UIButton *logButton;
@property (nonatomic, copy) NSArray *channels;
@end
@implementation ExampleMakeLogsViewController
- (instancetype)init
{
if (self = [super initWithNibName:nil bundle:nil]) {
self.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"+Log" image:[UIImage imageNamed:@"first"] tag:1];
self.navigationItem.title = @"Add Log";
}
return self;
}
- (void)loadView
{
[super loadView];
self.view.backgroundColor = [UIColor whiteColor];
CGRect frame;
self.levelControl = [[UISegmentedControl alloc] initWithItems:@[ @"Debug", @"Info", @"Warning", @"Error"]];
frame = self.levelControl.frame;
frame.size.width = self.view.bounds.size.width - 20;
frame.origin.x = 10;
frame.origin.y = 10;
if ([UIWindow instancesRespondToSelector:@selector(tintColor)]) {
frame.origin.y += 20;
}
self.levelControl.frame = frame;
[self.levelControl setSelectedSegmentIndex:1]; // Info
[self.view addSubview:self.levelControl];
self.channels = @[TLSLogChannelDefault, ExampleLogChannelOne, ExampleLogChannelTwo, ExampleLogChannelThree];
self.channelControl = [[UISegmentedControl alloc] initWithItems:self.channels];
NSUInteger appIndex = [self.channels indexOfObject:TLSLogChannelDefault];
if (appIndex != NSNotFound) {
[self.channelControl setTitle:@"APP" forSegmentAtIndex:0];
}
[self.channelControl setSelectedSegmentIndex:0];
frame = self.channelControl.frame;
frame.size.width = self.view.bounds.size.width - 20;
frame.origin.x = 10;
frame.origin.y = 10 + self.levelControl.frame.size.height + self.levelControl.frame.origin.y;
self.channelControl.frame = frame;
[self.view addSubview:self.channelControl];
frame.origin.y += frame.size.height + 10;
self.logMessageField = [[UITextField alloc] initWithFrame:frame];
self.logMessageField.placeholder = @"Your log message here";
self.logMessageField.borderStyle = UITextBorderStyleRoundedRect;
self.logMessageField.delegate = self;
[self.view addSubview:self.logMessageField];
frame.origin.y += frame.size.height + 10;
self.logButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.logButton.frame = frame;
if ([[UIApplication sharedApplication].keyWindow respondsToSelector:@selector(tintColor)]) {
self.logButton.backgroundColor = [[UIApplication sharedApplication].keyWindow tintColor];
} else {
self.logButton.backgroundColor = [UIColor blueColor];
}
self.logButton.layer.cornerRadius = 5;
[self.logButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[self.logButton setTitleColor:[UIColor grayColor] forState:UIControlStateSelected];
[self.logButton setTitleColor:[UIColor grayColor] forState:UIControlStateHighlighted];
[self.logButton setTitleColor:[UIColor grayColor] forState:UIControlStateDisabled];
[self.logButton setTitle:@"Log Message" forState:UIControlStateNormal];
[self.logButton addTarget:self action:@selector(didHitButton:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.logButton];
}
- (void)viewDidLoad
{
[super viewDidLoad];
}
#pragma mark - UITextFieldDelegate
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
NSLog(@"");
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
#pragma mark - Methods
- (void)didHitButton:(id)sender
{
[self.logMessageField resignFirstResponder];
TLSLog(self.level, self.channel, @"%@", self.message);
}
- (TLSLogLevel)level
{
switch (self.levelControl.selectedSegmentIndex) {
case 3:
return TLSLogLevelError;
case 2:
return TLSLogLevelWarning;
case 1:
return TLSLogLevelInformation;
case 0:
default:
return TLSLogLevelDebug;
}
}
- (NSString *)channel
{
return [self.channels objectAtIndex:self.channelControl.selectedSegmentIndex];
}
- (NSString *)message
{
NSString *message = self.logMessageField.text;
if (message.length == 0) {
message = self.logMessageField.placeholder;
if (!message) {
message = @"";
}
}
return message;
}
@end