From e584e72965e14b779ca06985b4a80711ec080d3f Mon Sep 17 00:00:00 2001 From: Huan Lin Date: Tue, 9 May 2023 12:51:39 -0700 Subject: [PATCH 1/2] Avoid relying on internal class details --- .../darwin/ios/framework/Source/FlutterPlatformViewsTest.mm | 6 +++--- .../ios/framework/Source/FlutterPlatformViews_Internal.mm | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsTest.mm b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsTest.mm index 97285cfcc78be..d4d45a466d64e 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsTest.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsTest.mm @@ -1215,7 +1215,7 @@ - (void)testApplyBackdropFilterAPIChangedNoGaussianBlurFilter { initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]]; NSArray* subviews = editedUIVisualEffectView.subviews; for (UIView* view in subviews) { - if ([view isKindOfClass:NSClassFromString(@"_UIVisualEffectBackdropView")]) { + if ([NSStringFromClass([view class]) hasSuffix:@"BackdropView"]) { for (CIFilter* filter in view.layer.filters) { if ([[filter valueForKey:@"name"] isEqual:@"gaussianBlur"]) { [filter setValue:@"notGaussianBlur" forKey:@"name"]; @@ -1238,7 +1238,7 @@ - (void)testApplyBackdropFilterAPIChangedInvalidInputRadius { initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]]; NSArray* subviews = editedUIVisualEffectView.subviews; for (UIView* view in subviews) { - if ([view isKindOfClass:NSClassFromString(@"_UIVisualEffectBackdropView")]) { + if ([NSStringFromClass([view class]) hasSuffix:@"BackdropView"]) { for (CIFilter* filter in view.layer.filters) { if ([[filter valueForKey:@"name"] isEqual:@"gaussianBlur"]) { [filter setValue:@"invalidInputRadius" forKey:@"inputRadius"]; @@ -2773,7 +2773,7 @@ - (BOOL)validateOneVisualEffectView:(UIView*)visualEffectView inputRadius:(CGFloat)inputRadius { XCTAssertTrue(CGRectEqualToRect(visualEffectView.frame, frame)); for (UIView* view in visualEffectView.subviews) { - if (![view isKindOfClass:NSClassFromString(@"_UIVisualEffectBackdropView")]) { + if (![NSStringFromClass([view class]) hasSuffix:@"BackdropView"]) { continue; } XCTAssertEqual(view.layer.filters.count, 1u); diff --git a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.mm b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.mm index 981c2c32a9ea4..133ce5abd957f 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.mm @@ -121,7 +121,7 @@ + (void)prepareOnce:(UIVisualEffectView*)visualEffectView { } for (NSUInteger i = 0; i < visualEffectView.subviews.count; i++) { UIView* view = visualEffectView.subviews[i]; - if ([view isKindOfClass:NSClassFromString(@"_UIVisualEffectBackdropView")]) { + if ([NSStringFromClass([view class]) hasSuffix:@"BackdropView"]) { _indexOfBackdropView = i; for (NSObject* filter in view.layer.filters) { if ([[filter valueForKey:@"name"] isEqual:@"gaussianBlur"] && From b873ff818746cfa1b1940f844d1a980850d0192a Mon Sep 17 00:00:00 2001 From: Huan Lin Date: Tue, 9 May 2023 14:10:07 -0700 Subject: [PATCH 2/2] also fix visual effect subview --- .../darwin/ios/framework/Source/FlutterPlatformViewsTest.mm | 2 +- .../ios/framework/Source/FlutterPlatformViews_Internal.mm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsTest.mm b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsTest.mm index d4d45a466d64e..fa766dc91636a 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsTest.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViewsTest.mm @@ -1265,7 +1265,7 @@ - (void)testBackdropFilterVisualEffectSubviewBackgroundColor { visualEffectView:visualEffectView]; CGColorRef visualEffectSubviewBackgroundColor; for (UIView* view in [platformViewFilter backdropFilterView].subviews) { - if ([view isKindOfClass:NSClassFromString(@"_UIVisualEffectSubview")]) { + if ([NSStringFromClass([view class]) hasSuffix:@"VisualEffectSubview"]) { visualEffectSubviewBackgroundColor = view.layer.backgroundColor; } } diff --git a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.mm b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.mm index 133ce5abd957f..89e1687795248 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.mm @@ -130,7 +130,7 @@ + (void)prepareOnce:(UIVisualEffectView*)visualEffectView { break; } } - } else if ([view isKindOfClass:NSClassFromString(@"_UIVisualEffectSubview")]) { + } else if ([NSStringFromClass([view class]) hasSuffix:@"VisualEffectSubview"]) { _indexOfVisualEffectSubview = i; } }