Adds Landscape Mode support for 11-inch iPad Devices. Color options didn’t originally support it in this orientation. so it’s good to give it native support and better accessibility of the menu.
68 lines
2.7 KiB
Objective-C
68 lines
2.7 KiB
Objective-C
#import "ColourOptionsController.h"
|
|
#import "uYouPlus.h"
|
|
|
|
@interface ColourOptionsController ()
|
|
@end
|
|
|
|
@implementation ColourOptionsController
|
|
|
|
- (void)loadView {
|
|
[super loadView];
|
|
|
|
self.title = @"Custom Theme Color";
|
|
|
|
UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithTitle:@"Close" style:UIBarButtonItemStylePlain target:self action:@selector(close)];
|
|
UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(save)];
|
|
self.navigationItem.rightBarButtonItems = @[closeButton, saveButton];
|
|
|
|
UIBarButtonItem *resetButton = [[UIBarButtonItem alloc] initWithTitle:@"Reset" style:UIBarButtonItemStylePlain target:self action:@selector(reset)];
|
|
self.navigationItem.leftBarButtonItem = resetButton;
|
|
|
|
self.supportsAlpha = NO;
|
|
NSData *colorData = [[NSUserDefaults standardUserDefaults] objectForKey:@"kCustomThemeColor"];
|
|
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingFromData:colorData error:nil];
|
|
[unarchiver setRequiresSecureCoding:NO];
|
|
UIColor *color = [unarchiver decodeObjectForKey:NSKeyedArchiveRootObjectKey];
|
|
self.selectedColor = color;
|
|
|
|
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad && UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) {
|
|
CGRect screenRect = [[UIScreen mainScreen] bounds];
|
|
CGFloat screenWidth = screenRect.size.width;
|
|
if (screenWidth == 1024 || screenWidth == 1112) {
|
|
self.view.transform = CGAffineTransformMakeScale(0.7, 0.7);
|
|
}
|
|
}
|
|
}
|
|
|
|
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
|
|
[super traitCollectionDidChange:previousTraitCollection];
|
|
[self loadView];
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation ColourOptionsController(Privates)
|
|
|
|
- (void)close {
|
|
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
|
|
}
|
|
|
|
- (void)save {
|
|
NSData *colorData = [NSKeyedArchiver archivedDataWithRootObject:self.selectedColor requiringSecureCoding:nil error:nil];
|
|
[[NSUserDefaults standardUserDefaults] setObject:colorData forKey:@"kCustomThemeColor"];
|
|
[[NSUserDefaults standardUserDefaults] synchronize];
|
|
|
|
UIAlertController *alertSaved = [UIAlertController alertControllerWithTitle:@"Color Saved" message:nil preferredStyle:UIAlertControllerStyleAlert];
|
|
|
|
[alertSaved addAction:[UIAlertAction actionWithTitle:@"Okay" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
|
|
}]];
|
|
|
|
[self presentViewController:alertSaved animated:YES completion:nil];
|
|
}
|
|
|
|
- (void)reset {
|
|
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"kCustomThemeColor"];
|
|
[[NSUserDefaults standardUserDefaults] synchronize];
|
|
}
|
|
|
|
@end
|