cake_wallet/lib/entities/balance_display_mode.dart

52 lines
1.6 KiB
Dart
Raw Normal View History

2020-01-04 19:31:52 +00:00
import 'package:flutter/foundation.dart';
import 'package:cake_wallet/generated/i18n.dart';
2021-12-24 12:37:24 +00:00
import 'package:cw_core/enumerable_item.dart';
2020-01-04 19:31:52 +00:00
class BalanceDisplayMode extends EnumerableItem<int> with Serializable<int> {
2022-10-12 17:09:57 +00:00
const BalanceDisplayMode({required String title, required int raw})
2020-01-08 12:26:34 +00:00
: super(title: title, raw: raw);
2020-01-04 19:31:52 +00:00
static const all = [
2021-01-11 17:15:27 +00:00
BalanceDisplayMode.hiddenBalance,
BalanceDisplayMode.displayableBalance,
2020-01-04 19:31:52 +00:00
];
static const fullBalance = BalanceDisplayMode(raw: 0, title: 'Full Balance');
static const availableBalance =
BalanceDisplayMode(raw: 1, title: 'Available Balance');
static const hiddenBalance =
BalanceDisplayMode(raw: 2, title: 'Hidden Balance');
2021-01-11 17:15:27 +00:00
static const displayableBalance =
BalanceDisplayMode(raw: 3, title: 'Displayable Balance');
2020-01-04 19:31:52 +00:00
2022-10-12 17:09:57 +00:00
static BalanceDisplayMode deserialize({required int raw}) {
2020-01-04 19:31:52 +00:00
switch (raw) {
case 0:
return fullBalance;
case 1:
return availableBalance;
case 2:
return hiddenBalance;
2021-01-11 17:15:27 +00:00
case 3:
return displayableBalance;
2020-01-04 19:31:52 +00:00
default:
2022-10-12 17:09:57 +00:00
throw Exception('Unexpected token: $raw for BalanceDisplayMode deserialize');
2020-01-04 19:31:52 +00:00
}
}
@override
String toString() {
switch (this) {
case BalanceDisplayMode.fullBalance:
return S.current.xmr_full_balance;
case BalanceDisplayMode.availableBalance:
return S.current.xmr_available_balance;
case BalanceDisplayMode.hiddenBalance:
return S.current.xmr_hidden;
2021-01-11 17:15:27 +00:00
case BalanceDisplayMode.displayableBalance:
return S.current.displayable;
2020-01-04 19:31:52 +00:00
default:
return '';
}
}
}