diff options
Diffstat (limited to 'ios-bootstrap/safety-dance/main.m')
-rw-r--r-- | ios-bootstrap/safety-dance/main.m | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/ios-bootstrap/safety-dance/main.m b/ios-bootstrap/safety-dance/main.m deleted file mode 100644 index 0d05e00..0000000 --- a/ios-bootstrap/safety-dance/main.m +++ /dev/null @@ -1,159 +0,0 @@ -#import <UIKit/UIKit.h> -#import "AutoGrid.h" - -@interface ViewController : UIViewController { - AutoGrid *autoGrid; -} - -@end - -@implementation ViewController - -- (void)viewDidLoad { - [super viewDidLoad]; - [self loadStuff]; - NSMutableArray *names = [NSMutableArray array]; - for (int i = 0; i < 100; i++) - [names addObject:[NSString stringWithFormat:@"Some Dylib %d", i]]; - NSMutableArray *views = [NSMutableArray array]; - for (NSString *name in names) { - UILabel *label = [[UILabel alloc] init]; - label.text = name; - [views addObject:label]; - } - [autoGrid setViews:views]; -} - -#define EXPLANATION \ - @"SpringBoard seems to have crashed. The cause might be a Substitute jailbreak extension, or unrelated. Just to be safe, extensions in SpringBoard have been temporarily disabled. You can continue in this mode, or restart SpringBoard normally.\n\nThe following extensions were running:" - -static void hugging(UIView *view, UILayoutPriority pri) { - [view setContentHuggingPriority:pri forAxis:UILayoutConstraintAxisHorizontal]; - [view setContentHuggingPriority:pri forAxis:UILayoutConstraintAxisVertical]; -} -static void compression(UIView *view, UILayoutPriority pri) { - [view setContentCompressionResistancePriority:pri forAxis:UILayoutConstraintAxisHorizontal]; - [view setContentCompressionResistancePriority:pri forAxis:UILayoutConstraintAxisVertical]; -} - -- (void)loadStuff { - self.view.backgroundColor = [UIColor whiteColor]; - - UILabel *top = [[UILabel alloc] init]; - top.translatesAutoresizingMaskIntoConstraints = NO; - top.textAlignment = NSTextAlignmentCenter; - hugging(top, 251); - top.text = @"libsubstitute"; - top.font = [UIFont systemFontOfSize:23]; - [self.view addSubview:top]; - - UILabel *big = [[UILabel alloc] init]; - big.translatesAutoresizingMaskIntoConstraints = NO; - big.textAlignment = NSTextAlignmentCenter; - hugging(big, 251); - [big setContentHuggingPriority:251 forAxis:UILayoutConstraintAxisHorizontal]; - [big setContentHuggingPriority:251 forAxis:UILayoutConstraintAxisVertical]; - big.text = @"Safe Mode"; - big.font = [UIFont systemFontOfSize:32]; - [self.view addSubview:big]; - - UILabel *explain = [[UILabel alloc] init]; - explain.translatesAutoresizingMaskIntoConstraints = NO; - explain.textAlignment = NSTextAlignmentCenter; - hugging(explain, 251); - compression(explain, 999); - explain.text = EXPLANATION; - explain.font = [UIFont systemFontOfSize:14]; - explain.minimumScaleFactor = 0.5; /* test */ - explain.numberOfLines = 0; - [self.view addSubview:explain]; - - UIButton *returnButton = [UIButton buttonWithType:UIButtonTypeSystem]; - returnButton.translatesAutoresizingMaskIntoConstraints = NO; - returnButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; - returnButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; - returnButton.titleLabel.font = [UIFont systemFontOfSize:17]; - [returnButton setTitle:@"Return to Normal" forState:UIControlStateNormal]; - [self.view addSubview:returnButton]; - - UIButton *continueButton = [UIButton buttonWithType:UIButtonTypeSystem]; - continueButton.translatesAutoresizingMaskIntoConstraints = NO; - hugging(continueButton, 999); - compression(continueButton, 300); - continueButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; - continueButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; - continueButton.titleLabel.font = [UIFont systemFontOfSize:17]; - [continueButton setTitle:@"Continue in Safe Mode" forState:UIControlStateNormal]; - [self.view addSubview:continueButton]; - - autoGrid = [[AutoGrid alloc] init]; - autoGrid.translatesAutoresizingMaskIntoConstraints = NO; - [self.view addSubview:autoGrid]; - - NSDictionary *viewsDictionary = @{ - @"top": top, - @"big": big, - @"explain": explain, - @"returnButton": returnButton, - @"continueButton": continueButton, - @"grid": autoGrid, - @"topGuide": self.topLayoutGuide, - @"bottomGuide": self.bottomLayoutGuide, - }; - NSMutableArray *constraints = [[NSMutableArray alloc] init]; - [constraints addObjectsFromArray: - [NSLayoutConstraint constraintsWithVisualFormat: - @"V:[topGuide]-10-[top]-0@100-[big]-0@100-[explain]-18@200-[grid]-18-[continueButton]-8-[returnButton]-20@100-[bottomGuide]" - options:NSLayoutFormatAlignAllCenterX metrics:nil views:viewsDictionary]]; - NSArray *additional = @[ - @"[explain(<=650)]", - @"|-10-[explain]-10-|", - @"|-20-[grid]-20-|", - ]; - for (NSString *fmt in additional) { - [constraints addObjectsFromArray: - [NSLayoutConstraint constraintsWithVisualFormat:fmt options:0 metrics:nil views:viewsDictionary]]; - } - [self.view addConstraints:constraints]; -} - - -- (NSUInteger)supportedInterfaceOrientations -{ - if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) - return UIInterfaceOrientationMaskAll; - else if ([UIScreen mainScreen].bounds.size.width >= 414) - return UIInterfaceOrientationMaskAllButUpsideDown; - else - return UIInterfaceOrientationMaskPortrait; -} - -@end - -@interface AppDelegate : UIResponder <UIApplicationDelegate> { -} - -@property (strong, nonatomic) UIWindow *window; - - -@end - -@implementation AppDelegate -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - NSLog(@"dflwo"); - self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; - ViewController *viewController = [[ViewController alloc] init]; - self.window.rootViewController = viewController; - [self.window makeKeyAndVisible]; - return YES; -} - -@end - -int main(int argc, char *argv[]) { - NSLog(@"main"); - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, @"AppDelegate"); - } -} - |