handle unlimited

This commit is contained in:
Hiddify
2023-09-10 12:46:22 +02:00
parent d5e65a5c41
commit 7920cb7c06
4 changed files with 23 additions and 8 deletions

View File

@@ -128,6 +128,7 @@ class SubscriptionInfo with _$SubscriptionInfo {
const factory SubscriptionInfo({
required int upload,
required int download,
@JsonKey(fromJson: _fromJsonTotal, defaultValue: 9223372036854775807)
required int total,
@JsonKey(fromJson: _dateTimeFromSecondsSinceEpoch) required DateTime expire,
}) = _SubscriptionInfo;
@@ -154,5 +155,15 @@ class SubscriptionInfo with _$SubscriptionInfo {
_$SubscriptionInfoFromJson(json);
}
DateTime _dateTimeFromSecondsSinceEpoch(dynamic expire) =>
DateTime.fromMillisecondsSinceEpoch((expire as int) * 1000);
int _fromJsonTotal(dynamic total) {
if (total == null) {
return 9223372036854775807;
}
return total as int;
}
DateTime _dateTimeFromSecondsSinceEpoch(dynamic expire) {
return DateTime.fromMillisecondsSinceEpoch(
(expire as int? ?? 92233720368) * 1000,
);
}

View File

@@ -305,13 +305,17 @@ class ProfileSubscriptionInfo extends HookConsumerWidget {
final theme = Theme.of(context);
final remaining = remainingText(t, theme);
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
subInfo.consumption.sizeOf(subInfo.total),
style: theme.textTheme.bodySmall,
Directionality(
textDirection: TextDirection.ltr,
child: Text(
subInfo.total > 10 * 1099511627776 //10TB
? "∞ GiB"
: subInfo.consumption.sizeOf(subInfo.total),
style: theme.textTheme.bodySmall,
),
),
Text(
remaining.$1,