Added stamp cost settings to UI

This commit is contained in:
Mark Qvist 2024-09-08 17:50:19 +02:00
parent a813e84ff5
commit b2517d8c82
3 changed files with 89 additions and 10 deletions

View file

@ -2718,6 +2718,16 @@ class SidebandApp(MDApp):
self.settings_screen.ids.settings_print_command.text = self.sideband.config["print_command"]
self.sideband.save_configuration()
def save_lxmf_stamp_cost(sender=None, event=None, save=True):
if self.settings_screen.ids.settings_lxmf_require_stamps.active:
self.widget_hide(self.settings_screen.ids.lxmf_costslider_container, False)
else:
self.widget_hide(self.settings_screen.ids.lxmf_costslider_container, True)
if save:
self.sideband.config["lxmf_require_stamps"] = self.settings_screen.ids.settings_lxmf_require_stamps.active
self.sideband.save_configuration()
def save_lxmf_periodic_sync(sender=None, event=None, save=True):
if self.settings_screen.ids.settings_lxmf_periodic_sync.active:
self.widget_hide(self.settings_screen.ids.lxmf_syncslider_container, False)
@ -2748,6 +2758,19 @@ class SidebandApp(MDApp):
self.sideband.config["lxmf_sync_interval"] = interval
self.sideband.save_configuration()
def stamp_cost_change(sender=None, event=None, save=True):
slider_val = int(self.settings_screen.ids.settings_lxmf_require_stamps_cost.value)
cost_text = str(slider_val)
self.settings_screen.ids.settings_lxmf_require_stamps_label.text = f"Require stamp cost {cost_text} for inbound messages"
if save:
if slider_val > 32:
slider_val = 32
if slider_val < 1:
slider_val = 1
self.sideband.config["lxmf_inbound_stamp_cost"] = slider_val
self.sideband.save_configuration()
self.settings_screen.ids.settings_lxmf_address.text = RNS.hexrep(self.sideband.lxmf_destination.hash, delimit=False)
self.settings_screen.ids.settings_identity_hash.text = RNS.hexrep(self.sideband.lxmf_destination.identity.hash, delimit=False)
@ -2814,6 +2837,22 @@ class SidebandApp(MDApp):
self.settings_screen.ids.settings_lxmf_sync_interval.value = self.interval_to_slider_val(self.sideband.config["lxmf_sync_interval"])
sync_interval_change(save=False)
self.settings_screen.ids.settings_lxmf_require_stamps.active = self.sideband.config["lxmf_require_stamps"]
self.settings_screen.ids.settings_lxmf_require_stamps.bind(active=save_lxmf_stamp_cost)
save_lxmf_stamp_cost(save=False)
def stamp_cost_change_cb(sender=None, event=None):
stamp_cost_change(sender=sender, event=event, save=False)
self.settings_screen.ids.settings_lxmf_require_stamps_cost.bind(value=stamp_cost_change_cb)
self.settings_screen.ids.settings_lxmf_require_stamps_cost.bind(on_touch_up=stamp_cost_change)
cost_val = self.sideband.config["lxmf_inbound_stamp_cost"]
if cost_val == None or cost_val < 1:
cost_val = 1
if cost_val > 32:
cost_val = 32
self.settings_screen.ids.settings_lxmf_require_stamps_cost.value = cost_val
stamp_cost_change(save=False)
if self.sideband.config["lxmf_sync_limit"] == None or self.sideband.config["lxmf_sync_limit"] == False:
sync_limit = False
else: