Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/PojavLauncher_iOS
Path: blob/main/Natives/LauncherSplitViewController.m
589 views
1
#import "LauncherSplitViewController.h"
2
#import "LauncherMenuViewController.h"
3
#import "LauncherNewsViewController.h"
4
#import "LauncherNavigationController.h"
5
#import "LauncherPreferences.h"
6
#import "utils.h"
7
8
extern NSMutableDictionary *prefDict;
9
10
@interface LauncherSplitViewController ()<UISplitViewControllerDelegate>{
11
}
12
@end
13
14
@implementation LauncherSplitViewController
15
16
- (void)viewDidLoad {
17
[super viewDidLoad];
18
self.view.backgroundColor = UIColor.systemBackgroundColor;
19
if ([getPrefObject(@"control.control_safe_area") length] == 0) {
20
setPrefObject(@"control.control_safe_area", NSStringFromUIEdgeInsets(getDefaultSafeArea()));
21
}
22
23
self.delegate = self;
24
25
UINavigationController *masterVc = [[UINavigationController alloc] initWithRootViewController:[[LauncherMenuViewController alloc] init]];
26
LauncherNavigationController *detailVc = [[LauncherNavigationController alloc] initWithRootViewController:[[LauncherNewsViewController alloc] init]];
27
detailVc.toolbarHidden = NO;
28
29
self.viewControllers = @[masterVc, detailVc];
30
[self changeDisplayModeForSize:self.view.frame.size];
31
32
self.maximumPrimaryColumnWidth = self.view.bounds.size.width * 0.95;
33
}
34
35
- (void)splitViewController:(UISplitViewController *)svc willChangeToDisplayMode:(UISplitViewControllerDisplayMode)displayMode {
36
if (self.preferredDisplayMode != displayMode && self.displayMode != UISplitViewControllerDisplayModeSecondaryOnly) {
37
dispatch_async(dispatch_get_main_queue(), ^{
38
self.preferredDisplayMode = UISplitViewControllerDisplayModeSecondaryOnly;
39
});
40
}
41
}
42
43
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
44
{
45
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
46
[self changeDisplayModeForSize:size];
47
}
48
49
- (void)changeDisplayModeForSize:(CGSize)size {
50
BOOL isPortrait = size.height > size.width;
51
if (self.preferredDisplayMode == 0 || self.displayMode != UISplitViewControllerDisplayModeSecondaryOnly) {
52
if(!getPrefBool(@"general.hidden_sidebar")) {
53
self.preferredDisplayMode = isPortrait ?
54
UISplitViewControllerDisplayModeOneOverSecondary :
55
UISplitViewControllerDisplayModeOneBesideSecondary;
56
} else {
57
self.preferredDisplayMode = UISplitViewControllerDisplayModeSecondaryOnly;
58
}
59
}
60
self.preferredSplitBehavior = isPortrait ?
61
UISplitViewControllerSplitBehaviorOverlay :
62
UISplitViewControllerSplitBehaviorTile;
63
}
64
65
- (void)dismissViewController {
66
[self dismissViewControllerAnimated:YES completion:nil];
67
}
68
69
@end
70
71