Skip to content

Commit 3801612

Browse files
committed
[WIP] Update Uniform Type Identifiers
1 parent 4b5afcb commit 3801612

File tree

8 files changed

+77
-57
lines changed

8 files changed

+77
-57
lines changed

packages/react-native/Libraries/Image/RCTImageStoreManager.mm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
#if !TARGET_OS_OSX // [macOS]
1616
#import <MobileCoreServices/UTType.h>
1717
#endif // [macOS]
18+
#import <UniformTypeIdentifiers/UniformTypeIdentifiers.h>
19+
1820
#import <React/RCTAssert.h>
1921
#import <React/RCTImageUtils.h>
2022
#import <React/RCTLog.h>
@@ -177,7 +179,8 @@ - (id)sendRequest:(NSURLRequest *)request withDelegate:(id<RCTURLRequestDelegate
177179
CFStringRef UTI = CGImageSourceGetType(sourceRef);
178180
CFRelease(sourceRef);
179181

180-
NSString *MIMEType = (__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass(UTI, kUTTagClassMIMEType);
182+
// NSString *MIMEType = (__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass(UTI, kUTTagClassMIMEType);
183+
NSString *MIMEType = UTTagClassMIMEType;
181184
NSURLResponse *response = [[NSURLResponse alloc] initWithURL:request.URL
182185
MIMEType:MIMEType
183186
expectedContentLength:imageData.length

packages/react-native/Libraries/Image/RCTImageUtils.mm

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
#import <MobileCoreServices/UTCoreTypes.h>
1515
#endif // [macOS]
1616

17+
#import <UniformTypeIdentifiers/UniformTypeIdentifiers.h>
18+
1719
#import <React/RCTLog.h>
1820
#import <React/RCTUtils.h>
1921

@@ -356,10 +358,10 @@ BOOL RCTUpscalingRequired(
356358

357359
if (RCTImageHasAlpha(cgImage)) {
358360
// get png data
359-
destination = CGImageDestinationCreateWithData(imageData, kUTTypePNG, 1, NULL);
361+
destination = CGImageDestinationCreateWithData(imageData, (__bridge CFStringRef)UTTypePNG.identifier, 1, NULL);
360362
} else {
361363
// get jpeg data
362-
destination = CGImageDestinationCreateWithData(imageData, kUTTypeJPEG, 1, NULL);
364+
destination = CGImageDestinationCreateWithData(imageData, (__bridge CFStringRef)UTTypeJPEG.identifier, 1, NULL);
363365
[properties setValue:@(quality) forKey:(id)kCGImageDestinationLossyCompressionQuality];
364366
}
365367
if (!destination) {

packages/react-native/Libraries/Image/React-RCTImage.podspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ Pod::Spec.new do |s|
5252
"HEADER_SEARCH_PATHS" => header_search_paths.join(' ')
5353
}
5454
s.ios.framework = ["Accelerate", "UIKit"] # [macOS] Restrict UIKit to iOS
55+
s.visionos.framework = ["Accelerate", "UIKit"] # [macOS] Restrict UIKit to iOS
5556
s.osx.framework = ["Accelerate"] # [macOS]
5657

5758
s.dependency "RCT-Folly", folly_version

packages/react-native/Libraries/Network/RCTFileRequestHandler.mm

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
#import <CoreServices/CoreServices.h>
1414
#endif // macOS]
1515

16+
#import <UniformTypeIdentifiers/UniformTypeIdentifiers.h>
17+
18+
1619
#import <React/RCTUtils.h>
1720
#import <ReactCommon/RCTTurboModule.h>
1821

@@ -59,10 +62,13 @@ - (NSOperation *)sendRequest:(NSURLRequest *)request withDelegate:(id<RCTURLRequ
5962

6063
// Get mime type
6164
NSString *fileExtension = [request.URL pathExtension];
62-
NSString *UTI = (__bridge_transfer NSString *)UTTypeCreatePreferredIdentifierForTag(
63-
kUTTagClassFilenameExtension, (__bridge CFStringRef)fileExtension, NULL);
65+
// NSString *UTI = (__bridge_transfer NSString *)UTTypeCreatePreferredIdentifierForTag(
66+
// kUTTagClassFilenameExtension, (__bridge CFStringRef)fileExtension, NULL);
67+
NSString *UTI = UTTagClassFilenameExtension;
6468
NSString *contentType =
65-
(__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass((__bridge CFStringRef)UTI, kUTTagClassMIMEType);
69+
// (__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass((__bridge CFStringRef)UTI, kUTTagClassMIMEType);
70+
UTTagClassMIMEType;
71+
6672

6773
// Send response
6874
NSURLResponse *response = [[NSURLResponse alloc] initWithURL:request.URL

packages/react-native/Libraries/Text/Text/RCTTextView.mm

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
#import <MobileCoreServices/UTCoreTypes.h>
1212
#endif // [macOS]
1313

14+
#import <UniformTypeIdentifiers/UniformTypeIdentifiers.h>
15+
1416
#import <React/RCTAssert.h> // [macOS]
1517
#import <React/RCTUtils.h>
1618
#import <React/UIView+React.h>
@@ -529,10 +531,10 @@ - (void)copy:(id)sender
529531
NSMutableDictionary *item = [NSMutableDictionary new]; // [macOS]
530532

531533
if (rtf) {
532-
[item setObject:rtf forKey:(id)kUTTypeFlatRTFD];
534+
[item setObject:rtf forKey:(id)UTTypeFlatRTFD];
533535
}
534536

535-
[item setObject:attributedText.string forKey:(id)kUTTypeUTF8PlainText];
537+
[item setObject:attributedText.string forKey:(id)UTTypeUTF8PlainText];
536538

537539
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
538540
pasteboard.items = @[ item ];

packages/react-native/React/Fabric/Mounting/ComponentViews/Text/RCTParagraphComponentView.mm

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,12 @@
1111
#if !TARGET_OS_OSX // [macOS]
1212
#import <MobileCoreServices/UTCoreTypes.h>
1313
#else
14-
#import <UniformTypeIdentifiers/UTCoreTypes.h>
14+
#import <UniformTypeIdentifiers/UniformTypeIdentifiers.h>
1515
#endif // [macOS]
1616

17+
18+
#import <UniformTypeIdentifiers/UniformTypeIdentifiers.h>
19+
1720
#import <react/renderer/components/text/ParagraphComponentDescriptor.h>
1821
#import <react/renderer/components/text/ParagraphProps.h>
1922
#import <react/renderer/components/text/ParagraphState.h>
@@ -288,7 +291,8 @@ - (void)copy:(id)sender
288291
error:nil];
289292

290293
if (rtf) {
291-
[item setObject:rtf forKey:(id)UTTypeFlatRTFD];
294+
// [item setObject:rtf forKey:(id)kUTTypeFlatRTFD];
295+
[item setObject:rtf forKey:(id)UTTypeFlatRTFD];
292296
}
293297

294298
[item setObject:attributedText.string forKey:(id)UTTypeUTF8PlainText];

packages/react-native/React/Views/RCTView.m

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1604,9 +1604,11 @@ - (NSDictionary*)dataTransferInfoFromPasteboard:(NSPasteboard*)pasteboard
16041604
NSString *MIMETypeString = nil;
16051605
if (fileURL.pathExtension) {
16061606
CFStringRef fileExtension = (__bridge CFStringRef)fileURL.pathExtension;
1607-
CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension, NULL);
1607+
// CFStringRef UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension, NULL);
1608+
CFStringRef UTI = UTTagClassFilenameExtension;
16081609
if (UTI != NULL) {
1609-
CFStringRef MIMEType = UTTypeCopyPreferredTagWithClass(UTI, kUTTagClassMIMEType);
1610+
// CFStringRef MIMEType = UTTypeCopyPreferredTagWithClass(UTI, kUTTagClassMIMEType);
1611+
NSString *MIMEType = UTTagClassMIMEType;
16101612
CFRelease(UTI);
16111613
MIMETypeString = (__bridge_transfer NSString *)MIMEType;
16121614
}

packages/rn-tester/Podfile.lock

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1175,58 +1175,58 @@ EXTERNAL SOURCES:
11751175
SPEC CHECKSUMS:
11761176
boost: 9af47922656599c21324258f0ab4588c3a74a2bc
11771177
DoubleConversion: ca54355f8932558971f6643521d62b9bc8231cee
1178-
FBLazyVector: 82157292430808014f6b36c984b832416a8daabc
1179-
FBReactNativeSpec: 3d85ca77d0b6cf9f558b258d5b42e33ed59f652f
1178+
FBLazyVector: c951422888b1eb4dc97fabbfa1fca988e1d91d23
1179+
FBReactNativeSpec: ec6698e932ddef56cd5204274fce7147b29c7a15
11801180
fmt: 03574da4b7ba40de39da59677ca66610ce8c4a02
11811181
glog: 3a72874c0322c7caf24931d3a2777cb7a3090529
11821182
OCMock: 300b1b1b9155cb6378660b981c2557448830bdc6
11831183
RCT-Folly: e0ca497e3ebd44051a537b0e95c1dcfa3f4adb8f
1184-
RCTRequired: b3b52d10fb4fc7762975bc020685c4558fbc3b8c
1185-
RCTTypeSafety: e65704f535f5b8caf63aa9386227cf1889a6b10a
1186-
React: a3483280204354d9c2ff7da75d18c4b443a2ebf6
1187-
React-callinvoker: ac725f1440344711ed0bf3b1903a8446e7941e36
1184+
RCTRequired: 45e66af5a05bd76b93e8c2c2ed42147d3099bedb
1185+
RCTTypeSafety: 8532f89af355fbfcb18dd8a8e2b68db9a38fe7c5
1186+
React: 0a97d0dbdcbb8549d6fe489828f2dd3114837c21
1187+
React-callinvoker: bea7522adeeeaf3a418bb4b39eab6375d4a25326
11881188
React-Codegen: 9b7fc89f7163d73816eb03fee0d9b870402bc44d
1189-
React-Core: bdb294fc8d03fd190938a9dd018acecbb92f94ad
1190-
React-CoreModules: 594b7225eec5b096ab32c2983257b64907c2a998
1191-
React-cxxreact: 1725c40fe053409c725873ad408696d891bc9dba
1192-
React-debug: 5d397c69288e1ef90cc89752a22ef7ac96c8b8d8
1193-
React-Fabric: 77277d580424e65d015a5be156a94a0fa63d0ca5
1194-
React-FabricImage: cec25146e615e395e4abd1cb2c87b478def798eb
1195-
React-graphics: a24d717f803a8a68a4b81c813e42d4b3f74958c9
1196-
React-ImageManager: 5a0c868c4bbb3eea311372e627d22d3cc827b993
1197-
React-jsc: 92bf85b1af54067e4afd92a153fd413288c7d553
1198-
React-jserrorhandler: cc359b73eaa147789739eb8249c878b8f7a99036
1199-
React-jsi: 145dffec24ba5f74fff38351690e1991c58583f6
1200-
React-jsiexecutor: 293d3874d477f3ec917ceeff0d6f831442af0af8
1201-
React-jsinspector: a1c2e53532572b5c333d26882d40f45be8b70efb
1202-
React-logger: 4ee2ab6ff2d6405bd6b1377fb20e48d5f9b46f00
1203-
React-Mapbuffer: a378fdeb039704c3c64e22419b77af1aca8e3864
1204-
React-nativeconfig: db92da6d9557d1e03d65182f639297c09aab219d
1205-
React-NativeModulesApple: b8b581457304c6d7d500dfd3d14e96d29c31142c
1206-
React-perflogger: a8042ecdacf9979b11f21dc18b89c337e9c5391f
1207-
React-RCTActionSheet: cf43df9425971313e9bd3ac4940ecea11dfcd396
1208-
React-RCTAnimation: fd5a8b5cffcf772474fb6b589d657e5a2051c971
1209-
React-RCTAppDelegate: 5c015953efd980fef14a094baebaa8d9dcdb3278
1210-
React-RCTBlob: 9a0d2d60868cbac7783b155b342914b79da5d925
1211-
React-RCTFabric: 4c49674cf7bbc7182224da6d94dfbc29cf415cf4
1212-
React-RCTImage: fafc64e1cdc757109c618588769bacb740c2e2e1
1213-
React-RCTLinking: dfda805b7daef199631b15b3f8420549bd94dfff
1214-
React-RCTNetwork: c22aa44acc98c6fa543f25441bf39c92128de8d0
1215-
React-RCTPushNotification: 6df3954a405145997c2e2124942229d97d2e9286
1216-
React-RCTSettings: 4a0e7ddc46f36010e77c97dba2dd57fac7e224e2
1217-
React-RCTTest: e3f291849eb9de1b48d2d53c3fdc26d30cd339ce
1218-
React-RCTText: 8fefe02e5de76abd29c50d193d393e006f1455c2
1219-
React-RCTVibration: 7f4e5c7308c79d2d4d56d5393e21dd11f219514e
1220-
React-rendererdebug: 31237d70f70be0e9a0f47e46c6815ce20fe93050
1221-
React-rncore: 00c8a6b3519af6ba16480de58010d48c5a225f80
1222-
React-runtimeexecutor: d1db555efd744e56ee64411a783c78c0e08c4ea4
1223-
React-runtimescheduler: f97da2db072a6e83d2a3ce4c8b83c61391e2f0b6
1224-
React-utils: c369143cb6d6adba28373979492766905df2a106
1225-
ReactCommon: dbf50941325862bb8911ba3fdda78de05be48be0
1226-
ReactCommon-Samples: db26f8f69846d4266e110f6add3d103068df3ff1
1189+
React-Core: 25a6ea1be4cae85aa794587355b6eef0991fed15
1190+
React-CoreModules: 3ef8887363068d1993b2199e261c3d8b20b4fa96
1191+
React-cxxreact: 52d7bcaf190ef7f8a6b09089f2a1503cd059561f
1192+
React-debug: 6c9428e5266dd2142ab44e7635b67f7aad80536f
1193+
React-Fabric: 7e1c7605c5c1625338b3a1713199e5bb92785b05
1194+
React-FabricImage: bb6ae0a44d419f05fc564d87f42203e6f87a83a5
1195+
React-graphics: 62afc06a81a421d0c75458c0930ceaa36165f04a
1196+
React-ImageManager: c83fcececdaef236bbcd7ed74dbc1641418d03e6
1197+
React-jsc: d200a14e194b7bf340c968b2cd985ac29719ef03
1198+
React-jserrorhandler: 0ca8383138a967b6cd61ccb5210045f58b77584b
1199+
React-jsi: 43e45113c8929a3fdb56b3c201d740960899f14e
1200+
React-jsiexecutor: cb3463ba6e23b1436ead5f367dd858eb5bf3b6da
1201+
React-jsinspector: 05a408e9632053de494de9f2c9da4ec4bcede5ec
1202+
React-logger: 5a228e17f17f45228745444042fc0bbfdbfc0d3d
1203+
React-Mapbuffer: 78f7d77b57671ca2cf0cdd86257711ecfcb97c12
1204+
React-nativeconfig: a4c02c2ba58f9d34099d5e1b568a1036dc513892
1205+
React-NativeModulesApple: e929cb7b6b7c89f95c3ea076a3a60e862f395a67
1206+
React-perflogger: 75130f163dd5e82bc5ff6fc16e2323edb243d14c
1207+
React-RCTActionSheet: 4c0a155cb26e4c65a380edcb988673584e6ce6cb
1208+
React-RCTAnimation: e2cc576dce1696b2a1ee75662ccc554c3bd228cd
1209+
React-RCTAppDelegate: 790c8d58cee35a1666c5cca6b027caefea35bfd0
1210+
React-RCTBlob: d3612c87025d7b74d261e4c0143675635727a465
1211+
React-RCTFabric: f4860d3ad4ec4c129adce400bf7568b78982df3d
1212+
React-RCTImage: 06d4c30e06f0a2576b5b17b93f2ed88ec18af175
1213+
React-RCTLinking: 445a2dffe46999abe5067467b3ad265f45603f29
1214+
React-RCTNetwork: 67c4e412ea745d892421de1069fd347795aefedb
1215+
React-RCTPushNotification: ddf995801417c2c651c9df4e7b6eeedd3ec34809
1216+
React-RCTSettings: 4d0a7615947202abb7598cbd2c8bb4dbf5692de7
1217+
React-RCTTest: 6a70bef17d6f3034f5def3bc55b6495c112fe673
1218+
React-RCTText: e740d2540f0a8c4c3a9d7d08e7eac49238ec9006
1219+
React-RCTVibration: 36a3d6343fceb3389c86820b0565f800beb55a27
1220+
React-rendererdebug: 390f2aa1b23f62bd5085eccb9048091bc637b064
1221+
React-rncore: be1f13b19eea3252a61d349b88b7ad5a102556be
1222+
React-runtimeexecutor: e7a360f149b65252481d59f50bee32e45135c832
1223+
React-runtimescheduler: fc78c5887e01a8525d657271b9a9afaf0548becf
1224+
React-utils: 1f64d6a2b8e7f37dffc680059aac1addaeee0bf0
1225+
ReactCommon: 23a5798725093da7cc0662c07b5f0a1adafc822f
1226+
ReactCommon-Samples: df6294a98f1e0584ab939830c5491c0883f87dfd
12271227
ScreenshotManager: b2b5732286c9d80ceca6a8576c4fd9f619608d96
12281228
SocketRocket: 9415a13fca51ebfe2f114038477ec06a3a7a2759
1229-
Yoga: 2f3b988c1c2258e033bfe0b442cc7a04d2c3a4c7
1229+
Yoga: 8fc26ae91097ce8971541771f79a1f3e7a6e0acc
12301230

12311231
PODFILE CHECKSUM: 5d7019988a7bc608efb520a54820680596153e8f
12321232

0 commit comments

Comments
 (0)