//
//  PHImageManager+CTSupport.m
//  CTAssetsPickerDemo
//
//  Created by Korben Allen Rusek on 4/7/16.
//  Copyright © 2016 Clement T. All rights reserved.
//

#import "PHImageManager+CTAssetsPickerController.h"

@implementation PHImageManager (CTAssetsPickerController)

+ (BOOL)ctassetsPickerNeedsiPadSupportSize {
    return [(NSString*)[UIDevice currentDevice].model hasPrefix:@"iPad"] && UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad == false;
}

+ (CGSize)ctassetsPickerSizeForSize:(CGSize)size withMinimumDimension:(CGFloat)dimension {
    if (size.width >= dimension && size.height >= dimension) return size;
    if (size.width <= 0 || size.height <= 0) return size;
    
    CGFloat width, height;
    if (size.width < size.height) {
        width = 500;
        height = size.height/size.width*width;
    } else {
        height = 500;
        width = size.width/size.height*height;
    }
    return CGSizeMake(width, height);
}

- (PHImageRequestID)ctassetsPickerRequestImageForAsset:(PHAsset *)asset targetSize:(CGSize)targetSize contentMode:(PHImageContentMode)contentMode options:( PHImageRequestOptions *)options resultHandler:(void (^)(UIImage * result, NSDictionary * info))resultHandler {
    CGSize size = targetSize;
    if ([[self class] ctassetsPickerNeedsiPadSupportSize]) {
        size = [[self class] ctassetsPickerSizeForSize:targetSize withMinimumDimension:500];
    }
    return [self requestImageForAsset:asset targetSize:size contentMode:contentMode options:options resultHandler:resultHandler];
}

@end