127700081SBartłomiej Bukowski#import <UIKit/UIKit.h> 227700081SBartłomiej Bukowski 327700081SBartłomiej Bukowski#import "EXManagedAppSplashScreenConfigurationBuilder.h" 427700081SBartłomiej Bukowski#import "EXUtil.h" 527700081SBartłomiej Bukowski 6*94af3edaSWill Schurman@import EXManifests; 727700081SBartłomiej Bukowski 827700081SBartłomiej Bukowskistatic const NSString *kManifestIosKey = @"ios"; 927700081SBartłomiej Bukowskistatic const NSString *kManifestSplashKey = @"splash"; 1027700081SBartłomiej Bukowskistatic const NSString *kManifestResizeModeKey = @"resizeMode"; 1127700081SBartłomiej Bukowskistatic const NSString *kManifestBackgroundColorKey = @"backgroundColor"; 1227700081SBartłomiej Bukowskistatic const NSString *kManifestTabletImageUrlKey = @"tabletImageUrl"; 1327700081SBartłomiej Bukowskistatic const NSString *kManifestImageUrlKey = @"imageUrl"; 1427700081SBartłomiej Bukowski 1527700081SBartłomiej Bukowskistatic const NSString *kImageResizeModeContain = @"contain"; 1627700081SBartłomiej Bukowskistatic const NSString *kImageResizeModeCover = @"cover"; 1727700081SBartłomiej Bukowski 1827700081SBartłomiej Bukowski@implementation EXManagedAppSplashScreenConfigurationBuilder 1927700081SBartłomiej Bukowski 2050661f5cSWill Schurman+ (EXManagedAppSplashScreenConfiguration *)parseManifest:(EXManifestsManifest *)manifest 2127700081SBartłomiej Bukowski{ 2227700081SBartłomiej Bukowski UIColor *backgroundColor = [[self class] parseBackgroundColor:manifest]; 2327700081SBartłomiej Bukowski NSString *imageUrl = [[self class] parseImageUrl:manifest]; 2427700081SBartłomiej Bukowski EXSplashScreenImageResizeMode imageResizeMode = [[self class] parseImageResizeMode:manifest]; 254d7a9b36SBartłomiej Bukowski return [[EXManagedAppSplashScreenConfiguration alloc] initWithBackgroundColor:backgroundColor 2627700081SBartłomiej Bukowski imageUrl:imageUrl 2727700081SBartłomiej Bukowski imageResizeMode:imageResizeMode]; 2827700081SBartłomiej Bukowski} 2927700081SBartłomiej Bukowski 3050661f5cSWill Schurman+ (UIColor * _Nonnull)parseBackgroundColor:(EXManifestsManifest *)manifest 3127700081SBartłomiej Bukowski{ 324d7a9b36SBartłomiej Bukowski // TODO: (@bbarthec) backgroundColor is recommended to be in HEX format for now, but it should be any css-valid format 33c8841cb0SWill Schurman NSString *hexString = manifest.iosSplashBackgroundColor; 3427700081SBartłomiej Bukowski UIColor *color = [EXUtil colorWithHexString:hexString]; 3527700081SBartłomiej Bukowski if (color) { 3627700081SBartłomiej Bukowski return color; 3727700081SBartłomiej Bukowski } 3827700081SBartłomiej Bukowski 3927700081SBartłomiej Bukowski return [UIColor whiteColor]; 4027700081SBartłomiej Bukowski} 4127700081SBartłomiej Bukowski 4250661f5cSWill Schurman+ (NSString * _Nullable)parseImageUrl:(EXManifestsManifest *)manifest 4327700081SBartłomiej Bukowski{ 44c8841cb0SWill Schurman return manifest.iosSplashImageUrl; 4527700081SBartłomiej Bukowski} 4627700081SBartłomiej Bukowski 4750661f5cSWill Schurman+ (EXSplashScreenImageResizeMode)parseImageResizeMode:(EXManifestsManifest *)manifest 4827700081SBartłomiej Bukowski{ 49c8841cb0SWill Schurman NSString *resizeMode = manifest.iosSplashImageResizeMode; 5027700081SBartłomiej Bukowski if ([kImageResizeModeCover isEqualToString:resizeMode]) { 5127700081SBartłomiej Bukowski return EXSplashScreenImageResizeModeCover; 5227700081SBartłomiej Bukowski } 5327700081SBartłomiej Bukowski return EXSplashScreenImageResizeModeContain; 5427700081SBartłomiej Bukowski} 5527700081SBartłomiej Bukowski 5627700081SBartłomiej Bukowski@end 57