// // Copyright (c) 2017 Open Whisper Systems. All rights reserved. // #import "OWSFormat.h" NS_ASSUME_NONNULL_BEGIN @implementation OWSFormat + (NSString *)formatInt:(int)value { static NSNumberFormatter *formatter = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ formatter = [NSNumberFormatter new]; formatter.numberStyle = NSNumberFormatterNoStyle; }); return [formatter stringFromNumber:@(value)]; } + (NSString *)formatFileSize:(unsigned long)fileSize { static NSNumberFormatter *formatter = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ formatter = [NSNumberFormatter new]; formatter.numberStyle = NSNumberFormatterDecimalStyle; }); const unsigned long kOneKilobyte = 1024; const unsigned long kOneMegabyte = kOneKilobyte * kOneKilobyte; if (fileSize > kOneMegabyte) { return [[formatter stringFromNumber:@((double)lround(fileSize * 100 / (CGFloat)kOneMegabyte) / 100)] stringByAppendingString:@" MB"]; } else if (fileSize > kOneKilobyte) { return [[formatter stringFromNumber:@((double)lround(fileSize * 100 / (CGFloat)kOneKilobyte) / 100)] stringByAppendingString:@" KB"]; } else { return [NSString stringWithFormat:@"%lu Bytes", fileSize]; } } @end NS_ASSUME_NONNULL_END