From cf4161eab39b3b94bc76024d6da59021ddd8b13a Mon Sep 17 00:00:00 2001 From: shekhar-cis Date: Thu, 18 Aug 2022 15:55:42 +0530 Subject: [PATCH] Add a dict to hold the imports and access Allmails(), Draft() and Trash() with dict and import the * from login and popup --- src/bitmessagekivy/baseclass/draft.py | 2 +- src/bitmessagekivy/baseclass/maildetail.py | 2 +- src/bitmessagekivy/kv/msg_composer.kv | 2 +- src/bitmessagekivy/main.kv | 2 +- src/bitmessagekivy/mpybit.py | 79 ++++++++++++++++----- src/bitmessagekivy/screens_data.json | 34 ++++----- src/images/kivy/avatar.png | Bin 27865 -> 0 bytes src/images/kivy/draft-avatar.png | Bin 0 -> 14300 bytes 8 files changed, 83 insertions(+), 38 deletions(-) delete mode 100644 src/images/kivy/avatar.png create mode 100644 src/images/kivy/draft-avatar.png diff --git a/src/bitmessagekivy/baseclass/draft.py b/src/bitmessagekivy/baseclass/draft.py index 44dd53a3..8bc82ad2 100644 --- a/src/bitmessagekivy/baseclass/draft.py +++ b/src/bitmessagekivy/baseclass/draft.py @@ -118,7 +118,7 @@ class Draft(Screen, HelperDraft): listItem.secondary_text = item["text"] listItem.theme_text_color = "Custom" listItem.text_color = ThemeClsColor - message_row.ids.avater_img.source = os.path.join(state.imageDir, 'avatar.png') + message_row.ids.avater_img.source = os.path.join(state.imageDir, 'draft-avatar.png') listItem.bind(on_release=partial( self.draft_detail, item['ackdata'], message_row)) message_row.ids.time_tag.text = str(ShowTimeHistoy(item['senttime'])) diff --git a/src/bitmessagekivy/baseclass/maildetail.py b/src/bitmessagekivy/baseclass/maildetail.py index 784ecb24..367f565b 100644 --- a/src/bitmessagekivy/baseclass/maildetail.py +++ b/src/bitmessagekivy/baseclass/maildetail.py @@ -133,7 +133,7 @@ class MailDetail(Screen): # pylint: disable=too-many-instance-attributes if len(data[0]) == 7: self.status = data[0][4] self.time_tag = ShowTimeHistoy(data[0][4]) if state.detailPageType == 'inbox' else ShowTimeHistoy(data[0][6]) - self.avatarImg = os.path.join(state.imageDir, 'avatar.png') if self.kivy_state.detailPageType == 'draft' else \ + self.avatarImg = os.path.join(state.imageDir, 'draft-avatar.png') if self.kivy_state.detailPageType == 'draft' else \ (os.path.join(state.imageDir, 'text_images', '{0}.png'.format(avatarImageFirstLetter(self.subject.strip())))) self.timeinseconds = data[0][4] if state.detailPageType == 'inbox' else data[0][6] diff --git a/src/bitmessagekivy/kv/msg_composer.kv b/src/bitmessagekivy/kv/msg_composer.kv index 8619af68..02610c8b 100644 --- a/src/bitmessagekivy/kv/msg_composer.kv +++ b/src/bitmessagekivy/kv/msg_composer.kv @@ -38,7 +38,7 @@ CustomSpinner: id: btn background_color: app.theme_cls.primary_dark - values: app.identity_list + # values: app.identity_list on_text: root.auto_fill_fromaddr() if self.text != 'Select' else '' option_cls: Factory.get("ComposerSpinnerOption") #background_color: color_button if self.state == 'normal' else color_button_pressed diff --git a/src/bitmessagekivy/main.kv b/src/bitmessagekivy/main.kv index 231f0dbe..34311f63 100644 --- a/src/bitmessagekivy/main.kv +++ b/src/bitmessagekivy/main.kv @@ -137,7 +137,7 @@ #text: app.tr._('Hello World') icon: 'email-open' divider: None - on_release: app.root.ids.scr_mngr.current = 'inbox' + on_release: app.set_screen('inbox') on_release: root.parent.set_state() on_press: app.load_screen(self) NavigationItem: diff --git a/src/bitmessagekivy/mpybit.py b/src/bitmessagekivy/mpybit.py index a40a4861..8efbb6fe 100644 --- a/src/bitmessagekivy/mpybit.py +++ b/src/bitmessagekivy/mpybit.py @@ -9,13 +9,15 @@ Bitmessage android(mobile) interface """ +import importlib +import json from bitmessagekivy.get_platform import platform import os from bitmessagekivy import identiconGeneration from bitmessagekivy import kivy_helper_search from bitmessagekivy.uikivysignaler import UIkivySignaler from bmconfigparser import BMConfigParser -# from debug import logger +from debug import logger from functools import partial from helper_sql import sqlExecute, sqlQuery from kivymd.app import MDApp @@ -57,7 +59,8 @@ from kivy.lang import Observable import ast from bitmessagekivy.baseclass.common import toast - +from bitmessagekivy.baseclass.login import * +from bitmessagekivy.baseclass.popup import * from qr_scanner.zbarcam import ZBarCam from pyzbar.pyzbar import ZBarSymbol @@ -83,13 +86,46 @@ elif platform == "android": t = Toast.makeText(context, text, length) t.show() +data_screen_dict = {} -with open(os.path.join(os.path.dirname(__file__), "screens_data.json")) as read_file: - all_data = ast.literal_eval(read_file.read()) - data_screens = list(all_data.keys()) +def load_screen_json(data_file="screens_data.json"): + """Load screens data from json""" -for modules in data_screens: - exec(all_data[modules]['Import']) + with open(os.path.join(os.path.dirname(__file__), data_file)) as read_file: + all_data = json.load(read_file) + data_screens = list(all_data.keys()) + + # global data_screen_dict + for key in all_data: + if all_data[key]['Import']: + import_data = all_data.get(key)['Import'] + import_to = import_data.split("import")[1].strip() + import_from = import_data.split("import")[0].split('from')[1].strip() + data_screen_dict[import_to] = importlib.import_module(import_from, import_to) + return data_screens, all_data, 'success' + + + +# data_screen_dict['Trash'].Trash() +# with open(os.path.join(os.path.dirname(__file__), "screens_data.json")) as read_file: +# # all_data = ast.literal_eval(read_file.read()) +# all_data = json.load(read_file) +# data_screens = list(all_data.keys()) + +# for key in all_data: +# if all_data[key]['Import']: +# import_data = all_data.get(key)['Import'] +# import_to = import_data.split("import")[1].strip() +# import_from = import_data.split("import")[0].split('from')[1].strip() +# exec_import = importlib.import_module(import_from, import_to) +# exec_import +# import pdb; pdb.set_trace() + + # importlib.import_module("pybitmessage.bitmessagekivy.baseclass.trash", "Trash") + +# for modules in data_screens: +# exec(all_data[modules]['Import']) +# import pdb; pdb.set_trace() # pylint: disable=too-few-public-methods,too-many-arguments,attribute-defined-outside-init @@ -208,18 +244,25 @@ class CustomSpinner(Spinner): if BMConfigParser().get(str(addr), 'enabled') == 'true') +def get_identity_list(): + identity_list = ListProperty( + addr for addr in BMConfigParser().addresses() + if BMConfigParser().get(str(addr), 'enabled') == 'true' + ) + return identity_list + class NavigateApp(MDApp): """Navigation Layout of class""" # pylint: disable=too-many-public-methods,inconsistent-return-statements # theme_cls = ThemeManager() def __init__(self): super(NavigateApp, self).__init__() + self.data_screens, self.all_data, response = load_screen_json() self.kivy_state_obj = KivyStateVariables() previous_date = ObjectProperty() obj_1 = ObjectProperty() - identity_list = ListProperty(addr for addr in BMConfigParser().addresses() - if BMConfigParser().get(str(addr), 'enabled') == 'true') + identity_list = get_identity_list() nav_drawer = ObjectProperty() state.screen_density = Window.size window_size = state.screen_density @@ -236,13 +279,14 @@ class NavigateApp(MDApp): def build(self): """Method builds the widget""" - for kv in data_screens: + # for kv in self.data_screens: + for kv in self.data_screens: Builder.load_file( os.path.join( os.path.dirname(__file__), 'kv', # f'{all_data[kv]["kv_string"]}.kv', - '{0}.kv'.format(all_data[kv]["kv_string"]), + '{0}.kv'.format(self.all_data[kv]["kv_string"]), ) ) # self.obj_1 = AddressBook() @@ -314,13 +358,14 @@ class NavigateApp(MDApp): self.root.ids.sc4.loadSent(state.association) self.root.ids.sc16.clear_widgets() - self.root.ids.sc16.add_widget(Draft()) + self.root.ids.sc16.add_widget(data_screen_dict['Draft'].Draft()) self.root.ids.sc5.clear_widgets() - self.root.ids.sc5.add_widget(Trash()) + # import pdb; pdb.set_trace() + self.root.ids.sc5.add_widget(data_screen_dict['Trash'].Trash()) self.root.ids.sc17.clear_widgets() - self.root.ids.sc17.add_widget(Allmails()) + self.root.ids.sc17.add_widget(data_screen_dict['Allmails'].Allmails()) self.root.ids.id_myaddress.ids.ml.clear_widgets() self.root.ids.id_myaddress.init_ui() @@ -849,7 +894,7 @@ class NavigateApp(MDApp): self.root.ids.sc1.children[1].active = False elif instance.text == 'All Mails': self.root.ids.sc17.clear_widgets() - self.root.ids.sc17.add_widget(Allmails()) + self.root.ids.sc17.add_widget(data_screen_dict['Allmails'].Allmails()) try: self.root.ids.sc17.children[1].active = False except Exception: @@ -858,7 +903,7 @@ class NavigateApp(MDApp): # self.root.ids.sc5.ids.ml.clear_widgets() # self.root.ids.sc5.init_ui(0) self.root.ids.sc5.clear_widgets() - self.root.ids.sc5.add_widget(Trash()) + self.root.ids.sc5.add_widget(data_screen_dict['Trash'].Trash()) try: self.root.ids.sc5.children[1].active = False except Exception as e: @@ -963,7 +1008,7 @@ class NavigateApp(MDApp): def initiate_purchase(self, method_name): """initiate_purchase module""" - print("Purchasing {} through {}".format(self.product_id, method_name)) + logger.debug("Purchasing %s through %s", self.product_id, method_name) def _after_scan(self, text): # if platform == 'android': diff --git a/src/bitmessagekivy/screens_data.json b/src/bitmessagekivy/screens_data.json index bedda239..6ea6a117 100644 --- a/src/bitmessagekivy/screens_data.json +++ b/src/bitmessagekivy/screens_data.json @@ -2,77 +2,77 @@ "Inbox": { "kv_string": "inbox", "name_screen": "inbox", - "Import": "from bitmessagekivy.baseclass.inbox import Inbox", + "Import": "from bitmessagekivy.baseclass.inbox import Inbox" }, "Sent": { "kv_string": "sent", "name_screen": "sent", - "Import": "from bitmessagekivy.baseclass.sent import Sent", + "Import": "from bitmessagekivy.baseclass.sent import Sent" }, "Draft": { "kv_string": "draft", "name_screen": "draft", - "Import": "from bitmessagekivy.baseclass.draft import Draft", + "Import": "from bitmessagekivy.baseclass.draft import Draft" }, "Trash": { "kv_string": "trash", "name_screen": "trash", - "Import": "from bitmessagekivy.baseclass.trash import Trash", + "Import": "from bitmessagekivy.baseclass.trash import Trash" }, "All Mails": { "kv_string": "allmails", "name_screen": "allmails", - "Import": "from bitmessagekivy.baseclass.allmail import Allmails", + "Import": "from bitmessagekivy.baseclass.allmail import Allmails" }, "Address Book": { "kv_string": "addressbook", "name_screen": "addressbook", - "Import": "from bitmessagekivy.baseclass.addressbook import AddressBook", + "Import": "from bitmessagekivy.baseclass.addressbook import AddressBook" }, "Settings": { "kv_string": "settings", "name_screen": "set", - "Import": "from bitmessagekivy.baseclass.settings import Setting", + "Import": "from bitmessagekivy.baseclass.settings import Setting" }, "Payment": { "kv_string": "payment", "name_screen": "payment", - "Import": "from bitmessagekivy.baseclass.payment import Payment", + "Import": "from bitmessagekivy.baseclass.payment import Payment" }, "Network status": { "kv_string": "network", "name_screen": "networkstat", - "Import": "from bitmessagekivy.baseclass.network import NetworkStat", + "Import": "from bitmessagekivy.baseclass.network import NetworkStat" }, "My addresses": { "kv_string": "myaddress", "name_screen": "myaddress", - "Import": "from bitmessagekivy.baseclass.myaddress import MyAddress", + "Import": "from bitmessagekivy.baseclass.myaddress import MyAddress" }, "MailDetail": { "kv_string": "maildetail", "name_screen": "mailDetail", - "Import": "from bitmessagekivy.baseclass.maildetail import MailDetail", + "Import": "from bitmessagekivy.baseclass.maildetail import MailDetail" }, "Create": { "kv_string": "msg_composer", "name_screen": "create", - "Import": "from bitmessagekivy.baseclass.msg_composer import Create", + "Import": "from bitmessagekivy.baseclass.msg_composer import Create" }, "Login": { "kv_string": "login", - "Import": "from bitmessagekivy.baseclass.login import *", + "Import": "from bitmessagekivy.baseclass.login import *" }, "Scanner": { "kv_string": "scan_screen", - "Import": "from bitmessagekivy.baseclass.scan_screen import ScanScreen", + "Import": "from bitmessagekivy.baseclass.scan_screen import ScanScreen" }, "Popups": { "kv_string": "popup", - "Import": "from bitmessagekivy.baseclass.popup import *", + "Import": "from bitmessagekivy.baseclass.popup import *" }, "Qrcode": { "kv_string": "qrcode", - "Import": "from bitmessagekivy.baseclass.qrcode import ShowQRCode", - }, + "Import": "from bitmessagekivy.baseclass.qrcode import ShowQRCode" + } } diff --git a/src/images/kivy/avatar.png b/src/images/kivy/avatar.png deleted file mode 100644 index b006bfa2a69bcfce8d50e0ef220452aaf490ee8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27865 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 IM6N<$g4k)%&;S4c diff --git a/src/images/kivy/draft-avatar.png b/src/images/kivy/draft-avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..9fc38f3107db53490a92e8a3fe4708fac312ed03 GIT binary patch literal 14300 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 literal 0 HcmV?d00001