[LLC, UI-KIT] Add support for custom attachment upload delegate

Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
Sahil Kumar
2021-02-05 14:57:17 +05:30
parent f18d2c37bf
commit 628542f99b
12 changed files with 418 additions and 243 deletions
@@ -214,18 +214,70 @@ String getWebsiteName(String hostName) {
}
}
///
String getSizeText(int bytes) {
if (bytes == null) {
return 'Size N/A';
/// A method returns a human readable string representing a file _size
String filesize(dynamic size, [int round = 2]) {
if (size == null) return 'Size N/A';
/**
* [size] can be passed as number or as string
*
* the optional parameter [round] specifies the number
* of digits after comma/point (default is 2)
*/
final divider = 1024;
int _size;
try {
_size = int.parse(size.toString());
} catch (e) {
throw ArgumentError('Can not parse the size parameter: $e');
}
if (bytes <= 1000) {
return '$bytes bytes';
} else if (bytes <= 100000) {
return '${(bytes / 1000).toStringAsFixed(2)} KB';
if (_size < divider) {
return '$_size B';
}
if (_size < divider * divider && _size % divider == 0) {
return '${(_size / divider).toStringAsFixed(0)} KB';
}
if (_size < divider * divider) {
return '${(_size / divider).toStringAsFixed(round)} KB';
}
if (_size < divider * divider * divider && _size % divider == 0) {
return '${(_size / (divider * divider)).toStringAsFixed(0)} MB';
}
if (_size < divider * divider * divider) {
return '${(_size / divider / divider).toStringAsFixed(round)} MB';
}
if (_size < divider * divider * divider * divider && _size % divider == 0) {
return '${(_size / (divider * divider * divider)).toStringAsFixed(0)} GB';
}
if (_size < divider * divider * divider * divider) {
return '${(_size / divider / divider / divider).toStringAsFixed(round)} GB';
}
if (_size < divider * divider * divider * divider * divider &&
_size % divider == 0) {
num r = _size / divider / divider / divider / divider;
return '${r.toStringAsFixed(0)} TB';
}
if (_size < divider * divider * divider * divider * divider) {
num r = _size / divider / divider / divider / divider;
return '${r.toStringAsFixed(round)} TB';
}
if (_size < divider * divider * divider * divider * divider * divider &&
_size % divider == 0) {
num r = _size / divider / divider / divider / divider / divider;
return '${r.toStringAsFixed(0)} PB';
} else {
return '${(bytes / 1000000).toStringAsFixed(2)} MB';
num r = _size / divider / divider / divider / divider / divider;
return '${r.toStringAsFixed(round)} PB';
}
}