Browse Source

Merge pull request #8003 from SomberNight/202210_android_debug_logs

android: add setting to enable debug logs
patch-4
ghost43 2 years ago
committed by GitHub
parent
commit
b619e2b3af
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      electrum/gui/kivy/main_window.py
  2. 7
      electrum/gui/kivy/uix/dialogs/settings.py
  3. 12
      electrum/gui/qml/components/Preferences.qml
  4. 16
      electrum/gui/qml/qeconfig.py
  5. 3
      electrum/logging.py
  6. 1
      run_electrum

5
electrum/gui/kivy/main_window.py

@ -208,6 +208,10 @@ class ElectrumWindow(App, Logger, EventListener):
self.network.run_from_another_thread( self.network.run_from_another_thread(
self.network.stop_gossip()) self.network.stop_gossip())
enable_debug_logs = BooleanProperty(False)
def on_enable_debug_logs(self, instance, x):
self.electrum_config.set_key('gui_enable_debug_logs', self.enable_debug_logs, True)
use_change = BooleanProperty(False) use_change = BooleanProperty(False)
def on_use_change(self, instance, x): def on_use_change(self, instance, x):
if self.wallet: if self.wallet:
@ -435,6 +439,7 @@ class ElectrumWindow(App, Logger, EventListener):
self.use_rbf = config.get('use_rbf', True) self.use_rbf = config.get('use_rbf', True)
self.use_gossip = config.get('use_gossip', False) self.use_gossip = config.get('use_gossip', False)
self.use_unconfirmed = not config.get('confirmed_only', False) self.use_unconfirmed = not config.get('confirmed_only', False)
self.enable_debug_logs = config.get('gui_enable_debug_logs', False)
# create triggers so as to minimize updating a max of 2 times a sec # create triggers so as to minimize updating a max of 2 times a sec
self._trigger_update_wallet = Clock.create_trigger(self.update_wallet, .5) self._trigger_update_wallet = Clock.create_trigger(self.update_wallet, .5)

7
electrum/gui/kivy/uix/dialogs/settings.py

@ -102,6 +102,13 @@ Builder.load_string('''
title: _('Lightning Routing') + ': ' + self.status title: _('Lightning Routing') + ': ' + self.status
description: _("Use trampoline routing or gossip.") description: _("Use trampoline routing or gossip.")
action: partial(root.routing_dialog, self) action: partial(root.routing_dialog, self)
CardSeparator
SettingsItem:
disabled: bool(app.electrum_config.get('verbosity')) and not app.enable_debug_logs
status: 'ON' if (bool(app.electrum_config.get('verbosity')) or app.enable_debug_logs) else 'OFF'
title: _('Enable debug logs') + ': ' + self.status
description: "(developer) Log to stderr, to inspect with logcat."
action: partial(root.boolean_dialog, 'enable_debug_logs', _('Debug Logs'), self.description)
# disabled: there is currently only one coin selection policy # disabled: there is currently only one coin selection policy
#CardSeparator #CardSeparator

12
electrum/gui/qml/components/Preferences.qml

@ -235,6 +235,17 @@ Pane {
} }
} }
Switch {
id: enableDebugLogs
text: qsTr('Enable debug logs (for developers)')
Layout.columnSpan: 2
onCheckedChanged: {
if (activeFocus)
Config.enableDebugLogs = checked
}
enabled: Config.canToggleDebugLogs
}
} }
} }
@ -257,6 +268,7 @@ Pane {
spendUnconfirmed.checked = Config.spendUnconfirmed spendUnconfirmed.checked = Config.spendUnconfirmed
lnRoutingType.currentIndex = Config.useGossip ? 0 : 1 lnRoutingType.currentIndex = Config.useGossip ? 0 : 1
useFallbackAddress.checked = Config.useFallbackAddress useFallbackAddress.checked = Config.useFallbackAddress
enableDebugLogs.checked = Config.enableDebugLogs
useRbf.checked = Config.useRbf useRbf.checked = Config.useRbf
} }
} }

16
electrum/gui/qml/qeconfig.py

@ -130,6 +130,22 @@ class QEConfig(AuthMixin, QObject):
self.config.set_key('bolt11_fallback', use_fallback) self.config.set_key('bolt11_fallback', use_fallback)
self.useFallbackAddressChanged.emit() self.useFallbackAddressChanged.emit()
enableDebugLogsChanged = pyqtSignal()
@pyqtProperty(bool, notify=enableDebugLogsChanged)
def enableDebugLogs(self):
gui_setting = self.config.get('gui_enable_debug_logs', False)
return gui_setting or bool(self.config.get('verbosity'))
@pyqtProperty(bool, notify=enableDebugLogsChanged)
def canToggleDebugLogs(self):
gui_setting = self.config.get('gui_enable_debug_logs', False)
return not self.config.get('verbosity') or gui_setting
@enableDebugLogs.setter
def enableDebugLogs(self, enable):
self.config.set_key('gui_enable_debug_logs', enable)
self.enableDebugLogsChanged.emit()
useRbfChanged = pyqtSignal() useRbfChanged = pyqtSignal()
@pyqtProperty(bool, notify=useRbfChanged) @pyqtProperty(bool, notify=useRbfChanged)
def useRbf(self): def useRbf(self):

3
electrum/logging.py

@ -314,6 +314,9 @@ def configure_logging(config: 'SimpleConfig', *, log_to_file: Optional[bool] = N
verbosity = config.get('verbosity') verbosity = config.get('verbosity')
verbosity_shortcuts = config.get('verbosity_shortcuts') verbosity_shortcuts = config.get('verbosity_shortcuts')
if not verbosity:
if config.get('gui_enable_debug_logs') or is_android_debug_apk():
verbosity = '*'
_configure_stderr_logging(verbosity=verbosity, verbosity_shortcuts=verbosity_shortcuts) _configure_stderr_logging(verbosity=verbosity, verbosity_shortcuts=verbosity_shortcuts)
if log_to_file is None: if log_to_file is None:

1
run_electrum

@ -325,7 +325,6 @@ def main():
import importlib.util import importlib.util
android_gui = 'kivy' if importlib.util.find_spec('kivy') else 'qml' android_gui = 'kivy' if importlib.util.find_spec('kivy') else 'qml'
config_options = { config_options = {
'verbosity': '*' if util.is_android_debug_apk() else '',
'cmd': 'gui', 'cmd': 'gui',
'gui': android_gui, 'gui': android_gui,
'single_password':True, 'single_password':True,

Loading…
Cancel
Save