From a418980e8046b908e813949a9bf44643850578dd Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Thu, 19 Mar 2026 23:52:23 +0100 Subject: [PATCH] re-enable lightning and payjoin logs for prod builds --- .../screens/settings/other_settings_page.dart | 260 +++++++++--------- 1 file changed, 125 insertions(+), 135 deletions(-) diff --git a/lib/src/screens/settings/other_settings_page.dart b/lib/src/screens/settings/other_settings_page.dart index 78456f699..db320bf96 100644 --- a/lib/src/screens/settings/other_settings_page.dart +++ b/lib/src/screens/settings/other_settings_page.dart @@ -32,7 +32,6 @@ class OtherSettingsPage extends BasePage { final OtherSettingsViewModel _otherSettingsViewModel; - @override Widget body(BuildContext context) { return ModalPageWrapper( @@ -45,8 +44,7 @@ class OtherSettingsPage extends BasePage { // iconPath: "assets/new-ui/settings_row_icons/other.svg", // message: "Other settings", // title: S.of(context).other_settings), - content: NewListSections( - sections: { + content: NewListSections(sections: { "": [ if (_otherSettingsViewModel.displayTransactionPriority) _otherSettingsViewModel.walletType == WalletType.bitcoin @@ -54,70 +52,76 @@ class OtherSettingsPage extends BasePage { keyValue: "fee_priority", label: S.of(context).settings_fee_priority, options: [_otherSettingsViewModel.transactionPriority.title], - onTap: () async { + onTap: () async { + final items = priorityForWalletType(_otherSettingsViewModel.walletType); - final items = priorityForWalletType(_otherSettingsViewModel.walletType); + var selectedAtIndex = + items.indexOf(_otherSettingsViewModel.transactionPriority); + double sliderValue = _otherSettingsViewModel.customBitcoinFeeRate; - var selectedAtIndex = items.indexOf(_otherSettingsViewModel.transactionPriority); - double sliderValue = _otherSettingsViewModel.customBitcoinFeeRate ?? 0.0; - - await showPopUp( - context: context, - builder: (BuildContext context) { - return StatefulBuilder( - builder: (BuildContext context, StateSetter setState) { - return Picker( - items: items, - displayItem: (TransactionPriority item) => _otherSettingsViewModel.getDisplayBitcoinPriority(item, sliderValue.round()), - selectedAtIndex: selectedAtIndex, - customItemIndex: _otherSettingsViewModel.customPriorityItemIndex, - maxValue: _otherSettingsViewModel.maxCustomFeeRate?.toDouble(), - headerEnabled: false, - closeOnItemSelected: false, - mainAxisAlignment: MainAxisAlignment.center, - sliderValue: sliderValue, - onSliderChanged: (double newValue) => - setState(() => sliderValue = newValue), - onItemSelected: (TransactionPriority priority) { - setState(() => selectedAtIndex = items.indexOf(priority)); - _otherSettingsViewModel.onDisplayBitcoinPrioritySelected.call(priority, sliderValue); + await showPopUp( + context: context, + builder: (BuildContext context) { + return StatefulBuilder( + builder: (BuildContext context, StateSetter setState) { + return Picker( + items: items, + displayItem: (TransactionPriority item) => _otherSettingsViewModel + .getDisplayBitcoinPriority(item, sliderValue.round()), + selectedAtIndex: selectedAtIndex, + customItemIndex: _otherSettingsViewModel.customPriorityItemIndex, + maxValue: _otherSettingsViewModel.maxCustomFeeRate?.toDouble(), + headerEnabled: false, + closeOnItemSelected: false, + mainAxisAlignment: MainAxisAlignment.center, + sliderValue: sliderValue, + onSliderChanged: (double newValue) => + setState(() => sliderValue = newValue), + onItemSelected: (TransactionPriority priority) { + setState(() => selectedAtIndex = items.indexOf(priority)); + _otherSettingsViewModel.onDisplayBitcoinPrioritySelected + .call(priority, sliderValue); + }, + ); }, ); }, ); - }, - ); - _otherSettingsViewModel.onDisplayBitcoinPrioritySelected.call(items[selectedAtIndex], sliderValue); - } - ) + _otherSettingsViewModel.onDisplayBitcoinPrioritySelected + .call(items[selectedAtIndex], sliderValue); + }) : ListItemSelector( keyValue: "fee_priority", label: S.of(context).settings_fee_priority, options: [_otherSettingsViewModel.transactionPriority.title], - onTap: () async { - final selectedAtIndex = priorityForWalletType(_otherSettingsViewModel.walletType).indexOf(_otherSettingsViewModel.transactionPriority,); + onTap: () async { + final selectedAtIndex = + priorityForWalletType(_otherSettingsViewModel.walletType).indexOf( + _otherSettingsViewModel.transactionPriority, + ); - await showPopUp( - context: context, - builder: (_) => Picker( - items: priorityForWalletType(_otherSettingsViewModel.walletType), - displayItem: _otherSettingsViewModel.getDisplayPriority, - selectedAtIndex: selectedAtIndex, - mainAxisAlignment: MainAxisAlignment.start, - onItemSelected: (TransactionPriority item) => _otherSettingsViewModel.onDisplayBitcoinPrioritySelected.call(item, 0), - isSeparated: false, + await showPopUp( + context: context, + builder: (_) => Picker( + items: priorityForWalletType(_otherSettingsViewModel.walletType), + displayItem: _otherSettingsViewModel.getDisplayPriority, + selectedAtIndex: selectedAtIndex, + mainAxisAlignment: MainAxisAlignment.start, + onItemSelected: (TransactionPriority item) => _otherSettingsViewModel + .onDisplayBitcoinPrioritySelected + .call(item, 0), + isSeparated: false, + ), + ); + }, ), - ); - }, - ), - if(_otherSettingsViewModel.changeRepresentativeEnabled) - ListItemRegularRow( - keyValue: "change_rep", - label: S.of(context).change_rep, - onTap: () => Navigator.of(context).pushNamed(Routes.changeRep) - ), + if (_otherSettingsViewModel.changeRepresentativeEnabled) + ListItemRegularRow( + keyValue: "change_rep", + label: S.of(context).change_rep, + onTap: () => Navigator.of(context).pushNamed(Routes.changeRep)), if (_otherSettingsViewModel.changeHardwareWalletTypeEnabled) - ListItemRegularRow( + ListItemRegularRow( keyValue: "hardware_wallet_manufacturer", label: "Hardware wallet manufacturer", onTap: () => Navigator.of(context) @@ -133,7 +137,7 @@ class OtherSettingsPage extends BasePage { Navigator.pop(context); }, }), - ), + ), ListItemRegularRow( keyValue: "security_backup_page_sign_and_verify", label: S.of(context).sign_verify_title, @@ -141,93 +145,79 @@ class OtherSettingsPage extends BasePage { Navigator.of(context).pushNamed(Routes.signPage); }), ], - if(FeatureFlag.hasDevOptions) - "dev": [ - if(_otherSettingsViewModel.walletType == WalletType.bitcoin) ...[ - ListItemRegularRow( - keyValue: "export_lightning_logs", - label: S.of(context).export_lightning_logs, - onTap: () => onExportLNLog(context) - ), - ListItemRegularRow( - keyValue: "export_payjoin_logs", - label: S.of(context).export_payjoin_logs, - onTap: () => onExportPJLog(context) - ), - ], - if (FeatureFlag.hasDevOptions && - _otherSettingsViewModel.walletType == WalletType.monero) + "dev": [ + if (_otherSettingsViewModel.walletType == WalletType.bitcoin) ...[ ListItemRegularRow( - keyValue: "[dev] monero background sync", - label: "[dev] monero background sync", - onTap: () => Navigator.of(context).pushNamed(Routes.devMoneroBackgroundSync) - ), - if (FeatureFlag.hasDevOptions && - [WalletType.monero, WalletType.wownero, WalletType.zano] - .contains(_otherSettingsViewModel.walletType)) - ListItemRegularRow( - keyValue: "[dev] xmr call profiler", - label: "[dev] xmr call profiler", - onTap: () => Navigator.of(context).pushNamed(Routes.devMoneroCallProfiler) - ), - if (FeatureFlag.hasDevOptions && - [WalletType.monero].contains(_otherSettingsViewModel.walletType)) - ListItemRegularRow( - keyValue: '[dev] xmr wallet cache debug', - label: '[dev] xmr wallet cache debug', - onTap: () => Navigator.of(context).pushNamed(Routes.devMoneroWalletCacheDebug) - ), + keyValue: "export_lightning_logs", + label: S.of(context).export_lightning_logs, + onTap: () => onExportLNLog(context)), ListItemRegularRow( - keyValue: '[dev] shared preferences', - label: '[dev] shared preferences', - onTap: () => Navigator.of(context).pushNamed(Routes.devSharedPreferences) - ), + keyValue: "export_payjoin_logs", + label: S.of(context).export_payjoin_logs, + onTap: () => onExportPJLog(context)), + ], + if (FeatureFlag.hasDevOptions && _otherSettingsViewModel.walletType == WalletType.monero) ListItemRegularRow( - keyValue: '[dev] secure storage preferences', - label: '[dev] secure storage preferences', - onTap: () => Navigator.of(context).pushNamed(Routes.devSecurePreferences) - ), + keyValue: "[dev] monero background sync", + label: "[dev] monero background sync", + onTap: () => Navigator.of(context).pushNamed(Routes.devMoneroBackgroundSync)), + if (FeatureFlag.hasDevOptions && + [WalletType.monero, WalletType.wownero, WalletType.zano] + .contains(_otherSettingsViewModel.walletType)) ListItemRegularRow( - keyValue: '[dev] background sync logs', - label: '[dev] background sync logs', - onTap: () => Navigator.of(context).pushNamed(Routes.devBackgroundSyncLogs) - ), + keyValue: "[dev] xmr call profiler", + label: "[dev] xmr call profiler", + onTap: () => Navigator.of(context).pushNamed(Routes.devMoneroCallProfiler)), + if (FeatureFlag.hasDevOptions && + [WalletType.monero].contains(_otherSettingsViewModel.walletType)) ListItemRegularRow( - keyValue: '[dev] socket health logs', - label: '[dev] socket health logs', - onTap: () => Navigator.of(context).pushNamed(Routes.devSocketHealthLogs) - ), - ListItemRegularRow( - keyValue: '[dev] network requests logs', - label: '[dev] network requests logs', - onTap: () => Navigator.of(context).pushNamed(Routes.devNetworkRequests) - ), - ListItemRegularRow( - keyValue: '[dev] exchange provider logs', - label: '[dev] exchange provider logs', - onTap: () => Navigator.of(context).pushNamed(Routes.devExchangeProviderLogs) - ), - ListItemRegularRow( - keyValue: '[dev] *QR tools', - label: '[dev] *QR tools', - onTap: () => Navigator.of(context).pushNamed(Routes.devExchangeProviderLogs) - ), - ListItemRegularRow( - keyValue: '[dev] browse sqlite db', - label: '[dev] browse sqlite db', - onTap: () async { - final data = await dumpDb(); - Navigator.of(context).push( - MaterialPageRoute(builder: (context) => - JsonExplorerPage(data: data, title: 'sqlite db')), - ); - } - ), - ] - } - ), + keyValue: '[dev] xmr wallet cache debug', + label: '[dev] xmr wallet cache debug', + onTap: () => Navigator.of(context).pushNamed(Routes.devMoneroWalletCacheDebug)), + ListItemRegularRow( + keyValue: '[dev] shared preferences', + label: '[dev] shared preferences', + onTap: () => Navigator.of(context).pushNamed(Routes.devSharedPreferences)), + ListItemRegularRow( + keyValue: '[dev] secure storage preferences', + label: '[dev] secure storage preferences', + onTap: () => Navigator.of(context).pushNamed(Routes.devSecurePreferences)), + ListItemRegularRow( + keyValue: '[dev] background sync logs', + label: '[dev] background sync logs', + onTap: () => Navigator.of(context).pushNamed(Routes.devBackgroundSyncLogs)), + ListItemRegularRow( + keyValue: '[dev] socket health logs', + label: '[dev] socket health logs', + onTap: () => Navigator.of(context).pushNamed(Routes.devSocketHealthLogs)), + ListItemRegularRow( + keyValue: '[dev] network requests logs', + label: '[dev] network requests logs', + onTap: () => Navigator.of(context).pushNamed(Routes.devNetworkRequests)), + ListItemRegularRow( + keyValue: '[dev] exchange provider logs', + label: '[dev] exchange provider logs', + onTap: () => Navigator.of(context).pushNamed(Routes.devExchangeProviderLogs)), + ListItemRegularRow( + keyValue: '[dev] *QR tools', + label: '[dev] *QR tools', + onTap: () => Navigator.of(context).pushNamed(Routes.devExchangeProviderLogs)), + ListItemRegularRow( + keyValue: '[dev] browse sqlite db', + label: '[dev] browse sqlite db', + onTap: () async { + final data = await dumpDb(); + Navigator.of(context).push( + MaterialPageRoute( + builder: (context) => JsonExplorerPage(data: data, title: 'sqlite db'), + ), + ); + }), + ] + }), ); } + Future onExportLNLog(BuildContext context) async { final file = await _otherSettingsViewModel.getLightningLog();