Skip to content
Merged

1.4.5 #307

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
67d8c74
Translated using Weblate (Russian)
yurtpage Mar 8, 2025
dbf2ba9
Translated using Weblate (Russian)
sandakersmann Mar 10, 2025
e81de90
Translated using Weblate (Norwegian Bokmål)
sandakersmann Mar 10, 2025
82cc644
Translated using Weblate (Croatian)
peerchemist Mar 12, 2025
abc470d
Translated using Weblate (Croatian)
peerchemist Mar 24, 2025
de01c21
Translated using Weblate (Spanish)
azagramac May 6, 2025
7866124
Merge branch 'origin/main' into Weblate.
weblate May 17, 2025
183023a
Merge branch 'origin/main' into Weblate.
weblate May 17, 2025
b97aa12
Merge branch 'origin/main' into Weblate.
weblate May 17, 2025
e38181c
Merge branch 'origin/main' into Weblate.
weblate May 17, 2025
c8cae07
Translated using Weblate (Norwegian Bokmål)
sandakersmann May 18, 2025
aa98701
Translated using Weblate (Norwegian Bokmål)
sandakersmann May 20, 2025
97cf795
Translated using Weblate (Swahili)
sandakersmann May 21, 2025
fd2c541
Translated using Weblate (Swedish)
sandakersmann May 21, 2025
3df9f6b
Translated using Weblate (Danish)
sandakersmann May 22, 2025
e2f16d0
Translated using Weblate (Spanish)
CriptoCatia May 25, 2025
5ac9d05
Translated using Weblate (Spanish)
sandakersmann May 25, 2025
6a31756
Translated using Weblate (Spanish)
CriptoCatia May 25, 2025
740c954
Translated using Weblate (Spanish)
sandakersmann May 25, 2025
e68463f
Translated using Weblate (Spanish)
sandakersmann May 25, 2025
061380c
Translated using Weblate (Icelandic)
sandakersmann May 24, 2025
5f76b42
Merge branch 'origin/main' into Weblate.
weblate May 26, 2025
5997bff
Merge branch 'origin/main' into Weblate.
weblate May 26, 2025
f321272
Merge branch 'origin/main' into Weblate.
weblate May 26, 2025
3825117
Translated using Weblate (Swahili)
sandakersmann May 27, 2025
a32d54c
Translated using Weblate (Swedish)
sandakersmann May 27, 2025
3b1e3d2
Translated using Weblate (Danish)
sandakersmann May 27, 2025
d6dd996
Translated using Weblate (Icelandic)
sandakersmann May 27, 2025
9e0e629
Merge branch 'origin/main' into Weblate.
weblate May 29, 2025
83ba3a9
Merge branch 'origin/main' into Weblate.
weblate May 29, 2025
ffdd046
Merge branch 'origin/main' into Weblate.
weblate May 29, 2025
b414aec
Merge branch 'origin/main' into Weblate.
weblate May 29, 2025
383487e
Merge branch 'origin/main' into Weblate.
weblate May 29, 2025
f1cd87b
Merge branch 'origin/main' into Weblate.
weblate May 29, 2025
789b20c
Merge branch 'origin/main' into Weblate.
weblate May 30, 2025
8e75c4a
Merge branch 'origin/main' into Weblate.
weblate May 30, 2025
e05f641
Translated using Weblate (Spanish)
sandakersmann May 29, 2025
6eda791
Translated using Weblate (Norwegian Bokmål)
sandakersmann May 29, 2025
1fb793b
Translated using Weblate (Swedish)
sandakersmann May 29, 2025
97c722e
Translated using Weblate (Danish)
sandakersmann May 29, 2025
6e22b43
Translated using Weblate (Icelandic)
sandakersmann May 29, 2025
9509bd8
Merge branch 'origin/main' into Weblate.
weblate Jun 20, 2025
f9a5048
Merge branch 'origin/main' into Weblate.
weblate Jun 25, 2025
61d563b
Translated using Weblate (Norwegian Bokmål)
sandakersmann Jun 25, 2025
2ddc14b
Translated using Weblate (Swedish)
sandakersmann Jun 25, 2025
84645ab
Translated using Weblate (Danish)
sandakersmann Jun 25, 2025
f31d9fd
Translated using Weblate (Icelandic)
sandakersmann Jun 25, 2025
88dcb09
version bump
willyfromtheblock Jul 18, 2025
47e11f8
Merge branch 'main' of https://weblate.ppc.lol/git/peercoin-flutter/t…
willyfromtheblock Jul 18, 2025
dd02492
feat(roast): Implement import/export functionality for group configur…
willyfromtheblock Jul 18, 2025
c20b3ef
feat: Add key info popup and refactor ROAST group configuration handling
willyfromtheblock Jul 18, 2025
e4b7f8b
refactor: Move ROAST group export configuration to a new location and…
willyfromtheblock Jul 18, 2025
f5a37a6
fix: Enhance YAML value formatting and error logging in ROAST group e…
willyfromtheblock Jul 18, 2025
cd40a5e
feat(roast): Add error handling for participant addition and update t…
willyfromtheblock Jul 18, 2025
7c57468
feat(roast): Improve YAML value formatting and enhance success messag…
willyfromtheblock Jul 18, 2025
1a10b35
fix(roast): Simplify validation logic by removing redundant serverUrl…
willyfromtheblock Jul 18, 2025
359ec7d
fix(roast): Refactor success message handling in export configuration
willyfromtheblock Jul 18, 2025
60b5dfb
fix(roast): Clean up control characters in export content and ensure …
willyfromtheblock Jul 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,7 @@ app.*.map.json
.vscode/settings.json
ios/build
test.dart
android/app/.cxx
android/app/.cxx
.claude
CLAUDE.md
tasks/
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
### **1.4.5** (2025-07-16)

- Allow import and export of unfinshed ROAST group data in YAML format

### **1.4.4** (2025-06-25)

- UI Improvements for ROAST participant onboarding
Expand Down
16 changes: 15 additions & 1 deletion assets/translations/da.json
Original file line number Diff line number Diff line change
Expand Up @@ -693,5 +693,19 @@
"roast_hd_index_empty_error": "HD-indekset må ikke være tomt",
"roast_hd_index_invalid_error": "Indtast venligst et gyldigt nummer",
"cancel": "Ophæve",
"confirm": "Bekræft"
"confirm": "Bekræft",
"roast_setup_qr_invalid_format": "Ugyldigt format for QR-kode",
"roast_setup_share_participant_qr_title": "Del som QR-kode",
"roast_setup_share_participant_qr_description": "Andre kan scanne denne QR-kode for at tilføje dig som deltager",
"roast_setup_share_participant_qr_share": "Del QR-data",
"roast_setup_group_member_manual_entry_hint": "Eller indtast deltageroplysninger manuelt:",
"roast_setup_share_participant_details_title": "Del Deltageroplysninger",
"roast_setup_share_participant_name_title": "Navn",
"roast_setup_share_participant_identifier_title": "Identifikator",
"roast_setup_share_participant_identifier_description": "Unik identifikator genereret ud fra dit navn",
"roast_setup_share_participant_pubkey_title": "Offentlig Nøgle",
"roast_setup_scan_qr_participant": "Scan QR-koden For Deltageren",
"roast_setup_qr_scan_title": "Scan Deltagerens QR-kode",
"roast_setup_participant_data_loaded_from_qr": "Deltagerdata indlæst fra QR-kode",
"roast_setup_share_participant_pubkey_description": "Din kryptografiske offentlige nøgle (hexadecimalt format)"
}
30 changes: 29 additions & 1 deletion assets/translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -707,5 +707,33 @@
"roast_setup_share_participant_identifier_title": "Identifier",
"roast_setup_share_participant_identifier_description": "Unique identifier generated from your name",
"roast_setup_share_participant_pubkey_title": "Public Key",
"roast_setup_share_participant_pubkey_description": "Your cryptographic public key (hex format)"
"roast_setup_share_participant_pubkey_description": "Your cryptographic public key (hex format)",
"roast_import_button": "Import Group Configuration",
"roast_import_importing": "Importing...",
"roast_import_success": "Successfully imported %count% participants",
"roast_import_error": "Failed to import configuration",
"roast_export_button": "Export Group Configuration",
"roast_export_exporting": "Exporting...",
"roast_export_success": "Group configuration exported successfully",
"roast_export_error": "Failed to export configuration",
"roast_import_config_loaded": "Configuration loaded from import",
"roast_import_participant_count": "%count% participants imported",
"roast_import_validation_status": "Import Validation Status",
"roast_import_validation_min_participants": "Participants: %count% (minimum %min% required)",
"roast_import_validation_includes_you": "✓ Your identity is included in the group",
"roast_import_validation_add_yourself": "ⓘ Add yourself to the group if needed",
"roast_import_validation_ready": "✓ Group is ready for ROAST setup",
"roast_import_validation_not_ready": "⚠ Group needs more participants",
"roast_import_confirm_title": "Import Group Configuration",
"roast_import_confirm_description": "This will replace your current group setup with the imported configuration. Any existing participants will be removed.",
"roast_import_confirm_button": "Import",
"roast_export_confirm_title": "Export Group Configuration",
"roast_export_confirm_description": "Export your current group configuration to share with other participants.",
"roast_export_confirm_button": "Export",
"roast_export_preview_title": "Export Preview",
"roast_export_preview_participants": "Participants",
"roast_export_preview_filename": "Filename",
"roast_wallet_show_key_info": "Show Key Information",
"roast_wallet_show_key_info_title": "Your HD Key Index",
"roast_add_participant_error": "Error adding participant"
}
16 changes: 15 additions & 1 deletion assets/translations/is.json
Original file line number Diff line number Diff line change
Expand Up @@ -693,5 +693,19 @@
"roast_hd_index_empty_error": "HD vísitalan má ekki vera tóm",
"roast_hd_index_range_error": "Vísitala verður að vera meiri en eða jöfn 0",
"confirm": "Staðfesta",
"cancel": "Hætta Við"
"cancel": "Hætta Við",
"roast_setup_qr_scan_title": "Skannaðu QR Kóða Þátttakandans",
"roast_setup_qr_invalid_format": "Ógilt snið QR kóða",
"roast_setup_share_participant_qr_title": "Deila sem QR kóða",
"roast_setup_share_participant_qr_share": "Deila QR Gögnum",
"roast_setup_participant_data_loaded_from_qr": "Þátttakandagögn sótt úr QR kóða",
"roast_setup_group_member_manual_entry_hint": "Eða sláðu inn upplýsingar um þátttakanda handvirkt:",
"roast_setup_share_participant_details_title": "Deila Upplýsingum Um Þátttakanda",
"roast_setup_share_participant_name_title": "Nafn",
"roast_setup_share_participant_identifier_title": "Auðkenni",
"roast_setup_scan_qr_participant": "Skannaðu QR Kóða Fyrir Þátttakanda",
"roast_setup_share_participant_qr_description": "Aðrir geta skannað þennan QR kóða til að bæta þér við sem þátttakanda",
"roast_setup_share_participant_identifier_description": "Einkvæmt auðkenni búið til úr nafni þínu",
"roast_setup_share_participant_pubkey_title": "Opinber Lykill",
"roast_setup_share_participant_pubkey_description": "Dulkóðunarlykillinn þinn (sextándakerfisform)"
}
16 changes: 15 additions & 1 deletion assets/translations/nb_NO.json
Original file line number Diff line number Diff line change
Expand Up @@ -693,5 +693,19 @@
"roast_hd_index_invalid_error": "Vennligst skriv inn et gyldig nummer",
"roast_hd_index_range_error": "Indeksen må være større enn eller lik 0",
"confirm": "Bekreft",
"cancel": "Avbryt"
"cancel": "Avbryt",
"roast_setup_qr_scan_title": "Skann Deltakerens QR-kode",
"roast_setup_qr_invalid_format": "Ugyldig format for QR-kode",
"roast_setup_share_participant_qr_title": "Del som QR-kode",
"roast_setup_share_participant_qr_share": "Del QR-data",
"roast_setup_participant_data_loaded_from_qr": "Deltakerdata lastet inn fra QR-kode",
"roast_setup_group_member_manual_entry_hint": "Eller skriv inn detaljer for deltaker manuelt:",
"roast_setup_share_participant_details_title": "Del Detaljer For Deltaker",
"roast_setup_share_participant_name_title": "Navn",
"roast_setup_share_participant_identifier_title": "Identifikator",
"roast_setup_share_participant_identifier_description": "Unik identifikator generert fra navnet ditt",
"roast_setup_share_participant_pubkey_title": "Offentlig Nøkkel",
"roast_setup_scan_qr_participant": "Skann QR-kode For Deltaker",
"roast_setup_share_participant_qr_description": "Andre kan skanne denne QR-koden for å legge deg til som deltaker",
"roast_setup_share_participant_pubkey_description": "Din kryptografiske offentlige nøkkel (heksadesimalt format)"
}
16 changes: 15 additions & 1 deletion assets/translations/sv.json
Original file line number Diff line number Diff line change
Expand Up @@ -693,5 +693,19 @@
"roast_hd_index_empty_error": "HD-indexet kan inte vara tomt",
"roast_hd_index_invalid_error": "Var vänlig ange ett giltigt nummer",
"confirm": "Bekräfta",
"cancel": "Avboka"
"cancel": "Avboka",
"roast_setup_qr_scan_title": "Skanna Deltagarens QR-kod",
"roast_setup_share_participant_qr_title": "Dela som QR-kod",
"roast_setup_share_participant_qr_description": "Andra kan skanna den här QR-koden för att lägga till dig som deltagare",
"roast_setup_share_participant_qr_share": "Dela QR-data",
"roast_setup_group_member_manual_entry_hint": "Eller ange deltagaruppgifter manuellt:",
"roast_setup_share_participant_details_title": "Dela Deltagaruppgifter",
"roast_setup_share_participant_name_title": "Namn",
"roast_setup_share_participant_identifier_title": "Identifierare",
"roast_setup_share_participant_identifier_description": "Unik identifierare genererad från ditt namn",
"roast_setup_share_participant_pubkey_title": "Offentlig Nyckel",
"roast_setup_scan_qr_participant": "Skanna QR-koden För Deltagaren",
"roast_setup_qr_invalid_format": "Ogiltigt format för QR-kod",
"roast_setup_participant_data_loaded_from_qr": "Deltagardata laddad från QR-kod",
"roast_setup_share_participant_pubkey_description": "Din kryptografiska offentliga nyckel (hexadecimalt format)"
}
69 changes: 69 additions & 0 deletions lib/exceptions/roast_config_exceptions.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/// Custom exceptions for ROAST group configuration export/import operations
library roast_config_exceptions;

