Build exchange workspace and shared transaction services (#28)
This commit is contained in:
1 parent
52b7135eda
commit
c496da8a55
48 files changed
+4757
-120
No files matched your search
@@ -2,12 +2,15 @@ import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'package:sxchnge_wallet/sxchnge_wallet.dart';
|
||||
|
||||
class LocaleProvider extends ChangeNotifier {
|
||||
static const storageKey = 'sxchnge_last_locale';
|
||||
LocaleProvider({Locale initialLocale = const Locale('en'), this.preferences})
|
||||
: _locale = resolve(initialLocale.languageCode, const []);
|
||||
|
||||
Locale _locale;
|
||||
bool _disposed = false;
|
||||
final SharedPreferences? preferences;
|
||||
Future<bool> _pendingSave = Future.value(true);
|
||||
Locale get locale => _locale;
|
||||
@@ -31,6 +34,22 @@ class LocaleProvider extends ChangeNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> loadAccount(WalletProvider wallet) async {
|
||||
await wallet.loadProfile();
|
||||
if (_disposed) return;
|
||||
if (wallet.preferredLocale != null && !wallet.profileFailed) {
|
||||
_locale = resolve(wallet.preferredLocale, const []);
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> saveAccountLocale(WalletProvider wallet, Locale value) async {
|
||||
if (_disposed || wallet.saving) return;
|
||||
_locale = resolve(value.languageCode, const []);
|
||||
notifyListeners();
|
||||
await wallet.saveLocale(_locale.languageCode);
|
||||
}
|
||||
|
||||
Future<bool> setLocale(Locale value) {
|
||||
final next = resolve(value.languageCode, const []);
|
||||
if (next == _locale) return _pendingSave;
|
||||
@@ -47,4 +66,10 @@ class LocaleProvider extends ChangeNotifier {
|
||||
});
|
||||
return _pendingSave;
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_disposed = true;
|
||||
super.dispose();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user