mirror of
https://github.com/markqvist/Sideband.git
synced 2024-10-01 03:15:37 -04:00
User interface improvements
This commit is contained in:
parent
ad779d1e33
commit
7104e95b30
@ -53,6 +53,8 @@ from kivymd.uix.dialog import MDDialog
|
||||
__version__ = "0.1.9"
|
||||
__variant__ = "beta"
|
||||
|
||||
dark_theme_text_color = "ddd"
|
||||
|
||||
if RNS.vendor.platformutils.get_platform() == "android":
|
||||
from jnius import autoclass
|
||||
from android.runnable import run_on_ui_thread
|
||||
@ -141,6 +143,8 @@ class SidebandApp(MDApp):
|
||||
def update_ui_theme(self):
|
||||
self.theme_cls.material_style = "M3"
|
||||
self.theme_cls.widget_style = "android"
|
||||
self.theme_cls.primary_palette = "BlueGray"
|
||||
self.theme_cls.accent_palette = "Orange"
|
||||
if self.sideband.config["dark_ui"]:
|
||||
self.theme_cls.theme_style = "Dark"
|
||||
else:
|
||||
@ -347,6 +351,7 @@ class SidebandApp(MDApp):
|
||||
dialog = MDDialog(
|
||||
text="An announce for your LXMF destination was sent on all available interfaces",
|
||||
buttons=[ yes_button ],
|
||||
elevation=0,
|
||||
)
|
||||
def dl_yes(s):
|
||||
dialog.dismiss()
|
||||
@ -418,6 +423,7 @@ class SidebandApp(MDApp):
|
||||
on_release=self.messages_view.close_send_error_dialog
|
||||
)
|
||||
],
|
||||
elevation=0,
|
||||
)
|
||||
self.messages_view.send_error_dialog.open()
|
||||
|
||||
@ -438,6 +444,7 @@ class SidebandApp(MDApp):
|
||||
on_release=self.messages_view.close_send_error_dialog
|
||||
)
|
||||
],
|
||||
elevation=0,
|
||||
)
|
||||
self.messages_view.send_error_dialog.open()
|
||||
|
||||
@ -523,6 +530,7 @@ class SidebandApp(MDApp):
|
||||
dialog = MDDialog(
|
||||
text=connectivity_status,
|
||||
buttons=[ yes_button ],
|
||||
elevation=0,
|
||||
)
|
||||
def dl_yes(s):
|
||||
dialog.dismiss()
|
||||
@ -539,6 +547,7 @@ class SidebandApp(MDApp):
|
||||
dialog = MDDialog(
|
||||
text="No active LXMF propagation nodes were found. Cannot fetch messages. Wait for a Propagation Node to announce on the network, or manually specify one in the settings.",
|
||||
buttons=[ yes_button ],
|
||||
elevation=0,
|
||||
)
|
||||
def dl_yes(s):
|
||||
dialog.dismiss()
|
||||
@ -561,6 +570,7 @@ class SidebandApp(MDApp):
|
||||
type="custom",
|
||||
content_cls=dialog_content,
|
||||
buttons=[ close_button ],
|
||||
elevation=0,
|
||||
)
|
||||
dialog.d_content = dialog_content
|
||||
def dl_close(s):
|
||||
@ -591,6 +601,7 @@ class SidebandApp(MDApp):
|
||||
type="custom",
|
||||
content_cls=dialog_content,
|
||||
buttons=[ yes_button, no_button ],
|
||||
elevation=0,
|
||||
)
|
||||
dialog.d_content = dialog_content
|
||||
def dl_yes(s):
|
||||
@ -967,6 +978,7 @@ class SidebandApp(MDApp):
|
||||
dialog = MDDialog(
|
||||
text="Your Identity key, in base32 format is as follows:\n\n[b]"+str(base64.b32encode(self.sideband.identity.get_private_key()).decode("utf-8"))+"[/b]",
|
||||
buttons=[ yes_button ],
|
||||
elevation=0,
|
||||
)
|
||||
def dl_yes(s):
|
||||
dialog.dismiss()
|
||||
@ -977,13 +989,13 @@ class SidebandApp(MDApp):
|
||||
def identity_copy_action(self, sender=None):
|
||||
c_yes_button = MDFlatButton(text="Yes, copy my key")
|
||||
c_no_button = MDFlatButton(text="No, go back")
|
||||
c_dialog = MDDialog(text="[b]Caution![/b]\n\nYour Identity key will be copied to the system clipboard. Take extreme care that no untrusted app steals your key by reading the clipboard data. Clear the system clipboard immediately after pasting your key where you need it.\n\nAre you sure that you wish to proceed?", buttons=[ c_no_button, c_yes_button ])
|
||||
c_dialog = MDDialog(text="[b]Caution![/b]\n\nYour Identity key will be copied to the system clipboard. Take extreme care that no untrusted app steals your key by reading the clipboard data. Clear the system clipboard immediately after pasting your key where you need it.\n\nAre you sure that you wish to proceed?", buttons=[ c_no_button, c_yes_button ],elevation=0)
|
||||
def c_dl_no(s):
|
||||
c_dialog.dismiss()
|
||||
def c_dl_yes(s):
|
||||
c_dialog.dismiss()
|
||||
yes_button = MDFlatButton(text="OK")
|
||||
dialog = MDDialog(text="Your Identity key was copied to the system clipboard", buttons=[ yes_button ])
|
||||
dialog = MDDialog(text="Your Identity key was copied to the system clipboard", buttons=[ yes_button ],elevation=0)
|
||||
def dl_yes(s):
|
||||
dialog.dismiss()
|
||||
yes_button.bind(on_release=dl_yes)
|
||||
@ -1003,7 +1015,7 @@ class SidebandApp(MDApp):
|
||||
def identity_restore_action(self, sender=None):
|
||||
c_yes_button = MDFlatButton(text="Yes, import the key")
|
||||
c_no_button = MDFlatButton(text="No, go back")
|
||||
c_dialog = MDDialog(text="[b]Caution![/b]\n\nYou are about to import a new Identity key into Sideband. The currently active key will be irreversibly destroyed, and you will loose your LXMF address if you have not already backed up your current Identity key.\n\nAre you sure that you wish to import the key?", buttons=[ c_no_button, c_yes_button ])
|
||||
c_dialog = MDDialog(text="[b]Caution![/b]\n\nYou are about to import a new Identity key into Sideband. The currently active key will be irreversibly destroyed, and you will loose your LXMF address if you have not already backed up your current Identity key.\n\nAre you sure that you wish to import the key?", buttons=[ c_no_button, c_yes_button ],elevation=0)
|
||||
def c_dl_no(s):
|
||||
c_dialog.dismiss()
|
||||
def c_dl_yes(s):
|
||||
@ -1018,7 +1030,7 @@ class SidebandApp(MDApp):
|
||||
new_id.to_file(self.sideband.identity_path)
|
||||
|
||||
yes_button = MDFlatButton(text="OK")
|
||||
dialog = MDDialog(text="[b]The provided Identity key data was imported[/b]\n\nThe app will now exit. Please restart Sideband to use the new Identity.", buttons=[ yes_button ])
|
||||
dialog = MDDialog(text="[b]The provided Identity key data was imported[/b]\n\nThe app will now exit. Please restart Sideband to use the new Identity.", buttons=[ yes_button ],elevation=0)
|
||||
def dl_yes(s):
|
||||
dialog.dismiss()
|
||||
self.quit_action(sender=self)
|
||||
@ -1027,7 +1039,7 @@ class SidebandApp(MDApp):
|
||||
|
||||
except Exception as e:
|
||||
yes_button = MDFlatButton(text="OK")
|
||||
dialog = MDDialog(text="[b]The provided Identity key data was not valid[/b]\n\nThe error reported by Reticulum was:\n\n[i]"+str(e)+"[/i]\n\nNo Identity was imported into Sideband.", buttons=[ yes_button ])
|
||||
dialog = MDDialog(text="[b]The provided Identity key data was not valid[/b]\n\nThe error reported by Reticulum was:\n\n[i]"+str(e)+"[/i]\n\nNo Identity was imported into Sideband.", buttons=[ yes_button ],elevation=0)
|
||||
def dl_yes(s):
|
||||
dialog.dismiss()
|
||||
yes_button.bind(on_release=dl_yes)
|
||||
@ -1081,6 +1093,8 @@ If you use Reticulum and LXMF on hardware that does not carry any identifiers ti
|
||||
Thank you very much for using Free Communications Systems.
|
||||
"""
|
||||
info = guide_text
|
||||
if self.theme_cls.theme_style == "Dark":
|
||||
info = "[color=#"+dark_theme_text_color+"]"+info+"[/color]"
|
||||
self.root.ids.guide_info.text = info
|
||||
self.root.ids.guide_info.bind(on_ref_press=link_exec)
|
||||
self.root.ids.screen_manager.transition.direction = "left"
|
||||
@ -1100,6 +1114,8 @@ Thank you very much for using Free Communications Systems.
|
||||
webbrowser.open("https://unsigned.io/sideband")
|
||||
|
||||
info = "The [b]Local Area[/b] feature is not yet implemented in Sideband.\n\nWant it faster? Go to [u][ref=link]https://unsigned.io/sideband[/ref][/u] to support the project."
|
||||
if self.theme_cls.theme_style == "Dark":
|
||||
info = "[color=#"+dark_theme_text_color+"]"+info+"[/color]"
|
||||
self.root.ids.map_info.text = info
|
||||
self.root.ids.map_info.bind(on_ref_press=link_exec)
|
||||
self.root.ids.screen_manager.transition.direction = "left"
|
||||
@ -1114,6 +1130,8 @@ Thank you very much for using Free Communications Systems.
|
||||
webbrowser.open("https://unsigned.io/sideband")
|
||||
|
||||
info = "The [b]Local Broadcasts[/b] feature will allow you to send and listen for local broadcast transmissions on connected radio, LoRa and WiFi interfaces.\n\n[b]Local Broadcasts[/b] makes it easy to establish public information exchange with anyone in direct radio range, or even with large areas far away using the [i]Remote Broadcast Repeater[/i] feature.\n\nThese features are not yet implemented in Sideband.\n\nWant it faster? Go to [u][ref=link]https://unsigned.io/sideband[/ref][/u] to support the project."
|
||||
if self.theme_cls.theme_style == "Dark":
|
||||
info = "[color=#"+dark_theme_text_color+"]"+info+"[/color]"
|
||||
self.root.ids.broadcasts_info.text = info
|
||||
self.root.ids.broadcasts_info.bind(on_ref_press=link_exec)
|
||||
self.root.ids.screen_manager.transition.direction = "left"
|
||||
|
@ -73,6 +73,7 @@ class Announces():
|
||||
dialog = MDDialog(
|
||||
text=ad_text,
|
||||
buttons=[ yes_button ],
|
||||
elevation=0,
|
||||
)
|
||||
def dl_yes(s):
|
||||
dialog.dismiss()
|
||||
@ -111,6 +112,7 @@ class Announces():
|
||||
dialog = MDDialog(
|
||||
text="Delete announce?",
|
||||
buttons=[ yes_button, no_button ],
|
||||
elevation=0,
|
||||
)
|
||||
def dl_yes(s):
|
||||
dialog.dismiss()
|
||||
@ -175,6 +177,8 @@ class Announces():
|
||||
items=dm_items,
|
||||
position="center",
|
||||
width_mult=4,
|
||||
elevation=1,
|
||||
radius=dp(3),
|
||||
)
|
||||
|
||||
def callback_factory(ref):
|
||||
|
@ -100,6 +100,7 @@ class Conversations():
|
||||
type="custom",
|
||||
content_cls=dialog_content,
|
||||
buttons=[ yes_button, no_button ],
|
||||
elevation=0,
|
||||
)
|
||||
dialog.d_content = dialog_content
|
||||
def dl_yes(s):
|
||||
@ -145,6 +146,7 @@ class Conversations():
|
||||
dialog = MDDialog(
|
||||
text="Clear all messages in conversation?",
|
||||
buttons=[ yes_button, no_button ],
|
||||
elevation=0,
|
||||
)
|
||||
def dl_yes(s):
|
||||
dialog.dismiss()
|
||||
@ -169,6 +171,7 @@ class Conversations():
|
||||
dialog = MDDialog(
|
||||
text="Delete conversation?",
|
||||
buttons=[ yes_button, no_button ],
|
||||
elevation=0,
|
||||
)
|
||||
def dl_yes(s):
|
||||
dialog.dismiss()
|
||||
@ -211,6 +214,8 @@ class Conversations():
|
||||
items=dm_items,
|
||||
position="auto",
|
||||
width_mult=4,
|
||||
elevation=1,
|
||||
radius=dp(3),
|
||||
)
|
||||
|
||||
def callback_factory(ref):
|
||||
|
@ -53,6 +53,7 @@ MDNavigationLayout:
|
||||
|
||||
MDTopAppBar:
|
||||
title: "Conversations"
|
||||
anchor_title: "left"
|
||||
elevation: 2
|
||||
left_action_items:
|
||||
[
|
||||
@ -78,6 +79,7 @@ MDNavigationLayout:
|
||||
|
||||
MDTopAppBar:
|
||||
id: messages_toolbar
|
||||
anchor_title: "left"
|
||||
title: "Messages"
|
||||
elevation: 2
|
||||
left_action_items:
|
||||
@ -139,6 +141,7 @@ MDNavigationLayout:
|
||||
|
||||
MDTopAppBar:
|
||||
title: "Local Broadcasts"
|
||||
anchor_title: "left"
|
||||
elevation: 2
|
||||
left_action_items:
|
||||
[['menu', lambda x: nav_drawer.set_state("open")]]
|
||||
@ -170,6 +173,7 @@ MDNavigationLayout:
|
||||
|
||||
MDTopAppBar:
|
||||
title: "Connectivity"
|
||||
anchor_title: "left"
|
||||
elevation: 2
|
||||
left_action_items:
|
||||
[['menu', lambda x: nav_drawer.set_state("open")]]
|
||||
@ -486,6 +490,7 @@ MDNavigationLayout:
|
||||
|
||||
MDTopAppBar:
|
||||
title: "Guide"
|
||||
anchor_title: "left"
|
||||
elevation: 2
|
||||
left_action_items:
|
||||
[['menu', lambda x: nav_drawer.set_state("open")]]
|
||||
@ -521,6 +526,7 @@ MDNavigationLayout:
|
||||
|
||||
MDTopAppBar:
|
||||
title: "App & Version Information"
|
||||
anchor_title: "left"
|
||||
elevation: 2
|
||||
left_action_items:
|
||||
[['menu', lambda x: nav_drawer.set_state("open")]]
|
||||
@ -555,6 +561,7 @@ MDNavigationLayout:
|
||||
|
||||
MDTopAppBar:
|
||||
title: "Local Area Map"
|
||||
anchor_title: "left"
|
||||
elevation: 2
|
||||
left_action_items:
|
||||
[['menu', lambda x: nav_drawer.set_state("open")]]
|
||||
@ -587,6 +594,7 @@ MDNavigationLayout:
|
||||
|
||||
MDTopAppBar:
|
||||
title: "Encryption Keys"
|
||||
anchor_title: "left"
|
||||
elevation: 2
|
||||
left_action_items:
|
||||
[['menu', lambda x: nav_drawer.set_state("open")]]
|
||||
@ -665,6 +673,7 @@ MDNavigationLayout:
|
||||
|
||||
MDTopAppBar:
|
||||
title: "Announce Stream"
|
||||
anchor_title: "left"
|
||||
elevation: 2
|
||||
left_action_items:
|
||||
[['menu', lambda x: nav_drawer.set_state("open")]]
|
||||
@ -701,6 +710,7 @@ MDNavigationLayout:
|
||||
|
||||
MDTopAppBar:
|
||||
title: "Settings"
|
||||
anchor_title: "left"
|
||||
elevation: 2
|
||||
left_action_items:
|
||||
[['menu', lambda x: nav_drawer.set_state("open")]]
|
||||
@ -766,11 +776,11 @@ MDNavigationLayout:
|
||||
height: dp(48)
|
||||
|
||||
MDLabel:
|
||||
text: "Announce At App Startup"
|
||||
text: "Dark Mode UI"
|
||||
font_style: "H6"
|
||||
|
||||
MDSwitch:
|
||||
id: settings_start_announce
|
||||
id: settings_dark_ui
|
||||
pos_hint: {"center_y": 0.3}
|
||||
active: False
|
||||
|
||||
@ -781,11 +791,11 @@ MDNavigationLayout:
|
||||
height: dp(48)
|
||||
|
||||
MDLabel:
|
||||
text: "Dark Mode UI"
|
||||
text: "Announce At App Startup"
|
||||
font_style: "H6"
|
||||
|
||||
MDSwitch:
|
||||
id: settings_dark_ui
|
||||
id: settings_start_announce
|
||||
pos_hint: {"center_y": 0.3}
|
||||
active: False
|
||||
|
||||
@ -1065,6 +1075,7 @@ MDNavigationLayout:
|
||||
MDBoxLayout:
|
||||
orientation: "horizontal"
|
||||
size_hint_y: None
|
||||
padding: [0,0,dp(24),0]
|
||||
height: dp(48)
|
||||
MDLabel:
|
||||
id: "trusted_switch_label"
|
||||
@ -1073,5 +1084,6 @@ MDNavigationLayout:
|
||||
|
||||
MDSwitch:
|
||||
id: n_trusted
|
||||
pos_hint: {"center_y": 0.3}
|
||||
active: False
|
||||
"""
|
@ -154,6 +154,7 @@ class Messages():
|
||||
dialog = MDDialog(
|
||||
text="Delete message?",
|
||||
buttons=[ yes_button, no_button ],
|
||||
elevation=0,
|
||||
)
|
||||
def dl_yes(s):
|
||||
dialog.dismiss()
|
||||
@ -196,6 +197,8 @@ class Messages():
|
||||
items=dm_items,
|
||||
position="center",
|
||||
width_mult=4,
|
||||
elevation=1,
|
||||
radius=dp(3),
|
||||
)
|
||||
|
||||
def callback_factory(ref):
|
||||
|
Loading…
Reference in New Issue
Block a user