/// Base exception class for ROAST configuration operations
abstract class ROASTConfigException implements Exception {
final String message;
final String? details;

const ROASTConfigException(this.message, {this.details});

@override
String toString() {
if (details != null) {
return 'ROASTConfigException: $message\nDetails: $details';
}
return 'ROASTConfigException: $message';
}
}

/// Exception thrown when YAML format is invalid or cannot be parsed
class InvalidYAMLFormatException extends ROASTConfigException {
const InvalidYAMLFormatException(
super.message, {
super.details,
});
}

/// Exception thrown when file operations fail
class FileOperationException extends ROASTConfigException {
final String operation;
final String? filePath;

const FileOperationException(
this.operation,
super.message, {
this.filePath,
super.details,
});

@override
String toString() {
String result = 'FileOperationException: $message\nOperation: $operation';
if (filePath != null) {
result += '\nFile: $filePath';
}
return result;
}
}

/// Exception thrown when configuration validation fails
class ConfigValidationException extends ROASTConfigException {
final List<String> validationErrors;

const ConfigValidationException(
super.message,
this.validationErrors, {
super.details,
});

@override
String toString() {
String result = 'ConfigValidationException: $message';
if (validationErrors.isNotEmpty) {
result +=
'\nValidation errors:\n${validationErrors.map((e) => ' - $e').join('\n')}';
}
return result;
}
}
51 changes: 41 additions & 10 deletions lib/screens/wallet/roast/roast_wallet_home.dart
Original file line number Diff line number Diff line change
Expand Up @@ -366,44 +366,59 @@ class _ROASTWalletHomeScreenState extends State<ROASTWalletHomeScreen> {
),
),
),
if (_roastWallet.isCompleted)
PopupMenuItem(
value: 'export_roast_group',
child: ListTile(
leading: Icon(
Icons.share,
color: Theme.of(context).colorScheme.secondary,
),
title: Text(
AppLocalizations.instance.translate(
'roast_wallet_share_group_config',
),
),
),
),
PopupMenuItem(
value: 'export_roast_group',
value: 'change_server_url',
child: ListTile(
leading: Icon(
Icons.share,
Icons.dns,
color: Theme.of(context).colorScheme.secondary,
),
title: Text(
AppLocalizations.instance.translate(
'roast_wallet_share_group_config',
'roast_landing_configured_edit_server_url_title',
),
),
),
),
PopupMenuItem(
value: 'change_server_url',
value: 'delete_roast_group',
child: ListTile(
leading: Icon(
Icons.dns,
Icons.delete_forever,
color: Theme.of(context).colorScheme.secondary,
),
title: Text(
AppLocalizations.instance.translate(
'roast_landing_configured_edit_server_url_title',
'delete_wallet',
),
),
),
),
PopupMenuItem(
value: 'delete_roast_group',
value: 'show_key_info',
child: ListTile(
leading: Icon(
Icons.delete_forever,
Icons.key,
color: Theme.of(context).colorScheme.secondary,
),
title: Text(
AppLocalizations.instance.translate(
'delete_wallet',
'roast_wallet_show_key_info',
),
),
),
Expand Down Expand Up @@ -455,7 +470,23 @@ class _ROASTWalletHomeScreenState extends State<ROASTWalletHomeScreen> {
case 'change_server_url':
_serverURLEditDialog();
break;
default:
case 'show_key_info':
showDialog(
context: context,
builder: (ctx) => AlertDialog(
title: Text(
AppLocalizations.instance
.translate('roast_wallet_show_key_info_title'),
),
content: Text(_coinWallet.walletIndex.toString()),
actions: [
TextButton(
onPressed: () => Navigator.of(ctx).pop(),
child: Text(AppLocalizations.instance.translate('close')),
),
],
),
);
}
}

Expand Down
Loading
Loading