add just one row of the needed tor status network status dialog row

This commit is contained in:
sneurlax 2023-09-08 15:50:25 -05:00
parent 9d6cdfd2c1
commit afcd6d14dc

View file

@ -27,8 +27,10 @@ import 'package:stackwallet/services/coins/wownero/wownero_wallet.dart';
import 'package:stackwallet/services/event_bus/events/global/blocks_remaining_event.dart'; import 'package:stackwallet/services/event_bus/events/global/blocks_remaining_event.dart';
import 'package:stackwallet/services/event_bus/events/global/node_connection_status_changed_event.dart'; import 'package:stackwallet/services/event_bus/events/global/node_connection_status_changed_event.dart';
import 'package:stackwallet/services/event_bus/events/global/refresh_percent_changed_event.dart'; import 'package:stackwallet/services/event_bus/events/global/refresh_percent_changed_event.dart';
import 'package:stackwallet/services/event_bus/events/global/tor_connection_status_changed_event.dart';
import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart';
import 'package:stackwallet/services/event_bus/global_event_bus.dart'; import 'package:stackwallet/services/event_bus/global_event_bus.dart';
import 'package:stackwallet/services/tor_service.dart';
import 'package:stackwallet/themes/stack_colors.dart'; 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';
@ -92,6 +94,13 @@ class _WalletNetworkSettingsViewState
late int _blocksRemaining; late int _blocksRemaining;
bool _advancedIsExpanded = false; bool _advancedIsExpanded = false;
/// The current status of the Tor connection.
late TorConnectionStatus _torConnectionStatus;
/// The subscription to the TorConnectionStatusChangedEvent.
late final StreamSubscription<TorConnectionStatusChangedEvent>
_torConnectionStatusSubscription;
Future<void> _attemptRescan() async { Future<void> _attemptRescan() async {
if (!Platform.isLinux) await Wakelock.enable(); if (!Platform.isLinux) await Wakelock.enable();
@ -268,6 +277,25 @@ class _WalletNetworkSettingsViewState
// } // }
// }, // },
// ); // );
// Initialize the TorConnectionStatus.
_torConnectionStatus = ref.read(pTorService).enabled
? TorConnectionStatus.connected
: TorConnectionStatus.disconnected;
// Subscribe to the TorConnectionStatusChangedEvent.
_torConnectionStatusSubscription =
eventBus.on<TorConnectionStatusChangedEvent>().listen(
(event) async {
// Rebuild the widget.
setState(() {
_torConnectionStatus = event.newStatus;
});
// TODO implement spinner or animations and control from here
},
);
super.initState(); super.initState();
} }
@ -749,6 +777,53 @@ class _WalletNetworkSettingsViewState
SizedBox( SizedBox(
height: isDesktop ? 32 : 20, height: isDesktop ? 32 : 20,
), ),
if (TorService.sharedInstance.enabled)
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
"Tor status",
textAlign: TextAlign.left,
style: isDesktop
? STextStyles.desktopTextExtraExtraSmall(context)
: STextStyles.smallMed12(context),
),
GestureDetector(
onTap: () {
TorService.sharedInstance.stop();
},
child: Text(
"Disconnect",
style: STextStyles.link2(context),
),
),
],
),
if (!TorService.sharedInstance.enabled)
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
"Tor status",
textAlign: TextAlign.left,
style: isDesktop
? STextStyles.desktopTextExtraExtraSmall(context)
: STextStyles.smallMed12(context),
),
GestureDetector(
onTap: () {
TorService.sharedInstance.start();
},
child: Text(
"Connect",
style: STextStyles.link2(context),
),
),
],
),
SizedBox(
height: isDesktop ? 12 : 9,
),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [