From 2b87bad87d18c178a9f739c9eae36f41a8f5d9b4 Mon Sep 17 00:00:00 2001 From: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com> Date: Tue, 10 Feb 2026 15:47:05 -0800 Subject: [PATCH] Replaces some deprecation iOS API usages --- .../framework/Source/FlutterPlatformPlugin.mm | 16 +++++++++++++--- .../framework/Source/TextInputSemanticsObject.mm | 10 +++++----- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPlugin.mm b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPlugin.mm index 808d87a31a3..0de8938267c 100644 --- a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPlugin.mm +++ b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPlugin.mm @@ -50,7 +50,13 @@ using namespace flutter; static void SetStatusBarHiddenForSharedApplication(BOOL hidden) { UIApplication* flutterApplication = FlutterSharedApplication.application; if (flutterApplication) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + // -[UIApplication setStatusBarHidden] is deprecated in iOS9 in favor of + // delegating to the view controller. There's no UIScene equivalent for + // setting the value per UIScene. flutterApplication.statusBarHidden = hidden; +#pragma clang diagnostic pop } else { [FlutterLogger logWarning:@"Application based status bar styling is not available in app " "extension."]; @@ -60,9 +66,13 @@ static void SetStatusBarHiddenForSharedApplication(BOOL hidden) { static void SetStatusBarStyleForSharedApplication(UIStatusBarStyle style) { UIApplication* flutterApplication = FlutterSharedApplication.application; if (flutterApplication) { - // Note: -[UIApplication setStatusBarStyle] is deprecated in iOS9 - // in favor of delegating to the view controller. +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + // -[UIApplication setStatusBarStyle] is deprecated in iOS9 in favor of + // delegating to the view controller. There's no UIScene equivalent for + // setting the value per UIScene. [flutterApplication setStatusBarStyle:style]; +#pragma clang diagnostic pop } else { [FlutterLogger logWarning:@"Application based status bar styling is not available in app " "extension."]; @@ -197,7 +207,7 @@ static void SetStatusBarStyleForSharedApplication(UIStatusBarStyle style) { [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil]; - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad) { // On iPad, the share screen is presented in a popover view, and requires a // sourceView and sourceRect FlutterTextInputPlugin* _textInputPlugin = [self.engine textInputPlugin]; diff --git a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/TextInputSemanticsObject.mm b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/TextInputSemanticsObject.mm index 8b24e1b743c..040c3fc2d0d 100644 --- a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/TextInputSemanticsObject.mm +++ b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/TextInputSemanticsObject.mm @@ -124,13 +124,13 @@ static const UIAccessibilityTraits kUIAccessibilityTraitUndocumentedEmptyLine = return nil; } -- (UITextWritingDirection)baseWritingDirectionForPosition:(UITextPosition*)position +- (NSWritingDirection)baseWritingDirectionForPosition:(UITextPosition*)position inDirection:(UITextStorageDirection)direction { // Not editable. Does not apply. - return UITextWritingDirectionNatural; + return NSWritingDirectionNatural; } -- (void)setBaseWritingDirection:(UITextWritingDirection)writingDirection +- (void)setBaseWritingDirection:(NSWritingDirection)writingDirection forRange:(UITextRange*)range { // Not editable. Does not apply. } @@ -422,12 +422,12 @@ static const UIAccessibilityTraits kUIAccessibilityTraitUndocumentedEmptyLine = inDirection:direction]; } -- (UITextWritingDirection)baseWritingDirectionForPosition:(UITextPosition*)position +- (NSWritingDirection)baseWritingDirectionForPosition:(UITextPosition*)position inDirection:(UITextStorageDirection)direction { return [[self textInputSurrogate] baseWritingDirectionForPosition:position inDirection:direction]; } -- (void)setBaseWritingDirection:(UITextWritingDirection)writingDirection +- (void)setBaseWritingDirection:(NSWritingDirection)writingDirection forRange:(UITextRange*)range { [[self textInputSurrogate] setBaseWritingDirection:writingDirection forRange:range]; }