mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-02-02 03:06:35 +00:00
test build
This commit is contained in:
parent
0d91cc35a9
commit
533b978ac1
5 changed files with 112 additions and 5 deletions
|
@ -8,6 +8,7 @@ import 'package:cake_wallet/utils/feature_flag.dart';
|
|||
import 'package:cake_wallet/utils/show_pop_up.dart';
|
||||
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
|
||||
import 'package:cake_wallet/view_model/settings/sync_mode.dart';
|
||||
import 'package:cake_wallet/view_model/settings/tor_connection.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:cake_wallet/routes.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
|
@ -89,17 +90,31 @@ class ConnectionSyncPage extends BasePage {
|
|||
),
|
||||
const StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)),
|
||||
],
|
||||
if (FeatureFlag.isInAppTorEnabled)
|
||||
SettingsCellWithArrow(
|
||||
title: S.current.tor_connection,
|
||||
handler: (context) => Navigator.of(context).pushNamed(Routes.torPage),
|
||||
if (FeatureFlag.isInAppTorEnabled) ...[
|
||||
Observer(builder: (context) {
|
||||
return SettingsPickerCell<TorConnection>(
|
||||
title: S.current.background_sync_mode,
|
||||
items: TorConnection.all,
|
||||
displayItem: (TorConnection torConnection) => torConnection.name,
|
||||
selectedItem: dashboardViewModel.torConnection,
|
||||
onItemSelected: dashboardViewModel.setTorConnection,
|
||||
);
|
||||
}),
|
||||
Container(
|
||||
color: Colors.amber, // TODO: CW-519 change
|
||||
child: Column(children: [
|
||||
SettingsCellWithArrow(
|
||||
title: S.current.tor_connection,
|
||||
handler: (context) => Navigator.of(context).pushNamed(Routes.torPage),
|
||||
),
|
||||
]),
|
||||
),
|
||||
],
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Future<void> _presentReconnectAlert(BuildContext context) async {
|
||||
await showPopUp<void>(
|
||||
context: context,
|
||||
|
|
67
lib/src/screens/settings/widgets/settings_tor_status.dart
Normal file
67
lib/src/screens/settings/widgets/settings_tor_status.dart
Normal file
|
@ -0,0 +1,67 @@
|
|||
import 'package:cake_wallet/routes.dart';
|
||||
import 'package:cake_wallet/src/screens/nodes/widgets/node_indicator.dart';
|
||||
import 'package:cake_wallet/src/widgets/standard_list.dart';
|
||||
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
|
||||
import 'package:cw_core/node.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:cake_wallet/themes/extensions/filter_theme.dart';
|
||||
|
||||
class NodeListRow extends StandardListRow {
|
||||
NodeListRow(
|
||||
{required String title,
|
||||
required this.node,
|
||||
required void Function(BuildContext context) onTap,
|
||||
required bool isSelected,
|
||||
required this.isPow})
|
||||
: super(title: title, onTap: onTap, isSelected: isSelected);
|
||||
|
||||
final Node node;
|
||||
final bool isPow;
|
||||
|
||||
@override
|
||||
Widget buildLeading(BuildContext context) {
|
||||
return FutureBuilder(
|
||||
future: node.requestNode(),
|
||||
builder: (context, snapshot) {
|
||||
switch (snapshot.connectionState) {
|
||||
case ConnectionState.done:
|
||||
return NodeIndicator(isLive: (snapshot.data as bool?) ?? false);
|
||||
default:
|
||||
return NodeIndicator(isLive: false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget buildTrailing(BuildContext context) {
|
||||
return GestureDetector(
|
||||
onTap: () => Navigator.of(context).pushNamed(isPow ? Routes.newPowNode : Routes.newNode,
|
||||
arguments: {'editingNode': node, 'isSelected': isSelected}),
|
||||
child: Container(
|
||||
padding: EdgeInsets.all(10),
|
||||
decoration: BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
color: Theme.of(context)
|
||||
.extension<ReceivePageTheme>()!
|
||||
.iconsBackgroundColor),
|
||||
child: Icon(Icons.edit,
|
||||
size: 14,
|
||||
color: Theme.of(context)
|
||||
.extension<ReceivePageTheme>()!
|
||||
.iconsColor)));
|
||||
}
|
||||
}
|
||||
|
||||
class NodeHeaderListRow extends StandardListRow {
|
||||
NodeHeaderListRow({required String title, required void Function(BuildContext context) onTap})
|
||||
: super(title: title, onTap: onTap, isSelected: false);
|
||||
|
||||
@override
|
||||
Widget buildTrailing(BuildContext context) {
|
||||
return SizedBox(
|
||||
width: 20,
|
||||
child: Icon(Icons.add,
|
||||
color: Theme.of(context).extension<FilterTheme>()!.titlesColor,size: 24.0),
|
||||
);
|
||||
}
|
||||
}
|
|
@ -19,6 +19,7 @@ import 'package:cake_wallet/exchange/provider/trocador_exchange_provider.dart';
|
|||
import 'package:cake_wallet/view_model/settings/sync_mode.dart';
|
||||
import 'package:cake_wallet/utils/device_info.dart';
|
||||
import 'package:cake_wallet/ethereum/ethereum.dart';
|
||||
import 'package:cake_wallet/view_model/settings/tor_connection.dart';
|
||||
import 'package:cw_core/transaction_priority.dart';
|
||||
import 'package:cake_wallet/themes/theme_base.dart';
|
||||
import 'package:cake_wallet/themes/theme_list.dart';
|
||||
|
@ -671,6 +672,9 @@ abstract class SettingsStoreBase with Store {
|
|||
@observable
|
||||
SyncMode currentSyncMode;
|
||||
|
||||
@observable
|
||||
TorConnection currentTorConnection;
|
||||
|
||||
@observable
|
||||
bool currentSyncAll;
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ import 'package:cake_wallet/view_model/dashboard/order_list_item.dart';
|
|||
import 'package:cake_wallet/view_model/dashboard/trade_list_item.dart';
|
||||
import 'package:cake_wallet/view_model/dashboard/transaction_list_item.dart';
|
||||
import 'package:cake_wallet/view_model/settings/sync_mode.dart';
|
||||
import 'package:cake_wallet/view_model/settings/tor_connection.dart';
|
||||
import 'package:cake_wallet/wallet_type_utils.dart';
|
||||
import 'package:cryptography/cryptography.dart';
|
||||
import 'package:cw_core/balance.dart';
|
||||
|
@ -460,6 +461,12 @@ abstract class DashboardViewModelBase with Store {
|
|||
@action
|
||||
void setSyncMode(SyncMode syncMode) => settingsStore.currentSyncMode = syncMode;
|
||||
|
||||
@computed
|
||||
TorConnection get torConnection => settingsStore.currentTorConnection;
|
||||
|
||||
@action
|
||||
void setTorConnection(TorConnection torConnection) => settingsStore.currentTorConnection = torConnection;
|
||||
|
||||
@computed
|
||||
bool get syncAll => settingsStore.currentSyncAll;
|
||||
|
||||
|
|
14
lib/view_model/settings/tor_connection.dart
Normal file
14
lib/view_model/settings/tor_connection.dart
Normal file
|
@ -0,0 +1,14 @@
|
|||
enum TorConnectionType { enabled, disabled, onionOnly }
|
||||
|
||||
class TorConnection {
|
||||
TorConnection(this.name, this.type);
|
||||
|
||||
final String name;
|
||||
final TorConnectionType type;
|
||||
|
||||
static final all = [
|
||||
TorConnection("Enabled", TorConnectionType.enabled),
|
||||
TorConnection("Disabled", TorConnectionType.disabled),
|
||||
TorConnection("Onion Only", TorConnectionType.onionOnly),
|
||||
];
|
||||
}
|
Loading…
Reference in a new issue