|
- #include "TCKRootListController.h"
-
- @implementation TCKRootListController
-
- - (instancetype)init {
- self = [super init];
-
- if (self) {
- TCKAppearanceSettings *appearanceSettings = [[TCKAppearanceSettings alloc] init];
- self.hb_appearanceSettings = appearanceSettings;
- self.respringButton = [[UIBarButtonItem alloc] initWithTitle:@"ReSpring"
- style:UIBarButtonItemStylePlain
- target:self
- action:@selector(respring)];
- self.respringButton.tintColor = [UIColor whiteColor];
- self.navigationItem.rightBarButtonItem = self.respringButton;
-
- self.navigationItem.titleView = [UIView new];
- self.titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,0,10,10)];
- self.titleLabel.font = [UIFont boldSystemFontOfSize:17];
- self.titleLabel.translatesAutoresizingMaskIntoConstraints = NO;
- self.titleLabel.text = @"Tick";
- self.titleLabel.textColor = [UIColor whiteColor];
- self.titleLabel.textAlignment = NSTextAlignmentCenter;
- [self.navigationItem.titleView addSubview:self.titleLabel];
-
- self.iconView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,10,10)];
- self.iconView.contentMode = UIViewContentModeScaleAspectFit;
- self.iconView.image = [UIImage imageWithContentsOfFile:@"/Library/PreferenceBundles/TickPrefs.bundle/icon@2x.png"];
- self.iconView.translatesAutoresizingMaskIntoConstraints = NO;
- self.iconView.alpha = 0.0;
- [self.navigationItem.titleView addSubview:self.iconView];
-
- [NSLayoutConstraint activateConstraints:@[
- [self.titleLabel.topAnchor constraintEqualToAnchor:self.navigationItem.titleView.topAnchor],
- [self.titleLabel.leadingAnchor constraintEqualToAnchor:self.navigationItem.titleView.leadingAnchor],
- [self.titleLabel.trailingAnchor constraintEqualToAnchor:self.navigationItem.titleView.trailingAnchor],
- [self.titleLabel.bottomAnchor constraintEqualToAnchor:self.navigationItem.titleView.bottomAnchor],
- [self.iconView.topAnchor constraintEqualToAnchor:self.navigationItem.titleView.topAnchor],
- [self.iconView.leadingAnchor constraintEqualToAnchor:self.navigationItem.titleView.leadingAnchor],
- [self.iconView.trailingAnchor constraintEqualToAnchor:self.navigationItem.titleView.trailingAnchor],
- [self.iconView.bottomAnchor constraintEqualToAnchor:self.navigationItem.titleView.bottomAnchor],
- ]];
- }
-
- return self;
- }
-
- -(NSArray *)specifiers {
- if (_specifiers == nil) {
- _specifiers = [[self loadSpecifiersFromPlistName:@"Root" target:self] retain];
- }
-
- return _specifiers;
- }
-
- - (void)viewDidLoad {
- [super viewDidLoad];
-
- self.headerView = [[UIView alloc] initWithFrame:CGRectMake(0,0,200,200)];
- self.headerImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,200,200)];
- self.headerImageView.contentMode = UIViewContentModeScaleAspectFill;
- self.headerImageView.image = [UIImage imageWithContentsOfFile:@"/Library/PreferenceBundles/TickPrefs.bundle/Banner.png"];
- self.headerImageView.translatesAutoresizingMaskIntoConstraints = NO;
-
- [self.headerView addSubview:self.headerImageView];
- [NSLayoutConstraint activateConstraints:@[
- [self.headerImageView.topAnchor constraintEqualToAnchor:self.headerView.topAnchor],
- [self.headerImageView.leadingAnchor constraintEqualToAnchor:self.headerView.leadingAnchor],
- [self.headerImageView.trailingAnchor constraintEqualToAnchor:self.headerView.trailingAnchor],
- [self.headerImageView.bottomAnchor constraintEqualToAnchor:self.headerView.bottomAnchor],
- ]];
-
- _table.tableHeaderView = self.headerView;
- }
-
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
- tableView.tableHeaderView = self.headerView;
- return [super tableView:tableView cellForRowAtIndexPath:indexPath];
- }
-
- - (void)viewWillAppear:(BOOL)animated {
- [super viewWillAppear:animated];
-
- CGRect frame = self.table.bounds;
- frame.origin.y = -frame.size.height;
-
- self.navigationController.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:0.64 green:0.67 blue:1.00 alpha:1.0];
- [self.navigationController.navigationController.navigationBar setShadowImage: [UIImage new]];
- self.navigationController.navigationController.navigationBar.tintColor = [UIColor whiteColor];
- self.navigationController.navigationController.navigationBar.translucent = NO;
- }
-
- - (void)viewDidAppear:(BOOL)animated {
- [super viewDidAppear:animated];
-
- [self.navigationController.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
- }
-
- - (void)viewWillDisappear:(BOOL)animated {
- [super viewWillDisappear:animated];
-
- [self.navigationController.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor blackColor]}];
- }
-
- - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
- CGFloat offsetY = scrollView.contentOffset.y;
-
- if (offsetY > 200) {
- [UIView animateWithDuration:0.2 animations:^{
- self.iconView.alpha = 1.0;
- self.titleLabel.alpha = 0.0;
- }];
- } else {
- [UIView animateWithDuration:0.2 animations:^{
- self.iconView.alpha = 0.0;
- self.titleLabel.alpha = 1.0;
- }];
- }
-
- if (offsetY > 0) offsetY = 0;
- self.headerImageView.frame = CGRectMake(0, offsetY, self.headerView.frame.size.width, 200 - offsetY);
- }
-
- -(void)respring {
- UIAlertController *respring = [UIAlertController alertControllerWithTitle:@"Tick"
- message:@"Do you really want to ReSpring?"
- preferredStyle:UIAlertControllerStyleAlert];
- UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:@"Confirm" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * action) {
- [self respringUtil];
- }];
-
- UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil];
- [respring addAction:confirmAction];
- [respring addAction:cancelAction];
- [self presentViewController:respring animated:YES completion:nil];
-
- }
-
- -(void)respringUtil {
- NSTask *t = [[NSTask alloc] init];
- [t setLaunchPath:@"/usr/bin/killall"];
- [t setArguments:[NSArray arrayWithObjects:@"backboardd", nil]];
- [t launch];
- }
-
- -(IBAction)twitterEsquilli {
- NSURL *URL = [NSURL URLWithString: @"https://github.com/ShyMemoriees"];
- [[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil];
- }
- @end
|