|
|
|
//
|
|
|
|
// 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 * 10) {
|
|
|
|
return [[formatter stringFromNumber:@((int)round(fileSize / (CGFloat)kOneMegabyte))]
|
|
|
|
stringByAppendingString:@" MB"];
|
|
|
|
} else if (fileSize > kOneKilobyte * 10) {
|
|
|
|
return [[formatter stringFromNumber:@((int)round(fileSize / (CGFloat)kOneKilobyte))]
|
|
|
|
stringByAppendingString:@" KB"];
|
|
|
|
} else {
|
|
|
|
return [NSString stringWithFormat:@"%lu Bytes", fileSize];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
+ (NSString *)formatDurationSeconds:(long)timeSeconds
|
|
|
|
{
|
|
|
|
long seconds = timeSeconds % 60;
|
|
|
|
long minutes = (timeSeconds / 60) % 60;
|
|
|
|
long hours = timeSeconds / 3600;
|
|
|
|
|
|
|
|
if (hours > 0) {
|
|
|
|
return [NSString stringWithFormat:@"%ld:%02ld:%02ld", hours, minutes, seconds];
|
|
|
|
} else {
|
|
|
|
return [NSString stringWithFormat:@"%ld:%02ld", minutes, seconds];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@end
|
|
|
|
|
|
|
|
NS_ASSUME_NONNULL_END
|