mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2025-02-02 03:06:29 +00:00
await tor start/stop before modifying pref and use providers
This commit is contained in:
parent
aa56d39721
commit
c7cb9c30d9
2 changed files with 39 additions and 17 deletions
|
@ -35,7 +35,7 @@ import 'package:stackwallet/themes/stack_colors.dart';
|
||||||
import 'package:stackwallet/utilities/assets.dart';
|
import 'package:stackwallet/utilities/assets.dart';
|
||||||
import 'package:stackwallet/utilities/constants.dart';
|
import 'package:stackwallet/utilities/constants.dart';
|
||||||
import 'package:stackwallet/utilities/enums/coin_enum.dart';
|
import 'package:stackwallet/utilities/enums/coin_enum.dart';
|
||||||
import 'package:stackwallet/utilities/prefs.dart';
|
import 'package:stackwallet/utilities/logger.dart';
|
||||||
import 'package:stackwallet/utilities/text_styles.dart';
|
import 'package:stackwallet/utilities/text_styles.dart';
|
||||||
import 'package:stackwallet/utilities/util.dart';
|
import 'package:stackwallet/utilities/util.dart';
|
||||||
import 'package:stackwallet/widgets/animated_text.dart';
|
import 'package:stackwallet/widgets/animated_text.dart';
|
||||||
|
@ -102,9 +102,6 @@ class _WalletNetworkSettingsViewState
|
||||||
late final StreamSubscription<TorConnectionStatusChangedEvent>
|
late final StreamSubscription<TorConnectionStatusChangedEvent>
|
||||||
_torConnectionStatusSubscription;
|
_torConnectionStatusSubscription;
|
||||||
|
|
||||||
/// The Prefs instance.
|
|
||||||
final Prefs _prefs = Prefs.instance;
|
|
||||||
|
|
||||||
Future<void> _attemptRescan() async {
|
Future<void> _attemptRescan() async {
|
||||||
if (!Platform.isLinux) await Wakelock.enable();
|
if (!Platform.isLinux) await Wakelock.enable();
|
||||||
|
|
||||||
|
@ -784,24 +781,47 @@ class _WalletNetworkSettingsViewState
|
||||||
? STextStyles.desktopTextExtraExtraSmall(context)
|
? STextStyles.desktopTextExtraExtraSmall(context)
|
||||||
: STextStyles.smallMed12(context),
|
: STextStyles.smallMed12(context),
|
||||||
),
|
),
|
||||||
if (TorService.sharedInstance.enabled)
|
if (ref.watch(
|
||||||
|
prefsChangeNotifierProvider.select((value) => value.useTor)))
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
onTap: () {
|
onTap: () async {
|
||||||
TorService.sharedInstance.stop();
|
// Stop the Tor service.
|
||||||
// And toggle preference.
|
try {
|
||||||
_prefs.useTor = false;
|
await ref.read(pTorService).stop();
|
||||||
|
|
||||||
|
// Toggle the useTor preference on success.
|
||||||
|
ref.read(prefsChangeNotifierProvider).useTor = false;
|
||||||
|
} catch (e, s) {
|
||||||
|
Logging.instance.log(
|
||||||
|
"Error stopping tor: $e\n$s",
|
||||||
|
level: LogLevel.Error,
|
||||||
|
);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
"Disconnect",
|
"Disconnect",
|
||||||
style: STextStyles.link2(context),
|
style: STextStyles.link2(context),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (!TorService.sharedInstance.enabled)
|
if (!ref.watch(
|
||||||
|
prefsChangeNotifierProvider.select((value) => value.useTor)))
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
onTap: () {
|
onTap: () async {
|
||||||
TorService.sharedInstance.start();
|
// Init the Tor service if it hasn't already been.
|
||||||
// And toggle preference.
|
ref.read(pTorService).init();
|
||||||
_prefs.useTor = true;
|
|
||||||
|
// Start the Tor service.
|
||||||
|
try {
|
||||||
|
await ref.read(pTorService).start();
|
||||||
|
|
||||||
|
// Toggle the useTor preference on success.
|
||||||
|
ref.read(prefsChangeNotifierProvider).useTor = true;
|
||||||
|
} catch (e, s) {
|
||||||
|
Logging.instance.log(
|
||||||
|
"Error starting tor: $e\n$s",
|
||||||
|
level: LogLevel.Error,
|
||||||
|
);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
"Connect",
|
"Connect",
|
||||||
|
@ -821,7 +841,8 @@ class _WalletNetworkSettingsViewState
|
||||||
isDesktop ? const EdgeInsets.all(16) : const EdgeInsets.all(12),
|
isDesktop ? const EdgeInsets.all(16) : const EdgeInsets.all(12),
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
if (TorService.sharedInstance.enabled)
|
if (ref.watch(prefsChangeNotifierProvider
|
||||||
|
.select((value) => value.useTor)))
|
||||||
Container(
|
Container(
|
||||||
width: _iconSize,
|
width: _iconSize,
|
||||||
height: _iconSize,
|
height: _iconSize,
|
||||||
|
@ -843,7 +864,8 @@ class _WalletNetworkSettingsViewState
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (!TorService.sharedInstance.enabled)
|
if (!ref.watch(prefsChangeNotifierProvider
|
||||||
|
.select((value) => value.useTor)))
|
||||||
Container(
|
Container(
|
||||||
width: _iconSize,
|
width: _iconSize,
|
||||||
height: _iconSize,
|
height: _iconSize,
|
||||||
|
|
|
@ -59,7 +59,7 @@ class _TorSettingsState extends ConsumerState<TorSettings> {
|
||||||
width: 200,
|
width: 200,
|
||||||
buttonHeight: ButtonHeight.m,
|
buttonHeight: ButtonHeight.m,
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
// Start the Tor service.
|
// Init the Tor service if it hasn't already been.
|
||||||
ref.read(pTorService).init();
|
ref.read(pTorService).init();
|
||||||
|
|
||||||
// Start the Tor service.
|
// Start the Tor service.
|
||||||
|
|
Loading…
Reference in a new issue