mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2025-03-22 15:19:11 +00:00
centralize exchange rate type parameter
This commit is contained in:
parent
5c29a543a9
commit
15a44d9dff
4 changed files with 46 additions and 56 deletions
|
@ -130,7 +130,7 @@ class _ExchangeFormState extends ConsumerState<ExchangeForm> {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<AggregateCurrency> _getAggregateCurrency(Currency currency) async {
|
Future<AggregateCurrency> _getAggregateCurrency(Currency currency) async {
|
||||||
final rateType = ref.read(prefsChangeNotifierProvider).exchangeRateType;
|
final rateType = ref.read(exchangeFormStateProvider).exchangeRateType;
|
||||||
final currencies = await ExchangeDataLoadingService.instance.isar.currencies
|
final currencies = await ExchangeDataLoadingService.instance.isar.currencies
|
||||||
.filter()
|
.filter()
|
||||||
.group((q) => rateType == ExchangeRateType.fixed
|
.group((q) => rateType == ExchangeRateType.fixed
|
||||||
|
@ -159,7 +159,7 @@ class _ExchangeFormState extends ConsumerState<ExchangeForm> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void selectSendCurrency() async {
|
void selectSendCurrency() async {
|
||||||
final type = (ref.read(prefsChangeNotifierProvider).exchangeRateType);
|
final type = (ref.read(exchangeFormStateProvider).exchangeRateType);
|
||||||
final fromTicker = ref.read(exchangeFormStateProvider).fromTicker ?? "";
|
final fromTicker = ref.read(exchangeFormStateProvider).fromTicker ?? "";
|
||||||
|
|
||||||
if (walletInitiated &&
|
if (walletInitiated &&
|
||||||
|
@ -197,7 +197,7 @@ class _ExchangeFormState extends ConsumerState<ExchangeForm> {
|
||||||
willChange: ref.read(exchangeFormStateProvider).receiveCurrency?.ticker,
|
willChange: ref.read(exchangeFormStateProvider).receiveCurrency?.ticker,
|
||||||
willChangeIsSend: false,
|
willChangeIsSend: false,
|
||||||
paired: ref.read(exchangeFormStateProvider).sendCurrency?.ticker,
|
paired: ref.read(exchangeFormStateProvider).sendCurrency?.ticker,
|
||||||
isFixedRate: ref.read(prefsChangeNotifierProvider).exchangeRateType ==
|
isFixedRate: ref.read(exchangeFormStateProvider).exchangeRateType ==
|
||||||
ExchangeRateType.fixed,
|
ExchangeRateType.fixed,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -380,7 +380,7 @@ class _ExchangeFormState extends ConsumerState<ExchangeForm> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void onExchangePressed() async {
|
void onExchangePressed() async {
|
||||||
final rateType = ref.read(prefsChangeNotifierProvider).exchangeRateType;
|
final rateType = ref.read(exchangeFormStateProvider).exchangeRateType;
|
||||||
final fromTicker = ref.read(exchangeFormStateProvider).fromTicker ?? "";
|
final fromTicker = ref.read(exchangeFormStateProvider).fromTicker ?? "";
|
||||||
final toTicker = ref.read(exchangeFormStateProvider).toTicker ?? "";
|
final toTicker = ref.read(exchangeFormStateProvider).toTicker ?? "";
|
||||||
final sendAmount = ref.read(exchangeFormStateProvider).sendAmount!;
|
final sendAmount = ref.read(exchangeFormStateProvider).sendAmount!;
|
||||||
|
@ -671,7 +671,7 @@ class _ExchangeFormState extends ConsumerState<ExchangeForm> {
|
||||||
debugPrint("BUILD: $runtimeType");
|
debugPrint("BUILD: $runtimeType");
|
||||||
|
|
||||||
final rateType = ref.watch(
|
final rateType = ref.watch(
|
||||||
prefsChangeNotifierProvider.select((value) => value.exchangeRateType));
|
exchangeFormStateProvider.select((value) => value.exchangeRateType));
|
||||||
|
|
||||||
final isEstimated = rateType == ExchangeRateType.estimated;
|
final isEstimated = rateType == ExchangeRateType.estimated;
|
||||||
|
|
||||||
|
@ -816,7 +816,7 @@ class _ExchangeFormState extends ConsumerState<ExchangeForm> {
|
||||||
background:
|
background:
|
||||||
Theme.of(context).extension<StackColors>()!.textFieldDefaultBG,
|
Theme.of(context).extension<StackColors>()!.textFieldDefaultBG,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
if (!(ref.read(prefsChangeNotifierProvider).exchangeRateType ==
|
if (!(ref.read(exchangeFormStateProvider).exchangeRateType ==
|
||||||
ExchangeRateType.estimated) &&
|
ExchangeRateType.estimated) &&
|
||||||
_receiveController.text == "-") {
|
_receiveController.text == "-") {
|
||||||
_receiveController.text = "";
|
_receiveController.text = "";
|
||||||
|
|
|
@ -24,16 +24,12 @@ class RateTypeToggle extends ConsumerWidget {
|
||||||
return Toggle(
|
return Toggle(
|
||||||
onValueChanged: (value) {
|
onValueChanged: (value) {
|
||||||
if (value) {
|
if (value) {
|
||||||
ref.read(prefsChangeNotifierProvider).exchangeRateType =
|
|
||||||
ExchangeRateType.fixed;
|
|
||||||
onChanged?.call(ExchangeRateType.fixed);
|
onChanged?.call(ExchangeRateType.fixed);
|
||||||
} else {
|
} else {
|
||||||
ref.read(prefsChangeNotifierProvider).exchangeRateType =
|
|
||||||
ExchangeRateType.estimated;
|
|
||||||
onChanged?.call(ExchangeRateType.estimated);
|
onChanged?.call(ExchangeRateType.estimated);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
isOn: ref.watch(prefsChangeNotifierProvider
|
isOn: ref.watch(exchangeFormStateProvider
|
||||||
.select((value) => value.exchangeRateType)) ==
|
.select((value) => value.exchangeRateType)) ==
|
||||||
ExchangeRateType.fixed,
|
ExchangeRateType.fixed,
|
||||||
onColor: isDesktop
|
onColor: isDesktop
|
||||||
|
|
|
@ -13,7 +13,6 @@ import 'package:stackwallet/models/node_model.dart';
|
||||||
import 'package:stackwallet/models/stack_restoring_ui_state.dart';
|
import 'package:stackwallet/models/stack_restoring_ui_state.dart';
|
||||||
import 'package:stackwallet/models/trade_wallet_lookup.dart';
|
import 'package:stackwallet/models/trade_wallet_lookup.dart';
|
||||||
import 'package:stackwallet/models/wallet_restore_state.dart';
|
import 'package:stackwallet/models/wallet_restore_state.dart';
|
||||||
import 'package:stackwallet/pages/exchange_view/sub_widgets/exchange_rate_sheet.dart';
|
|
||||||
import 'package:stackwallet/services/address_book_service.dart';
|
import 'package:stackwallet/services/address_book_service.dart';
|
||||||
import 'package:stackwallet/services/coins/coin_service.dart';
|
import 'package:stackwallet/services/coins/coin_service.dart';
|
||||||
import 'package:stackwallet/services/coins/manager.dart';
|
import 'package:stackwallet/services/coins/manager.dart';
|
||||||
|
@ -246,7 +245,6 @@ abstract class SWB {
|
||||||
final _prefs = Prefs.instance;
|
final _prefs = Prefs.instance;
|
||||||
await _prefs.init();
|
await _prefs.init();
|
||||||
prefs['currency'] = _prefs.currency;
|
prefs['currency'] = _prefs.currency;
|
||||||
prefs['exchangeRateType'] = _prefs.exchangeRateType.name;
|
|
||||||
prefs['useBiometrics'] = _prefs.useBiometrics;
|
prefs['useBiometrics'] = _prefs.useBiometrics;
|
||||||
prefs['hasPin'] = _prefs.hasPin;
|
prefs['hasPin'] = _prefs.hasPin;
|
||||||
prefs['language'] = _prefs.language;
|
prefs['language'] = _prefs.language;
|
||||||
|
@ -992,9 +990,6 @@ abstract class SWB {
|
||||||
final _prefs = Prefs.instance;
|
final _prefs = Prefs.instance;
|
||||||
await _prefs.init();
|
await _prefs.init();
|
||||||
_prefs.currency = prefs['currency'] as String;
|
_prefs.currency = prefs['currency'] as String;
|
||||||
_prefs.exchangeRateType = prefs['exchangeRateType'] == "estimated"
|
|
||||||
? ExchangeRateType.estimated
|
|
||||||
: ExchangeRateType.fixed;
|
|
||||||
// _prefs.useBiometrics = prefs['useBiometrics'] as bool;
|
// _prefs.useBiometrics = prefs['useBiometrics'] as bool;
|
||||||
// _prefs.hasPin = prefs['hasPin'] as bool;
|
// _prefs.hasPin = prefs['hasPin'] as bool;
|
||||||
_prefs.language = prefs['language'] as String;
|
_prefs.language = prefs['language'] as String;
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:stackwallet/hive/db.dart';
|
import 'package:stackwallet/hive/db.dart';
|
||||||
import 'package:stackwallet/pages/exchange_view/sub_widgets/exchange_rate_sheet.dart';
|
|
||||||
import 'package:stackwallet/utilities/constants.dart';
|
import 'package:stackwallet/utilities/constants.dart';
|
||||||
import 'package:stackwallet/utilities/enums/backup_frequency_type.dart';
|
import 'package:stackwallet/utilities/enums/backup_frequency_type.dart';
|
||||||
import 'package:stackwallet/utilities/enums/languages_enum.dart';
|
import 'package:stackwallet/utilities/enums/languages_enum.dart';
|
||||||
|
@ -18,7 +17,7 @@ class Prefs extends ChangeNotifier {
|
||||||
Future<void> init() async {
|
Future<void> init() async {
|
||||||
if (!_initialized) {
|
if (!_initialized) {
|
||||||
_currency = await _getPreferredCurrency();
|
_currency = await _getPreferredCurrency();
|
||||||
_exchangeRateType = await _getExchangeRateType();
|
// _exchangeRateType = await _getExchangeRateType();
|
||||||
_useBiometrics = await _getUseBiometrics();
|
_useBiometrics = await _getUseBiometrics();
|
||||||
_hasPin = await _getHasPin();
|
_hasPin = await _getHasPin();
|
||||||
_language = await _getPreferredLanguage();
|
_language = await _getPreferredLanguage();
|
||||||
|
@ -251,44 +250,44 @@ class Prefs extends ChangeNotifier {
|
||||||
|
|
||||||
// exchange rate type
|
// exchange rate type
|
||||||
|
|
||||||
ExchangeRateType _exchangeRateType = ExchangeRateType.estimated;
|
// ExchangeRateType _exchangeRateType = ExchangeRateType.estimated;
|
||||||
|
//
|
||||||
ExchangeRateType get exchangeRateType => _exchangeRateType;
|
// ExchangeRateType get exchangeRateType => _exchangeRateType;
|
||||||
|
//
|
||||||
set exchangeRateType(ExchangeRateType exchangeRateType) {
|
// set exchangeRateType(ExchangeRateType exchangeRateType) {
|
||||||
if (_exchangeRateType != exchangeRateType) {
|
// if (_exchangeRateType != exchangeRateType) {
|
||||||
switch (exchangeRateType) {
|
// switch (exchangeRateType) {
|
||||||
case ExchangeRateType.estimated:
|
// case ExchangeRateType.estimated:
|
||||||
DB.instance.put<dynamic>(
|
// DB.instance.put<dynamic>(
|
||||||
boxName: DB.boxNamePrefs,
|
// boxName: DB.boxNamePrefs,
|
||||||
key: "exchangeRateType",
|
// key: "exchangeRateType",
|
||||||
value: "estimated");
|
// value: "estimated");
|
||||||
break;
|
// break;
|
||||||
case ExchangeRateType.fixed:
|
// case ExchangeRateType.fixed:
|
||||||
DB.instance.put<dynamic>(
|
// DB.instance.put<dynamic>(
|
||||||
boxName: DB.boxNamePrefs,
|
// boxName: DB.boxNamePrefs,
|
||||||
key: "exchangeRateType",
|
// key: "exchangeRateType",
|
||||||
value: "fixed");
|
// value: "fixed");
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
_exchangeRateType = exchangeRateType;
|
// _exchangeRateType = exchangeRateType;
|
||||||
notifyListeners();
|
// notifyListeners();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
Future<ExchangeRateType> _getExchangeRateType() async {
|
// Future<ExchangeRateType> _getExchangeRateType() async {
|
||||||
String? rate = await DB.instance.get<dynamic>(
|
// String? rate = await DB.instance.get<dynamic>(
|
||||||
boxName: DB.boxNamePrefs, key: "exchangeRateType") as String?;
|
// boxName: DB.boxNamePrefs, key: "exchangeRateType") as String?;
|
||||||
rate ??= "estimated";
|
// rate ??= "estimated";
|
||||||
switch (rate) {
|
// switch (rate) {
|
||||||
case "estimated":
|
// case "estimated":
|
||||||
return ExchangeRateType.estimated;
|
// return ExchangeRateType.estimated;
|
||||||
case "fixed":
|
// case "fixed":
|
||||||
return ExchangeRateType.fixed;
|
// return ExchangeRateType.fixed;
|
||||||
default:
|
// default:
|
||||||
throw Exception("Invalid exchange rate type found in prefs!");
|
// throw Exception("Invalid exchange rate type found in prefs!");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
// use biometrics
|
// use biometrics
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue