dev
dart 48 lines 1.58 KB
Raw
1 import 'package:flutter/foundation.dart';
2 import 'package:cake_wallet/generated/i18n.dart';
3 import 'package:cw_core/enumerable_item.dart';
4
5 class BalanceDisplayMode extends EnumerableItem<int> with Serializable<int> {
6 const BalanceDisplayMode({required String title, required int raw})
7 : super(title: title, raw: raw);
8
9 static const all = [
10 BalanceDisplayMode.hiddenBalance,
11 BalanceDisplayMode.displayableBalance,
12 ];
13 static const fullBalance = BalanceDisplayMode(raw: 0, title: 'Full Balance');
14 static const availableBalance = BalanceDisplayMode(raw: 1, title: 'Available Balance');
15 static const hiddenBalance = BalanceDisplayMode(raw: 2, title: 'Hidden Balance');
16 static const displayableBalance = BalanceDisplayMode(raw: 3, title: 'Displayable Balance');
17
18 static BalanceDisplayMode deserialize({required int raw}) {
19 switch (raw) {
20 case 0:
21 return fullBalance;
22 case 1:
23 return availableBalance;
24 case 2:
25 return hiddenBalance;
26 case 3:
27 return displayableBalance;
28 default:
29 throw Exception('Unexpected token: $raw for BalanceDisplayMode deserialize');
30 }
31 }
32
33 @override
34 String toString() {
35 switch (this) {
36 case BalanceDisplayMode.fullBalance:
37 return S.current.xmr_full_balance;
38 case BalanceDisplayMode.availableBalance:
39 return S.current.xmr_available_balance;
40 case BalanceDisplayMode.hiddenBalance:
41 return S.current.xmr_hidden;
42 case BalanceDisplayMode.displayableBalance:
43 return S.current.displayable;
44 default:
45 return '';
46 }
47 }
48 }