Skip to content

Commit 69654f0

Browse files
authored
Refactoring message templates utils (#547)
1 parent 563ce31 commit 69654f0

File tree

2 files changed

+6
-62
lines changed

2 files changed

+6
-62
lines changed

LeanplumSDK/LeanplumSDK/Classes/MessageTemplates/ViewControllers/LPMessageTemplateUtilities.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,14 @@
1010
#import "LPPopupViewController.h"
1111
#import "LPInterstitialViewController.h"
1212
#import "LPWebInterstitialViewController.h"
13-
#import "LPActionContext.h"
1413

1514
NS_ASSUME_NONNULL_BEGIN
1615

1716
@interface LPMessageTemplateUtilities: NSObject
1817

1918
+(void)presentOverVisible:(UIViewController *) viewController;
20-
+(void)presentOverVisibleAsChild:(UIViewController *) viewController;
2119
+(void)dismissExisitingViewController:(nullable void (^)(void)) completion;
2220
+(UIViewController *) visibleViewController;
23-
+(UIViewController *) topViewController;
2421
@end
2522

2623
NS_ASSUME_NONNULL_END

LeanplumSDK/LeanplumSDK/Classes/MessageTemplates/ViewControllers/LPMessageTemplateUtilities.m

Lines changed: 6 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -7,51 +7,29 @@
77
//
88

99
#import "LPMessageTemplateUtilities.h"
10-
#import "LPPopupViewController.h"
11-
#import "LPInterstitialViewController.h"
12-
#import "LPWebInterstitialViewController.h"
1310

1411
@implementation LPMessageTemplateUtilities
1512

1613
+(void)presentOverVisible:(UIViewController *)viewController
1714
{
18-
[self present:viewController asChild:NO];
15+
[self present:viewController];
1916
}
2017

21-
+(void)presentOverVisibleAsChild:(UIViewController *)viewController
22-
{
23-
[self present:viewController asChild:YES];
24-
}
25-
26-
+(void)present:(UIViewController *)viewController asChild:(BOOL)presentAsChild
18+
+(void)present:(UIViewController *)viewController
2719
{
2820
[self dismissExisitingViewController:^{
2921
UIViewController *topViewController = [self visibleViewController];
22+
3023
// if topViewController is getting dismissed, get view controller that presented it and let it present our new view controller,
3124
// otherwise we can assume that our topViewController will be in view hierarchy when presenting new view controller
3225
if (topViewController.isBeingDismissed) {
33-
if (!presentAsChild) {
34-
[[topViewController presentingViewController] presentViewController:viewController animated:YES completion:nil];
35-
} else {
36-
[self displayContentController:viewController withParent:[topViewController presentingViewController]];
37-
}
38-
} else {
39-
if (!presentAsChild) {
40-
[topViewController presentViewController:viewController animated:YES completion:nil];
41-
} else {
42-
[self displayContentController:viewController withParent:topViewController];
43-
}
26+
topViewController = [topViewController presentingViewController];
4427
}
28+
29+
[topViewController presentViewController:viewController animated:YES completion:nil];
4530
}];
4631
}
4732

48-
+(void)displayContentController:(UIViewController*)content withParent:(UIViewController*)parent
49-
{
50-
[parent addChildViewController:content];
51-
[parent.view addSubview:content.view];
52-
[content didMoveToParentViewController:parent];
53-
}
54-
5533
+(void)dismissExisitingViewController:(nullable void (^)(void)) completion
5634
{
5735
UIViewController *topViewController = [self visibleViewController];
@@ -80,35 +58,4 @@ +(UIViewController *) visibleViewController
8058
return topViewController;
8159
}
8260

83-
+ (UIViewController *) topViewController
84-
{
85-
UIViewController *topViewController = [self visibleViewController];
86-
87-
if ([topViewController isKindOfClass:[UITabBarController class]]) {
88-
topViewController = [((UITabBarController *) topViewController) selectedViewController];
89-
}
90-
91-
if ([topViewController isKindOfClass:[UINavigationController class]]) {
92-
topViewController = [((UINavigationController *) topViewController) visibleViewController];
93-
}
94-
95-
if ([topViewController isKindOfClass:[UIPageViewController class]]) {
96-
topViewController = [[((UIPageViewController *) topViewController) viewControllers] objectAtIndex:0];
97-
}
98-
99-
// UISplitViewController is not handled at the moment
100-
101-
while (topViewController.presentedViewController) {
102-
topViewController = topViewController.presentedViewController;
103-
}
104-
105-
// if topViewController is getting dismissed, get view controller that presented it and let it present our new view controller,
106-
// otherwise we can assume that our topViewController will be in view hierarchy when presenting new view controller
107-
if (topViewController.beingDismissed) {
108-
topViewController = [topViewController presentingViewController];
109-
}
110-
111-
return topViewController;
112-
}
113-
11461
@end

0 commit comments

Comments
 (0)