test build

This commit is contained in:
Matthew Fosse 2024-01-02 12:10:54 -05:00
parent 0d91cc35a9
commit 533b978ac1
5 changed files with 112 additions and 5 deletions

View file

@ -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,

View 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),
);
}
}

View file

@ -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;

View file

@ -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;

View 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),
];
}