From 98501ec845f306756ba106a720f79c174b5c7de0 Mon Sep 17 00:00:00 2001 From: shekhar-cis Date: Thu, 13 Jan 2022 19:24:04 +0530 Subject: [PATCH] separated kivy-state --- src/bitmessagekivy/baseclass/addressbook.py | 11 +- src/bitmessagekivy/baseclass/allmail.py | 45 ++--- src/bitmessagekivy/baseclass/draft.py | 35 ++-- src/bitmessagekivy/baseclass/inbox.py | 53 ++--- src/bitmessagekivy/baseclass/login.py | 1 + src/bitmessagekivy/baseclass/maildetail.py | 77 ++++---- src/bitmessagekivy/baseclass/msg_composer.py | 35 ++-- src/bitmessagekivy/baseclass/myaddress.py | 15 +- src/bitmessagekivy/baseclass/network.py | 1 + src/bitmessagekivy/baseclass/payment.py | 5 +- src/bitmessagekivy/baseclass/popup.py | 1 + src/bitmessagekivy/baseclass/qrcode.py | 1 + src/bitmessagekivy/baseclass/sent.py | 71 +++---- src/bitmessagekivy/baseclass/trash.py | 21 +- src/bitmessagekivy/mpybit.py | 191 ++++++++++--------- src/state.py | 117 +++--------- 16 files changed, 319 insertions(+), 361 deletions(-) diff --git a/src/bitmessagekivy/baseclass/addressbook.py b/src/bitmessagekivy/baseclass/addressbook.py index 53ec14eb..b4f8df32 100644 --- a/src/bitmessagekivy/baseclass/addressbook.py +++ b/src/bitmessagekivy/baseclass/addressbook.py @@ -13,6 +13,7 @@ from kivymd.uix.dialog import MDDialog from kivymd.uix.label import MDLabel from kivy.uix.screenmanager import Screen +import kivy_state import state from bitmessagekivy.baseclass.common import ( @@ -43,10 +44,10 @@ class AddressBook(Screen): def loadAddresslist(self, account, where="", what=""): """Clock Schdule for method AddressBook""" - if state.searcing_text: + if kivy_state.searcing_text: self.ids.scroll_y.scroll_y = 1.0 where = ['label', 'address'] - what = state.searcing_text + what = kivy_state.searcing_text xAddress = '' self.ids.tag_label.text = '' self.queryreturn = kivy_helper_search.search_sql( @@ -61,7 +62,7 @@ class AddressBook(Screen): content = MDLabel( font_style='Caption', theme_text_color='Primary', - text="No contact found!" if state.searcing_text + text="No contact found!" if kivy_state.searcing_text else "No contact found yet...... ", halign='center', size_hint_y=None, @@ -79,9 +80,9 @@ class AddressBook(Screen): listItem.theme_text_color = "Custom" listItem.text_color = ThemeClsColor # listItem.add_widget(AvatarSampleWidget( - # source=state.imageDir + '/text_images/{}.png'.format( + # source=kivy_state.imageDir + '/text_images/{}.png'.format( # avatarImageFirstLetter(item[0].strip())))) - image = state.imageDir + "/text_images/{}.png".format( + image = kivy_state.imageDir + "/text_images/{}.png".format( avatarImageFirstLetter(item[0].strip())) message_row.ids.avater_img.source = image listItem.bind(on_release=partial( diff --git a/src/bitmessagekivy/baseclass/allmail.py b/src/bitmessagekivy/baseclass/allmail.py index c22a96fa..29e4a1b8 100644 --- a/src/bitmessagekivy/baseclass/allmail.py +++ b/src/bitmessagekivy/baseclass/allmail.py @@ -9,6 +9,7 @@ from kivy.properties import ( from kivy.uix.screenmanager import Screen from kivymd.uix.label import MDLabel +import kivy_state import state from bitmessagekivy.baseclass.common import ( @@ -31,9 +32,9 @@ class Allmails(Screen): def __init__(self, *args, **kwargs): """Method Parsing the address""" super(Allmails, self).__init__(*args, **kwargs) - if state.association == '': + if kivy_state.association == '': if state.kivyapp.variable_1: - state.association = state.kivyapp.variable_1[0] + kivy_state.association = state.kivyapp.variable_1[0] Clock.schedule_once(self.init_ui, 0) def init_ui(self, dt=0): @@ -43,16 +44,16 @@ class Allmails(Screen): def loadMessagelist(self): """Load Inbox, Sent anf Draft list of messages""" - self.account = state.association + self.account = kivy_state.association self.ids.tag_label.text = '' self.allMessageQuery(0, 20) if self.all_mails: self.ids.tag_label.text = 'All Mails' state.kivyapp.get_inbox_count() state.kivyapp.get_sent_count() - state.all_count = str( - int(state.sent_count) + int(state.inbox_count)) - self.set_AllmailCnt(state.all_count) + kivy_state.all_count = str( + int(kivy_state.sent_count) + int(kivy_state.inbox_count)) + self.set_AllmailCnt(kivy_state.all_count) self.set_mdlist() # self.ids.refresh_layout.bind(scroll_y=self.check_scroll_y) self.ids.scroll_y.bind(scroll_y=self.check_scroll_y) @@ -101,7 +102,7 @@ class Allmails(Screen): listItem.secondary_text = secondary_text listItem.theme_text_color = "Custom" listItem.text_color = ThemeClsColor - img_latter = state.imageDir + '/text_images/{}.png'.format( + img_latter = kivy_state.imageDir + '/text_images/{}.png'.format( avatarImageFirstLetter(body.strip())) message_row.ids.avater_img.source = img_latter listItem.bind(on_release=partial( @@ -117,7 +118,7 @@ class Allmails(Screen): # listItem.text_color = ThemeClsColor # listItem.add_widget(AvatarSampleWidget( - # source=state.imageDir + '/text_images/{}.png'.format( + # source=kivy_state.imageDir + '/text_images/{}.png'.format( # avatarImageFirstLetter(body.strip())))) # listItem.bind(on_release=partial( # self.mail_detail, item[5], item[4], message_row)) @@ -147,9 +148,9 @@ class Allmails(Screen): if instance.state == 'closed': instance.ids.delete_msg.disabled = True if instance.open_progress == 0.0: - state.detailPageType = folder - state.is_allmail = True - state.mail_id = unique_id + kivy_state.detailPageType = folder + kivy_state.is_allmail = True + kivy_state.mail_id = unique_id if self.manager: src_mng_obj = self.manager else: @@ -178,21 +179,21 @@ class Allmails(Screen): msg_count_objs = self.parent.parent.parent.ids.content_drawer.ids nav_lay_obj = self.parent.parent.parent.ids if folder == 'inbox': - msg_count_objs.inbox_cnt.ids.badge_txt.text = showLimitedCnt(int(state.inbox_count) - 1) - state.inbox_count = str(int(state.inbox_count) - 1) + msg_count_objs.inbox_cnt.ids.badge_txt.text = showLimitedCnt(int(kivy_state.inbox_count) - 1) + kivy_state.inbox_count = str(int(kivy_state.inbox_count) - 1) nav_lay_obj.sc1.ids.ml.clear_widgets() - nav_lay_obj.sc1.loadMessagelist(state.association) + nav_lay_obj.sc1.loadMessagelist(kivy_state.association) else: - msg_count_objs.send_cnt.ids.badge_txt.text = showLimitedCnt(int(state.sent_count) - 1) - state.sent_count = str(int(state.sent_count) - 1) + msg_count_objs.send_cnt.ids.badge_txt.text = showLimitedCnt(int(kivy_state.sent_count) - 1) + kivy_state.sent_count = str(int(kivy_state.sent_count) - 1) nav_lay_obj.sc4.ids.ml.clear_widgets() - nav_lay_obj.sc4.loadSent(state.association) + nav_lay_obj.sc4.loadSent(kivy_state.association) if folder != 'inbox': - msg_count_objs.allmail_cnt.ids.badge_txt.text = showLimitedCnt(int(state.all_count) - 1) - state.all_count = str(int(state.all_count) - 1) - msg_count_objs.trash_cnt.ids.badge_txt.text = showLimitedCnt(int(state.trash_count) + 1) - state.trash_count = str(int(state.trash_count) + 1) - if int(state.all_count) <= 0: + msg_count_objs.allmail_cnt.ids.badge_txt.text = showLimitedCnt(int(kivy_state.all_count) - 1) + kivy_state.all_count = str(int(kivy_state.all_count) - 1) + msg_count_objs.trash_cnt.ids.badge_txt.text = showLimitedCnt(int(kivy_state.trash_count) + 1) + kivy_state.trash_count = str(int(kivy_state.trash_count) + 1) + if int(kivy_state.all_count) <= 0: self.ids.tag_label.text = '' # nav_lay_obj.sc5.clear_widgets() # nav_lay_obj.sc5.add_widget(Trash()) diff --git a/src/bitmessagekivy/baseclass/draft.py b/src/bitmessagekivy/baseclass/draft.py index cf31599e..2d0cb979 100644 --- a/src/bitmessagekivy/baseclass/draft.py +++ b/src/bitmessagekivy/baseclass/draft.py @@ -13,6 +13,7 @@ from kivy.properties import ( from kivy.uix.screenmanager import Screen from kivymd.uix.label import MDLabel +import kivy_state import state from bitmessagekivy.baseclass.common import ( @@ -33,9 +34,9 @@ class Draft(Screen): def __init__(self, *args, **kwargs): """Method used for storing draft messages""" super(Draft, self).__init__(*args, **kwargs) - if state.association == '': + if kivy_state.association == '': if state.kivyapp.variable_1: - state.association = state.kivyapp.variable_1[0] + kivy_state.association = state.kivyapp.variable_1[0] Clock.schedule_once(self.init_ui, 0) def init_ui(self, dt=0): @@ -45,20 +46,20 @@ class Draft(Screen): def sentaccounts(self): """Load draft accounts""" - # self.account = state.association + # self.account = kivy_state.association self.loadDraft() def loadDraft(self, where="", what=""): """Load draft list for Draft messages""" - self.account = state.association + self.account = kivy_state.association xAddress = 'fromaddress' self.ids.tag_label.text = '' self.draftDataQuery(xAddress, where, what) - # if state.msg_counter_objs: - # state.msg_counter_objs.draft_cnt.children[0].children[0].text = showLimitedCnt(len(self.queryreturn)) + # if kivy_state.msg_counter_objs: + # kivy_state.msg_counter_objs.draft_cnt.children[0].children[0].text = showLimitedCnt(len(self.queryreturn)) if self.queryreturn: self.ids.tag_label.text = 'Draft' - self.set_draftCnt(state.draft_count) + self.set_draftCnt(kivy_state.draft_count) self.set_mdList() self.ids.scroll_y.bind(scroll_y=self.check_scroll_y) else: @@ -104,7 +105,7 @@ class Draft(Screen): listItem.secondary_text = item["text"] listItem.theme_text_color = "Custom" listItem.text_color = ThemeClsColor - message_row.ids.avater_img.source = state.imageDir + '/avatar.png' + message_row.ids.avater_img.source = kivy_state.imageDir + '/avatar.png' listItem.bind(on_release=partial( self.draft_detail, item['ackdata'], message_row)) message_row.ids.time_tag.text = str(ShowTimeHistoy(item['senttime'])) @@ -130,8 +131,8 @@ class Draft(Screen): if instance.state == 'closed': instance.ids.delete_msg.disabled = True if instance.open_progress == 0.0: - state.detailPageType = 'draft' - state.mail_id = ackdata + kivy_state.detailPageType = 'draft' + kivy_state.mail_id = ackdata if self.manager: src_mng_obj = self.manager else: @@ -145,10 +146,10 @@ class Draft(Screen): def delete_draft(self, data_index, instance, *args): """Delete draft message permanently""" sqlExecute("DELETE FROM sent WHERE ackdata = ?;", data_index) - if int(state.draft_count) > 0: - state.draft_count = str(int(state.draft_count) - 1) - self.set_draftCnt(state.draft_count) - if int(state.draft_count) <= 0: + if int(kivy_state.draft_count) > 0: + kivy_state.draft_count = str(int(kivy_state.draft_count) - 1) + self.set_draftCnt(kivy_state.draft_count) + if int(kivy_state.draft_count) <= 0: # self.ids.identi_tag.children[0].text = '' self.ids.tag_label.text = '' self.ids.ml.remove_widget(instance.parent.parent) @@ -190,9 +191,9 @@ class Draft(Screen): 'draft', encoding, BMConfigParser().safeGetInt('bitmessagesettings', 'ttl')) - state.msg_counter_objs = src_object.children[2].children[0].ids - state.draft_count = str(int(state.draft_count) + 1) \ - if state.association == fromAddress else state.draft_count + kivy_state.msg_counter_objs = src_object.children[2].children[0].ids + kivy_state.draft_count = str(int(kivy_state.draft_count) + 1) \ + if kivy_state.association == fromAddress else kivy_state.draft_count src_object.ids.sc16.clear_widgets() src_object.ids.sc16.add_widget(Draft()) toast('Save draft') diff --git a/src/bitmessagekivy/baseclass/inbox.py b/src/bitmessagekivy/baseclass/inbox.py index 34d24791..104aa43b 100644 --- a/src/bitmessagekivy/baseclass/inbox.py +++ b/src/bitmessagekivy/baseclass/inbox.py @@ -13,6 +13,7 @@ from kivy.properties import ( from kivy.uix.screenmanager import Screen from kivymd.uix.label import MDLabel +import kivy_state import state from bitmessagekivy.baseclass.common import ( @@ -39,9 +40,9 @@ class Inbox(Screen): @staticmethod def set_defaultAddress(): """This method set's default address""" - if state.association == "": + if kivy_state.association == "": if state.kivyapp.variable_1: - state.association = state.kivyapp.variable_1[0] + kivy_state.association = state.kivyapp.variable_1[0] def init_ui(self, dt=0): """Clock schdule for method inbox accounts""" @@ -50,12 +51,12 @@ class Inbox(Screen): def loadMessagelist(self, where="", what=""): """Load Inbox list for Inbox messages""" self.set_defaultAddress() - self.account = state.association - if state.searcing_text: + self.account = kivy_state.association + if kivy_state.searcing_text: # self.children[2].children[0].children[0].scroll_y = 1.0 self.ids.scroll_y.scroll_y = 1.0 where = ["subject", "message"] - what = state.searcing_text + what = kivy_state.searcing_text xAddress = "toaddress" data = [] self.ids.tag_label.text = "" @@ -64,7 +65,7 @@ class Inbox(Screen): if self.queryreturn: self.ids.tag_label.text = "Inbox" state.kivyapp.get_inbox_count() - self.set_inboxCount(state.inbox_count) + self.set_inboxCount(kivy_state.inbox_count) for mail in self.queryreturn: # third_text = mail[3].replace('\n', ' ') body = mail[3].decode() if isinstance(mail[3], bytes) else mail[3] @@ -93,7 +94,7 @@ class Inbox(Screen): font_style="Caption", theme_text_color="Primary", text="No message found!" - if state.searcing_text + if kivy_state.searcing_text else "yet no message for this account!!!!!!!!!!!!!", halign="center", size_hint_y=None, @@ -106,9 +107,9 @@ class Inbox(Screen): src_mng_obj = state.kivyapp.root.ids.content_drawer.ids src_mng_obj.inbox_cnt.ids.badge_txt.text = showLimitedCnt(int(msgCnt)) state.kivyapp.get_sent_count() - state.all_count = str( - int(state.sent_count) + int(state.inbox_count)) - src_mng_obj.allmail_cnt.ids.badge_txt.text = showLimitedCnt(int(state.all_count)) + kivy_state.all_count = str( + int(kivy_state.sent_count) + int(kivy_state.inbox_count)) + src_mng_obj.allmail_cnt.ids.badge_txt.text = showLimitedCnt(int(kivy_state.all_count)) def inboxDataQuery(self, xAddress, where, what, start_indx=0, end_indx=20): """This method is used for retrieving inbox data""" @@ -128,7 +129,7 @@ class Inbox(Screen): listItem.theme_text_color = "Custom" listItem.text_color = ThemeClsColor listItem._txt_right_pad = dp(70) - image = state.imageDir + "/text_images/{}.png".format( + image = kivy_state.imageDir + "/text_images/{}.png".format( avatarImageFirstLetter(item["secondary_text"].strip())) message_row.ids.avater_img.source = image listItem.bind(on_release=partial(self.inbox_detail, item["msgid"], message_row)) @@ -148,9 +149,9 @@ class Inbox(Screen): def update_inbox_screen_on_scroll(self, total_message, where="", what=""): """This method is used to load more data on scroll down""" data = [] - if state.searcing_text: + if kivy_state.searcing_text: where = ["subject", "message"] - what = state.searcing_text + what = kivy_state.searcing_text self.inboxDataQuery("toaddress", where, what, total_message, 5) for mail in self.queryreturn: # third_text = mail[3].replace('\n', ' ') @@ -173,8 +174,8 @@ class Inbox(Screen): if instance.state == 'closed': instance.ids.delete_msg.disabled = True if instance.open_progress == 0.0: - state.detailPageType = "inbox" - state.mail_id = msg_id + kivy_state.detailPageType = "inbox" + kivy_state.mail_id = msg_id if self.manager: src_mng_obj = self.manager else: @@ -189,22 +190,22 @@ class Inbox(Screen): """Delete inbox mail from inbox listing""" sqlExecute("UPDATE inbox SET folder = 'trash' WHERE msgid = ?;", data_index) msg_count_objs = self.parent.parent.ids.content_drawer.ids - if int(state.inbox_count) > 0: + if int(kivy_state.inbox_count) > 0: msg_count_objs.inbox_cnt.ids.badge_txt.text = showLimitedCnt( - int(state.inbox_count) - 1 + int(kivy_state.inbox_count) - 1 ) msg_count_objs.trash_cnt.ids.badge_txt.text = showLimitedCnt( - int(state.trash_count) + 1 + int(kivy_state.trash_count) + 1 ) - state.inbox_count = str(int(state.inbox_count) - 1) - state.trash_count = str(int(state.trash_count) + 1) - if int(state.all_count) > 0: + kivy_state.inbox_count = str(int(kivy_state.inbox_count) - 1) + kivy_state.trash_count = str(int(kivy_state.trash_count) + 1) + if int(kivy_state.all_count) > 0: msg_count_objs.allmail_cnt.ids.badge_txt.text = showLimitedCnt( - int(state.all_count) - 1 + int(kivy_state.all_count) - 1 ) - state.all_count = str(int(state.all_count) - 1) + kivy_state.all_count = str(int(kivy_state.all_count) - 1) - if int(state.inbox_count) <= 0: + if int(kivy_state.inbox_count) <= 0: # self.ids.identi_tag.children[0].text = '' self.ids.tag_label.text = '' self.ids.ml.remove_widget( @@ -235,10 +236,10 @@ class Inbox(Screen): def refresh_callback(interval): """Method used for loading the inbox screen data""" - state.searcing_text = "" + kivy_state.searcing_text = "" self.children[2].children[1].ids.search_field.text = "" self.ids.ml.clear_widgets() - self.loadMessagelist(state.association) + self.loadMessagelist(kivy_state.association) self.has_refreshed = True self.ids.refresh_layout.refresh_done() self.tick = 0 diff --git a/src/bitmessagekivy/baseclass/login.py b/src/bitmessagekivy/baseclass/login.py index e3857806..2a4b6996 100644 --- a/src/bitmessagekivy/baseclass/login.py +++ b/src/bitmessagekivy/baseclass/login.py @@ -7,6 +7,7 @@ from kivy.uix.boxlayout import BoxLayout from kivymd.uix.behaviors.elevation import RectangularElevationBehavior from kivy.uix.screenmanager import Screen +import kivy_state import state from bitmessagekivy.baseclass.common import toast diff --git a/src/bitmessagekivy/baseclass/maildetail.py b/src/bitmessagekivy/baseclass/maildetail.py index 1bb8a6c5..38fc12fc 100644 --- a/src/bitmessagekivy/baseclass/maildetail.py +++ b/src/bitmessagekivy/baseclass/maildetail.py @@ -19,6 +19,7 @@ from kivymd.uix.list import ( ) from kivy.uix.screenmanager import Screen +import kivy_state import state from bitmessagekivy.baseclass.common import ( @@ -96,20 +97,20 @@ class MailDetail(Screen): # pylint: disable=too-many-instance-attributes def init_ui(self, dt=0): """Clock Schdule for method MailDetail mails""" - self.page_type = state.detailPageType if state.detailPageType else '' + self.page_type = kivy_state.detailPageType if kivy_state.detailPageType else '' try: - if state.detailPageType == 'sent' or state.detailPageType == 'draft': + if kivy_state.detailPageType == 'sent' or kivy_state.detailPageType == 'draft': data = sqlQuery( "select toaddress, fromaddress, subject, message, status," - " ackdata, senttime from sent where ackdata = ?;", state.mail_id) - state.status = self - state.ackdata = data[0][5] + " ackdata, senttime from sent where ackdata = ?;", kivy_state.mail_id) + kivy_state.status = self + kivy_state.ackdata = data[0][5] self.assign_mail_details(data) state.kivyapp.set_mail_detail_header() - elif state.detailPageType == 'inbox': + elif kivy_state.detailPageType == 'inbox': data = sqlQuery( "select toaddress, fromaddress, subject, message, received from inbox" - " where msgid = ?;", state.mail_id) + " where msgid = ?;", kivy_state.mail_id) self.assign_mail_details(data) state.kivyapp.set_mail_detail_header() except Exception as e: @@ -127,51 +128,51 @@ class MailDetail(Screen): # pylint: disable=too-many-instance-attributes self.message = body 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 = state.imageDir + '/avatar.png' if state.detailPageType == 'draft' else ( - state.imageDir + '/text_images/{0}.png'.format(avatarImageFirstLetter(self.subject.strip()))) - self.timeinseconds = data[0][4] if state.detailPageType == 'inbox' else data[0][6] + self.time_tag = ShowTimeHistoy(data[0][4]) if kivy_state.detailPageType == 'inbox' else ShowTimeHistoy(data[0][6]) + self.avatarImg = kivy_state.imageDir + '/avatar.png' if kivy_state.detailPageType == 'draft' else ( + kivy_state.imageDir + '/text_images/{0}.png'.format(avatarImageFirstLetter(self.subject.strip()))) + self.timeinseconds = data[0][4] if kivy_state.detailPageType == 'inbox' else data[0][6] def delete_mail(self): """Method for mail delete""" msg_count_objs = state.kivyapp.root.ids.content_drawer.ids - state.searcing_text = '' + kivy_state.searcing_text = '' self.children[0].children[0].active = True - if state.detailPageType == 'sent': + if kivy_state.detailPageType == 'sent': state.kivyapp.root.ids.sc4.ids.sent_search.ids.search_field.text = '' sqlExecute( "UPDATE sent SET folder = 'trash' WHERE" - " ackdata = ?;", state.mail_id) - msg_count_objs.send_cnt.ids.badge_txt.text = str(int(state.sent_count) - 1) - state.sent_count = str(int(state.sent_count) - 1) + " ackdata = ?;", kivy_state.mail_id) + msg_count_objs.send_cnt.ids.badge_txt.text = str(int(kivy_state.sent_count) - 1) + kivy_state.sent_count = str(int(kivy_state.sent_count) - 1) self.parent.screens[2].ids.ml.clear_widgets() - self.parent.screens[2].loadSent(state.association) - elif state.detailPageType == 'inbox': + self.parent.screens[2].loadSent(kivy_state.association) + elif kivy_state.detailPageType == 'inbox': state.kivyapp.root.ids.sc1.ids.inbox_search.ids.search_field.text = '' sqlExecute( "UPDATE inbox SET folder = 'trash' WHERE" - " msgid = ?;", state.mail_id) + " msgid = ?;", kivy_state.mail_id) msg_count_objs.inbox_cnt.ids.badge_txt.text = str( - int(state.inbox_count) - 1) - state.inbox_count = str(int(state.inbox_count) - 1) + int(kivy_state.inbox_count) - 1) + kivy_state.inbox_count = str(int(kivy_state.inbox_count) - 1) self.parent.screens[0].ids.ml.clear_widgets() - self.parent.screens[0].loadMessagelist(state.association) + self.parent.screens[0].loadMessagelist(kivy_state.association) - elif state.detailPageType == 'draft': - sqlExecute("DELETE FROM sent WHERE ackdata = ?;", state.mail_id) + elif kivy_state.detailPageType == 'draft': + sqlExecute("DELETE FROM sent WHERE ackdata = ?;", kivy_state.mail_id) msg_count_objs.draft_cnt.ids.badge_txt.text = str( - int(state.draft_count) - 1) - state.draft_count = str(int(state.draft_count) - 1) + int(kivy_state.draft_count) - 1) + kivy_state.draft_count = str(int(kivy_state.draft_count) - 1) self.parent.screens[13].clear_widgets() self.parent.screens[13].add_widget(Factory.Draft()) - if state.detailPageType != 'draft': + if kivy_state.detailPageType != 'draft': msg_count_objs.trash_cnt.ids.badge_txt.text = str( - int(state.trash_count) + 1) + int(kivy_state.trash_count) + 1) msg_count_objs.allmail_cnt.ids.badge_txt.text = str( - int(state.all_count) - 1) - state.trash_count = str(int(state.trash_count) + 1) - state.all_count = str(int(state.all_count) - 1) if int(state.all_count) else '0' + int(kivy_state.all_count) - 1) + kivy_state.trash_count = str(int(kivy_state.trash_count) + 1) + kivy_state.all_count = str(int(kivy_state.all_count) - 1) if int(kivy_state.all_count) else '0' self.parent.screens[3].clear_widgets() self.parent.screens[3].add_widget(Factory.Trash()) self.parent.screens[14].clear_widgets() @@ -180,20 +181,20 @@ class MailDetail(Screen): # pylint: disable=too-many-instance-attributes def callback_for_delete(self, dt=0): """Delete method from allmails""" - if state.detailPageType: + if kivy_state.detailPageType: self.children[0].children[0].active = False state.kivyapp.set_common_header() self.parent.current = 'allmails' \ - if state.is_allmail else state.detailPageType - state.detailPageType = '' + if kivy_state.is_allmail else kivy_state.detailPageType + kivy_state.detailPageType = '' toast('Deleted') def inbox_reply(self): """Reply inbox messages""" - state.in_composer = True + kivy_state.in_composer = True data = sqlQuery( "select toaddress, fromaddress, subject, message, received from inbox where" - " msgid = ?;", state.mail_id) + " msgid = ?;", kivy_state.mail_id) composer_obj = self.parent.screens[1].children[1].ids composer_obj.ti.text = data[0][0] composer_obj.btn.text = data[0][0] @@ -214,10 +215,10 @@ class MailDetail(Screen): # pylint: disable=too-many-instance-attributes def write_msg(self, navApp): """Write on draft mail""" - state.send_draft_mail = state.mail_id + kivy_state.send_draft_mail = kivy_state.mail_id data = sqlQuery( "select toaddress, fromaddress, subject, message from sent where" - " ackdata = ?;", state.mail_id) + " ackdata = ?;", kivy_state.mail_id) composer_ids = ( self.parent.parent.ids.sc3.children[1].ids) composer_ids.ti.text = data[0][1] diff --git a/src/bitmessagekivy/baseclass/msg_composer.py b/src/bitmessagekivy/baseclass/msg_composer.py index 9d99fc08..70ccc791 100644 --- a/src/bitmessagekivy/baseclass/msg_composer.py +++ b/src/bitmessagekivy/baseclass/msg_composer.py @@ -26,6 +26,7 @@ from kivy.uix.textinput import TextInput from kivymd.uix.behaviors.hover_behavior import HoverBehavior from kivymd.uix.boxlayout import MDBoxLayout from kivymd.theming import ThemableBehavior +import kivy_state import state import queues @@ -94,7 +95,7 @@ class DropDownWidget(BoxLayout): ) if status == "success": navApp.root.ids.sc3.children[0].active = True - if state.detailPageType == "draft" and state.send_draft_mail: + if kivy_state.detailPageType == "draft" and kivy_state.send_draft_mail: sqlExecute( "UPDATE sent SET toaddress = ?" ", fromaddress = ? , subject = ?" @@ -107,11 +108,11 @@ class DropDownWidget(BoxLayout): message, int(time.time()), int(time.time()), - state.send_draft_mail) + kivy_state.send_draft_mail) self.parent.parent.screens[13].clear_widgets() self.parent.parent.screens[13].add_widget(Factory.Draft()) - # state.detailPageType = '' - # state.send_draft_mail = None + # kivy_state.detailPageType = '' + # kivy_state.send_draft_mail = None else: # toAddress = addBMIfNotPresent(toAddress) if (addressVersionNumber > 4) or ( @@ -145,24 +146,24 @@ class DropDownWidget(BoxLayout): 3, #encoding BMConfigParser().safeGetInt( 'bitmessagesettings', 'ttl')) - state.check_sent_acc = fromAddress - # state.msg_counter_objs = self.parent.parent.parent.parent\ + kivy_state.check_sent_acc = fromAddress + # kivy_state.msg_counter_objs = self.parent.parent.parent.parent\ # .parent.parent.children[2].children[0].ids - if state.detailPageType == 'draft' \ - and state.send_draft_mail: - state.draft_count = str(int(state.draft_count) - 1) - # state.msg_counter_objs.draft_cnt.badge_text = ( - # state.draft_count) - state.detailPageType = '' - state.send_draft_mail = None + if kivy_state.detailPageType == 'draft' \ + and kivy_state.send_draft_mail: + kivy_state.draft_count = str(int(kivy_state.draft_count) - 1) + # kivy_state.msg_counter_objs.draft_cnt.badge_text = ( + # kivy_state.draft_count) + kivy_state.detailPageType = '' + kivy_state.send_draft_mail = None self.parent.parent.parent.ids.sc4.update_sent_messagelist() allmailCnt_obj = state.kivyapp.root.ids.content_drawer.ids.allmail_cnt - allmailCnt_obj.ids.badge_txt.text = showLimitedCnt(int(state.all_count) + 1) - state.all_count = str(int(state.all_count) + 1) + allmailCnt_obj.ids.badge_txt.text = showLimitedCnt(int(kivy_state.all_count) + 1) + kivy_state.all_count = str(int(kivy_state.all_count) + 1) Clock.schedule_once(self.callback_for_msgsend, 3) queues.workerQueue.put(('sendmessage', addBMIfNotPresent(toAddress))) print("sqlExecute successfully #######################") - state.in_composer = True + kivy_state.in_composer = True return else: msg = 'Enter a valid recipients address' @@ -176,7 +177,7 @@ class DropDownWidget(BoxLayout): def callback_for_msgsend(dt=0): # pylint: disable=unused-argument """Callback method for messagesend""" state.kivyapp.root.ids.sc3.children[0].active = False - state.in_sent_method = True + kivy_state.in_sent_method = True state.kivyapp.back_press() toast("sent") diff --git a/src/bitmessagekivy/baseclass/myaddress.py b/src/bitmessagekivy/baseclass/myaddress.py index 2e84e871..e753dff2 100644 --- a/src/bitmessagekivy/baseclass/myaddress.py +++ b/src/bitmessagekivy/baseclass/myaddress.py @@ -17,6 +17,7 @@ from kivymd.uix.list import ( from kivymd.uix.selectioncontrol import MDSwitch from kivy.uix.screenmanager import Screen +import kivy_state import state from bitmessagekivy.baseclass.common import ( @@ -57,7 +58,7 @@ class MyAddress(Screen): # pylint: disable=unnecessary-lambda, deprecated-lambda # self.addresses_list = state.kivyapp.variable_1 self.addresses_list = BMConfigParser().addresses() - if state.searcing_text: + if kivy_state.searcing_text: self.ids.refresh_layout.scroll_y = 1.0 filtered_list = [ x for x in BMConfigParser().addresses() @@ -75,13 +76,13 @@ class MyAddress(Screen): content = MDLabel( font_style='Caption', theme_text_color='Primary', - text="No address found!" if state.searcing_text + text="No address found!" if kivy_state.searcing_text else "yet no address is created by user!!!!!!!!!!!!!", halign='center', size_hint_y=None, valign='top') self.ids.ml.add_widget(content) - if not state.searcing_text and not self.is_add_created: + if not kivy_state.searcing_text and not self.is_add_created: try: self.manager.current = 'login' except Exception: @@ -106,11 +107,11 @@ class MyAddress(Screen): except Exception: pass meny.add_widget(AvatarSampleWidget( - source=state.imageDir + '/text_images/{}.png'.format( + source=kivy_state.imageDir + '/text_images/{}.png'.format( avatarImageFirstLetter(item['text'].strip())))) meny.bind(on_press=partial( self.myadd_detail, item['secondary_text'], item['text'])) - if state.association == item['secondary_text'] and is_enable == 'true': + if kivy_state.association == item['secondary_text'] and is_enable == 'true': badge_obj = BadgeText( size_hint=(None, None), size=[90 if platform == 'android' else 50, 60], @@ -184,7 +185,7 @@ class MyAddress(Screen): While the spinner remains on the screen""" def refresh_callback(interval): """Method used for loading the myaddress screen data""" - state.searcing_text = '' + kivy_state.searcing_text = '' # state.kivyapp.root.ids.sc10.children[2].active = False self.ids.search_bar.ids.search_field.text = '' self.has_refreshed = True @@ -203,7 +204,7 @@ class MyAddress(Screen): BMConfigParser().get(address, 'label').lower(), address.lower() ] - if (state.searcing_text).lower() in x + if (kivy_state.searcing_text).lower() in x ]: return True return False diff --git a/src/bitmessagekivy/baseclass/network.py b/src/bitmessagekivy/baseclass/network.py index bdc79068..87599304 100644 --- a/src/bitmessagekivy/baseclass/network.py +++ b/src/bitmessagekivy/baseclass/network.py @@ -1,3 +1,4 @@ +import kivy_state import state from kivy.clock import Clock diff --git a/src/bitmessagekivy/baseclass/payment.py b/src/bitmessagekivy/baseclass/payment.py index 0e9777ca..cbf8ed20 100644 --- a/src/bitmessagekivy/baseclass/payment.py +++ b/src/bitmessagekivy/baseclass/payment.py @@ -15,6 +15,7 @@ from kivymd.uix.list import ( from bitmessagekivy.baseclass.common import toast # import queues +import kivy_state import state @@ -24,7 +25,7 @@ class Payment(Screen): def get_free_credits(self, instance): """Get the available credits""" # pylint: disable=no-self-use - state.availabe_credit = instance.parent.children[1].text + kivy_state.availabe_credit = instance.parent.children[1].text existing_credits = state.kivyapp.root.ids.sc18.ids.cred.text if float(existing_credits.split()[1]) > 0: toast( @@ -33,7 +34,7 @@ class Payment(Screen): else: toast('Coins added to your account!') state.kivyapp.root.ids.sc18.ids.cred.text = '{0}'.format( - state.availabe_credit) + kivy_state.availabe_credit) @staticmethod def create_hidden_payment_address(): diff --git a/src/bitmessagekivy/baseclass/popup.py b/src/bitmessagekivy/baseclass/popup.py index de6441d3..327ab2a6 100644 --- a/src/bitmessagekivy/baseclass/popup.py +++ b/src/bitmessagekivy/baseclass/popup.py @@ -8,6 +8,7 @@ from kivy.properties import StringProperty from kivy.uix.boxlayout import BoxLayout from kivy.uix.popup import Popup +import kivy_state import state from addresses import decodeAddress from datetime import datetime diff --git a/src/bitmessagekivy/baseclass/qrcode.py b/src/bitmessagekivy/baseclass/qrcode.py index 6c81bd58..b695b16c 100644 --- a/src/bitmessagekivy/baseclass/qrcode.py +++ b/src/bitmessagekivy/baseclass/qrcode.py @@ -1,3 +1,4 @@ +import kivy_state import state from bitmessagekivy.baseclass.common import toast from kivy.uix.screenmanager import Screen diff --git a/src/bitmessagekivy/baseclass/sent.py b/src/bitmessagekivy/baseclass/sent.py index 16ec3050..74741bfc 100644 --- a/src/bitmessagekivy/baseclass/sent.py +++ b/src/bitmessagekivy/baseclass/sent.py @@ -10,6 +10,7 @@ from kivy.properties import StringProperty, ListProperty from kivy.uix.screenmanager import Screen from kivymd.uix.label import MDLabel +import kivy_state import state from bitmessagekivy.baseclass.common import ( @@ -29,9 +30,9 @@ class Sent(Screen): def __init__(self, *args, **kwargs): """Association with the screen""" super(Sent, self).__init__(*args, **kwargs) - if state.association == '': + if kivy_state.association == '': if state.kivyapp.variable_1: - state.association = state.kivyapp.variable_1[0] + kivy_state.association = state.kivyapp.variable_1[0] Clock.schedule_once(self.init_ui, 0) def init_ui(self, dt=0): @@ -41,18 +42,18 @@ class Sent(Screen): def loadSent(self, where="", what=""): """Load Sent list for Sent messages""" - self.account = state.association - if state.searcing_text: + self.account = kivy_state.association + if kivy_state.searcing_text: self.ids.scroll_y.scroll_y = 1.0 where = ['subject', 'message'] - what = state.searcing_text + what = kivy_state.searcing_text xAddress = 'fromaddress' data = [] self.ids.tag_label.text = '' self.sentDataQuery(xAddress, where, what) if self.queryreturn: self.ids.tag_label.text = 'Sent' - self.set_sentCount(state.sent_count) + self.set_sentCount(kivy_state.sent_count) for mail in self.queryreturn: data.append({ 'text': mail[1].strip(), @@ -68,7 +69,7 @@ class Sent(Screen): content = MDLabel( font_style='Caption', theme_text_color='Primary', - text="No message found!" if state.searcing_text + text="No message found!" if kivy_state.searcing_text else "yet no message for this account!!!!!!!!!!!!!", halign='center', size_hint_y=None, @@ -98,7 +99,7 @@ class Sent(Screen): listItem.secondary_text = item["secondary_text"] listItem.theme_text_color = "Custom" listItem.text_color = ThemeClsColor - image = state.imageDir + '/text_images/{}.png'.format( + image = kivy_state.imageDir + '/text_images/{}.png'.format( avatarImageFirstLetter(item['secondary_text'].strip())) message_row.ids.avater_img.source = image listItem.bind(on_release=partial(self.sent_detail, item['ackdata'], message_row)) @@ -111,25 +112,25 @@ class Sent(Screen): def update_sent_messagelist(self): """This method is used to update screen when new mail is sent""" - self.account = state.association + self.account = kivy_state.association if len(self.ids.ml.children) < 3: self.ids.ml.clear_widgets() self.loadSent() - if state.association == state.check_sent_acc: - total_sent = int(state.sent_count) + 1 - state.sent_count = str(int(state.sent_count) + 1) + if kivy_state.association == kivy_state.check_sent_acc: + total_sent = int(kivy_state.sent_count) + 1 + kivy_state.sent_count = str(int(kivy_state.sent_count) + 1) self.set_sentCount(total_sent) else: - total_sent = int(state.sent_count) + total_sent = int(kivy_state.sent_count) else: data = [] self.sentDataQuery('fromaddress', '', '', 0, 1) - if state.association == state.check_sent_acc: - total_sent = int(state.sent_count) + 1 - state.sent_count = str(int(state.sent_count) + 1) + if kivy_state.association == kivy_state.check_sent_acc: + total_sent = int(kivy_state.sent_count) + 1 + kivy_state.sent_count = str(int(kivy_state.sent_count) + 1) self.set_sentCount(total_sent) else: - total_sent = int(state.sent_count) + total_sent = int(kivy_state.sent_count) for mail in self.queryreturn: data.append({ 'text': mail[1].strip(), @@ -138,11 +139,11 @@ class Sent(Screen): '\t', '').replace(' ', ''), 'ackdata': mail[5], 'senttime': mail[6]}) self.set_mdlist(data, total_sent - 1) - if state.msg_counter_objs and state.association == ( - state.check_sent_acc): - state.all_count = str(int(state.all_count) + 1) - state.msg_counter_objs.allmail_cnt.badge_text = state.all_count - state.check_sent_acc = None + if kivy_state.msg_counter_objs and kivy_state.association == ( + kivy_state.check_sent_acc): + kivy_state.all_count = str(int(kivy_state.all_count) + 1) + kivy_state.msg_counter_objs.allmail_cnt.badge_text = kivy_state.all_count + kivy_state.check_sent_acc = None def check_scroll_y(self, instance, somethingelse): """Load data on scroll down""" @@ -153,9 +154,9 @@ class Sent(Screen): def update_sent_screen_on_scroll(self, total_sent_msg, where="", what=""): """This method is used to load more data on scroll down""" - if state.searcing_text: + if kivy_state.searcing_text: where = ['subject', 'message'] - what = state.searcing_text + what = kivy_state.searcing_text self.sentDataQuery('fromaddress', where, what, total_sent_msg, 5) data = [] for mail in self.queryreturn: @@ -172,7 +173,7 @@ class Sent(Screen): """Set the total no. of sent message count""" src_mng_obj = state.kivyapp.root.ids.content_drawer.ids.send_cnt state.kivyapp.root.ids.content_drawer.ids.send_cnt.ids.badge_txt.text - if state.association: + if kivy_state.association: src_mng_obj.ids.badge_txt.text = showLimitedCnt(int(total_sent)) else: src_mng_obj.ids.badge_txt.text = '0' @@ -182,8 +183,8 @@ class Sent(Screen): if instance.state == 'closed': instance.ids.delete_msg.disabled = True if instance.open_progress == 0.0: - state.detailPageType = 'sent' - state.mail_id = ackdata + kivy_state.detailPageType = 'sent' + kivy_state.mail_id = ackdata if self.manager: src_mng_obj = self.manager else: @@ -197,14 +198,14 @@ class Sent(Screen): def delete(self, data_index, instance, *args): """Delete sent mail from sent mail listing""" msg_count_objs = self.parent.parent.ids.content_drawer.ids - if int(state.sent_count) > 0: - msg_count_objs.send_cnt.ids.badge_txt.text = showLimitedCnt(int(state.sent_count) - 1) - msg_count_objs.trash_cnt.ids.badge_txt.text = showLimitedCnt(int(state.trash_count) + 1) - msg_count_objs.allmail_cnt.ids.badge_txt.text = showLimitedCnt(int(state.all_count) - 1) - state.sent_count = str(int(state.sent_count) - 1) - state.trash_count = str(int(state.trash_count) + 1) - state.all_count = str(int(state.all_count) - 1) - if int(state.sent_count) <= 0: + if int(kivy_state.sent_count) > 0: + msg_count_objs.send_cnt.ids.badge_txt.text = showLimitedCnt(int(kivy_state.sent_count) - 1) + msg_count_objs.trash_cnt.ids.badge_txt.text = showLimitedCnt(int(kivy_state.trash_count) + 1) + msg_count_objs.allmail_cnt.ids.badge_txt.text = showLimitedCnt(int(kivy_state.all_count) - 1) + kivy_state.sent_count = str(int(kivy_state.sent_count) - 1) + kivy_state.trash_count = str(int(kivy_state.trash_count) + 1) + kivy_state.all_count = str(int(kivy_state.all_count) - 1) + if int(kivy_state.sent_count) <= 0: self.ids.tag_label.text = '' sqlExecute( "UPDATE sent SET folder = 'trash'" diff --git a/src/bitmessagekivy/baseclass/trash.py b/src/bitmessagekivy/baseclass/trash.py index a0eea1e9..df02f628 100644 --- a/src/bitmessagekivy/baseclass/trash.py +++ b/src/bitmessagekivy/baseclass/trash.py @@ -12,6 +12,7 @@ from kivymd.uix.dialog import MDDialog from kivymd.uix.label import MDLabel from kivy.uix.screenmanager import Screen +import kivy_state import state from bitmessagekivy.baseclass.common import ( @@ -36,17 +37,17 @@ class Trash(Screen): def init_ui(self, dt=0): """Clock Schdule for method trash screen""" - if state.association == '': + if kivy_state.association == '': if state.kivyapp.variable_1: - state.association = state.kivyapp.variable_1[0] + kivy_state.association = state.kivyapp.variable_1[0] self.ids.tag_label.text = '' self.trashDataQuery(0, 20) if len(self.trash_messages): self.ids.ml.clear_widgets() self.ids.tag_label.text = 'Trash' # src_mng_obj = state.kivyapp.root.children[2].children[0].ids - # src_mng_obj.trash_cnt.badge_text = state.trash_count - self.set_TrashCnt(state.trash_count) + # src_mng_obj.trash_cnt.badge_text = kivy_state.trash_count + self.set_TrashCnt(kivy_state.trash_count) self.set_mdList() self.ids.scroll_y.bind(scroll_y=self.check_scroll_y) else: @@ -72,7 +73,7 @@ class Trash(Screen): " DATE(received) As actionTime, received as msgtime FROM inbox" " WHERE folder = 'trash' and toaddress = '{0}'" " ORDER BY actionTime DESC limit {1}, {2}".format( - state.association, start_indx, end_indx)) + kivy_state.association, start_indx, end_indx)) def set_TrashCnt(self, Count): # pylint: disable=no-self-use """This method is used to set trash message count""" @@ -94,7 +95,7 @@ class Trash(Screen): subject) >= 50 else (subject + ',' + body)[0:50] + '........').replace('\t', '').replace(' ', '') listItem.theme_text_color = "Custom" listItem.text_color = ThemeClsColor - img_latter = state.imageDir + '/text_images/{}.png'.format( + img_latter = kivy_state.imageDir + '/text_images/{}.png'.format( avatarImageFirstLetter(subject[0].strip())) message_row.ids.avater_img.source = img_latter message_row.ids.time_tag.text = str(ShowTimeHistoy(item[7])) @@ -175,9 +176,9 @@ class Trash(Screen): elif self.table_name == 'sent': sqlExecute( "DELETE FROM sent WHERE ackdata = ?;", self.delete_index) - if int(state.trash_count) > 0: + if int(kivy_state.trash_count) > 0: # msg_count_objs.trash_cnt.badge_text = str( - # int(state.trash_count) - 1) - self.set_TrashCnt(int(state.trash_count) - 1) - state.trash_count = str(int(state.trash_count) - 1) + # int(kivy_state.trash_count) - 1) + self.set_TrashCnt(int(kivy_state.trash_count) - 1) + kivy_state.trash_count = str(int(kivy_state.trash_count) - 1) Clock.schedule_once(self.callback_for_screen_load, 1) diff --git a/src/bitmessagekivy/mpybit.py b/src/bitmessagekivy/mpybit.py index e8adc0c8..00305188 100644 --- a/src/bitmessagekivy/mpybit.py +++ b/src/bitmessagekivy/mpybit.py @@ -47,6 +47,7 @@ from kivy.uix.screenmanager import RiseInTransition, SlideTransition, FallOutTra import queues from semaphores import kivyuisignaler +import kivy_state import state from kivymd.uix.bottomsheet import MDCustomBottomSheet @@ -215,16 +216,16 @@ class NavigateApp(MDApp): variable_1 = ListProperty(addr for addr in BMConfigParser().addresses() if BMConfigParser().get(str(addr), 'enabled') == 'true') nav_drawer = ObjectProperty() - state.screen_density = Window.size - window_size = state.screen_density + kivy_state.screen_density = Window.size + window_size = kivy_state.screen_density app_platform = platform title = "PyBitmessage" imgstatus = False count = 0 manager_open = False file_manager = None - state.imageDir = os.path.join('./images', 'kivy') - image_path = state.imageDir + kivy_state.imageDir = os.path.join('./images', 'kivy') + image_path = kivy_state.imageDir tr = Lang("en") # for changing in franch replace en with fr def build(self): @@ -267,7 +268,7 @@ class NavigateApp(MDApp): def getCurrentAccountData(self, text): """Get Current Address Account Data""" if text != '': - if os.path.exists(state.imageDir + '/default_identicon/{}.png'.format(text)): + if os.path.exists(kivy_state.imageDir + '/default_identicon/{}.png'.format(text)): self.load_selected_Image(text) else: self.set_identicon(text) @@ -277,8 +278,8 @@ class NavigateApp(MDApp): BMConfigParser().get(text, 'label'), text) self.root_window.children[1].ids.toolbar.title = address_label - state.association = text - state.searcing_text = '' + kivy_state.association = text + kivy_state.searcing_text = '' LoadingPopup().open() self.set_message_count() for nav_obj in self.root.ids.content_drawer.children[ @@ -297,11 +298,11 @@ class NavigateApp(MDApp): def setCurrentAccountData(self, dt=0): """This method set the current accout data on all the screens""" self.root.ids.sc1.ids.ml.clear_widgets() - self.root.ids.sc1.loadMessagelist(state.association) + self.root.ids.sc1.loadMessagelist(kivy_state.association) self.root.ids.sc4.ids.ml.clear_widgets() self.root.ids.sc4.children[2].children[2].ids.search_field.text = '' - self.root.ids.sc4.loadSent(state.association) + self.root.ids.sc4.loadSent(kivy_state.association) self.root.ids.sc16.clear_widgets() self.root.ids.sc16.add_widget(Draft()) @@ -320,8 +321,8 @@ class NavigateApp(MDApp): @staticmethod def getCurrentAccount(): """It uses to get current account label""" - if state.association: - return state.association + if kivy_state.association: + return kivy_state.association return "Bitmessage Login" # @staticmethod @@ -394,7 +395,7 @@ class NavigateApp(MDApp): folder="addressbook")] if label and address and address not in stored_address \ and label not in stored_labels and pupup_obj.valid: - # state.navinstance = self.parent.children[1] + # kivy_state.navinstance = self.parent.children[1] queues.UISignalQueue.put(('rerenderAddressBook', '')) self.add_popup.dismiss() sqlExecute("INSERT INTO addressbook VALUES(?,?)", label, address) @@ -415,24 +416,24 @@ class NavigateApp(MDApp): def getDefaultAccData(self, instance): """Getting Default Account Data""" if self.variable_1: - state.association = first_addr = self.variable_1[0] + kivy_state.association = first_addr = self.variable_1[0] # if BMConfigParser().get(str(first_addr), 'enabled') == 'true': # img = identiconGeneration.generate(first_addr) # print('line...........................................426') - # self.createFolder(state.imageDir + '/default_identicon/') + # self.createFolder(kivy_state.imageDir + '/default_identicon/') # if platform == 'android': # # android_path = os.path.expanduser # # ("~/user/0/org.test.bitapp/files/app/") - # if not os.path.exists(state.imageDir + '/default_identicon/{}.png'.format( + # if not os.path.exists(kivy_state.imageDir + '/default_identicon/{}.png'.format( # BMConfigParser().addresses()[0])): # android_path = os.path.join( # os.environ['ANDROID_PRIVATE'] + '/app/') # img.texture.save('{1}/images/kivy/default_identicon/{0}.png'.format( # BMConfigParser().addresses()[0], android_path)) # else: - # if not os.path.exists(state.imageDir + '/default_identicon/{}.png'.format( + # if not os.path.exists(kivy_state.imageDir + '/default_identicon/{}.png'.format( # BMConfigParser().addresses()[0])): - # img.texture.save(state.imageDir + '/default_identicon/{}.png'.format( + # img.texture.save(kivy_state.imageDir + '/default_identicon/{}.png'.format( # BMConfigParser().addresses()[0])) # instance.parent.parent.parent.parent.parent.ids.top_box.children[0].texture = ( # img.texture) @@ -445,14 +446,14 @@ class NavigateApp(MDApp): first_addr = self.variable_1[0] if BMConfigParser().get(str(first_addr), 'enabled') == 'true': if os.path.exists( - state.imageDir + '/default_identicon/{}.png'.format(first_addr)): - return state.imageDir + '/default_identicon/{}.png'.format( + kivy_state.imageDir + '/default_identicon/{}.png'.format(first_addr)): + return kivy_state.imageDir + '/default_identicon/{}.png'.format( first_addr) else: img = identiconGeneration.generate(first_addr) instance.texture = img.texture return - return state.imageDir + '/drawer_logo1.png' + return kivy_state.imageDir + '/drawer_logo1.png' @staticmethod def addressexist(): @@ -462,18 +463,18 @@ class NavigateApp(MDApp): return False def on_key(self, window, key, *args): - # pylint: disable=inconsistent-return-statements, too-many-branches + # pylint: disable=inconsistent-return-kivy_statements, too-many-branches """Method is used for going on previous screen""" if key == 27: - if state.in_search_mode and self.root.ids.scr_mngr.current not in [ + if kivy_state.in_search_mode and self.root.ids.scr_mngr.current not in [ "mailDetail", "create"]: self.closeSearchScreen() elif self.root.ids.scr_mngr.current == "mailDetail": self.root.ids.scr_mngr.current = 'sent'\ - if state.detailPageType == 'sent' else 'inbox' \ - if state.detailPageType == 'inbox' else 'draft' + if kivy_state.detailPageType == 'sent' else 'inbox' \ + if kivy_state.detailPageType == 'inbox' else 'draft' self.back_press() - if state.in_search_mode and state.searcing_text: + if kivy_state.in_search_mode and kivy_state.searcing_text: toolbar_obj = self.root.ids.toolbar toolbar_obj.left_action_items = [ ['arrow-left', lambda x: self.closeSearchScreen()]] @@ -482,7 +483,7 @@ class NavigateApp(MDApp): elif self.root.ids.scr_mngr.current == "create": self.save_draft() self.set_common_header() - state.in_composer = False + kivy_state.in_composer = False self.root.ids.scr_mngr.current = 'inbox' elif self.root.ids.scr_mngr.current == "showqrcode": self.set_common_header() @@ -493,10 +494,10 @@ class NavigateApp(MDApp): self.set_common_header() self.root.ids.scr_mngr.current = 'payment' elif self.root.ids.scr_mngr.current == 'chroom': - if state.association: + if kivy_state.association: address_label = self.current_address_label( BMConfigParser().get( - state.association, 'label'), state.association) + kivy_state.association, 'label'), kivy_state.association) self.root.ids.toolbar.title = address_label self.set_common_header() self.root.ids.scr_mngr.transition = FallOutTransition() @@ -508,39 +509,39 @@ class NavigateApp(MDApp): self.root.ids.scr_mngr.transition.direction = 'right' self.root.ids.scr_mngr.transition.bind(on_complete=self.reset) return True - elif key == 13 and state.searcing_text and not state.in_composer: - if state.search_screen == 'inbox': + elif key == 13 and kivy_state.searcing_text and not kivy_state.in_composer: + if kivy_state.search_screen == 'inbox': self.root.ids.sc1.children[1].active = True Clock.schedule_once(self.search_callback, 0.5) - elif state.search_screen == 'addressbook': + elif kivy_state.search_screen == 'addressbook': self.root.ids.sc11.children[1].active = True Clock.schedule_once(self.search_callback, 0.5) - elif state.search_screen == 'myaddress': + elif kivy_state.search_screen == 'myaddress': self.loadMyAddressScreen(True) Clock.schedule_once(self.search_callback, 0.5) - elif state.search_screen == 'sent': + elif kivy_state.search_screen == 'sent': self.root.ids.sc4.children[1].active = True Clock.schedule_once(self.search_callback, 0.5) def search_callback(self, dt=0): """Show data after loader is loaded""" - if state.search_screen == 'inbox': + if kivy_state.search_screen == 'inbox': self.root.ids.sc1.ids.ml.clear_widgets() - self.root.ids.sc1.loadMessagelist(state.association) + self.root.ids.sc1.loadMessagelist(kivy_state.association) self.root.ids.sc1.children[1].active = False - elif state.search_screen == 'addressbook': + elif kivy_state.search_screen == 'addressbook': self.root.ids.sc11.ids.ml.clear_widgets() self.root.ids.sc11.loadAddresslist(None, 'All', '') self.root.ids.sc11.children[1].active = False - elif state.search_screen == 'myaddress': + elif kivy_state.search_screen == 'myaddress': self.root.ids.sc10.ids.ml.clear_widgets() self.root.ids.sc10.init_ui() self.loadMyAddressScreen(False) else: self.root.ids.sc4.ids.ml.clear_widgets() - self.root.ids.sc4.loadSent(state.association) + self.root.ids.sc4.loadSent(kivy_state.association) self.root.ids.sc4.children[1].active = False - self.root.ids.scr_mngr.current = state.search_screen + self.root.ids.scr_mngr.current = kivy_state.search_screen def loadMyAddressScreen(self, action): """loadMyAddressScreen method spin the loader""" @@ -554,8 +555,8 @@ class NavigateApp(MDApp): composer_objs = self.root from_addr = str(self.root.ids.sc3.children[1].ids.ti.text) # to_addr = str(self.root.ids.sc3.children[1].ids.txt_input.text) - if from_addr and state.detailPageType != 'draft' \ - and not state.in_sent_method: + if from_addr and kivy_state.detailPageType != 'draft' \ + and not kivy_state.in_sent_method: Draft().draft_msg(composer_objs) return @@ -568,8 +569,8 @@ class NavigateApp(MDApp): def status_dispatching(data): """Dispatching Status acknowledgment""" ackData, message = data - if state.ackdata == ackData: - state.status.status = message + if kivy_state.ackdata == ackData: + kivy_state.status.status = message def clear_composer(self): """If slow down, the new composer edit screen""" @@ -580,8 +581,8 @@ class NavigateApp(MDApp): composer_obj.txt_input.text = '' composer_obj.subject.text = '' composer_obj.body.text = '' - state.in_composer = True - state.in_sent_method = False + kivy_state.in_composer = True + kivy_state.in_sent_method = False def set_navbar_for_composer(self): """Clearing toolbar data when composer open""" @@ -614,7 +615,7 @@ class NavigateApp(MDApp): if self.root.ids.scr_mngr.current == 'create': self.save_draft() if self.root.ids.scr_mngr.current == \ - 'mailDetail' and state.in_search_mode: + 'mailDetail' and kivy_state.in_search_mode: toolbar_obj = self.root.ids.toolbar toolbar_obj.left_action_items = [ ['arrow-left', lambda x: self.closeSearchScreen()]] @@ -622,16 +623,16 @@ class NavigateApp(MDApp): self.root.ids.toolbar.title = '' else: self.set_common_header() - if self.root.ids.scr_mngr.current == 'chroom' and state.association: + if self.root.ids.scr_mngr.current == 'chroom' and kivy_state.association: self.root.ids.scr_mngr.transition = FallOutTransition() address_label = self.current_address_label( BMConfigParser().get( - state.association, 'label'), state.association) + kivy_state.association, 'label'), kivy_state.association) self.root.ids.toolbar.title = address_label self.root.ids.scr_mngr.current = 'inbox' \ - if state.in_composer else 'allmails'\ - if state.is_allmail else state.detailPageType\ - if state.detailPageType else 'myaddress'\ + if kivy_state.in_composer else 'allmails'\ + if kivy_state.is_allmail else kivy_state.detailPageType\ + if kivy_state.detailPageType else 'myaddress'\ if self.root.ids.scr_mngr.current == 'showqrcode' else 'payment'\ if self.root.ids.scr_mngr.current == 'pay-options' else 'chlist'\ if self.root.ids.scr_mngr.current == 'chroom' else 'inbox' @@ -639,24 +640,24 @@ class NavigateApp(MDApp): self.root.ids.scr_mngr.transition = SlideTransition() self.root.ids.scr_mngr.transition.direction = 'right' self.root.ids.scr_mngr.transition.bind(on_complete=self.reset) - if state.is_allmail or state.detailPageType == 'draft': - state.is_allmail = False - state.detailPageType = '' - state.in_composer = False + if kivy_state.is_allmail or kivy_state.detailPageType == 'draft': + kivy_state.is_allmail = False + kivy_state.detailPageType = '' + kivy_state.in_composer = False @staticmethod def get_inbox_count(): """Getting inbox count""" - state.inbox_count = str(sqlQuery( + kivy_state.inbox_count = str(sqlQuery( "SELECT COUNT(*) FROM inbox WHERE toaddress = '{}' and" - " folder = 'inbox' ;".format(state.association))[0][0]) + " folder = 'inbox' ;".format(kivy_state.association))[0][0]) @staticmethod def get_sent_count(): """Getting sent count""" - state.sent_count = str(sqlQuery( + kivy_state.sent_count = str(sqlQuery( "SELECT COUNT(*) FROM sent WHERE fromaddress = '{}' and" - " folder = 'sent' ;".format(state.association))[0][0]) + " folder = 'sent' ;".format(kivy_state.association))[0][0]) def set_message_count(self): """Setting message count""" @@ -669,21 +670,21 @@ class NavigateApp(MDApp): # self.root_window.children[2].children[2].children[0].ids) self.get_inbox_count() self.get_sent_count() - state.trash_count = str(sqlQuery( + kivy_state.trash_count = str(sqlQuery( "SELECT (SELECT count(*) FROM sent" " where fromaddress = '{0}' and folder = 'trash' )" "+(SELECT count(*) FROM inbox where toaddress = '{0}' and" - " folder = 'trash') AS SumCount".format(state.association))[0][0]) - state.draft_count = str(sqlQuery( + " folder = 'trash') AS SumCount".format(kivy_state.association))[0][0]) + kivy_state.draft_count = str(sqlQuery( "SELECT COUNT(*) FROM sent WHERE fromaddress = '{}' and" - " folder = 'draft' ;".format(state.association))[0][0]) - state.all_count = str(int(state.sent_count) + int(state.inbox_count)) + " folder = 'draft' ;".format(kivy_state.association))[0][0]) + kivy_state.all_count = str(int(kivy_state.sent_count) + int(kivy_state.inbox_count)) if msg_counter_objs: - msg_counter_objs.send_cnt.badge_text = state.sent_count - msg_counter_objs.inbox_cnt.badge_text = state.inbox_count - msg_counter_objs.trash_cnt.badge_text = state.trash_count - msg_counter_objs.draft_cnt.badge_text = state.draft_count - msg_counter_objs.allmail_cnt.badge_text = state.all_count + msg_counter_objs.send_cnt.badge_text = kivy_state.sent_count + msg_counter_objs.inbox_cnt.badge_text = kivy_state.inbox_count + msg_counter_objs.trash_cnt.badge_text = kivy_state.trash_count + msg_counter_objs.draft_cnt.badge_text = kivy_state.draft_count + msg_counter_objs.allmail_cnt.badge_text = kivy_state.all_count def on_start(self): """Setting message count""" @@ -719,33 +720,33 @@ class NavigateApp(MDApp): def searchQuery(self, instance): """Showing searched mails""" - state.search_screen = self.root.ids.scr_mngr.current - state.searcing_text = str(instance.text).strip() - if instance.focus and state.searcing_text: + kivy_state.search_screen = self.root.ids.scr_mngr.current + kivy_state.searcing_text = str(instance.text).strip() + if instance.focus and kivy_state.searcing_text: toolbar_obj = self.root.ids.toolbar toolbar_obj.left_action_items = [ ['arrow-left', lambda x: self.closeSearchScreen()]] toolbar_obj.right_action_items = [] self.root.ids.toolbar.title = '' - state.in_search_mode = True + kivy_state.in_search_mode = True def closeSearchScreen(self): """Function for close search screen""" self.set_common_header() - if state.association: + if kivy_state.association: address_label = self.current_address_label( BMConfigParser().get( - state.association, 'label'), state.association) + kivy_state.association, 'label'), kivy_state.association) self.root.ids.toolbar.title = address_label - state.searcing_text = '' + kivy_state.searcing_text = '' self.refreshScreen() - state.in_search_mode = False + kivy_state.in_search_mode = False def refreshScreen(self): """Method show search button only on inbox or sent screen""" # pylint: disable=unused-variable - state.searcing_text = '' - if state.search_screen == 'inbox': + kivy_state.searcing_text = '' + if kivy_state.search_screen == 'inbox': self.root.ids.sc1.ids.inbox_search.ids.search_field.text = '' # try: # self.root.ids.sc1.children[ @@ -755,14 +756,14 @@ class NavigateApp(MDApp): # 2].children[2].ids.search_field.text = '' self.root.ids.sc1.children[1].active = True Clock.schedule_once(self.search_callback, 0.5) - elif state.search_screen == 'addressbook': + elif kivy_state.search_screen == 'addressbook': self.root.ids.sc11.ids.address_search.ids.search_field.text = '' # self.root.ids.sc11.children[ # 2].children[2].ids.search_field.text = '' self.root.ids.sc11.children[ 1].active = True Clock.schedule_once(self.search_callback, 0.5) - elif state.search_screen == 'myaddress': + elif kivy_state.search_screen == 'myaddress': self.root.ids.sc10.ids.search_bar.ids.search_field.text = '' # try: # self.root.ids.sc10.children[ @@ -789,10 +790,10 @@ class NavigateApp(MDApp): def set_mail_detail_header(self): """Setting the details of the page""" - if state.association and state.in_search_mode: + if kivy_state.association and kivy_state.in_search_mode: address_label = self.current_address_label( BMConfigParser().get( - state.association, 'label'), state.association) + kivy_state.association, 'label'), kivy_state.association) self.root.ids.toolbar.title = address_label toolbar_obj = self.root.ids.toolbar toolbar_obj.left_action_items = [ @@ -800,13 +801,13 @@ class NavigateApp(MDApp): delete_btn = ['delete-forever', lambda x: self.root.ids.sc14.delete_mail()] dynamic_list = [] - if state.detailPageType == 'inbox': + if kivy_state.detailPageType == 'inbox': dynamic_list = [ ['reply', lambda x: self.root.ids.sc14.inbox_reply()], delete_btn] - elif state.detailPageType == 'sent': + elif kivy_state.detailPageType == 'sent': dynamic_list = [delete_btn] - elif state.detailPageType == 'draft': + elif kivy_state.detailPageType == 'draft': dynamic_list = [ ['pencil', lambda x: self.root.ids.sc14.write_msg(self)], delete_btn] @@ -835,7 +836,7 @@ class NavigateApp(MDApp): """This method is rotating loader for few seconds""" if instance.text == 'Inbox': self.root.ids.sc1.ids.ml.clear_widgets() - self.root.ids.sc1.loadMessagelist(state.association) + self.root.ids.sc1.loadMessagelist(kivy_state.association) self.root.ids.sc1.children[1].active = False elif instance.text == 'All Mails': self.root.ids.sc17.clear_widgets() @@ -894,12 +895,12 @@ class NavigateApp(MDApp): if not os.path.exists(android_path + '/default_identicon/'): os.makedirs(android_path + '/default_identicon/') newImg.save('{1}/default_identicon/{0}.png'.format( - state.association, android_path)) + kivy_state.association, android_path)) else: - if not os.path.exists(state.imageDir + '/default_identicon/'): - os.makedirs(state.imageDir + '/default_identicon/') - newImg.save(state.imageDir + '/default_identicon/{0}.png'.format(state.association)) - self.load_selected_Image(state.association) + if not os.path.exists(kivy_state.imageDir + '/default_identicon/'): + os.makedirs(kivy_state.imageDir + '/default_identicon/') + newImg.save(kivy_state.imageDir + '/default_identicon/{0}.png'.format(kivy_state.association)) + self.load_selected_Image(kivy_state.association) toast('Image changed') except Exception: toast('Exit') @@ -915,7 +916,7 @@ class NavigateApp(MDApp): top_box_obj = self.root.ids.content_drawer.ids.top_box.children[0] # spinner_img_obj = self.root.ids.content_drawer.ids.btn.children[1] # spinner_img_obj.source = top_box_obj.source ='./images/default_identicon/{0}.png'.format(curerentAddr) - top_box_obj.source = state.imageDir + '/default_identicon/{0}.png'.format(curerentAddr) + top_box_obj.source = kivy_state.imageDir + '/default_identicon/{0}.png'.format(curerentAddr) self.root.ids.content_drawer.ids.reset_image.opacity = 1 self.root.ids.content_drawer.ids.reset_image.disabled = False top_box_obj.reload() @@ -923,8 +924,8 @@ class NavigateApp(MDApp): def rest_default_avatar_img(self): """set default avatar generated image""" - self.set_identicon(state.association) - img_path = state.imageDir + '/default_identicon/{}.png'.format(state.association) + self.set_identicon(kivy_state.association) + img_path = kivy_state.imageDir + '/default_identicon/{}.png'.format(kivy_state.association) try: if os.path.exists(img_path): os.remove(img_path) diff --git a/src/state.py b/src/state.py index 62848c25..ee39e094 100644 --- a/src/state.py +++ b/src/state.py @@ -1,30 +1,41 @@ """ -src/state.py -================================= +Global runtime variables. """ -import collections neededPubkeys = {} streamsInWhichIAmParticipating = [] -# For UPnP + extPort = None -# for Tor hidden service +"""For UPnP""" + socksIP = None -# Network protocols availability, initialised below -networkProtocolAvailability = None -appdata = '' # holds the location of the application data storage directory -# Set to 1 by the doCleanShutdown function. -# Used to tell the proof of work worker threads to exit. +"""for Tor hidden service""" + +appdata = '' +"""holds the location of the application data storage directory""" + shutdown = 0 +""" +Set to 1 by the `.shutdown.doCleanShutdown` function. +Used to tell the threads to exit. +""" + # Component control flags - set on startup, do not change during runtime # The defaults are for standalone GUI (default operating mode) -enableNetwork = True # enable network threads -enableObjProc = True # enable object processing threads -enableAPI = True # enable API (if configured) -enableGUI = True # enable GUI (QT or ncurses) -enableSTDIO = False # enable STDIO threads +enableNetwork = True +"""enable network threads""" +enableObjProc = True +"""enable object processing thread""" +enableAPI = True +"""enable API (if configured)""" +enableGUI = True +"""enable GUI (QT or ncurses)""" +enableSTDIO = False +"""enable STDIO threads""" +enableKivy = False +"""enable kivy app and test cases""" curses = False -sqlReady = False # set to true by sqlTread when ready for processing + maximumNumberOfHalfOpenConnections = 0 maximumLengthOfTimeToBotherResendingMessages = 0 @@ -33,84 +44,18 @@ invThread = None addrThread = None downloadThread = None uploadThread = None + ownAddresses = {} -# If the trustedpeer option is specified in keys.dat then this will -# contain a Peer which will be connected to instead of using the -# addresses advertised by other peers. The client will only connect to -# this peer and the timing attack mitigation will be disabled in order -# to download data faster. The expected use case is where the user has -# a fast connection to a trusted server where they run a BitMessage -# daemon permanently. If they then run a second instance of the client -# on a local machine periodically when they want to check for messages -# it will sync with the network a lot faster without compromising -# security. -trustedPeer = None + discoveredPeers = {} -Peer = collections.namedtuple('Peer', ['host', 'port']) - - -def resetNetworkProtocolAvailability(): - """This method helps to reset the availability of network protocol""" - # pylint: disable=global-statement - global networkProtocolAvailability - networkProtocolAvailability = {'IPv4': None, 'IPv6': None, 'onion': None} - - -resetNetworkProtocolAvailability() dandelion = 0 -testmode = False - kivy = False -association = '' - kivyapp = None -navinstance = None - -mail_id = 0 - -myAddressObj = None - -detailPageType = None - -ackdata = None - -status = None - -screen_density = None - -msg_counter_objs = None - -check_sent_acc = None - -sent_count = 0 - -inbox_count = 0 - -trash_count = 0 - -draft_count = 0 - -all_count = 0 - -searcing_text = '' - -search_screen = '' - -send_draft_mail = None - -is_allmail = False - -in_composer = False - -availabe_credit = 0 - -in_sent_method = False - -in_search_mode = False +testmode = False clientHasReceivedIncomingConnections = False """used by API command clientStatus""" @@ -129,5 +74,3 @@ ackdataForWhichImWatching = {} thisapp = None """Singleton instance""" - -imageDir = None