Skip to content

Commit aa05e91

Browse files
authored
[#7791] Removed Duplicate Code in IAM (#7792)
* Removed `FIRIAMRenderingWindowHelper`’s `UIWindowForImageOnlyView` method whose body was identical to `UIWindowForModalView`’s * Renamed `UIWindowForModalView` to `windowForBlockingView` and `UIWindowForBannerView` to `windowForNonBlockingView`, respectively, to clarify their purpose
1 parent 245bbae commit aa05e91

File tree

3 files changed

+15
-35
lines changed

3 files changed

+15
-35
lines changed

FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMDefaultDisplayImpl.m

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ + (void)displayCardViewWithMessageDefinition:(FIRInAppMessagingCardDisplay *)car
116116
return;
117117
}
118118

119-
UIWindow *displayUIWindow = [FIRIAMRenderingWindowHelper UIWindowForModalView];
119+
UIWindow *displayUIWindow = [FIRIAMRenderingWindowHelper windowForBlockingView];
120120
displayUIWindow.rootViewController = cardVC;
121121
[displayUIWindow setHidden:NO];
122122
});
@@ -153,7 +153,7 @@ + (void)displayModalViewWithMessageDefinition:(FIRInAppMessagingModalDisplay *)m
153153
return;
154154
}
155155

156-
UIWindow *displayUIWindow = [FIRIAMRenderingWindowHelper UIWindowForModalView];
156+
UIWindow *displayUIWindow = [FIRIAMRenderingWindowHelper windowForBlockingView];
157157
displayUIWindow.rootViewController = modalVC;
158158
[displayUIWindow setHidden:NO];
159159
});
@@ -190,7 +190,7 @@ + (void)displayBannerViewWithMessageDefinition:(FIRInAppMessagingBannerDisplay *
190190
return;
191191
}
192192

193-
UIWindow *displayUIWindow = [FIRIAMRenderingWindowHelper UIWindowForBannerView];
193+
UIWindow *displayUIWindow = [FIRIAMRenderingWindowHelper windowForNonBlockingView];
194194
displayUIWindow.rootViewController = bannerVC;
195195
[displayUIWindow setHidden:NO];
196196
});
@@ -228,7 +228,7 @@ + (void)displayImageOnlyViewWithMessageDefinition:
228228
return;
229229
}
230230

231-
UIWindow *displayUIWindow = [FIRIAMRenderingWindowHelper UIWindowForImageOnlyView];
231+
UIWindow *displayUIWindow = [FIRIAMRenderingWindowHelper windowForBlockingView];
232232
displayUIWindow.rootViewController = imageOnlyVC;
233233
[displayUIWindow setHidden:NO];
234234
});

FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMRenderingWindowHelper.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,19 @@
1919
NS_ASSUME_NONNULL_BEGIN
2020
/**
2121
* To avoid the risk of hijacking the app's existing view transition flow, we render in-app message
22-
* views in a top level UI Window instead of presenting from app's existing UIWindow. The caller is
23-
* supposed to set the rootViewController to be the appropriate view controller for the in-app
24-
* message and call setHidden:NO to make it really visible.
22+
* views in a new top-level UIWindow instead of presenting them from app's existing UIWindow.
23+
* The caller is supposed to set the rootViewController to be the appropriate view controller
24+
* for the in-app message and call setHidden:NO to make it really visible.
2525
*/
2626
@interface FIRIAMRenderingWindowHelper : NSObject
2727

28-
// Return the singleton UIWindow that can be used for rendering modal IAM views
29-
+ (UIWindow *)UIWindowForModalView;
28+
/// Returns the singleton `UIWindow` object used for rendering IAM views that block
29+
/// user interactions with underlying content.
30+
+ (UIWindow *)windowForBlockingView;
3031

31-
// Return the singleton UIWindow that can be used for rendering banner IAM views
32-
+ (UIWindow *)UIWindowForBannerView;
32+
/// Returns the singleton `UIWindow` object used for rendering IAM views that don't block
33+
/// user interactions with underlying content.
34+
+ (UIWindow *)windowForNonBlockingView;
3335

34-
// Return the singleton UIWindow that can be used for rendering banner IAM views
35-
+ (UIWindow *)UIWindowForImageOnlyView;
3636
@end
3737
NS_ASSUME_NONNULL_END

FirebaseInAppMessaging/Sources/DefaultUI/FIRIAMRenderingWindowHelper.m

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
@implementation FIRIAMRenderingWindowHelper
2424

25-
+ (UIWindow *)UIWindowForModalView {
25+
+ (UIWindow *)windowForBlockingView {
2626
static UIWindow *UIWindowForModal;
2727
static dispatch_once_t onceToken;
2828

@@ -41,7 +41,7 @@ + (UIWindow *)UIWindowForModalView {
4141
return UIWindowForModal;
4242
}
4343

44-
+ (UIWindow *)UIWindowForBannerView {
44+
+ (UIWindow *)windowForNonBlockingView {
4545
static UIWindow *UIWindowForBanner;
4646
static dispatch_once_t onceToken;
4747

@@ -62,26 +62,6 @@ + (UIWindow *)UIWindowForBannerView {
6262
return UIWindowForBanner;
6363
}
6464

65-
+ (UIWindow *)UIWindowForImageOnlyView {
66-
static UIWindow *UIWindowForImageOnly;
67-
static dispatch_once_t onceToken;
68-
69-
dispatch_once(&onceToken, ^{
70-
#if defined(__IPHONE_13_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000
71-
if (@available(iOS 13.0, tvOS 13.0, *)) {
72-
UIWindowForImageOnly = [[self class] iOS13PlusWindow];
73-
} else {
74-
#endif // defined(__IPHONE_13_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000
75-
UIWindowForImageOnly = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
76-
#if defined(__IPHONE_13_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000
77-
}
78-
#endif // defined(__IPHONE_13_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000
79-
UIWindowForImageOnly.windowLevel = UIWindowLevelNormal;
80-
});
81-
82-
return UIWindowForImageOnly;
83-
}
84-
8565
#if defined(__IPHONE_13_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000
8666
+ (UIWindowScene *)foregroundedScene API_AVAILABLE(ios(13.0)) {
8767
for (UIWindowScene *connectedScene in [UIApplication sharedApplication].connectedScenes) {

0 commit comments

Comments
 (0)