Build exchange workspace and shared transaction services (#28)

This commit is contained in:
Stephan D committed 2026-09-12 12:01:36 +02:00
1 parent 52b7135eda
commit c496da8a55
48 files changed
+4757 -120

No files matched your search

+25
View File
@@ -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();
}
}