1// Copyright © 2019-present 650 Industries. All rights reserved. 2 3#if __has_include(<EXSegment/EXSegment.h>) 4#import "EXScopedSegment.h" 5#import "EXConstantsBinding.h" 6#import <ExpoModulesCore/EXConstantsInterface.h> 7 8@interface EXScopedSegment () 9 10@property (nonatomic, assign) BOOL isInExpoClient; 11 12@end 13 14@implementation EXScopedSegment 15 16- (void)setModuleRegistry:(EXModuleRegistry *)moduleRegistry 17{ 18 _isInExpoClient = [((EXConstantsBinding *)[moduleRegistry getModuleImplementingProtocol:@protocol(EXConstantsInterface)]).appOwnership isEqualToString:@"expo"]; 19} 20 21EX_EXPORT_METHOD_AS(setEnabledAsync, 22 setEnabled:(BOOL)enabled 23 withResolver:(EXPromiseResolveBlock)resolve 24 rejecter:(EXPromiseRejectBlock)reject) 25{ 26 if (_isInExpoClient) { 27 reject(@"E_UNSUPPORTED", @"Setting Segment's `enabled` is not supported in Expo Go.", nil); 28 return; 29 } 30 31 [super setEnabled:enabled withResolver:resolve rejecter:reject]; 32} 33 34@end 35#endif 36