From 8aeb643b819312d31b5d506b5ecbb33bde44195f Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Mon, 3 Oct 2022 00:47:27 +0200 Subject: [PATCH] Permission check flow --- sbapp/main.py | 20 ++++++++++++++++---- sbapp/services/sidebandservice.py | 4 ++-- sbapp/sideband/core.py | 14 ++++++++++---- sbapp/ui/layouts.py | 2 ++ 4 files changed, 30 insertions(+), 10 deletions(-) diff --git a/sbapp/main.py b/sbapp/main.py index 8d94c30..9f1c54c 100644 --- a/sbapp/main.py +++ b/sbapp/main.py @@ -8,8 +8,8 @@ import base64 import threading from kivy.logger import Logger, LOG_LEVELS -# Logger.setLevel(LOG_LEVELS["debug"]) -Logger.setLevel(LOG_LEVELS["error"]) +Logger.setLevel(LOG_LEVELS["debug"]) +# Logger.setLevel(LOG_LEVELS["error"]) if RNS.vendor.platformutils.get_platform() != "android": local = os.path.dirname(__file__) @@ -36,6 +36,8 @@ if RNS.vendor.platformutils.get_platform() == "android": from android import mActivity from android.permissions import request_permissions, check_permission + from kivymd.utils.set_bars_colors import set_bars_colors + else: from .sideband.core import SidebandCore @@ -86,9 +88,9 @@ class SidebandApp(MDApp): Window.softinput_mode = "below_target" self.icon = self.sideband.asset_dir+"/icon.png" self.notification_icon = self.sideband.asset_dir+"/notification_icon.png" - self.check_permissions() def start_core(self, dt): + self.check_permissions() self.start_service() Clock.schedule_interval(self.jobs, 1) @@ -110,6 +112,8 @@ class SidebandApp(MDApp): else: self.open_conversations() + self.set_bars_colors() + self.app_state = SidebandApp.ACTIVE def start_service(self): @@ -149,6 +153,14 @@ class SidebandApp(MDApp): else: self.theme_cls.theme_style = "Light" + def set_bars_colors(self): + if RNS.vendor.platformutils.get_platform() == "android": + set_bars_colors( + self.theme_cls.primary_color, # status bar color + [0,0,0,0], # navigation bar color + "Light", # icons color of status bar + ) + def share_text(self, text): if RNS.vendor.platformutils.get_platform() == "android": Intent = autoclass('android.content.Intent') @@ -350,7 +362,7 @@ class SidebandApp(MDApp): dialog = MDDialog( text="An announce for your LXMF destination was sent on all available interfaces", buttons=[ yes_button ], - elevation=0, + # elevation=0, ) def dl_yes(s): dialog.dismiss() diff --git a/sbapp/services/sidebandservice.py b/sbapp/services/sidebandservice.py index f7b5f13..f51fd61 100644 --- a/sbapp/services/sidebandservice.py +++ b/sbapp/services/sidebandservice.py @@ -3,8 +3,8 @@ import RNS from os import environ from kivy.logger import Logger, LOG_LEVELS -# Logger.setLevel(LOG_LEVELS["debug"]) -Logger.setLevel(LOG_LEVELS["error"]) +Logger.setLevel(LOG_LEVELS["debug"]) +# Logger.setLevel(LOG_LEVELS["error"]) if RNS.vendor.platformutils.get_platform() == "android": from jnius import autoclass, cast diff --git a/sbapp/sideband/core.py b/sbapp/sideband/core.py index f4d6938..ba88ce3 100644 --- a/sbapp/sideband/core.py +++ b/sbapp/sideband/core.py @@ -118,7 +118,6 @@ class SidebandCore(): except Exception as e: RNS.log("Error while configuring Sideband: "+str(e), RNS.LOG_ERROR) - # Initialise Reticulum configuration if RNS.vendor.platformutils.get_platform() == "android": try: @@ -180,10 +179,13 @@ class SidebandCore(): self.config["connect_i2p_ifac_netname"] = "" self.config["connect_i2p_ifac_passphrase"] = "" - self.__save_config() - if not os.path.isfile(self.db_path): self.__db_init() + else: + self._db_initstate() + self._db_initpersistent() + + self.__save_config() def should_persist_data(self): if self.reticulum != None: @@ -434,6 +436,8 @@ class SidebandCore(): pass def __db_init(self): + # TODO: Remove + print("------------------ DB INIT") db = sqlite3.connect(self.db_path) dbc = db.cursor() @@ -454,6 +458,8 @@ class SidebandCore(): db.commit() db.close() + # TODO: Remove + print("------------------ DB INIT DONE") def _db_initstate(self): db = sqlite3.connect(self.db_path) @@ -906,7 +912,7 @@ class SidebandCore(): self.service_thread.start() def __start_jobs_immediate(self): - self.reticulum = RNS.Reticulum(configdir=self.rns_configdir, loglevel=3) + self.reticulum = RNS.Reticulum(configdir=self.rns_configdir, loglevel=7) if RNS.vendor.platformutils.get_platform() == "android": if not self.reticulum.is_connected_to_shared_instance: diff --git a/sbapp/ui/layouts.py b/sbapp/ui/layouts.py index e12047b..90a050e 100644 --- a/sbapp/ui/layouts.py +++ b/sbapp/ui/layouts.py @@ -3,6 +3,8 @@ root_layout = """ #: import SlideTransition kivy.uix.screenmanager.SlideTransition MDNavigationLayout: + md_bg_color: app.theme_cls.bg_darkest + ScreenManager: id: screen_manager transition: SlideTransition()