re-enable lightning and payjoin logs for prod builds

This commit is contained in:
OmarHatem
2026-03-19 23:52:32 +01:00
parent e37f478588
commit a418980e80
+125 -135
View File
@@ -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<void>(
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<void>(
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<void>(
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<void>(
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<void> onExportLNLog(BuildContext context) async {
final file = await _otherSettingsViewModel.getLightningLog();