diff --git a/Examples/UIExplorer/UIExplorer.xcodeproj/project.pbxproj b/Examples/UIExplorer/UIExplorer.xcodeproj/project.pbxproj index 4b5aee3e43afca..9f4ceaba8b7c50 100644 --- a/Examples/UIExplorer/UIExplorer.xcodeproj/project.pbxproj +++ b/Examples/UIExplorer/UIExplorer.xcodeproj/project.pbxproj @@ -13,7 +13,6 @@ 1341802C1AA9178B003F314A /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1341802B1AA91779003F314A /* libRCTNetwork.a */; }; 134454601AAFCABD003F0779 /* libRCTAdSupport.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1344545A1AAFCAAE003F0779 /* libRCTAdSupport.a */; }; 134A8A2A1AACED7A00945AAE /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 134A8A251AACED6A00945AAE /* libRCTGeolocation.a */; }; - 138D6A171B53CD440074A87E /* RCTCacheTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 138D6A151B53CD440074A87E /* RCTCacheTests.m */; }; 138D6A181B53CD440074A87E /* RCTShadowViewTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 138D6A161B53CD440074A87E /* RCTShadowViewTests.m */; }; 138DEE241B9EDFB6007F4EA5 /* libRCTCameraRoll.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 138DEE091B9EDDDB007F4EA5 /* libRCTCameraRoll.a */; }; 1393D0381B68CD1300E1B601 /* RCTModuleMethodTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1393D0371B68CD1300E1B601 /* RCTModuleMethodTests.m */; }; @@ -177,7 +176,6 @@ 134180261AA91779003F314A /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = ../../Libraries/Network/RCTNetwork.xcodeproj; sourceTree = ""; }; 134454551AAFCAAE003F0779 /* RCTAdSupport.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAdSupport.xcodeproj; path = ../../Libraries/AdSupport/RCTAdSupport.xcodeproj; sourceTree = ""; }; 134A8A201AACED6A00945AAE /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = ../../Libraries/Geolocation/RCTGeolocation.xcodeproj; sourceTree = ""; }; - 138D6A151B53CD440074A87E /* RCTCacheTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTCacheTests.m; sourceTree = ""; }; 138D6A161B53CD440074A87E /* RCTShadowViewTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTShadowViewTests.m; sourceTree = ""; }; 138DEE021B9EDDDB007F4EA5 /* RCTCameraRoll.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTCameraRoll.xcodeproj; path = ../../Libraries/CameraRoll/RCTCameraRoll.xcodeproj; sourceTree = ""; }; 1393D0371B68CD1300E1B601 /* RCTModuleMethodTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTModuleMethodTests.m; sourceTree = ""; }; @@ -382,7 +380,6 @@ children = ( 1497CFA41B21F5E400C1F8F2 /* RCTAllocationTests.m */, 1497CFA51B21F5E400C1F8F2 /* RCTBridgeTests.m */, - 138D6A151B53CD440074A87E /* RCTCacheTests.m */, 1497CFA61B21F5E400C1F8F2 /* RCTContextExecutorTests.m */, 1497CFA71B21F5E400C1F8F2 /* RCTConvert_NSURLTests.m */, 1497CFA81B21F5E400C1F8F2 /* RCTConvert_UIFontTests.m */, @@ -844,7 +841,6 @@ 1497CFAD1B21F5E400C1F8F2 /* RCTBridgeTests.m in Sources */, 1497CFB11B21F5E400C1F8F2 /* RCTEventDispatcherTests.m in Sources */, 1497CFB31B21F5E400C1F8F2 /* RCTUIManagerTests.m in Sources */, - 138D6A171B53CD440074A87E /* RCTCacheTests.m in Sources */, 13DB03481B5D2ED500C27245 /* RCTJSONTests.m in Sources */, 1497CFAC1B21F5E400C1F8F2 /* RCTAllocationTests.m in Sources */, 13DF61B61B67A45000EDB188 /* RCTMethodArgumentTests.m in Sources */, diff --git a/Examples/UIExplorer/UIExplorerUnitTests/RCTCacheTests.m b/Examples/UIExplorer/UIExplorerUnitTests/RCTCacheTests.m deleted file mode 100644 index b6bc2218851dab..00000000000000 --- a/Examples/UIExplorer/UIExplorerUnitTests/RCTCacheTests.m +++ /dev/null @@ -1,168 +0,0 @@ -/** - * The examples provided by Facebook are for non-commercial testing and - * evaluation purposes only. - * - * Facebook reserves all rights not expressly granted. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL - * FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#import -#import "RCTCache.h" - -// Silence silly sign warnings when using int literals -#pragma clang diagnostic ignored "-Wsign-compare" - -@interface RCTCache (Private) - -- (void)cleanUpAllObjects; -- (void)resequence; -- (NSDictionary *)cache; -- (void)setSequenceNumber:(NSInteger)number; - -@end - -@interface RCTCacheTests : XCTestCase - -@property (nonatomic, strong) RCTCache *cache; - -@end - -@implementation RCTCacheTests - -- (void)setUp -{ - self.cache = [RCTCache new]; - self.cache.countLimit = 3; - self.cache.totalCostLimit = 100; -} - -- (void)tearDown -{ - self.cache = nil; -} - -- (void)testInsertion -{ - [self.cache setObject:@1 forKey:@"foo" cost:1]; - [self.cache setObject:@2 forKey:@"bar" cost:2]; - [self.cache setObject:@3 forKey:@"baz" cost:3]; - - XCTAssertEqual([self.cache count], 3); - XCTAssertEqual([self.cache totalCost], 6); -} - -- (void)testRemoval -{ - [self.cache setObject:@1 forKey:@"foo" cost:1]; - [self.cache setObject:@2 forKey:@"bar" cost:2]; - [self.cache setObject:@3 forKey:@"baz" cost:3]; - - [self.cache removeObjectForKey:@"bar"]; - - XCTAssertEqual([self.cache count], 2); - XCTAssertNil([self.cache objectForKey:@"bar"]); -} - -- (void)testCountEviction -{ - [self.cache setObject:@1 forKey:@"foo"]; - [self.cache setObject:@2 forKey:@"bar"]; - [self.cache setObject:@3 forKey:@"baz"]; - [self.cache setObject:@4 forKey:@"bam"]; - - XCTAssertEqual([self.cache count], 3); - XCTAssertNil([self.cache objectForKey:@"foo"]); - - [self.cache setObject:@5 forKey:@"boo"]; - - XCTAssertEqual([self.cache count], 3); - XCTAssertNil([self.cache objectForKey:@"bar"]); -} - -- (void)testCostEviction -{ - [self.cache setObject:@1 forKey:@"foo" cost:99]; - [self.cache setObject:@2 forKey:@"bar" cost:2]; - - XCTAssertEqual([self.cache count], 1); - XCTAssertEqual([self.cache totalCost], 2); - XCTAssertNil([self.cache objectForKey:@"foo"]); - - [self.cache setObject:@3 forKey:@"baz" cost:999]; - - XCTAssertEqual([self.cache count], 0); - XCTAssertEqual([self.cache totalCost], 0); -} - -- (void)testCleanup -{ - [self.cache setObject:@1 forKey:@"foo"]; - [self.cache setObject:@2 forKey:@"bar"]; - [self.cache setObject:@3 forKey:@"baz"]; - - //simulate memory warning - [self.cache cleanUpAllObjects]; - - XCTAssertEqual([self.cache count], 0); - XCTAssertEqual([self.cache totalCost], 0); -} - -- (void)testResequence -{ - [self.cache setObject:@1 forKey:@"foo"]; - [self.cache setObject:@2 forKey:@"bar"]; - [self.cache setObject:@3 forKey:@"baz"]; - - [self.cache resequence]; - - NSDictionary *innerCache = [self.cache cache]; - XCTAssertEqualObjects([innerCache[@"foo"] valueForKey:@"sequenceNumber"], @0); - XCTAssertEqualObjects([innerCache[@"bar"] valueForKey:@"sequenceNumber"], @1); - XCTAssertEqualObjects([innerCache[@"baz"] valueForKey:@"sequenceNumber"], @2); - - [self.cache removeObjectForKey:@"foo"]; - [self.cache resequence]; - - XCTAssertEqualObjects([innerCache[@"bar"] valueForKey:@"sequenceNumber"], @0); - XCTAssertEqualObjects([innerCache[@"baz"] valueForKey:@"sequenceNumber"], @1); -} - -- (void)testResequenceTrigger -{ - [self.cache setObject:@1 forKey:@"foo"]; - [self.cache setObject:@2 forKey:@"bar"]; - - //first object should now be bar with sequence number of 1 - [self.cache removeObjectForKey:@"foo"]; - - //should trigger resequence - [self.cache setSequenceNumber:NSIntegerMax]; - [self.cache setObject:@3 forKey:@"baz"]; - - NSDictionary *innerCache = [self.cache cache]; - XCTAssertEqualObjects([innerCache[@"bar"] valueForKey:@"sequenceNumber"], @0); - XCTAssertEqualObjects([innerCache[@"baz"] valueForKey:@"sequenceNumber"], @1); - - //first object should now be baz with sequence number of 1 - [self.cache removeObjectForKey:@"bar"]; - - //should also trigger resequence - [self.cache setSequenceNumber:NSIntegerMax]; - [self.cache objectForKey:@"baz"]; - - XCTAssertEqualObjects([innerCache[@"baz"] valueForKey:@"sequenceNumber"], @0); -} - -- (void)testName -{ - self.cache.name = @"Hello"; - XCTAssertEqualObjects(self.cache.name, @"Hello"); -} - -@end diff --git a/React/Base/RCTCache.h b/React/Base/RCTCache.h deleted file mode 100644 index 67e26c3b7a1f61..00000000000000 --- a/React/Base/RCTCache.h +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import - -/** - * RCTCache is a simple LRU cache implementation, based on the API of NSCache, - * but with known, deterministic behavior. The cache will always remove items - * outside of the specified cost/count limits, and will be automatically - * cleared in the event of a memory warning. - */ -@interface RCTCache : NSCache - -/** - * The total number of objects currently resident in the cache. - */ -@property (nonatomic, readonly) NSUInteger count; - -/** - * The total cost of the objects currently resident in the cache. - */ -@property (nonatomic, readonly) NSUInteger totalCost; - -/** - * Subscripting support - */ -- (id)objectForKeyedSubscript:(id)key; -- (void)setObject:(id)obj forKeyedSubscript:(id)key; - -/** - * Enumerate cached objects - */ -- (void)enumerateKeysAndObjectsUsingBlock:(void (^)(id key, id obj, BOOL *stop))block; - -@end - -@protocol RCTCacheDelegate -@optional - -/** - * Should the specified object be evicted from the cache? - */ -- (BOOL)cache:(RCTCache *)cache shouldEvictObject:(id)entry; - -/** - * The specified object is about to be evicted from the cache. - */ -- (void)cache:(RCTCache *)cache willEvictObject:(id)entry; - -@end diff --git a/React/Base/RCTCache.m b/React/Base/RCTCache.m deleted file mode 100644 index 473dcd40665eaf..00000000000000 --- a/React/Base/RCTCache.m +++ /dev/null @@ -1,368 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -// Adapted from https://github.com/nicklockwood/OSCache - -#import "RCTCache.h" - -#import "RCTAssert.h" - -#import -#if TARGET_OS_IPHONE -#import -#endif - -@interface RCTCacheEntry : NSObject - -@property (nonatomic, strong) NSObject *object; -@property (nonatomic, assign) NSUInteger cost; -@property (nonatomic, assign) NSInteger sequenceNumber; - -@end - -@implementation RCTCacheEntry - -@end - -@interface RCTCache_Private : NSObject - -@property (nonatomic, unsafe_unretained) id delegate; -@property (nonatomic, assign) NSUInteger countLimit; -@property (nonatomic, assign) NSUInteger totalCostLimit; -@property (nonatomic, copy) NSString *name; - -@property (nonatomic, strong) NSMutableDictionary *cache; -@property (nonatomic, assign) NSUInteger totalCost; -@property (nonatomic, assign) NSInteger sequenceNumber; - -@end - -@implementation RCTCache_Private -{ - BOOL _delegateRespondsToWillEvictObject; - BOOL _delegateRespondsToShouldEvictObject; - BOOL _currentlyCleaning; - NSMutableArray *_entryPool; - NSLock *_lock; -} - -- (instancetype)init -{ - if ((self = [super init])) - { - //create storage - _cache = [NSMutableDictionary new]; - _entryPool = [NSMutableArray new]; - _lock = [NSLock new]; - _totalCost = 0; - -#if TARGET_OS_IPHONE - - //clean up in the event of a memory warning - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(cleanUpAllObjects) name:UIApplicationDidReceiveMemoryWarningNotification object:nil]; - -#endif - - } - return self; -} - -- (void)dealloc -{ - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -- (void)setDelegate:(id)delegate -{ - _delegate = delegate; - _delegateRespondsToShouldEvictObject = [delegate respondsToSelector:@selector(cache:shouldEvictObject:)]; - _delegateRespondsToWillEvictObject = [delegate respondsToSelector:@selector(cache:willEvictObject:)]; -} - -- (void)setCountLimit:(NSUInteger)countLimit -{ - [_lock lock]; - _countLimit = countLimit; - [_lock unlock]; - [self cleanUp:NO]; -} - -- (void)setTotalCostLimit:(NSUInteger)totalCostLimit -{ - [_lock lock]; - _totalCostLimit = totalCostLimit; - [_lock unlock]; - [self cleanUp:NO]; -} - -- (NSUInteger)count -{ - return _cache.count; -} - -- (void)cleanUp:(BOOL)keepEntries -{ - [_lock lock]; - NSUInteger maxCount = _countLimit ?: INT_MAX; - NSUInteger maxCost = _totalCostLimit ?: INT_MAX; - NSUInteger totalCount = _cache.count; - NSMutableArray *keys = [_cache.allKeys mutableCopy]; - while (totalCount > maxCount || _totalCost > maxCost) - { - NSInteger lowestSequenceNumber = INT_MAX; - RCTCacheEntry *lowestEntry = nil; - id lowestKey = nil; - - //remove oldest items until within limit - for (id key in keys) - { - RCTCacheEntry *entry = _cache[key]; - if (entry.sequenceNumber < lowestSequenceNumber) - { - lowestSequenceNumber = entry.sequenceNumber; - lowestEntry = entry; - lowestKey = key; - } - } - - if (lowestKey) - { - [keys removeObject:lowestKey]; - if (!_delegateRespondsToShouldEvictObject || - [_delegate cache:(RCTCache *)self shouldEvictObject:lowestEntry.object]) - { - if (_delegateRespondsToWillEvictObject) - { - _currentlyCleaning = YES; - [self.delegate cache:(RCTCache *)self willEvictObject:lowestEntry.object]; - _currentlyCleaning = NO; - } - [_cache removeObjectForKey:lowestKey]; - _totalCost -= lowestEntry.cost; - totalCount --; - if (keepEntries) - { - [_entryPool addObject:lowestEntry]; - lowestEntry.object = nil; - } - } - } - } - [_lock unlock]; -} - -- (void)cleanUpAllObjects -{ - [_lock lock]; - if (_delegateRespondsToShouldEvictObject || _delegateRespondsToWillEvictObject) - { - NSArray *keys = _cache.allKeys; - if (_delegateRespondsToShouldEvictObject) - { - //sort, oldest first (in case we want to use that information in our eviction test) - keys = [keys sortedArrayUsingComparator:^NSComparisonResult(id key1, id key2) { - RCTCacheEntry *entry1 = self->_cache[key1]; - RCTCacheEntry *entry2 = self->_cache[key2]; - return (NSComparisonResult)MIN(1, MAX(-1, entry1.sequenceNumber - entry2.sequenceNumber)); - }]; - } - - //remove all items individually - for (id key in keys) - { - RCTCacheEntry *entry = _cache[key]; - if (!_delegateRespondsToShouldEvictObject || [_delegate cache:(RCTCache *)self shouldEvictObject:entry.object]) - { - if (_delegateRespondsToWillEvictObject) - { - _currentlyCleaning = YES; - [_delegate cache:(RCTCache *)self willEvictObject:entry.object]; - _currentlyCleaning = NO; - } - [_cache removeObjectForKey:key]; - _totalCost -= entry.cost; - } - } - } - else - { - _totalCost = 0; - [_cache removeAllObjects]; - _sequenceNumber = 0; - } - [_lock unlock]; -} - -- (void)resequence -{ - //sort, oldest first - NSArray *entries = [_cache.allValues sortedArrayUsingComparator:^NSComparisonResult(RCTCacheEntry *entry1, RCTCacheEntry *entry2) { - return (NSComparisonResult)MIN(1, MAX(-1, entry1.sequenceNumber - entry2.sequenceNumber)); - }]; - - //renumber items - NSInteger index = 0; - for (RCTCacheEntry *entry in entries) - { - entry.sequenceNumber = index++; - } -} - -- (id)objectForKey:(id)key -{ - [_lock lock]; - RCTCacheEntry *entry = _cache[key]; - entry.sequenceNumber = _sequenceNumber++; - if (_sequenceNumber < 0) - { - [self resequence]; - } - id object = entry.object; - [_lock unlock]; - return object; -} - -- (id)objectForKeyedSubscript:(id)key -{ - return [self objectForKey:key]; -} - -- (void)setObject:(id)obj forKey:(id)key -{ - [self setObject:obj forKey:key cost:0]; -} - -- (void)setObject:(id)obj forKeyedSubscript:(id)key -{ - [self setObject:obj forKey:key cost:0]; -} - -- (void)setObject:(id)obj forKey:(id)key cost:(NSUInteger)g -{ - if (!obj) - { - [self removeObjectForKey:key]; - return; - } - RCTAssert(!_currentlyCleaning, @"It is not possible to modify cache from within the implementation of this delegate method."); - [_lock lock]; - _totalCost -= [_cache[key] cost]; - _totalCost += g; - RCTCacheEntry *entry = _cache[key]; - if (!entry) { - entry = [RCTCacheEntry new]; - _cache[key] = entry; - } - entry.object = obj; - entry.cost = g; - entry.sequenceNumber = _sequenceNumber++; - if (_sequenceNumber < 0) - { - [self resequence]; - } - [_lock unlock]; - [self cleanUp:YES]; -} - -- (void)removeObjectForKey:(id)key -{ - RCTAssert(!_currentlyCleaning, @"It is not possible to modify cache from within the implementation of this delegate method."); - [_lock lock]; - RCTCacheEntry *entry = _cache[key]; - if (entry) { - _totalCost -= entry.cost; - entry.object = nil; - [_entryPool addObject:entry]; - [_cache removeObjectForKey:key]; - } - [_lock unlock]; -} - -- (void)removeAllObjects -{ - RCTAssert(!_currentlyCleaning, @"It is not possible to modify cache from within the implementation of this delegate method."); - [_lock lock]; - _totalCost = 0; - _sequenceNumber = 0; - for (RCTCacheEntry *entry in _cache.allValues) - { - entry.object = nil; - [_entryPool addObject:entry]; - } - [_cache removeAllObjects]; - [_lock unlock]; -} - -- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state - objects:(id __unsafe_unretained [])buffer - count:(NSUInteger)len -{ - [_lock lock]; - NSUInteger count = [_cache countByEnumeratingWithState:state objects:buffer count:len]; - [_lock unlock]; - return count; -} - -- (void)enumerateKeysAndObjectsUsingBlock:(void (^)(id key, id obj, BOOL *stop))block -{ - [_lock lock]; - [_cache enumerateKeysAndObjectsUsingBlock:block]; - [_lock unlock]; -} - -//handle unimplemented methods - -- (BOOL)isKindOfClass:(Class)aClass -{ - //pretend that we're an RCTCache if anyone asks - if (aClass == [RCTCache class] || aClass == [NSCache class]) - { - return YES; - } - return [super isKindOfClass:aClass]; -} - -- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector -{ - //protect against calls to unimplemented NSCache methods - NSMethodSignature *signature = [super methodSignatureForSelector:selector]; - if (!signature) - { - signature = [NSCache instanceMethodSignatureForSelector:selector]; - } - return signature; -} - -- (void)forwardInvocation:(NSInvocation *)invocation -{ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnonnull" - - [invocation invokeWithTarget:nil]; - -#pragma clang diagnostic pop -} - -@end - -@implementation RCTCache - -+ (id)alloc -{ - return (RCTCache *)[RCTCache_Private alloc]; -} - -- (id)objectForKeyedSubscript:(__unused id)key { return nil; } -- (void)setObject:(__unused id)obj forKeyedSubscript:(__unused id)key {} -- (void)enumerateKeysAndObjectsUsingBlock:(__unused void (^)(id, id, BOOL *))block { } -- (NSUInteger)countByEnumeratingWithState:(__unused NSFastEnumerationState *)state - objects:(__unused __unsafe_unretained id [])buffer - count:(__unused NSUInteger)len { return 0; } - -@end diff --git a/React/Base/RCTConvert.m b/React/Base/RCTConvert.m index 4dc6704afd1742..10f5586f283cd3 100644 --- a/React/Base/RCTConvert.m +++ b/React/Base/RCTConvert.m @@ -11,7 +11,6 @@ #import -#import "RCTCache.h" #import "RCTDefines.h" @implementation RCTConvert diff --git a/React/Modules/RCTAccessibilityManager.m b/React/Modules/RCTAccessibilityManager.m index 153368891f2da3..4ee7b811ce893d 100644 --- a/React/Modules/RCTAccessibilityManager.m +++ b/React/Modules/RCTAccessibilityManager.m @@ -86,7 +86,7 @@ - (void)didReceiveNewContentSizeCategory:(NSNotification *)note self.contentSizeCategory = note.userInfo[UIContentSizeCategoryNewValueKey]; } -- (void)didReceiveNewVoiceOverStatus:(NSNotification *)notification +- (void)didReceiveNewVoiceOverStatus:(__unused NSNotification *)notification { BOOL newIsVoiceOverEnabled = UIAccessibilityIsVoiceOverRunning(); if (_isVoiceOverEnabled != newIsVoiceOverEnabled) { diff --git a/React/React.xcodeproj/project.pbxproj b/React/React.xcodeproj/project.pbxproj index 276e3943d04252..49959ea17ccf4f 100644 --- a/React/React.xcodeproj/project.pbxproj +++ b/React/React.xcodeproj/project.pbxproj @@ -24,7 +24,6 @@ 137327E91AA5CF210034F82E /* RCTTabBarItemManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 137327E41AA5CF210034F82E /* RCTTabBarItemManager.m */; }; 137327EA1AA5CF210034F82E /* RCTTabBarManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 137327E61AA5CF210034F82E /* RCTTabBarManager.m */; }; 1385D0341B665AAE000A309B /* RCTModuleMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 1385D0331B665AAE000A309B /* RCTModuleMap.m */; }; - 138D6A141B53CD290074A87E /* RCTCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 138D6A131B53CD290074A87E /* RCTCache.m */; }; 13A0C2891B74F71200B29F6F /* RCTDevLoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A0C2861B74F71200B29F6F /* RCTDevLoadingView.m */; }; 13A0C28A1B74F71200B29F6F /* RCTDevMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A0C2881B74F71200B29F6F /* RCTDevMenu.m */; }; 13A1F71E1A75392D00D3D453 /* RCTKeyCommands.m in Sources */ = {isa = PBXBuildFile; fileRef = 13A1F71D1A75392D00D3D453 /* RCTKeyCommands.m */; }; @@ -136,8 +135,6 @@ 137327E61AA5CF210034F82E /* RCTTabBarManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTTabBarManager.m; sourceTree = ""; }; 1385D0331B665AAE000A309B /* RCTModuleMap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTModuleMap.m; sourceTree = ""; }; 1385D0351B6661DB000A309B /* RCTModuleMap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTModuleMap.h; sourceTree = ""; }; - 138D6A121B53CD290074A87E /* RCTCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTCache.h; sourceTree = ""; }; - 138D6A131B53CD290074A87E /* RCTCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTCache.m; sourceTree = ""; }; 13A0C2851B74F71200B29F6F /* RCTDevLoadingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDevLoadingView.h; sourceTree = ""; }; 13A0C2861B74F71200B29F6F /* RCTDevLoadingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTDevLoadingView.m; sourceTree = ""; }; 13A0C2871B74F71200B29F6F /* RCTDevMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDevMenu.h; sourceTree = ""; }; @@ -463,8 +460,6 @@ 83CBBA5F1A601EAA00E9B192 /* RCTBridge.m */, 1482F9E61B55B927000ADFF3 /* RCTBridgeDelegate.h */, 830213F31A654E0800B993E6 /* RCTBridgeModule.h */, - 138D6A121B53CD290074A87E /* RCTCache.h */, - 138D6A131B53CD290074A87E /* RCTCache.m */, 83CBBACA1A6023D300E9B192 /* RCTConvert.h */, 83CBBACB1A6023D300E9B192 /* RCTConvert.m */, 13AF1F851AE6E777005F5298 /* RCTDefines.h */, @@ -673,7 +668,6 @@ 83A1FE8F1B62643A00BE0E65 /* RCTModalHostViewManager.m in Sources */, 13E0674A1A70F434002CDEE1 /* RCTUIManager.m in Sources */, 13AB90C11B6FA36700713B4F /* RCTComponentData.m in Sources */, - 138D6A141B53CD290074A87E /* RCTCache.m in Sources */, 13B0801B1A69489C00A75B9A /* RCTNavigatorManager.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0;