1// Copyright 2020-present 650 Industries. All rights reserved. 2 3#if __has_include(<EXUpdates/EXUpdatesService.h>) 4 5#import "EXUpdatesBinding.h" 6 7NS_ASSUME_NONNULL_BEGIN 8 9@interface EXUpdatesBinding () 10 11@property (nonatomic, strong) NSString *experienceId; 12@property (nonatomic, weak) id<EXUpdatesBindingDelegate> updatesKernelService; 13@property (nonatomic, weak) id<EXUpdatesDatabaseBindingDelegate> databaseKernelService; 14 15@end 16 17@implementation EXUpdatesBinding : EXUpdatesService 18 19- (instancetype)initWithExperienceId:(NSString *)experienceId updatesKernelService:(id<EXUpdatesBindingDelegate>)updatesKernelService databaseKernelService:(id<EXUpdatesDatabaseBindingDelegate>)databaseKernelService 20{ 21 if (self = [super init]) { 22 _experienceId = experienceId; 23 _updatesKernelService = updatesKernelService; 24 _databaseKernelService = databaseKernelService; 25 } 26 return self; 27} 28 29- (EXUpdatesConfig *)config 30{ 31 return [_updatesKernelService configForExperienceId:_experienceId]; 32} 33 34- (EXUpdatesDatabase *)database 35{ 36 return _databaseKernelService.database; 37} 38 39- (EXUpdatesSelectionPolicy *)selectionPolicy 40{ 41 return [_updatesKernelService selectionPolicyForExperienceId:_experienceId]; 42} 43 44- (NSURL *)directory 45{ 46 return _databaseKernelService.updatesDirectory; 47} 48 49- (nullable EXUpdatesUpdate *)launchedUpdate 50{ 51 return [_updatesKernelService launchedUpdateForExperienceId:_experienceId]; 52} 53 54- (nullable NSDictionary *)assetFilesMap 55{ 56 return [_updatesKernelService assetFilesMapForExperienceId:_experienceId]; 57} 58 59- (BOOL)isUsingEmbeddedAssets 60{ 61 return [_updatesKernelService isUsingEmbeddedAssetsForExperienceId:_experienceId]; 62} 63 64- (BOOL)isStarted 65{ 66 return [_updatesKernelService isStartedForExperienceId:_experienceId]; 67} 68 69- (BOOL)isEmergencyLaunch 70{ 71 return [_updatesKernelService isEmergencyLaunchForExperienceId:_experienceId]; 72} 73 74- (BOOL)canRelaunch 75{ 76 return YES; 77} 78 79- (void)requestRelaunchWithCompletion:(EXUpdatesAppRelaunchCompletionBlock)completion 80{ 81 return [_updatesKernelService requestRelaunchForExperienceId:_experienceId withCompletion:completion]; 82} 83 84- (void)resetSelectionPolicy 85{ 86 // no-op in managed 87} 88 89@end 90 91NS_ASSUME_NONNULL_END 92 93#endif 94