diff --git a/src/bitmessagekivy/baseclass/allmail.py b/src/bitmessagekivy/baseclass/allmail.py index 1da31af2..37cecd9d 100644 --- a/src/bitmessagekivy/baseclass/allmail.py +++ b/src/bitmessagekivy/baseclass/allmail.py @@ -17,9 +17,10 @@ from kivymd.uix.list import TwoLineAvatarIconListItem import state from bitmessagekivy.baseclass.common import ( - showLimitedCnt, toast, initailize_detail_page, ThemeClsColor, + showLimitedCnt, toast, ThemeClsColor, chipTag, avatarImageFirstLetter, AddTimeWidget, AvatarSampleWidget ) +from bitmessagekivy.baseclass.maildetail import MailDetail from bitmessagekivy.baseclass.trash import Trash @@ -148,10 +149,9 @@ class Allmails(Screen): src_mng_obj = self.manager else: src_mng_obj = self.parent.parent - # src_mng_obj.screens[13].clear_widgets() - # src_mng_obj.screens[13].add_widget(MailDetail()) - # src_mng_obj.current = 'mailDetail' - initailize_detail_page(src_mng_obj) + src_mng_obj.screens[11].clear_widgets() + src_mng_obj.screens[11].add_widget(MailDetail()) + src_mng_obj.current = 'mailDetail' def swipe_delete(self, unique_id, folder, instance, *args): """Delete inbox mail from all mail listing""" diff --git a/src/bitmessagekivy/baseclass/draft.py b/src/bitmessagekivy/baseclass/draft.py index db120900..20e52c4b 100644 --- a/src/bitmessagekivy/baseclass/draft.py +++ b/src/bitmessagekivy/baseclass/draft.py @@ -1,3 +1,5 @@ +import time + from bitmessagekivy import kivy_helper_search from bmconfigparser import BMConfigParser from helper_sql import sqlExecute @@ -18,9 +20,10 @@ from kivymd.uix.list import TwoLineAvatarIconListItem import state from bitmessagekivy.baseclass.common import ( - showLimitedCnt, initailize_detail_page, toast, ThemeClsColor, + showLimitedCnt, toast, ThemeClsColor, AddTimeWidget, AvatarSampleWidget ) +from bitmessagekivy.baseclass.maildetail import MailDetail class Draft(Screen): @@ -46,11 +49,12 @@ class Draft(Screen): def sentaccounts(self): """Load draft accounts""" - self.account = state.association + # self.account = state.association self.loadDraft() def loadDraft(self, where="", what=""): """Load draft list for Draft messages""" + self.account = state.association xAddress = 'fromaddress' self.ids.tag_label.text = '' self.draftDataQuery(xAddress, where, what) @@ -144,10 +148,9 @@ class Draft(Screen): src_mng_obj = self.manager else: src_mng_obj = self.parent.parent - # src_mng_obj.screens[13].clear_widgets() - # src_mng_obj.screens[13].add_widget(MailDetail()) - # src_mng_obj.current = 'mailDetail' - initailize_detail_page(src_mng_obj) + src_mng_obj.screens[11].clear_widgets() + src_mng_obj.screens[11].add_widget(MailDetail()) + src_mng_obj.current = 'mailDetail' def delete_draft(self, data_index, instance, *args): """Delete draft message permanently""" diff --git a/src/bitmessagekivy/baseclass/inbox.py b/src/bitmessagekivy/baseclass/inbox.py index e62544dd..82899dfb 100644 --- a/src/bitmessagekivy/baseclass/inbox.py +++ b/src/bitmessagekivy/baseclass/inbox.py @@ -19,9 +19,11 @@ from kivymd.uix.list import TwoLineAvatarIconListItem import state from bitmessagekivy.baseclass.common import ( - showLimitedCnt, initailize_detail_page, avatarImageFirstLetter, + showLimitedCnt, avatarImageFirstLetter, AddTimeWidget, ThemeClsColor, AvatarSampleWidget, toast ) +from bitmessagekivy.baseclass.maildetail import MailDetail +from bitmessagekivy.baseclass.trash import Trash class Inbox(Screen): @@ -195,10 +197,9 @@ class Inbox(Screen): src_mng_obj = self.manager else: src_mng_obj = self.parent.parent - # src_mng_obj.screens[13].clear_widgets() - # src_mng_obj.screens[13].add_widget(MailDetail()) - # src_mng_obj.current = "mailDetail" - initailize_detail_page(src_mng_obj) + src_mng_obj.screens[11].clear_widgets() + src_mng_obj.screens[11].add_widget(MailDetail()) + src_mng_obj.current = "mailDetail" def delete(self, data_index, instance, *args): """Delete inbox mail from inbox listing""" @@ -235,12 +236,14 @@ class Inbox(Screen): def update_trash(self): """Update trash screen mails which is deleted from inbox""" - try: - self.parent.screens[4].clear_widgets() - self.parent.screens[4].add_widget(Trash()) - except Exception: - self.parent.parent.screens[4].clear_widgets() - self.parent.parent.screens[4].add_widget(Trash()) + self.manager.parent.ids.sc5.clear_widgets() + self.manager.parent.ids.sc5.add_widget(Trash()) + # try: + # self.parent.screens[4].clear_widgets() + # self.parent.screens[4].add_widget(Trash()) + # except Exception: + # self.parent.parent.screens[4].clear_widgets() + # self.parent.parent.screens[4].add_widget(Trash()) def refresh_callback(self, *args): """Method updates the state of application, diff --git a/src/bitmessagekivy/baseclass/maildetail.py b/src/bitmessagekivy/baseclass/maildetail.py index 14eaf190..59947f10 100644 --- a/src/bitmessagekivy/baseclass/maildetail.py +++ b/src/bitmessagekivy/baseclass/maildetail.py @@ -1,3 +1,5 @@ +from datetime import datetime + from bitmessagekivy.get_platform import platform from helper_sql import sqlExecute, sqlQuery @@ -7,6 +9,8 @@ from kivy.properties import ( StringProperty, NumericProperty ) +from kivy.factory import Factory + from kivymd.uix.button import MDFlatButton, MDIconButton from kivymd.uix.dialog import MDDialog from kivymd.uix.list import ( @@ -22,7 +26,6 @@ from bitmessagekivy.baseclass.common import ( toast, avatarImageFirstLetter, ShowTimeHistoy ) from bitmessagekivy.baseclass.popup import SenderDetailPopup -from bitmessagekivy.baseclass.trash import Trash class OneLineListTitle(OneLineListItem): @@ -95,20 +98,23 @@ 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 '' - if state.detailPageType == 'sent' or 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] - self.assign_mail_details(data) - state.kivyapp.set_mail_detail_header() - elif state.detailPageType == 'inbox': - data = sqlQuery( - "select toaddress, fromaddress, subject, message, received from inbox" - " where msgid = ?;", state.mail_id) - self.assign_mail_details(data) - state.kivyapp.set_mail_detail_header() + try: + if state.detailPageType == 'sent' or 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] + self.assign_mail_details(data) + state.kivyapp.set_mail_detail_header() + elif state.detailPageType == 'inbox': + data = sqlQuery( + "select toaddress, fromaddress, subject, message, received from inbox" + " where msgid = ?;", state.mail_id) + self.assign_mail_details(data) + state.kivyapp.set_mail_detail_header() + except Exception as e: + print('Something wents wrong!!') def assign_mail_details(self, data): """Assigning mail details""" @@ -139,8 +145,8 @@ class MailDetail(Screen): # pylint: disable=too-many-instance-attributes " 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) - self.parent.screens[3].ids.ml.clear_widgets() - self.parent.screens[3].loadSent(state.association) + self.parent.screens[2].ids.ml.clear_widgets() + self.parent.screens[2].loadSent(state.association) elif state.detailPageType == 'inbox': state.kivyapp.root.ids.sc1.ids.inbox_search.ids.search_field.text = '' sqlExecute( @@ -157,8 +163,8 @@ class MailDetail(Screen): # pylint: disable=too-many-instance-attributes msg_count_objs.draft_cnt.ids.badge_txt.text = str( int(state.draft_count) - 1) state.draft_count = str(int(state.draft_count) - 1) - self.parent.screens[15].clear_widgets() - self.parent.screens[15].add_widget(Draft()) + self.parent.screens[13].ids.ml.clear_widgets() + self.parent.screens[13].loadDraft(state.association) if state.detailPageType != 'draft': msg_count_objs.trash_cnt.ids.badge_txt.text = str( @@ -167,10 +173,10 @@ class MailDetail(Screen): # pylint: disable=too-many-instance-attributes 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' - self.parent.screens[4].clear_widgets() - self.parent.screens[4].add_widget(Trash()) - self.parent.screens[16].clear_widgets() - self.parent.screens[16].add_widget(Allmails()) + self.parent.screens[3].clear_widgets() + self.parent.screens[3].add_widget(Factory.Trash()) + self.parent.screens[14].clear_widgets() + self.parent.screens[14].add_widget(Factory.Allmails()) Clock.schedule_once(self.callback_for_delete, 4) def callback_for_delete(self, dt=0): @@ -189,7 +195,7 @@ class MailDetail(Screen): # pylint: disable=too-many-instance-attributes data = sqlQuery( "select toaddress, fromaddress, subject, message, received from inbox where" " msgid = ?;", state.mail_id) - composer_obj = self.parent.screens[2].children[1].ids + composer_obj = self.parent.screens[1].children[1].ids composer_obj.ti.text = data[0][0] composer_obj.btn.text = data[0][0] composer_obj.txt_input.text = data[0][1] diff --git a/src/bitmessagekivy/baseclass/msg_composer.py b/src/bitmessagekivy/baseclass/msg_composer.py index 979adc70..50739791 100644 --- a/src/bitmessagekivy/baseclass/msg_composer.py +++ b/src/bitmessagekivy/baseclass/msg_composer.py @@ -5,6 +5,7 @@ from bmconfigparser import BMConfigParser from helper_sql import sqlExecute, sqlQuery from kivy.clock import Clock from kivy.core.window import Window +from kivy.factory import Factory from kivy.properties import ( BooleanProperty, ListProperty, @@ -107,8 +108,8 @@ class DropDownWidget(BoxLayout): int(time.time()), int(time.time()), state.send_draft_mail) - self.parent.parent.screens[15].clear_widgets() - self.parent.parent.screens[15].add_widget(Draft()) + self.parent.parent.screens[13].clear_widgets() + self.parent.parent.screens[13].add_widget(Factory.Draft()) # state.detailPageType = '' # state.send_draft_mail = None else: diff --git a/src/bitmessagekivy/baseclass/myaddress.py b/src/bitmessagekivy/baseclass/myaddress.py index 65489390..2a8cc8af 100644 --- a/src/bitmessagekivy/baseclass/myaddress.py +++ b/src/bitmessagekivy/baseclass/myaddress.py @@ -7,6 +7,7 @@ from kivy.properties import ( ListProperty, StringProperty ) +from kivymd.uix.button import MDFlatButton from kivymd.uix.dialog import MDDialog from kivymd.uix.label import MDLabel from kivymd.uix.list import ( @@ -19,7 +20,8 @@ from kivy.uix.screenmanager import Screen import state from bitmessagekivy.baseclass.common import ( - avatarImageFirstLetter, AvatarSampleWidget,ThemeClsColor + avatarImageFirstLetter, AvatarSampleWidget,ThemeClsColor, + toast ) from bitmessagekivy.baseclass.popup import MyaddDetailPopup @@ -100,12 +102,9 @@ class MyAddress(Screen): text_color=ThemeClsColor,) meny._txt_right_pad = dp(70) try: - meny.canvas.children[6].rgba = [0, 0, 0, 0] if is_enable == 'true' else [0.5, 0.5, 0.5, 0.5] + meny.canvas.children[3].rgba = [0, 0, 0, 0] if is_enable == 'true' else [0.5, 0.5, 0.5, 0.5] except Exception: - try: - meny.canvas.children[9].rgba = [0, 0, 0, 0] if is_enable == 'true' else [0.5, 0.5, 0.5, 0.5] - except Exception as e: - print('Exception: ', e) + pass meny.add_widget(AvatarSampleWidget( source=state.imageDir + '/text_images/{}.png'.format( avatarImageFirstLetter(item['text'].strip())))) @@ -125,6 +124,7 @@ class MyAddress(Screen): meny.add_widget(ToggleBtn(active=True if is_enable == 'true' else False)) self.ids.ml.add_widget(meny) + def check_scroll_y(self, instance, somethingelse): """Load data on scroll down""" if self.ids.refresh_layout.scroll_y <= -0.0 and self.has_refreshed: @@ -214,10 +214,11 @@ class MyAddress(Screen): BMConfigParser().set(str(address), 'enabled', 'false') BMConfigParser().save() instance.parent.parent.theme_text_color = 'Primary' - try: - instance.parent.parent.canvas.children[6].rgba = [0.5, 0.5, 0.5, 0.5] - except Exception: - instance.parent.parent.canvas.children[9].rgba = [0.5, 0.5, 0.5, 0.5] + instance.parent.parent.canvas.children[3].rgba = [0.5, 0.5, 0.5, 0.5] + # try: + # instance.parent.parent.canvas.children[6].rgba = [0.5, 0.5, 0.5, 0.5] + # except Exception: + # instance.parent.parent.canvas.children[9].rgba = [0.5, 0.5, 0.5, 0.5] toast('Address disabled') Clock.schedule_once(self.address_permision_callback, 0) @@ -226,10 +227,11 @@ class MyAddress(Screen): BMConfigParser().set(address, 'enabled', 'true') BMConfigParser().save() instance.parent.parent.theme_text_color = 'Custom' - try: - instance.parent.parent.canvas.children[6].rgba = [0, 0, 0, 0] - except Exception: - instance.parent.parent.canvas.children[9].rgba = [0, 0, 0, 0] + instance.parent.parent.canvas.children[3].rgba = [0, 0, 0, 0] + # try: + # instance.parent.parent.canvas.children[6].rgba = [0, 0, 0, 0] + # except Exception: + # instance.parent.parent.canvas.children[9].rgba = [0, 0, 0, 0] toast('Address Enabled') Clock.schedule_once(self.address_permision_callback, 0) diff --git a/src/bitmessagekivy/baseclass/popup.py b/src/bitmessagekivy/baseclass/popup.py index 5668c29c..8a4be770 100644 --- a/src/bitmessagekivy/baseclass/popup.py +++ b/src/bitmessagekivy/baseclass/popup.py @@ -2,6 +2,7 @@ from bitmessagekivy.get_platform import platform from bitmessagekivy import kivy_helper_search from kivy.clock import Clock +from kivy.metrics import dp from kivy.properties import StringProperty from kivy.uix.boxlayout import BoxLayout diff --git a/src/bitmessagekivy/baseclass/sent.py b/src/bitmessagekivy/baseclass/sent.py index ec5ddf0d..798f295c 100644 --- a/src/bitmessagekivy/baseclass/sent.py +++ b/src/bitmessagekivy/baseclass/sent.py @@ -5,8 +5,10 @@ from bmconfigparser import BMConfigParser from functools import partial from helper_sql import sqlExecute from kivy.clock import Clock +from kivy.factory import Factory from kivy.metrics import dp from kivy.properties import StringProperty, ListProperty + from kivy.uix.button import Button from kivy.uix.carousel import Carousel from kivy.uix.screenmanager import Screen @@ -16,10 +18,10 @@ from kivymd.uix.list import TwoLineAvatarIconListItem import state from bitmessagekivy.baseclass.common import ( - showLimitedCnt, initailize_detail_page, ThemeClsColor, - avatarImageFirstLetter, AddTimeWidget, AvatarSampleWidget, - toast + showLimitedCnt, ThemeClsColor, avatarImageFirstLetter, + AddTimeWidget, AvatarSampleWidget, toast ) +from bitmessagekivy.baseclass.maildetail import MailDetail class Sent(Screen): @@ -201,10 +203,9 @@ class Sent(Screen): src_mng_obj = self.manager else: src_mng_obj = self.parent.parent - # src_mng_obj.screens[13].clear_widgets() - # src_mng_obj.screens[13].add_widget(MailDetail()) - # src_mng_obj.current = 'mailDetail' - initailize_detail_page(src_mng_obj) + src_mng_obj.screens[11].clear_widgets() + src_mng_obj.screens[11].add_widget(MailDetail()) + src_mng_obj.current = 'mailDetail' def delete(self, data_index, instance, *args): """Delete sent mail from sent mail listing""" @@ -236,12 +237,12 @@ class Sent(Screen): def update_trash(self): """Update trash screen mails which is deleted from inbox""" try: - self.parent.screens[4].clear_widgets() - self.parent.screens[4].add_widget(Trash()) - self.parent.screens[16].clear_widgets() - self.parent.screens[16].add_widget(Allmails()) + self.parent.screens[3].clear_widgets() + self.parent.screens[3].add_widget(Factory.Trash()) + self.parent.screens[14].clear_widgets() + self.parent.screens[14].add_widget(Factory.Allmails()) except Exception: - self.parent.parent.screens[4].clear_widgets() - self.parent.parent.screens[4].add_widget(Trash()) - self.parent.parent.screens[16].clear_widgets() - self.parent.parent.screens[16].add_widget(Allmails()) + self.parent.parent.screens[3].clear_widgets() + self.parent.parent.screens[3].add_widget(Factory.Trash()) + self.parent.parent.screens[14].clear_widgets() + self.parent.parent.screens[14].add_widget(Factory.Allmails()) diff --git a/src/bitmessagekivy/baseclass/trash.py b/src/bitmessagekivy/baseclass/trash.py index ee27f4bc..9bb10408 100644 --- a/src/bitmessagekivy/baseclass/trash.py +++ b/src/bitmessagekivy/baseclass/trash.py @@ -19,7 +19,7 @@ from kivy.uix.screenmanager import Screen import state from bitmessagekivy.baseclass.common import ( - showLimitedCnt, initailize_detail_page, avatarImageFirstLetter, + showLimitedCnt, avatarImageFirstLetter, AddTimeWidget, ThemeClsColor, AvatarSampleWidget ) diff --git a/src/bitmessagekivy/kv/myaddress.kv b/src/bitmessagekivy/kv/myaddress.kv index f0ac822f..93496eeb 100644 --- a/src/bitmessagekivy/kv/myaddress.kv +++ b/src/bitmessagekivy/kv/myaddress.kv @@ -24,3 +24,10 @@ MDList: id: ml Loader: + + +: + size_hint: None, None + size: dp(36), dp(48) + pos_hint: {'center_x': .95, 'center_y': .4} + on_active: app.root.ids.sc10.toggleAction(self) \ No newline at end of file diff --git a/src/bitmessagekivy/main.kv b/src/bitmessagekivy/main.kv index 53b7d04f..488f353e 100644 --- a/src/bitmessagekivy/main.kv +++ b/src/bitmessagekivy/main.kv @@ -267,8 +267,8 @@ MDNavigationLayout: id:sc12 NetworkStat: id:sc13 - # MailDetail: - # id:sc14 + MailDetail: + id:sc14 ShowQRCode: id:sc15 Draft: diff --git a/src/bitmessagekivy/mpybit.py b/src/bitmessagekivy/mpybit.py index 161b22c2..429268e3 100644 --- a/src/bitmessagekivy/mpybit.py +++ b/src/bitmessagekivy/mpybit.py @@ -564,7 +564,6 @@ class NavigateApp(MDApp): def clear_composer(self): """If slow down, the new composer edit screen""" self.set_navbar_for_composer() - # import pdb;pdb.set_trace() composer_obj = self.root.ids.sc3.children[1].ids composer_obj.ti.text = '' composer_obj.btn.text = 'Select' @@ -811,7 +810,6 @@ class NavigateApp(MDApp): try: self.root.ids.sc17.children[1].active = True except Exception: - # import pdb;pdb.set_trace() self.root.ids.sc17.children[0].children[1].active = True Clock.schedule_once(partial(self.load_screen_callback, instance), 1) diff --git a/src/bitmessagekivy/screens_data.json b/src/bitmessagekivy/screens_data.json index 7bc6a65b..bedda239 100644 --- a/src/bitmessagekivy/screens_data.json +++ b/src/bitmessagekivy/screens_data.json @@ -50,7 +50,6 @@ "Import": "from bitmessagekivy.baseclass.myaddress import MyAddress", }, "MailDetail": { - "_comment1": "this is my comment", "kv_string": "maildetail", "name_screen": "mailDetail", "Import": "from bitmessagekivy.baseclass.maildetail import MailDetail",