diff --git a/assets/svg/configuration.svg b/assets/svg/configuration.svg
new file mode 100644
index 000000000..516bbf320
--- /dev/null
+++ b/assets/svg/configuration.svg
@@ -0,0 +1,11 @@
+
diff --git a/lib/pages_desktop_specific/home/address_book_view/desktop_address_book.dart b/lib/pages_desktop_specific/home/address_book_view/desktop_address_book.dart
index 475650722..407ed9897 100644
--- a/lib/pages_desktop_specific/home/address_book_view/desktop_address_book.dart
+++ b/lib/pages_desktop_specific/home/address_book_view/desktop_address_book.dart
@@ -239,8 +239,8 @@ class _DesktopAddressBook extends ConsumerState {
),
),
),
- Padding(
- padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 26),
+ const Padding(
+ padding: EdgeInsets.symmetric(horizontal: 24, vertical: 26),
child: SizedBox(
width: 489,
child: AddressBookView(),
diff --git a/lib/pages_desktop_specific/home/settings_menu/advanced_settings/advanced_settings.dart b/lib/pages_desktop_specific/home/settings_menu/advanced_settings/advanced_settings.dart
index 8e89e3f67..0991a14ca 100644
--- a/lib/pages_desktop_specific/home/settings_menu/advanced_settings/advanced_settings.dart
+++ b/lib/pages_desktop_specific/home/settings_menu/advanced_settings/advanced_settings.dart
@@ -35,10 +35,13 @@ class _AdvancedSettings extends ConsumerState {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
- SvgPicture.asset(
- Assets.svg.circleLanguage,
- width: 48,
- height: 48,
+ Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: SvgPicture.asset(
+ Assets.svg.circleSliders,
+ width: 48,
+ height: 48,
+ ),
),
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
diff --git a/lib/pages_desktop_specific/home/settings_menu/appearance_settings.dart b/lib/pages_desktop_specific/home/settings_menu/appearance_settings.dart
index bf6fc81e2..27a10ca80 100644
--- a/lib/pages_desktop_specific/home/settings_menu/appearance_settings.dart
+++ b/lib/pages_desktop_specific/home/settings_menu/appearance_settings.dart
@@ -52,10 +52,13 @@ class _AppearanceOptionSettings
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
- SvgPicture.asset(
- Assets.svg.circleSun,
- width: 48,
- height: 48,
+ Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: SvgPicture.asset(
+ Assets.svg.circleSun,
+ width: 48,
+ height: 48,
+ ),
),
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
diff --git a/lib/pages_desktop_specific/home/settings_menu/currency_settings/currency_settings.dart b/lib/pages_desktop_specific/home/settings_menu/currency_settings/currency_settings.dart
index dab613f63..b1581d971 100644
--- a/lib/pages_desktop_specific/home/settings_menu/currency_settings/currency_settings.dart
+++ b/lib/pages_desktop_specific/home/settings_menu/currency_settings/currency_settings.dart
@@ -32,10 +32,13 @@ class _CurrencySettings extends ConsumerState {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
- SvgPicture.asset(
- Assets.svg.circleDollarSign,
- width: 48,
- height: 48,
+ Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: SvgPicture.asset(
+ Assets.svg.circleDollarSign,
+ width: 48,
+ height: 48,
+ ),
),
Center(
child: Padding(
@@ -67,7 +70,7 @@ class _CurrencySettings extends ConsumerState {
padding: EdgeInsets.all(
10,
),
- child: NewPasswordButton(),
+ child: changeCurrency(),
),
],
),
@@ -80,19 +83,11 @@ class _CurrencySettings extends ConsumerState {
}
}
-class NewPasswordButton extends ConsumerWidget {
- const NewPasswordButton({
+class changeCurrency extends ConsumerWidget {
+ const changeCurrency({
Key? key,
}) : super(key: key);
Future chooseCurrency(BuildContext context) async {
- // await showDialog(
- // context: context,
- // useSafeArea: false,
- // barrierDismissible: true,
- // builder: (context) {
- // return CurrencyDialog();
- // },
- // );
await showDialog(
context: context,
useSafeArea: false,
diff --git a/lib/pages_desktop_specific/home/settings_menu/language_settings/language_settings.dart b/lib/pages_desktop_specific/home/settings_menu/language_settings/language_settings.dart
index 0f66d7dd5..2047d4eff 100644
--- a/lib/pages_desktop_specific/home/settings_menu/language_settings/language_settings.dart
+++ b/lib/pages_desktop_specific/home/settings_menu/language_settings/language_settings.dart
@@ -31,10 +31,13 @@ class _LanguageOptionSettings extends ConsumerState {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
- SvgPicture.asset(
- Assets.svg.circleLanguage,
- width: 48,
- height: 48,
+ Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: SvgPicture.asset(
+ Assets.svg.circleLanguage,
+ width: 48,
+ height: 48,
+ ),
),
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
diff --git a/lib/pages_desktop_specific/home/settings_menu/nodes_settings.dart b/lib/pages_desktop_specific/home/settings_menu/nodes_settings.dart
index 2343e3990..0f539f9f3 100644
--- a/lib/pages_desktop_specific/home/settings_menu/nodes_settings.dart
+++ b/lib/pages_desktop_specific/home/settings_menu/nodes_settings.dart
@@ -79,10 +79,13 @@ class _NodesSettings extends ConsumerState {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
- SvgPicture.asset(
- Assets.svg.circleNode,
- width: 48,
- height: 48,
+ Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: SvgPicture.asset(
+ Assets.svg.circleNode,
+ width: 48,
+ height: 48,
+ ),
),
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
diff --git a/lib/pages_desktop_specific/home/settings_menu/security_settings.dart b/lib/pages_desktop_specific/home/settings_menu/security_settings.dart
index d752ece38..01a6c9c9b 100644
--- a/lib/pages_desktop_specific/home/settings_menu/security_settings.dart
+++ b/lib/pages_desktop_specific/home/settings_menu/security_settings.dart
@@ -139,392 +139,389 @@ class _SecuritySettings extends ConsumerState {
debugPrint("BUILD: $runtimeType");
return Column(
children: [
- Row(
- children: [
- Expanded(
- child: RoundedWhiteContainer(
- radiusMultiplier: 2,
- padding: const EdgeInsets.all(24),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- SvgPicture.asset(
- Assets.svg.circleLock,
- width: 48,
- height: 48,
- ),
- Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- const SizedBox(
- height: 16,
- ),
- Text(
- "Change Password",
- style: STextStyles.desktopTextSmall(context),
- ),
- const SizedBox(
- height: 8,
- ),
- Text(
- "Protect your Stack Wallet with a strong password. Stack Wallet does not store "
- "your password, and is therefore NOT able to restore it. Keep your password safe and secure.",
- style:
- STextStyles.desktopTextExtraExtraSmall(context),
- ),
- const SizedBox(
- height: 20,
- ),
- changePassword
- ? SizedBox(
- width: 512,
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Text(
- "Current password",
- style: STextStyles
- .desktopTextExtraExtraSmall(
- context)
- .copyWith(
- color: Theme.of(context)
- .extension()!
- .textDark3),
- textAlign: TextAlign.left,
- ),
- const SizedBox(height: 10),
- ClipRRect(
- borderRadius: BorderRadius.circular(
- Constants.size.circularBorderRadius,
- ),
- child: TextField(
- key: const Key(
- "desktopSecurityRestoreFromFilePasswordFieldKey"),
- focusNode: passwordCurrentFocusNode,
- controller: passwordCurrentController,
- style: STextStyles.field(context),
- obscureText: hidePassword,
- enableSuggestions: false,
- autocorrect: false,
- decoration: standardInputDecoration(
- "Enter current password",
- passwordCurrentFocusNode,
- context,
- ).copyWith(
- labelStyle:
- STextStyles.fieldLabel(context),
- suffixIcon: UnconstrainedBox(
- child: Row(
- children: [
- const SizedBox(
- width: 16,
- ),
- GestureDetector(
- key: const Key(
- "desktopSecurityRestoreFromFilePasswordFieldShowPasswordButtonKey"),
- onTap: () async {
- setState(() {
- hidePassword =
- !hidePassword;
- });
- },
- child: SvgPicture.asset(
- hidePassword
- ? Assets.svg.eye
- : Assets.svg.eyeSlash,
- color: Theme.of(context)
- .extension<
- StackColors>()!
- .textDark3,
- width: 16,
- height: 16,
- ),
- ),
- const SizedBox(
- width: 12,
- ),
- ],
- ),
- ),
- ),
- onChanged: (newValue) {
- setState(() {});
- },
- ),
- ),
- const SizedBox(height: 16),
- Text(
- "New password",
- style: STextStyles
- .desktopTextExtraExtraSmall(
- context)
- .copyWith(
- color: Theme.of(context)
- .extension()!
- .textDark3),
- textAlign: TextAlign.left,
- ),
- const SizedBox(height: 10),
- ClipRRect(
- borderRadius: BorderRadius.circular(
- Constants.size.circularBorderRadius,
- ),
- child: TextField(
- key: const Key(
- "desktopSecurityCreateNewPasswordFieldKey1"),
- focusNode: passwordFocusNode,
- controller: passwordController,
- style: STextStyles.field(context),
- obscureText: hidePassword,
- enableSuggestions: false,
- autocorrect: false,
- decoration: standardInputDecoration(
- "Enter new password",
- passwordFocusNode,
- context,
- ).copyWith(
- labelStyle:
- STextStyles.fieldLabel(context),
- suffixIcon: UnconstrainedBox(
- child: Row(
- children: [
- const SizedBox(
- width: 16,
- ),
- GestureDetector(
- key: const Key(
- "desktopSecurityCreateNewPasswordButtonKey1"),
- onTap: () async {
- setState(() {
- hidePassword =
- !hidePassword;
- });
- },
- child: SvgPicture.asset(
- hidePassword
- ? Assets.svg.eye
- : Assets.svg.eyeSlash,
- color: Theme.of(context)
- .extension<
- StackColors>()!
- .textDark3,
- width: 16,
- height: 16,
- ),
- ),
- const SizedBox(
- width: 12,
- ),
- ],
- ),
- ),
- ),
- onChanged: (newValue) {
- if (newValue.isEmpty) {
- setState(() {
- passwordFeedback = "";
- });
- return;
- }
- final result =
- zxcvbn.evaluate(newValue);
- String suggestionsAndTips = "";
- for (var sug in result
- .feedback.suggestions!
- .toSet()) {
- suggestionsAndTips += "$sug\n";
- }
- suggestionsAndTips +=
- result.feedback.warning!;
- String feedback =
- // "Password Strength: ${((result.score! / 4.0) * 100).toInt()}%\n"
- suggestionsAndTips;
-
- passwordStrength = result.score! / 4;
-
- // hack fix to format back string returned from zxcvbn
- if (feedback
- .contains("phrasesNo need")) {
- feedback = feedback.replaceFirst(
- "phrasesNo need",
- "phrases\nNo need");
- }
-
- if (feedback.endsWith("\n")) {
- feedback = feedback.substring(
- 0, feedback.length - 2);
- }
-
- setState(() {
- passwordFeedback = feedback;
- });
- },
- ),
- ),
- if (passwordFocusNode.hasFocus ||
- passwordRepeatFocusNode.hasFocus ||
- passwordController.text.isNotEmpty)
- Padding(
- padding: EdgeInsets.only(
- left: 12,
- right: 12,
- top: passwordFeedback.isNotEmpty
- ? 4
- : 0,
- ),
- child: passwordFeedback.isNotEmpty
- ? Text(
- passwordFeedback,
- style: STextStyles.infoSmall(
- context),
- )
- : null,
- ),
- if (passwordFocusNode.hasFocus ||
- passwordRepeatFocusNode.hasFocus ||
- passwordController.text.isNotEmpty)
- Padding(
- padding: const EdgeInsets.only(
- left: 12,
- right: 12,
- top: 10,
- ),
- child: ProgressBar(
- key: const Key(
- "desktopSecurityCreateStackBackUpProgressBar"),
- width: 450,
- height: 5,
- fillColor: passwordStrength < 0.51
- ? Theme.of(context)
- .extension()!
- .accentColorRed
- : passwordStrength < 1
- ? Theme.of(context)
- .extension()!
- .accentColorYellow
- : Theme.of(context)
- .extension()!
- .accentColorGreen,
- backgroundColor: Theme.of(context)
- .extension()!
- .buttonBackSecondary,
- percent: passwordStrength < 0.25
- ? 0.03
- : passwordStrength,
- ),
- ),
- const SizedBox(height: 16),
- Text(
- "Confirm new password",
- style: STextStyles
- .desktopTextExtraExtraSmall(
- context)
- .copyWith(
- color: Theme.of(context)
- .extension()!
- .textDark3),
- textAlign: TextAlign.left,
- ),
- const SizedBox(height: 10),
- ClipRRect(
- borderRadius: BorderRadius.circular(
- Constants.size.circularBorderRadius,
- ),
- child: TextField(
- key: const Key(
- "desktopSecurityCreateNewPasswordFieldKey2"),
- focusNode: passwordRepeatFocusNode,
- controller: passwordRepeatController,
- style: STextStyles.field(context),
- obscureText: hidePassword,
- enableSuggestions: false,
- autocorrect: false,
- decoration: standardInputDecoration(
- "Confirm new password",
- passwordRepeatFocusNode,
- context,
- ).copyWith(
- labelStyle:
- STextStyles.fieldLabel(context),
- suffixIcon: UnconstrainedBox(
- child: Row(
- children: [
- const SizedBox(
- width: 16,
- ),
- GestureDetector(
- key: const Key(
- "desktopSecurityCreateNewPasswordButtonKey2"),
- onTap: () async {
- setState(() {
- hidePassword =
- !hidePassword;
- });
- },
- child: SvgPicture.asset(
- hidePassword
- ? Assets.svg.eye
- : Assets.svg.eyeSlash,
- color: Theme.of(context)
- .extension<
- StackColors>()!
- .textDark3,
- width: 16,
- height: 16,
- ),
- ),
- const SizedBox(
- width: 12,
- ),
- ],
- ),
- ),
- ),
- onChanged: (newValue) {
- setState(() {});
- },
- ),
- ),
- const SizedBox(height: 20),
- PrimaryButton(
- width: 160,
- desktopMed: true,
- enabled: shouldEnableSave,
- label: "Save changes",
- onPressed: () async {
- final didChangePW =
- await attemptChangePW();
- if (didChangePW) {
- setState(() {
- changePassword = false;
- });
- }
- },
- )
- ],
- ),
- )
- : PrimaryButton(
- width: 210,
- desktopMed: true,
- enabled: true,
- label: "Set up new password",
- onPressed: () {
- setState(() {
- changePassword = true;
- });
- },
- ),
- ],
- ),
- ],
+ Padding(
+ padding: const EdgeInsets.only(
+ right: 30,
+ ),
+ child: RoundedWhiteContainer(
+ // radiusMultiplier: 2,
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: SvgPicture.asset(
+ Assets.svg.circleLock,
+ width: 48,
+ height: 48,
+ ),
),
- ),
+ Padding(
+ padding:
+ const EdgeInsets.only(left: 10, right: 10, bottom: 10),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ const SizedBox(
+ height: 16,
+ ),
+ Text(
+ "Change Password",
+ style: STextStyles.desktopTextSmall(context),
+ ),
+ const SizedBox(
+ height: 8,
+ ),
+ Text(
+ "Protect your Stack Wallet with a strong password. Stack Wallet does not store "
+ "your password, and is therefore NOT able to restore it. Keep your password safe and secure.",
+ style: STextStyles.desktopTextExtraExtraSmall(context),
+ ),
+ const SizedBox(
+ height: 20,
+ ),
+ changePassword
+ ? SizedBox(
+ width: 512,
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(
+ "Current password",
+ style:
+ STextStyles.desktopTextExtraExtraSmall(
+ context)
+ .copyWith(
+ color: Theme.of(context)
+ .extension()!
+ .textDark3),
+ textAlign: TextAlign.left,
+ ),
+ const SizedBox(height: 10),
+ ClipRRect(
+ borderRadius: BorderRadius.circular(
+ Constants.size.circularBorderRadius,
+ ),
+ child: TextField(
+ key: const Key(
+ "desktopSecurityRestoreFromFilePasswordFieldKey"),
+ focusNode: passwordCurrentFocusNode,
+ controller: passwordCurrentController,
+ style: STextStyles.field(context),
+ obscureText: hidePassword,
+ enableSuggestions: false,
+ autocorrect: false,
+ decoration: standardInputDecoration(
+ "Enter current password",
+ passwordCurrentFocusNode,
+ context,
+ ).copyWith(
+ labelStyle:
+ STextStyles.fieldLabel(context),
+ suffixIcon: UnconstrainedBox(
+ child: Row(
+ children: [
+ const SizedBox(
+ width: 16,
+ ),
+ GestureDetector(
+ key: const Key(
+ "desktopSecurityRestoreFromFilePasswordFieldShowPasswordButtonKey"),
+ onTap: () async {
+ setState(() {
+ hidePassword =
+ !hidePassword;
+ });
+ },
+ child: SvgPicture.asset(
+ hidePassword
+ ? Assets.svg.eye
+ : Assets.svg.eyeSlash,
+ color: Theme.of(context)
+ .extension()!
+ .textDark3,
+ width: 16,
+ height: 16,
+ ),
+ ),
+ const SizedBox(
+ width: 12,
+ ),
+ ],
+ ),
+ ),
+ ),
+ onChanged: (newValue) {
+ setState(() {});
+ },
+ ),
+ ),
+ const SizedBox(height: 16),
+ Text(
+ "New password",
+ style:
+ STextStyles.desktopTextExtraExtraSmall(
+ context)
+ .copyWith(
+ color: Theme.of(context)
+ .extension()!
+ .textDark3),
+ textAlign: TextAlign.left,
+ ),
+ const SizedBox(height: 10),
+ ClipRRect(
+ borderRadius: BorderRadius.circular(
+ Constants.size.circularBorderRadius,
+ ),
+ child: TextField(
+ key: const Key(
+ "desktopSecurityCreateNewPasswordFieldKey1"),
+ focusNode: passwordFocusNode,
+ controller: passwordController,
+ style: STextStyles.field(context),
+ obscureText: hidePassword,
+ enableSuggestions: false,
+ autocorrect: false,
+ decoration: standardInputDecoration(
+ "Enter new password",
+ passwordFocusNode,
+ context,
+ ).copyWith(
+ labelStyle:
+ STextStyles.fieldLabel(context),
+ suffixIcon: UnconstrainedBox(
+ child: Row(
+ children: [
+ const SizedBox(
+ width: 16,
+ ),
+ GestureDetector(
+ key: const Key(
+ "desktopSecurityCreateNewPasswordButtonKey1"),
+ onTap: () async {
+ setState(() {
+ hidePassword =
+ !hidePassword;
+ });
+ },
+ child: SvgPicture.asset(
+ hidePassword
+ ? Assets.svg.eye
+ : Assets.svg.eyeSlash,
+ color: Theme.of(context)
+ .extension()!
+ .textDark3,
+ width: 16,
+ height: 16,
+ ),
+ ),
+ const SizedBox(
+ width: 12,
+ ),
+ ],
+ ),
+ ),
+ ),
+ onChanged: (newValue) {
+ if (newValue.isEmpty) {
+ setState(() {
+ passwordFeedback = "";
+ });
+ return;
+ }
+ final result =
+ zxcvbn.evaluate(newValue);
+ String suggestionsAndTips = "";
+ for (var sug in result
+ .feedback.suggestions!
+ .toSet()) {
+ suggestionsAndTips += "$sug\n";
+ }
+ suggestionsAndTips +=
+ result.feedback.warning!;
+ String feedback =
+ // "Password Strength: ${((result.score! / 4.0) * 100).toInt()}%\n"
+ suggestionsAndTips;
+
+ passwordStrength = result.score! / 4;
+
+ // hack fix to format back string returned from zxcvbn
+ if (feedback
+ .contains("phrasesNo need")) {
+ feedback = feedback.replaceFirst(
+ "phrasesNo need",
+ "phrases\nNo need");
+ }
+
+ if (feedback.endsWith("\n")) {
+ feedback = feedback.substring(
+ 0, feedback.length - 2);
+ }
+
+ setState(() {
+ passwordFeedback = feedback;
+ });
+ },
+ ),
+ ),
+ if (passwordFocusNode.hasFocus ||
+ passwordRepeatFocusNode.hasFocus ||
+ passwordController.text.isNotEmpty)
+ Padding(
+ padding: EdgeInsets.only(
+ left: 12,
+ right: 12,
+ top:
+ passwordFeedback.isNotEmpty ? 4 : 0,
+ ),
+ child: passwordFeedback.isNotEmpty
+ ? Text(
+ passwordFeedback,
+ style: STextStyles.infoSmall(
+ context),
+ )
+ : null,
+ ),
+ if (passwordFocusNode.hasFocus ||
+ passwordRepeatFocusNode.hasFocus ||
+ passwordController.text.isNotEmpty)
+ Padding(
+ padding: const EdgeInsets.only(
+ left: 12,
+ right: 12,
+ top: 10,
+ ),
+ child: ProgressBar(
+ key: const Key(
+ "desktopSecurityCreateStackBackUpProgressBar"),
+ width: 450,
+ height: 5,
+ fillColor: passwordStrength < 0.51
+ ? Theme.of(context)
+ .extension()!
+ .accentColorRed
+ : passwordStrength < 1
+ ? Theme.of(context)
+ .extension()!
+ .accentColorYellow
+ : Theme.of(context)
+ .extension()!
+ .accentColorGreen,
+ backgroundColor: Theme.of(context)
+ .extension()!
+ .buttonBackSecondary,
+ percent: passwordStrength < 0.25
+ ? 0.03
+ : passwordStrength,
+ ),
+ ),
+ const SizedBox(height: 16),
+ Text(
+ "Confirm new password",
+ style:
+ STextStyles.desktopTextExtraExtraSmall(
+ context)
+ .copyWith(
+ color: Theme.of(context)
+ .extension()!
+ .textDark3),
+ textAlign: TextAlign.left,
+ ),
+ const SizedBox(height: 10),
+ ClipRRect(
+ borderRadius: BorderRadius.circular(
+ Constants.size.circularBorderRadius,
+ ),
+ child: TextField(
+ key: const Key(
+ "desktopSecurityCreateNewPasswordFieldKey2"),
+ focusNode: passwordRepeatFocusNode,
+ controller: passwordRepeatController,
+ style: STextStyles.field(context),
+ obscureText: hidePassword,
+ enableSuggestions: false,
+ autocorrect: false,
+ decoration: standardInputDecoration(
+ "Confirm new password",
+ passwordRepeatFocusNode,
+ context,
+ ).copyWith(
+ labelStyle:
+ STextStyles.fieldLabel(context),
+ suffixIcon: UnconstrainedBox(
+ child: Row(
+ children: [
+ const SizedBox(
+ width: 16,
+ ),
+ GestureDetector(
+ key: const Key(
+ "desktopSecurityCreateNewPasswordButtonKey2"),
+ onTap: () async {
+ setState(() {
+ hidePassword =
+ !hidePassword;
+ });
+ },
+ child: SvgPicture.asset(
+ hidePassword
+ ? Assets.svg.eye
+ : Assets.svg.eyeSlash,
+ color: Theme.of(context)
+ .extension()!
+ .textDark3,
+ width: 16,
+ height: 16,
+ ),
+ ),
+ const SizedBox(
+ width: 12,
+ ),
+ ],
+ ),
+ ),
+ ),
+ onChanged: (newValue) {
+ setState(() {});
+ },
+ ),
+ ),
+ const SizedBox(height: 20),
+ PrimaryButton(
+ width: 160,
+ desktopMed: true,
+ enabled: shouldEnableSave,
+ label: "Save changes",
+ onPressed: () async {
+ final didChangePW =
+ await attemptChangePW();
+ if (didChangePW) {
+ setState(() {
+ changePassword = false;
+ });
+ }
+ },
+ )
+ ],
+ ),
+ )
+ : PrimaryButton(
+ width: 210,
+ desktopMed: true,
+ enabled: true,
+ label: "Set up new password",
+ onPressed: () {
+ setState(() {
+ changePassword = true;
+ });
+ },
+ ),
+ ],
+ ),
+ ),
+ ],
),
- const SizedBox(
- width: 40,
- ),
- ],
+ ),
),
],
);
diff --git a/lib/pages_desktop_specific/home/settings_menu/syncing_preferences_settings.dart b/lib/pages_desktop_specific/home/settings_menu/syncing_preferences_settings.dart
index 7f6aac260..618ee56da 100644
--- a/lib/pages_desktop_specific/home/settings_menu/syncing_preferences_settings.dart
+++ b/lib/pages_desktop_specific/home/settings_menu/syncing_preferences_settings.dart
@@ -2,13 +2,12 @@ import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart';
+import 'package:stackwallet/pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart';
import 'package:stackwallet/utilities/assets.dart';
import 'package:stackwallet/utilities/text_styles.dart';
import 'package:stackwallet/utilities/theme/stack_colors.dart';
import 'package:stackwallet/widgets/rounded_white_container.dart';
-import '../../../pages/settings_views/global_settings_view/syncing_preferences_views/syncing_options_view.dart';
-
class SyncingPreferencesSettings extends ConsumerStatefulWidget {
const SyncingPreferencesSettings({Key? key}) : super(key: key);
@@ -34,10 +33,13 @@ class _SyncingPreferencesSettings
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
- SvgPicture.asset(
- Assets.svg.circleArrowRotate,
- width: 48,
- height: 48,
+ Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: SvgPicture.asset(
+ Assets.svg.circleArrowRotate,
+ width: 48,
+ height: 48,
+ ),
),
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
diff --git a/lib/utilities/assets.dart b/lib/utilities/assets.dart
index e76a17c12..38d720969 100644
--- a/lib/utilities/assets.dart
+++ b/lib/utilities/assets.dart
@@ -59,6 +59,7 @@ class _SVG {
String txExchangeFailed(BuildContext context) =>
"assets/svg/${Theme.of(context).extension()!.themeType.name}/tx-exchange-icon-failed.svg";
+ String get circleSliders => "assets/svg/configuration.svg";
String get circlePlus => "assets/svg/plus-circle.svg";
String get framedGear => "assets/svg/framed-gear.svg";
String get framedAddressBook => "assets/svg/framed-address-book.svg";
diff --git a/pubspec.yaml b/pubspec.yaml
index 10a00ff2e..bba5f6ed2 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -315,6 +315,7 @@ flutter:
- assets/svg/keys.svg
- assets/svg/arrow-down.svg
- assets/svg/plus-circle.svg
+ - assets/svg/configuration.svg
# coin icons
- assets/svg/coin_icons/Bitcoin.svg
- assets/svg/coin_icons/Litecoin.svg