changes for mock imports - kdcis

This commit is contained in:
kuldeep.k@cisinlabs.com 2021-12-23 20:05:52 +05:30
parent 3c78e30c8c
commit d859db4004
No known key found for this signature in database
GPG Key ID: AF4FB299BF7C7C2A
8 changed files with 569 additions and 555 deletions

View File

@ -245,8 +245,8 @@ class NavigateApp(MDApp):
kivysignalthread.daemon = True kivysignalthread.daemon = True
kivysignalthread.start() kivysignalthread.start()
Window.bind(on_keyboard=self.on_key, on_request_close=self.on_request_close) Window.bind(on_keyboard=self.on_key, on_request_close=self.on_request_close)
# return Builder.load_file( return Builder.load_file(
# os.path.join(os.path.dirname(__file__), 'main.kv')) os.path.join(os.path.dirname(__file__), 'main.kv'))
# return Builder.load_file('/home/cis/Bitmessagepeter/KivyPoject/PyBitmessage/src/tests/mock/pybitmessage/main.kv') # return Builder.load_file('/home/cis/Bitmessagepeter/KivyPoject/PyBitmessage/src/tests/mock/pybitmessage/main.kv')

View File

@ -6,7 +6,7 @@ import hashlib
from binascii import hexlify, unhexlify from binascii import hexlify, unhexlify
from struct import pack, unpack from struct import pack, unpack
from debug import logger # from debug import logger
ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
@ -213,16 +213,16 @@ def decodeAddress(address):
try: try:
addressVersionNumber, bytesUsedByVersionNumber = decodeVarint(data[:9]) addressVersionNumber, bytesUsedByVersionNumber = decodeVarint(data[:9])
except varintDecodeError as e: except varintDecodeError as e:
logger.error(str(e)) # logger.error(str(e))
status = 'varintmalformed' status = 'varintmalformed'
return status, 0, 0, '' return status, 0, 0, ''
if addressVersionNumber > 4: if addressVersionNumber > 4:
logger.error('cannot decode address version numbers this high') # logger.error('cannot decode address version numbers this high')
status = 'versiontoohigh' status = 'versiontoohigh'
return status, 0, 0, '' return status, 0, 0, ''
elif addressVersionNumber == 0: elif addressVersionNumber == 0:
logger.error('cannot decode address version numbers of zero.') # logger.error('cannot decode address version numbers of zero.')
status = 'versiontoohigh' status = 'versiontoohigh'
return status, 0, 0, '' return status, 0, 0, ''
@ -230,7 +230,7 @@ def decodeAddress(address):
streamNumber, bytesUsedByStreamNumber = \ streamNumber, bytesUsedByStreamNumber = \
decodeVarint(data[bytesUsedByVersionNumber:]) decodeVarint(data[bytesUsedByVersionNumber:])
except varintDecodeError as e: except varintDecodeError as e:
logger.error(str(e)) # logger.error(str(e))
status = 'varintmalformed' status = 'varintmalformed'
return status, 0, 0, '' return status, 0, 0, ''

View File

@ -8,7 +8,7 @@ from kivymd.uix.list import (
) )
from kivy.uix.image import Image from kivy.uix.image import Image
from kivymd.uix.label import MDLabel from kivymd.uix.label import MDLabel
from pybitmessage.get_platform import platform # from pybitmessage.get_platform import platform
platform = "linux" platform = "linux"
from kivymd.toast import kivytoast from kivymd.toast import kivytoast
from kivymd.uix.card import MDCardSwipe from kivymd.uix.card import MDCardSwipe

View File

@ -3,7 +3,7 @@
# from pybitmessage import kivy_helper_search # from pybitmessage import kivy_helper_search
# from pybitmessage.bmconfigparser import BMConfigParser # from pybitmessage.bmconfigparser import BMConfigParser
from ..helper_sql import sqlExecute from pybitmessage.helper_sql import sqlExecute
from functools import partial from functools import partial
from kivy.clock import Clock from kivy.clock import Clock
from kivy.metrics import dp from kivy.metrics import dp
@ -14,15 +14,15 @@ from kivy.properties import (
from kivy.uix.screenmanager import Screen from kivy.uix.screenmanager import Screen
from kivymd.uix.label import MDLabel from kivymd.uix.label import MDLabel
from .. import state from pybitmessage import state
from .common import ( from common import (
showLimitedCnt, avatarImageFirstLetter, showLimitedCnt, avatarImageFirstLetter,
ThemeClsColor, toast, SwipeToDeleteItem, ThemeClsColor, toast, SwipeToDeleteItem,
ShowTimeHistoy ShowTimeHistoy
) )
from.maildetail import MailDetail from maildetail import MailDetail
from .trash import Trash from trash import Trash
class Inbox(Screen): class Inbox(Screen):

View File

@ -2,7 +2,7 @@ from datetime import datetime
# from pybitmessage.get_platform import platform # from pybitmessage.get_platform import platform
platform = "linux" platform = "linux"
from ..helper_sql import sqlExecute, sqlQuery from pybitmessage.helper_sql import sqlExecute, sqlQuery
from kivy.core.clipboard import Clipboard from kivy.core.clipboard import Clipboard
from kivy.clock import Clock from kivy.clock import Clock
@ -20,12 +20,12 @@ from kivymd.uix.list import (
) )
from kivy.uix.screenmanager import Screen from kivy.uix.screenmanager import Screen
from .. import state from pybitmessage import state
from .common import ( from common import (
toast, avatarImageFirstLetter, ShowTimeHistoy toast, avatarImageFirstLetter, ShowTimeHistoy
) )
from .popup import SenderDetailPopup from popup import SenderDetailPopup
class OneLineListTitle(OneLineListItem): class OneLineListTitle(OneLineListItem):

View File

@ -1,5 +1,6 @@
from ..get_platform import platform # from ..get_platform import platform
from .. import kivy_helper_search platform = "linux"
# from pybitmessage import kivy_helper_search
from kivy.clock import Clock from kivy.clock import Clock
from kivy.metrics import dp from kivy.metrics import dp
@ -8,11 +9,11 @@ from kivy.properties import StringProperty
from kivy.uix.boxlayout import BoxLayout from kivy.uix.boxlayout import BoxLayout
from kivy.uix.popup import Popup from kivy.uix.popup import Popup
from .. import state from pybitmessage import state
from ..addresses import decodeAddress from pybitmessage.addresses import decodeAddress
from datetime import datetime from datetime import datetime
from .common import toast from common import toast
class LoadingPopup(Popup): class LoadingPopup(Popup):
@ -39,43 +40,45 @@ class GrashofPopup(BoxLayout):
def checkAddress_valid(self, instance): def checkAddress_valid(self, instance):
"""Checking address is valid or not""" """Checking address is valid or not"""
my_addresses = ( # my_addresses = (
state.kivyapp.root.ids.content_drawer.ids.btn.values) # state.kivyapp.root.ids.content_drawer.ids.btn.values)
add_book = [addr[1] for addr in kivy_helper_search.search_sql( # add_book = [addr[1] for addr in kivy_helper_search.search_sql(
folder="addressbook")] # folder="addressbook")]
entered_text = str(instance.text).strip() # entered_text = str(instance.text).strip()
if entered_text in add_book: # if entered_text in add_book:
text = 'Address is already in the addressbook.' # text = 'Address is already in the addressbook.'
elif entered_text in my_addresses: # elif entered_text in my_addresses:
text = 'You can not save your own address.' # text = 'You can not save your own address.'
elif entered_text: # elif entered_text:
text = self.addressChanged(entered_text) # text = self.addressChanged(entered_text)
if entered_text in my_addresses or entered_text in add_book: # if entered_text in my_addresses or entered_text in add_book:
self.ids.address.error = True # self.ids.address.error = True
self.ids.address.helper_text = text # self.ids.address.helper_text = text
elif entered_text and self.valid: # elif entered_text and self.valid:
self.ids.address.error = False # self.ids.address.error = False
elif entered_text: # elif entered_text:
self.ids.address.error = True # self.ids.address.error = True
self.ids.address.helper_text = text # self.ids.address.helper_text = text
else: # else:
self.ids.address.error = False # self.ids.address.error = False
self.ids.address.helper_text = 'This field is required' # self.ids.address.helper_text = 'This field is required'
pass
def checkLabel_valid(self, instance): def checkLabel_valid(self, instance):
"""Checking address label is unique or not""" """Checking address label is unique or not"""
entered_label = instance.text.strip() # entered_label = instance.text.strip()
addr_labels = [labels[0] for labels in kivy_helper_search.search_sql( # addr_labels = [labels[0] for labels in kivy_helper_search.search_sql(
folder="addressbook")] # folder="addressbook")]
if entered_label in addr_labels: # if entered_label in addr_labels:
self.ids.label.error = True # self.ids.label.error = True
self.ids.label.helper_text = 'label name already exists.' # self.ids.label.helper_text = 'label name already exists.'
elif entered_label: # elif entered_label:
self.ids.label.error = False # self.ids.label.error = False
else: # else:
self.ids.label.error = False # self.ids.label.error = False
self.ids.label.helper_text = 'This field is required' # self.ids.label.helper_text = 'This field is required'
pass
def _onSuccess(self, addressVersion, streamNumber, ripe): def _onSuccess(self, addressVersion, streamNumber, ripe):
pass pass

View File

@ -5,7 +5,7 @@ The raw image data can be keep in memory for further access
import hashlib import hashlib
from io import BytesIO from io import BytesIO
from PIL import Image # from PIL import Image
from kivy.core.image import Image as CoreImage from kivy.core.image import Image as CoreImage
from kivy.uix.image import Image as kiImage from kivy.uix.image import Image as kiImage
# pylint: disable=import-error # pylint: disable=import-error
@ -22,8 +22,9 @@ def generate(Generate_string=None):
"""Generating string""" """Generating string"""
hash_string = generate_hash(Generate_string) hash_string = generate_hash(Generate_string)
color = random_color(hash_string) color = random_color(hash_string)
image = Image.new(MODE, V_RESOLUTION, BACKGROUND_COLOR) # image = Image.new(MODE, V_RESOLUTION, BACKGROUND_COLOR)
image = generate_image(image, color, hash_string) # image = generate_image(image, color, hash_string)
image = open("/home/cis/Downloads/1.png")
image = image.resize(RESOLUTION, 0) image = image.resize(RESOLUTION, 0)
data = BytesIO() data = BytesIO()
image.save(data, format='png') image.save(data, format='png')

View File

@ -9,16 +9,16 @@
Bitmessage android(mobile) interface Bitmessage android(mobile) interface
""" """
import platform from pybitmessage.get_platform import platform
import os import os
# import identiconGeneration # from pybitmessage import identiconGeneration
# from pybitmessage import kivy_helper_search from pybitmessage import kivy_helper_search
from pybitmessage.uikivysignaler import UIkivySignaler from pybitmessage.uikivysignaler import UIkivySignaler
from pybitmessage.bmconfigparser import BMConfigParser from pybitmessage.bmconfigparser import BMConfigParser
# from debug import logger # from debug import logger
from functools import partial from functools import partial
from pybitmessage.helper_sql import sqlExecute, sqlQuery from pybitmessage.helper_sql import sqlExecute, sqlQuery
from kivymd.app import MDApp from pybitmessage.kivymd.app import MDApp
from kivy.clock import Clock from kivy.clock import Clock
from kivy.core.clipboard import Clipboard from kivy.core.clipboard import Clipboard
from kivy.core.window import Window from kivy.core.window import Window
@ -44,11 +44,10 @@ from kivymd.uix.list import (
from kivy.uix.screenmanager import RiseInTransition, SlideTransition, FallOutTransition from kivy.uix.screenmanager import RiseInTransition, SlideTransition, FallOutTransition
# import queues from pybitmessage import queues
from pybitmessage.semaphores import kivyuisignaler from pybitmessage.semaphores import kivyuisignaler
import state
from pybitmessage import state
from kivymd.uix.bottomsheet import MDCustomBottomSheet from kivymd.uix.bottomsheet import MDCustomBottomSheet
from kivy.lang import Observable from kivy.lang import Observable
@ -57,14 +56,10 @@ from kivy.lang import Observable
# import locale # import locale
import ast import ast
# from pybitmessage.common import toast from pybitmessage.baseclass.common import toast
# from qr_scanner.zbarcam import ZBarCam from qr_scanner.zbarcam import ZBarCam
# from pyzbar.pyzbar import ZBarSymbol from pyzbar.pyzbar import ZBarSymbol
def toast(text):
"""Method will display the toast message"""
kivytoast.toast(text)
if platform != "android": if platform != "android":
from kivy.config import Config from kivy.config import Config
@ -90,8 +85,8 @@ with open(os.path.join(os.path.dirname(__file__), "screens_data.json")) as read_
all_data = ast.literal_eval(read_file.read()) all_data = ast.literal_eval(read_file.read())
data_screens = list(all_data.keys()) data_screens = list(all_data.keys())
# for modules in data_screens: for modules in data_screens:
# exec(all_data[modules]['Import']) exec(all_data[modules]['Import'])
# pylint: disable=too-few-public-methods,too-many-arguments,attribute-defined-outside-init # pylint: disable=too-few-public-methods,too-many-arguments,attribute-defined-outside-init
@ -243,40 +238,35 @@ class NavigateApp(MDApp):
'{0}.kv'.format(all_data[kv]["kv_string"]), '{0}.kv'.format(all_data[kv]["kv_string"]),
) )
) )
print(os.path.join( print('{0}.kv'.format(all_data[kv]["kv_string"]))
os.path.dirname(__file__), # import pdb; pdb.set_trace()
'kv',
# f'{all_data[kv]["kv_string"]}.kv',
'{0}.kv'.format(all_data[kv]["kv_string"]),
))
# self.obj_1 = AddressBook() # self.obj_1 = AddressBook()
kivysignalthread = UIkivySignaler() kivysignalthread = UIkivySignaler()
kivysignalthread.daemon = True kivysignalthread.daemon = True
kivysignalthread.start() kivysignalthread.start()
Window.bind(on_keyboard=self.on_key, on_request_close=self.on_request_close) Window.bind(on_keyboard=self.on_key, on_request_close=self.on_request_close)
# return Builder.load_file('/home/cis/Bitmessagepeter/KivyPoject/PyBitmessage/src/tests/mock/pybitmessage/main.kv')
# import pdb; pdb.set_trace()
print("path: $$$$$$$: ", os.path.join(os.path.dirname(__file__),'main.kv'))
return Builder.load_file( return Builder.load_file(
os.path.join(os.path.dirname(__file__), 'main.kv')) os.path.join(os.path.dirname(__file__), 'main.kv'))
# return Builder.load_file('/home/cis/Bitmessagepeter/KivyPoject/PyBitmessage/src/tests/mock/pybitmessage/main.kv')
def run(self): def run(self):
"""Running the widgets""" """Running the widgets"""
print('def run(self): ------------') print('run 251 ---------------------------------')
kivyuisignaler.release() kivyuisignaler.release()
print('kivyuisignaler.release()')
super(NavigateApp, self).run() super(NavigateApp, self).run()
@staticmethod @staticmethod
def showmeaddresses(name="text"): def showmeaddresses(name="text"):
print('showmeaddresses 257 ---------------------------------')
"""Show the addresses in spinner to make as dropdown""" """Show the addresses in spinner to make as dropdown"""
if name == "text": if name == "text":
print('if')
if BMConfigParser().addresses(): if BMConfigParser().addresses():
return BMConfigParser().addresses()[0][:16] + '..' return BMConfigParser().addresses()[0][:16] + '..'
return "textdemo" return "textdemo"
elif name == "values": elif name == "values":
print('else')
if BMConfigParser().addresses(): if BMConfigParser().addresses():
return [address[:16] + '..' return [address[:16] + '..'
for address in BMConfigParser().addresses()] for address in BMConfigParser().addresses()]
@ -284,27 +274,28 @@ class NavigateApp(MDApp):
def getCurrentAccountData(self, text): def getCurrentAccountData(self, text):
"""Get Current Address Account Data""" """Get Current Address Account Data"""
print("$$$$ getCurrentAccountData called") # print('getCurrentAccountData 273 ---------------------------------')
if text != '': # if text != '':
if os.path.exists(state.imageDir + '/default_identicon/{}.png'.format(text)): # if os.path.exists(state.imageDir + '/default_identicon/{}.png'.format(text)):
self.load_selected_Image(text) # self.load_selected_Image(text)
else: # else:
self.set_identicon(text) # self.set_identicon(text)
self.root.ids.content_drawer.ids.reset_image.opacity = 0 # self.root.ids.content_drawer.ids.reset_image.opacity = 0
self.root.ids.content_drawer.ids.reset_image.disabled = True # self.root.ids.content_drawer.ids.reset_image.disabled = True
address_label = self.current_address_label( # address_label = self.current_address_label(
BMConfigParser().get(text, 'label'), text) # BMConfigParser().get(text, 'label'), text)
self.root_window.children[1].ids.toolbar.title = address_label # self.root_window.children[1].ids.toolbar.title = address_label
state.association = text # state.association = text
state.searcing_text = '' # state.searcing_text = ''
LoadingPopup().open() # LoadingPopup().open()
self.set_message_count() # self.set_message_count()
for nav_obj in self.root.ids.content_drawer.children[ # for nav_obj in self.root.ids.content_drawer.children[
0].children[0].children[0].children: # 0].children[0].children[0].children:
nav_obj.active = True if nav_obj.text == 'Inbox' else False # nav_obj.active = True if nav_obj.text == 'Inbox' else False
self.fileManagerSetting() # self.fileManagerSetting()
Clock.schedule_once(self.setCurrentAccountData, 0.5) # Clock.schedule_once(self.setCurrentAccountData, 0.5)
pass
def fileManagerSetting(self): def fileManagerSetting(self):
"""This method is for file manager setting""" """This method is for file manager setting"""
@ -315,29 +306,33 @@ class NavigateApp(MDApp):
def setCurrentAccountData(self, dt=0): def setCurrentAccountData(self, dt=0):
"""This method set the current accout data on all the screens""" """This method set the current accout data on all the screens"""
self.root.ids.sc1.ids.ml.clear_widgets() print('setCurrentAccountData 304 ---------------------------------')
self.root.ids.sc1.loadMessagelist(state.association)
# self.root.ids.sc1.ids.ml.clear_widgets()
# self.root.ids.sc1.loadMessagelist(state.association)
self.root.ids.sc4.ids.ml.clear_widgets() # self.root.ids.sc4.ids.ml.clear_widgets()
self.root.ids.sc4.children[2].children[2].ids.search_field.text = '' # self.root.ids.sc4.children[2].children[2].ids.search_field.text = ''
self.root.ids.sc4.loadSent(state.association) # self.root.ids.sc4.loadSent(state.association)
self.root.ids.sc16.clear_widgets() # self.root.ids.sc16.clear_widgets()
self.root.ids.sc16.add_widget(Draft()) # self.root.ids.sc16.add_widget(Draft())
self.root.ids.sc5.clear_widgets() # self.root.ids.sc5.clear_widgets()
self.root.ids.sc5.add_widget(Trash()) # self.root.ids.sc5.add_widget(Trash())
self.root.ids.sc17.clear_widgets() # self.root.ids.sc17.clear_widgets()
self.root.ids.sc17.add_widget(Allmails()) # self.root.ids.sc17.add_widget(Allmails())
self.root.ids.sc10.ids.ml.clear_widgets() # self.root.ids.sc10.ids.ml.clear_widgets()
self.root.ids.sc10.init_ui() # self.root.ids.sc10.init_ui()
self.root.ids.scr_mngr.current = 'inbox' self.root.ids.scr_mngr.current = 'inbox'
pass
@staticmethod @staticmethod
def getCurrentAccount(): def getCurrentAccount():
print('getCurrentAccount 329 ----------------------------')
"""It uses to get current account label""" """It uses to get current account label"""
if state.association: if state.association:
return state.association return state.association
@ -386,45 +381,47 @@ class NavigateApp(MDApp):
toast(altet_txt) toast(altet_txt)
def is_camara_attached(self): def is_camara_attached(self):
print('is_camara_attached -----------------------378')
"""This method is for checking is camera available or not""" """This method is for checking is camera available or not"""
self.root.ids.sc23.check_camera() self.root.ids.sc23.check_camera()
is_available = self.root.ids.sc23.camera_avaialbe is_available = self.root.ids.sc23.camera_avaialbe
return is_available return is_available
def savecontact(self, instance): def savecontact(self, instance):
"""Method is used for saving contacts""" # """Method is used for saving contacts"""
pupup_obj = self.add_popup.content_cls # pupup_obj = self.add_popup.content_cls
label = pupup_obj.ids.label.text.strip() # label = pupup_obj.ids.label.text.strip()
address = pupup_obj.ids.address.text.strip() # address = pupup_obj.ids.address.text.strip()
if label == '' and address == '': # if label == '' and address == '':
pupup_obj.ids.label.focus = True # pupup_obj.ids.label.focus = True
pupup_obj.ids.address.focus = True # pupup_obj.ids.address.focus = True
elif address == '': # elif address == '':
pupup_obj.ids.address.focus = True # pupup_obj.ids.address.focus = True
elif label == '': # elif label == '':
pupup_obj.ids.label.focus = True # pupup_obj.ids.label.focus = True
else: # else:
pupup_obj.ids.address.focus = True # pupup_obj.ids.address.focus = True
# pupup_obj.ids.label.focus = True # # pupup_obj.ids.label.focus = True
stored_address = [addr[1] for addr in kivy_helper_search.search_sql( # stored_address = [addr[1] for addr in kivy_helper_search.search_sql(
folder="addressbook")] # folder="addressbook")]
stored_labels = [labels[0] for labels in kivy_helper_search.search_sql( # stored_labels = [labels[0] for labels in kivy_helper_search.search_sql(
folder="addressbook")] # folder="addressbook")]
if label and address and address not in stored_address \ # if label and address and address not in stored_address \
and label not in stored_labels and pupup_obj.valid: # and label not in stored_labels and pupup_obj.valid:
# state.navinstance = self.parent.children[1] # # state.navinstance = self.parent.children[1]
queues.UISignalQueue.put(('rerenderAddressBook', '')) # queues.UISignalQueue.put(('rerenderAddressBook', ''))
self.add_popup.dismiss() # self.add_popup.dismiss()
sqlExecute("INSERT INTO addressbook VALUES(?,?)", label, address) # sqlExecute("INSERT INTO addressbook VALUES(?,?)", label, address)
try: # try:
rootIds = self.root.ids # rootIds = self.root.ids
except Exception as e: # except Exception as e:
rootIds = state.kivyapp.root.ids # rootIds = state.kivyapp.root.ids
rootIds.sc11.ids.ml.clear_widgets() # rootIds.sc11.ids.ml.clear_widgets()
rootIds.sc11.loadAddresslist(None, 'All', '') # rootIds.sc11.loadAddresslist(None, 'All', '')
rootIds.scr_mngr.current = 'addressbook' # rootIds.scr_mngr.current = 'addressbook'
toast('Saved') # toast('Saved')
pass
def close_pop(self, instance): def close_pop(self, instance):
"""Pop is Canceled""" """Pop is Canceled"""
@ -433,8 +430,7 @@ class NavigateApp(MDApp):
def getDefaultAccData(self, instance): def getDefaultAccData(self, instance):
"""Getting Default Account Data""" """Getting Default Account Data"""
print('getDefaultAccData---------------------------------')
print("@@@@ getDefaultAccData called")
if self.variable_1: if self.variable_1:
state.association = first_addr = self.variable_1[0] state.association = first_addr = self.variable_1[0]
# if BMConfigParser().get(str(first_addr), 'enabled') == 'true': # if BMConfigParser().get(str(first_addr), 'enabled') == 'true':
@ -462,226 +458,231 @@ class NavigateApp(MDApp):
def get_default_logo(self, instance): def get_default_logo(self, instance):
"""Getting default logo image""" """Getting default logo image"""
if self.variable_1: # if self.variable_1:
first_addr = self.variable_1[0] # first_addr = self.variable_1[0]
if BMConfigParser().get(str(first_addr), 'enabled') == 'true': # if BMConfigParser().get(str(first_addr), 'enabled') == 'true':
if os.path.exists( # if os.path.exists(
state.imageDir + '/default_identicon/{}.png'.format(first_addr)): # state.imageDir + '/default_identicon/{}.png'.format(first_addr)):
return state.imageDir + '/default_identicon/{}.png'.format( # return state.imageDir + '/default_identicon/{}.png'.format(
first_addr) # first_addr)
# else: # else:
# img = identiconGeneration.generate(first_addr) # img = identiconGeneration.generate(first_addr)
# instance.texture = img.texture # instance.texture = img.texture
# return # return
return state.imageDir + '/drawer_logo1.png' # return state.imageDir + '/drawer_logo1.png'
pass
@staticmethod @staticmethod
def addressexist(): def addressexist():
print('addressexist 469 --------------------------')
"""Checking address existence""" """Checking address existence"""
if BMConfigParser().addresses(): if BMConfigParser().addresses():
return True return True
return False return False
def on_key(self, window, key, *args): def on_key(self, window, key, *args):
# import pass
# pylint: disable=inconsistent-return-statements, too-many-branches # # pylint: disable=inconsistent-return-statements, too-many-branches
"""Method is used for going on previous screen""" # """Method is used for going on previous screen"""
if key == 27: # if key == 27:
if state.in_search_mode and self.root.ids.scr_mngr.current not in [ # if state.in_search_mode and self.root.ids.scr_mngr.current not in [
"mailDetail", "create"]: # "mailDetail", "create"]:
self.closeSearchScreen() # self.closeSearchScreen()
elif self.root.ids.scr_mngr.current == "mailDetail": # elif self.root.ids.scr_mngr.current == "mailDetail":
self.root.ids.scr_mngr.current = 'sent'\ # self.root.ids.scr_mngr.current = 'sent'\
if state.detailPageType == 'sent' else 'inbox' \ # if state.detailPageType == 'sent' else 'inbox' \
if state.detailPageType == 'inbox' else 'draft' # if state.detailPageType == 'inbox' else 'draft'
self.back_press() # self.back_press()
if state.in_search_mode and state.searcing_text: # if state.in_search_mode and state.searcing_text:
toolbar_obj = self.root.ids.toolbar # toolbar_obj = self.root.ids.toolbar
toolbar_obj.left_action_items = [ # toolbar_obj.left_action_items = [
['arrow-left', lambda x: self.closeSearchScreen()]] # ['arrow-left', lambda x: self.closeSearchScreen()]]
toolbar_obj.right_action_items = [] # toolbar_obj.right_action_items = []
self.root.ids.toolbar.title = '' # self.root.ids.toolbar.title = ''
elif self.root.ids.scr_mngr.current == "create": # elif self.root.ids.scr_mngr.current == "create":
self.save_draft() # self.save_draft()
self.set_common_header() # self.set_common_header()
state.in_composer = False # state.in_composer = False
self.root.ids.scr_mngr.current = 'inbox' # self.root.ids.scr_mngr.current = 'inbox'
elif self.root.ids.scr_mngr.current == "showqrcode": # elif self.root.ids.scr_mngr.current == "showqrcode":
self.set_common_header() # self.set_common_header()
self.root.ids.scr_mngr.current = 'myaddress' # self.root.ids.scr_mngr.current = 'myaddress'
elif self.root.ids.scr_mngr.current == "random": # elif self.root.ids.scr_mngr.current == "random":
self.root.ids.scr_mngr.current = 'login' # self.root.ids.scr_mngr.current = 'login'
elif self.root.ids.scr_mngr.current == 'pay-options': # elif self.root.ids.scr_mngr.current == 'pay-options':
self.set_common_header() # self.set_common_header()
self.root.ids.scr_mngr.current = 'payment' # self.root.ids.scr_mngr.current = 'payment'
elif self.root.ids.scr_mngr.current == 'chroom': # elif self.root.ids.scr_mngr.current == 'chroom':
if state.association: # if state.association:
address_label = self.current_address_label( # address_label = self.current_address_label(
BMConfigParser().get( # BMConfigParser().get(
state.association, 'label'), state.association) # state.association, 'label'), state.association)
self.root.ids.toolbar.title = address_label # self.root.ids.toolbar.title = address_label
self.set_common_header() # self.set_common_header()
self.root.ids.scr_mngr.transition = FallOutTransition() # self.root.ids.scr_mngr.transition = FallOutTransition()
self.root.ids.scr_mngr.current = 'chlist' # self.root.ids.scr_mngr.current = 'chlist'
self.root.ids.scr_mngr.transition = SlideTransition() # self.root.ids.scr_mngr.transition = SlideTransition()
else: # else:
if state.kivyapp.variable_1: # if state.kivyapp.variable_1:
self.root.ids.scr_mngr.current = 'inbox' # self.root.ids.scr_mngr.current = 'inbox'
self.root.ids.scr_mngr.transition.direction = 'right' # self.root.ids.scr_mngr.transition.direction = 'right'
self.root.ids.scr_mngr.transition.bind(on_complete=self.reset) # self.root.ids.scr_mngr.transition.bind(on_complete=self.reset)
return True # return True
elif key == 13 and state.searcing_text and not state.in_composer: # elif key == 13 and state.searcing_text and not state.in_composer:
if state.search_screen == 'inbox': # if state.search_screen == 'inbox':
self.root.ids.sc1.children[1].active = True # self.root.ids.sc1.children[1].active = True
Clock.schedule_once(self.search_callback, 0.5) # Clock.schedule_once(self.search_callback, 0.5)
elif state.search_screen == 'addressbook': # elif state.search_screen == 'addressbook':
self.root.ids.sc11.children[1].active = True # self.root.ids.sc11.children[1].active = True
Clock.schedule_once(self.search_callback, 0.5) # Clock.schedule_once(self.search_callback, 0.5)
elif state.search_screen == 'myaddress': # elif state.search_screen == 'myaddress':
self.loadMyAddressScreen(True) # self.loadMyAddressScreen(True)
Clock.schedule_once(self.search_callback, 0.5) # Clock.schedule_once(self.search_callback, 0.5)
elif state.search_screen == 'sent': # elif state.search_screen == 'sent':
self.root.ids.sc4.children[1].active = True # self.root.ids.sc4.children[1].active = True
Clock.schedule_once(self.search_callback, 0.5) # Clock.schedule_once(self.search_callback, 0.5)
def search_callback(self, dt=0): def search_callback(self, dt=0):
"""Show data after loader is loaded""" """Show data after loader is loaded"""
if state.search_screen == 'inbox': # if state.search_screen == 'inbox':
self.root.ids.sc1.ids.ml.clear_widgets() # self.root.ids.sc1.ids.ml.clear_widgets()
self.root.ids.sc1.loadMessagelist(state.association) # self.root.ids.sc1.loadMessagelist(state.association)
self.root.ids.sc1.children[1].active = False # self.root.ids.sc1.children[1].active = False
elif state.search_screen == 'addressbook': # elif state.search_screen == 'addressbook':
self.root.ids.sc11.ids.ml.clear_widgets() # self.root.ids.sc11.ids.ml.clear_widgets()
self.root.ids.sc11.loadAddresslist(None, 'All', '') # self.root.ids.sc11.loadAddresslist(None, 'All', '')
self.root.ids.sc11.children[1].active = False # self.root.ids.sc11.children[1].active = False
elif state.search_screen == 'myaddress': # elif state.search_screen == 'myaddress':
self.root.ids.sc10.ids.ml.clear_widgets() # self.root.ids.sc10.ids.ml.clear_widgets()
self.root.ids.sc10.init_ui() # self.root.ids.sc10.init_ui()
self.loadMyAddressScreen(False) # self.loadMyAddressScreen(False)
else: # else:
self.root.ids.sc4.ids.ml.clear_widgets() # self.root.ids.sc4.ids.ml.clear_widgets()
self.root.ids.sc4.loadSent(state.association) # self.root.ids.sc4.loadSent(state.association)
self.root.ids.sc4.children[1].active = False # self.root.ids.sc4.children[1].active = False
self.root.ids.scr_mngr.current = state.search_screen # self.root.ids.scr_mngr.current = state.search_screen
pass
def loadMyAddressScreen(self, action): def loadMyAddressScreen(self, action):
"""loadMyAddressScreen method spin the loader""" # """loadMyAddressScreen method spin the loader"""
if len(self.root.ids.sc10.children) <= 2: # if len(self.root.ids.sc10.children) <= 2:
self.root.ids.sc10.children[0].active = action # self.root.ids.sc10.children[0].active = action
else: # else:
self.root.ids.sc10.children[1].active = action # self.root.ids.sc10.children[1].active = action
pass
def save_draft(self): def save_draft(self):
"""Saving drafts messages""" # """Saving drafts messages"""
composer_objs = self.root # composer_objs = self.root
from_addr = str(self.root.ids.sc3.children[1].ids.ti.text) # 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) # # to_addr = str(self.root.ids.sc3.children[1].ids.txt_input.text)
if from_addr and state.detailPageType != 'draft' \ # if from_addr and state.detailPageType != 'draft' \
and not state.in_sent_method: # and not state.in_sent_method:
Draft().draft_msg(composer_objs) # Draft().draft_msg(composer_objs)
return # return
pass
def reset(self, *args): def reset(self, *args):
"""Set transition direction""" # """Set transition direction"""
self.root.ids.scr_mngr.transition.direction = 'left' # self.root.ids.scr_mngr.transition.direction = 'left'
self.root.ids.scr_mngr.transition.unbind(on_complete=self.reset) # self.root.ids.scr_mngr.transition.unbind(on_complete=self.reset)
pass
@staticmethod @staticmethod
def status_dispatching(data): def status_dispatching(data):
"""Dispatching Status acknowledgment""" # """Dispatching Status acknowledgment"""
ackData, message = data # ackData, message = data
if state.ackdata == ackData: # if state.ackdata == ackData:
state.status.status = message # state.status.status = message
pass
def clear_composer(self): def clear_composer(self):
"""If slow down, the new composer edit screen""" # """If slow down, the new composer edit screen"""
self.set_navbar_for_composer() # self.set_navbar_for_composer()
composer_obj = self.root.ids.sc3.children[1].ids # composer_obj = self.root.ids.sc3.children[1].ids
composer_obj.ti.text = '' # composer_obj.ti.text = ''
composer_obj.btn.text = 'Select' # composer_obj.btn.text = 'Select'
composer_obj.txt_input.text = '' # composer_obj.txt_input.text = ''
composer_obj.subject.text = '' # composer_obj.subject.text = ''
composer_obj.body.text = '' # composer_obj.body.text = ''
state.in_composer = True # state.in_composer = True
state.in_sent_method = False # state.in_sent_method = False
pass
def set_navbar_for_composer(self): def set_navbar_for_composer(self):
"""Clearing toolbar data when composer open""" # """Clearing toolbar data when composer open"""
self.root.ids.toolbar.left_action_items = [ # self.root.ids.toolbar.left_action_items = [
['arrow-left', lambda x: self.back_press()]] # ['arrow-left', lambda x: self.back_press()]]
self.root.ids.toolbar.right_action_items = [ # self.root.ids.toolbar.right_action_items = [
['refresh', # ['refresh',
lambda x: self.root.ids.sc3.children[1].reset_composer()], # lambda x: self.root.ids.sc3.children[1].reset_composer()],
['send', # ['send',
lambda x: self.root.ids.sc3.children[1].send(self)]] # lambda x: self.root.ids.sc3.children[1].send(self)]]
pass
def set_toolbar_for_QrCode(self): def set_toolbar_for_QrCode(self):
"""This method is use for setting Qr code toolbar.""" # """This method is use for setting Qr code toolbar."""
self.root.ids.toolbar.left_action_items = [ # self.root.ids.toolbar.left_action_items = [
['arrow-left', lambda x: self.back_press()]] # ['arrow-left', lambda x: self.back_press()]]
self.root.ids.toolbar.right_action_items = [] # self.root.ids.toolbar.right_action_items = []
pass
def set_common_header(self): def set_common_header(self):
"""Common header for all window""" # """Common header for all window"""
self.root.ids.toolbar.right_action_items = [ # self.root.ids.toolbar.right_action_items = [
['account-plus', lambda x: self.addingtoaddressbook()]] # ['account-plus', lambda x: self.addingtoaddressbook()]]
# # self.root.ids.toolbar.left_action_items = [
# # ['menu', lambda x: self.root.toggle_nav_drawer()]]
# self.root.ids.toolbar.left_action_items = [ # self.root.ids.toolbar.left_action_items = [
# ['menu', lambda x: self.root.toggle_nav_drawer()]] # ['menu', lambda x: self.root.ids.nav_drawer.set_state("toggle")]]
self.root.ids.toolbar.left_action_items = [ # return
['menu', lambda x: self.root.ids.nav_drawer.set_state("toggle")]] pass
return
def back_press(self): def back_press(self):
"""Method for, reverting composer to previous page""" # """Method for, reverting composer to previous page"""
if self.root.ids.scr_mngr.current == 'create': # if self.root.ids.scr_mngr.current == 'create':
self.save_draft() # self.save_draft()
if self.root.ids.scr_mngr.current == \ # if self.root.ids.scr_mngr.current == \
'mailDetail' and state.in_search_mode: # 'mailDetail' and state.in_search_mode:
toolbar_obj = self.root.ids.toolbar # toolbar_obj = self.root.ids.toolbar
toolbar_obj.left_action_items = [ # toolbar_obj.left_action_items = [
['arrow-left', lambda x: self.closeSearchScreen()]] # ['arrow-left', lambda x: self.closeSearchScreen()]]
toolbar_obj.right_action_items = [] # toolbar_obj.right_action_items = []
self.root.ids.toolbar.title = '' # self.root.ids.toolbar.title = ''
else: # else:
self.set_common_header() # self.set_common_header()
if self.root.ids.scr_mngr.current == 'chroom' and state.association: # if self.root.ids.scr_mngr.current == 'chroom' and state.association:
self.root.ids.scr_mngr.transition = FallOutTransition() # self.root.ids.scr_mngr.transition = FallOutTransition()
address_label = self.current_address_label( # address_label = self.current_address_label(
BMConfigParser().get( # BMConfigParser().get(
state.association, 'label'), state.association) # state.association, 'label'), state.association)
self.root.ids.toolbar.title = address_label # self.root.ids.toolbar.title = address_label
self.root.ids.scr_mngr.current = 'inbox' \ # self.root.ids.scr_mngr.current = 'inbox' \
if state.in_composer else 'allmails'\ # if state.in_composer else 'allmails'\
if state.is_allmail else state.detailPageType\ # if state.is_allmail else state.detailPageType\
if state.detailPageType else 'myaddress'\ # if state.detailPageType else 'myaddress'\
if self.root.ids.scr_mngr.current == 'showqrcode' else 'payment'\ # 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 == 'pay-options' else 'chlist'\
if self.root.ids.scr_mngr.current == 'chroom' else 'inbox' # if self.root.ids.scr_mngr.current == 'chroom' else 'inbox'
if self.root.ids.scr_mngr.current == 'chlist': # if self.root.ids.scr_mngr.current == 'chlist':
self.root.ids.scr_mngr.transition = SlideTransition() # self.root.ids.scr_mngr.transition = SlideTransition()
self.root.ids.scr_mngr.transition.direction = 'right' # self.root.ids.scr_mngr.transition.direction = 'right'
self.root.ids.scr_mngr.transition.bind(on_complete=self.reset) # self.root.ids.scr_mngr.transition.bind(on_complete=self.reset)
if state.is_allmail or state.detailPageType == 'draft': # if state.is_allmail or state.detailPageType == 'draft':
state.is_allmail = False # state.is_allmail = False
state.detailPageType = '' # state.detailPageType = ''
state.in_composer = False # state.in_composer = False
pass
@staticmethod @staticmethod
def get_inbox_count(): def get_inbox_count():
"""Getting inbox count""" # """Getting inbox count"""
# state.inbox_count = str(sqlQuery( # state.inbox_count = str(sqlQuery(
# "SELECT COUNT(*) FROM inbox WHERE toaddress = '{}' and" # "SELECT COUNT(*) FROM inbox WHERE toaddress = '{}' and"
# " folder = 'inbox' ;".format(state.association))[0][0]) # " folder = 'inbox' ;".format(state.association))[0][0])
state.inbox_count = 0 pass
@staticmethod @staticmethod
def get_sent_count(): def get_sent_count():
"""Getting sent count""" # """Getting sent count"""
# state.sent_count = str(sqlQuery( # state.sent_count = str(sqlQuery(
# "SELECT COUNT(*) FROM sent WHERE fromaddress = '{}' and" # "SELECT COUNT(*) FROM sent WHERE fromaddress = '{}' and"
# " folder = 'sent' ;".format(state.association))[0][0]) # " folder = 'sent' ;".format(state.association))[0][0])
state.sent_count = 0 pass
def set_message_count(self): def set_message_count(self):
"""Setting message count""" """Setting message count"""
# msg_counter_objs = state.kivyapp.root.children[0].children[0].ids # msg_counter_objs = state.kivyapp.root.children[0].children[0].ids
@ -691,8 +692,8 @@ class NavigateApp(MDApp):
# except Exception: # except Exception:
# msg_counter_objs = ( # msg_counter_objs = (
# self.root_window.children[2].children[2].children[0].ids) # self.root_window.children[2].children[2].children[0].ids)
self.get_inbox_count() # self.get_inbox_count()
self.get_sent_count() # self.get_sent_count()
# state.trash_count = str(sqlQuery( # state.trash_count = str(sqlQuery(
# "SELECT (SELECT count(*) FROM sent" # "SELECT (SELECT count(*) FROM sent"
# " where fromaddress = '{0}' and folder = 'trash' )" # " where fromaddress = '{0}' and folder = 'trash' )"
@ -702,18 +703,17 @@ class NavigateApp(MDApp):
# "SELECT COUNT(*) FROM sent WHERE fromaddress = '{}' and" # "SELECT COUNT(*) FROM sent WHERE fromaddress = '{}' and"
# " folder = 'draft' ;".format(state.association))[0][0]) # " folder = 'draft' ;".format(state.association))[0][0])
# state.all_count = str(int(state.sent_count) + int(state.inbox_count)) # state.all_count = str(int(state.sent_count) + int(state.inbox_count))
state.all_count = 0
# if msg_counter_objs: # if msg_counter_objs:
# msg_counter_objs.send_cnt.badge_text = 0 # msg_counter_objs.send_cnt.badge_text = state.sent_count
# msg_counter_objs.inbox_cnt.badge_text = 0 # msg_counter_objs.inbox_cnt.badge_text = state.inbox_count
# msg_counter_objs.trash_cnt.badge_text = 0 # msg_counter_objs.trash_cnt.badge_text = state.trash_count
# msg_counter_objs.draft_cnt.badge_text = 0 # msg_counter_objs.draft_cnt.badge_text = state.draft_count
# msg_counter_objs.allmail_cnt.badge_text = 0 # msg_counter_objs.allmail_cnt.badge_text = state.all_count
pass
def on_start(self): def on_start(self):
"""Setting message count""" # """Setting message count"""
print('on start ------------ ') # self.set_message_count()
self.set_message_count() pass
# @staticmethod # @staticmethod
# def on_stop(): # def on_stop():
@ -744,193 +744,199 @@ class NavigateApp(MDApp):
return '' return ''
def searchQuery(self, instance): def searchQuery(self, instance):
"""Showing searched mails""" # """Showing searched mails"""
state.search_screen = self.root.ids.scr_mngr.current # state.search_screen = self.root.ids.scr_mngr.current
state.searcing_text = str(instance.text).strip() # state.searcing_text = str(instance.text).strip()
if instance.focus and state.searcing_text: # if instance.focus and state.searcing_text:
toolbar_obj = self.root.ids.toolbar # toolbar_obj = self.root.ids.toolbar
toolbar_obj.left_action_items = [ # toolbar_obj.left_action_items = [
['arrow-left', lambda x: self.closeSearchScreen()]] # ['arrow-left', lambda x: self.closeSearchScreen()]]
toolbar_obj.right_action_items = [] # toolbar_obj.right_action_items = []
self.root.ids.toolbar.title = '' # self.root.ids.toolbar.title = ''
state.in_search_mode = True # state.in_search_mode = True
pass
def closeSearchScreen(self): def closeSearchScreen(self):
"""Function for close search screen""" """Function for close search screen"""
self.set_common_header() # self.set_common_header()
if state.association: # if state.association:
address_label = self.current_address_label( # address_label = self.current_address_label(
BMConfigParser().get( # BMConfigParser().get(
state.association, 'label'), state.association) # state.association, 'label'), state.association)
self.root.ids.toolbar.title = address_label # self.root.ids.toolbar.title = address_label
state.searcing_text = '' # state.searcing_text = ''
self.refreshScreen() # self.refreshScreen()
state.in_search_mode = False # state.in_search_mode = False
pass
def refreshScreen(self): def refreshScreen(self):
"""Method show search button only on inbox or sent screen""" # """Method show search button only on inbox or sent screen"""
# pylint: disable=unused-variable # # pylint: disable=unused-variable
state.searcing_text = '' # state.searcing_text = ''
if state.search_screen == 'inbox': # if state.search_screen == 'inbox':
self.root.ids.sc1.ids.inbox_search.ids.search_field.text = '' # self.root.ids.sc1.ids.inbox_search.ids.search_field.text = ''
# try: # # try:
# self.root.ids.sc1.children[ # # self.root.ids.sc1.children[
# 3].children[2].ids.search_field.text = '' # # 3].children[2].ids.search_field.text = ''
# except Exception: # # except Exception:
# self.root.ids.sc1.children[ # # self.root.ids.sc1.children[
# 2].children[2].ids.search_field.text = '' # # 2].children[2].ids.search_field.text = ''
self.root.ids.sc1.children[1].active = True # self.root.ids.sc1.children[1].active = True
Clock.schedule_once(self.search_callback, 0.5) # Clock.schedule_once(self.search_callback, 0.5)
elif state.search_screen == 'addressbook': # elif state.search_screen == 'addressbook':
self.root.ids.sc11.ids.address_search.ids.search_field.text = '' # self.root.ids.sc11.ids.address_search.ids.search_field.text = ''
# self.root.ids.sc11.children[ # # self.root.ids.sc11.children[
# 2].children[2].ids.search_field.text = '' # # 2].children[2].ids.search_field.text = ''
self.root.ids.sc11.children[ # self.root.ids.sc11.children[
1].active = True # 1].active = True
Clock.schedule_once(self.search_callback, 0.5) # Clock.schedule_once(self.search_callback, 0.5)
elif state.search_screen == 'myaddress': # elif state.search_screen == 'myaddress':
self.root.ids.sc10.ids.search_bar.ids.search_field.text = '' # self.root.ids.sc10.ids.search_bar.ids.search_field.text = ''
# try: # # try:
# self.root.ids.sc10.children[ # # self.root.ids.sc10.children[
# 1].children[2].ids.search_field.text = '' # # 1].children[2].ids.search_field.text = ''
# except Exception: # # except Exception:
# self.root.ids.sc10.children[ # # self.root.ids.sc10.children[
# 2].children[2].ids.search_field.text = '' # # 2].children[2].ids.search_field.text = ''
self.loadMyAddressScreen(True) # self.loadMyAddressScreen(True)
Clock.schedule_once(self.search_callback, 0.5) # Clock.schedule_once(self.search_callback, 0.5)
else: # else:
self.root.ids.sc4.ids.sent_search.ids.search_field.text = '' # self.root.ids.sc4.ids.sent_search.ids.search_field.text = ''
# self.root.ids.sc4.children[ # # self.root.ids.sc4.children[
# 2].children[2].ids.search_field.text = '' # # 2].children[2].ids.search_field.text = ''
self.root.ids.sc4.children[1].active = True # self.root.ids.sc4.children[1].active = True
Clock.schedule_once(self.search_callback, 0.5) # Clock.schedule_once(self.search_callback, 0.5)
return # return
pass
def set_identicon(self, text): def set_identicon(self, text):
"""Show identicon in address spinner""" # """Show identicon in address spinner"""
# img = identiconGeneration.generate(text) # img = identiconGeneration.generate(text)
img = open('/home/cis/Bitmessagepeter/KivyPoject/PyBitmessage/src/images/kivy/drawer_logo1.png') # # self.root.children[0].children[0].ids.btn.children[1].texture = (img.texture)
# self.root.children[0].children[0].ids.btn.children[1].texture = (img.texture) # # below line is for displaing logo
# below line is for displaing logo # self.root.ids.content_drawer.ids.top_box.children[0].texture = (img.texture)
self.root.ids.content_drawer.ids.top_box.children[0].texture = (img.texture) pass
def set_mail_detail_header(self): def set_mail_detail_header(self):
"""Setting the details of the page""" # """Setting the details of the page"""
if state.association and state.in_search_mode: # if state.association and state.in_search_mode:
address_label = self.current_address_label( # address_label = self.current_address_label(
BMConfigParser().get( # BMConfigParser().get(
state.association, 'label'), state.association) # state.association, 'label'), state.association)
self.root.ids.toolbar.title = address_label # self.root.ids.toolbar.title = address_label
toolbar_obj = self.root.ids.toolbar # toolbar_obj = self.root.ids.toolbar
toolbar_obj.left_action_items = [ # toolbar_obj.left_action_items = [
['arrow-left', lambda x: self.back_press()]] # ['arrow-left', lambda x: self.back_press()]]
delete_btn = ['delete-forever', # delete_btn = ['delete-forever',
lambda x: self.root.ids.sc14.delete_mail()] # lambda x: self.root.ids.sc14.delete_mail()]
dynamic_list = [] # dynamic_list = []
if state.detailPageType == 'inbox': # if state.detailPageType == 'inbox':
dynamic_list = [ # dynamic_list = [
['reply', lambda x: self.root.ids.sc14.inbox_reply()], # ['reply', lambda x: self.root.ids.sc14.inbox_reply()],
delete_btn] # delete_btn]
elif state.detailPageType == 'sent': # elif state.detailPageType == 'sent':
dynamic_list = [delete_btn] # dynamic_list = [delete_btn]
elif state.detailPageType == 'draft': # elif state.detailPageType == 'draft':
dynamic_list = [ # dynamic_list = [
['pencil', lambda x: self.root.ids.sc14.write_msg(self)], # ['pencil', lambda x: self.root.ids.sc14.write_msg(self)],
delete_btn] # delete_btn]
toolbar_obj.right_action_items = dynamic_list # toolbar_obj.right_action_items = dynamic_list
pass
def load_screen(self, instance): def load_screen(self, instance):
"""This method is used for loading screen on every click""" # """This method is used for loading screen on every click"""
if instance.text == 'Inbox': # if instance.text == 'Inbox':
self.root.ids.scr_mngr.current = 'inbox' # self.root.ids.scr_mngr.current = 'inbox'
self.root.ids.sc1.children[1].active = True # self.root.ids.sc1.children[1].active = True
elif instance.text == 'All Mails': # elif instance.text == 'All Mails':
self.root.ids.scr_mngr.current = 'allmails' # self.root.ids.scr_mngr.current = 'allmails'
try: # try:
self.root.ids.sc17.children[1].active = True # self.root.ids.sc17.children[1].active = True
except Exception: # except Exception:
self.root.ids.sc17.children[0].children[1].active = True # self.root.ids.sc17.children[0].children[1].active = True
elif instance.text == 'Trash': # elif instance.text == 'Trash':
self.root.ids.scr_mngr.current = 'trash' # self.root.ids.scr_mngr.current = 'trash'
try: # try:
self.root.ids.sc5.children[1].active = True # self.root.ids.sc5.children[1].active = True
except Exception as e: # except Exception as e:
self.root.ids.sc5.children[0].children[1].active = True # self.root.ids.sc5.children[0].children[1].active = True
Clock.schedule_once(partial(self.load_screen_callback, instance), 1) # Clock.schedule_once(partial(self.load_screen_callback, instance), 1)
pass
def load_screen_callback(self, instance, dt=0): def load_screen_callback(self, instance, dt=0):
"""This method is rotating loader for few seconds""" # """This method is rotating loader for few seconds"""
if instance.text == 'Inbox': # if instance.text == 'Inbox':
self.root.ids.sc1.ids.ml.clear_widgets() # self.root.ids.sc1.ids.ml.clear_widgets()
self.root.ids.sc1.loadMessagelist(state.association) # self.root.ids.sc1.loadMessagelist(state.association)
self.root.ids.sc1.children[1].active = False # self.root.ids.sc1.children[1].active = False
elif instance.text == 'All Mails': # elif instance.text == 'All Mails':
self.root.ids.sc17.clear_widgets() # self.root.ids.sc17.clear_widgets()
self.root.ids.sc17.add_widget(Allmails()) # self.root.ids.sc17.add_widget(Allmails())
try: # try:
self.root.ids.sc17.children[1].active = False # self.root.ids.sc17.children[1].active = False
except Exception: # except Exception:
self.root.ids.sc17.children[0].children[1].active = False # self.root.ids.sc17.children[0].children[1].active = False
elif instance.text == 'Trash': # elif instance.text == 'Trash':
# self.root.ids.sc5.ids.ml.clear_widgets() # # self.root.ids.sc5.ids.ml.clear_widgets()
# self.root.ids.sc5.init_ui(0) # # self.root.ids.sc5.init_ui(0)
self.root.ids.sc5.clear_widgets() # self.root.ids.sc5.clear_widgets()
self.root.ids.sc5.add_widget(Trash()) # self.root.ids.sc5.add_widget(Trash())
try: # try:
self.root.ids.sc5.children[1].active = False # self.root.ids.sc5.children[1].active = False
except Exception as e: # except Exception as e:
self.root.ids.sc5.children[0].children[1].active = False # self.root.ids.sc5.children[0].children[1].active = False
pass
def on_request_close(self, *args): # pylint: disable=no-self-use def on_request_close(self, *args): # pylint: disable=no-self-use
"""This method is for app closing request""" """This method is for app closing request"""
# AppClosingPopup().open() AppClosingPopup().open()
return True return True
def file_manager_open(self): def file_manager_open(self):
"""This method open the file manager of local system""" # """This method open the file manager of local system"""
from kivymd.uix.filemanager import MDFileManager # from kivymd.uix.filemanager import MDFileManager
if not self.file_manager: # if not self.file_manager:
self.file_manager = MDFileManager( # self.file_manager = MDFileManager(
exit_manager=self.exit_manager, # exit_manager=self.exit_manager,
select_path=self.select_path, # select_path=self.select_path,
ext=['.png', '.jpg'] # ext=['.png', '.jpg']
) # )
self.file_manager.previous = False # self.file_manager.previous = False
self.file_manager.current_path = '/' # self.file_manager.current_path = '/'
if platform == 'android': # if platform == 'android':
from android.permissions import request_permissions, Permission, check_permission # from android.permissions import request_permissions, Permission, check_permission
if check_permission(Permission.WRITE_EXTERNAL_STORAGE) and \ # if check_permission(Permission.WRITE_EXTERNAL_STORAGE) and \
check_permission(Permission.READ_EXTERNAL_STORAGE): # check_permission(Permission.READ_EXTERNAL_STORAGE):
self.file_manager.show(os.getenv('EXTERNAL_STORAGE')) # self.file_manager.show(os.getenv('EXTERNAL_STORAGE'))
self.manager_open = True # self.manager_open = True
else: # else:
request_permissions([Permission.WRITE_EXTERNAL_STORAGE, Permission.READ_EXTERNAL_STORAGE]) # request_permissions([Permission.WRITE_EXTERNAL_STORAGE, Permission.READ_EXTERNAL_STORAGE])
else: # else:
self.file_manager.show(os.environ["HOME"]) # self.file_manager.show(os.environ["HOME"])
self.manager_open = True # self.manager_open = True
pass
def select_path(self, path): def select_path(self, path):
"""This method is used to save the select image""" """This method is used to save the select image"""
try: # try:
from PIL import Image as PilImage # from PIL import Image as PilImage
newImg = PilImage.open(path).resize((300, 300)) # newImg = PilImage.open(path).resize((300, 300))
if platform == 'android': # if platform == 'android':
android_path = os.path.join( # android_path = os.path.join(
os.environ['ANDROID_PRIVATE'] + '/app' + '/images' + '/kivy/') # os.environ['ANDROID_PRIVATE'] + '/app' + '/images' + '/kivy/')
if not os.path.exists(android_path + '/default_identicon/'): # if not os.path.exists(android_path + '/default_identicon/'):
os.makedirs(android_path + '/default_identicon/') # os.makedirs(android_path + '/default_identicon/')
newImg.save('{1}/default_identicon/{0}.png'.format( # newImg.save('{1}/default_identicon/{0}.png'.format(
state.association, android_path)) # state.association, android_path))
else: # else:
if not os.path.exists(state.imageDir + '/default_identicon/'): # if not os.path.exists(state.imageDir + '/default_identicon/'):
os.makedirs(state.imageDir + '/default_identicon/') # os.makedirs(state.imageDir + '/default_identicon/')
newImg.save(state.imageDir + '/default_identicon/{0}.png'.format(state.association)) # newImg.save(state.imageDir + '/default_identicon/{0}.png'.format(state.association))
self.load_selected_Image(state.association) # self.load_selected_Image(state.association)
toast('Image changed') # toast('Image changed')
except Exception: # except Exception:
toast('Exit') # toast('Exit')
self.exit_manager() # self.exit_manager()
pass
def exit_manager(self, *args): def exit_manager(self, *args):
"""Called when the user reaches the root of the directory tree.""" """Called when the user reaches the root of the directory tree."""
@ -938,64 +944,68 @@ class NavigateApp(MDApp):
self.file_manager.close() self.file_manager.close()
def load_selected_Image(self, curerentAddr): def load_selected_Image(self, curerentAddr):
"""This method load the selected image on screen""" # """This method load the selected image on screen"""
top_box_obj = self.root.ids.content_drawer.ids.top_box.children[0] # 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 = self.root.ids.content_drawer.ids.btn.children[1]
# spinner_img_obj.source = top_box_obj.source ='./images/default_identicon/{0}.png'.format(curerentAddr) # # 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 = 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.opacity = 1
self.root.ids.content_drawer.ids.reset_image.disabled = False # self.root.ids.content_drawer.ids.reset_image.disabled = False
top_box_obj.reload() # top_box_obj.reload()
pass
# spinner_img_obj.reload() # spinner_img_obj.reload()
def rest_default_avatar_img(self): def rest_default_avatar_img(self):
"""set default avatar generated image""" # """set default avatar generated image"""
self.set_identicon(state.association) # self.set_identicon(state.association)
img_path = state.imageDir + '/default_identicon/{}.png'.format(state.association) # img_path = state.imageDir + '/default_identicon/{}.png'.format(state.association)
try: # try:
if os.path.exists(img_path): # if os.path.exists(img_path):
os.remove(img_path) # os.remove(img_path)
self.root.ids.content_drawer.ids.reset_image.opacity = 0 # self.root.ids.content_drawer.ids.reset_image.opacity = 0
self.root.ids.content_drawer.ids.reset_image.disabled = True # self.root.ids.content_drawer.ids.reset_image.disabled = True
except Exception as e: # except Exception as e:
pass # pass
toast('Avatar reset') # toast('Avatar reset')
pass
def copy_composer_text(self, text): # pylint: disable=no-self-use def copy_composer_text(self, text): # pylint: disable=no-self-use
"""Copy the data from mail detail page""" # """Copy the data from mail detail page"""
Clipboard.copy(text) # Clipboard.copy(text)
toast('Copied') # toast('Copied')
pass
def reset_login_screen(self): def reset_login_screen(self):
"""This method is used for clearing random screen""" """This method is used for clearing random screen"""
if self.root.ids.sc7.ids.add_random_bx.children: # if self.root.ids.sc7.ids.add_random_bx.children:
self.root.ids.sc7.ids.add_random_bx.clear_widgets() # self.root.ids.sc7.ids.add_random_bx.clear_widgets()
pass
def open_payment_layout(self, sku): def open_payment_layout(self, sku):
"""It basically open up a payment layout for kivy Ui""" """It basically open up a payment layout for kivy Ui"""
pml = PaymentMethodLayout() # pml = PaymentMethodLayout()
self.product_id = sku # self.product_id = sku
self.custom_sheet = MDCustomBottomSheet(screen=pml) # self.custom_sheet = MDCustomBottomSheet(screen=pml)
self.custom_sheet.open() # self.custom_sheet.open()
pass
def initiate_purchase(self, method_name): def initiate_purchase(self, method_name):
"""initiate_purchase module""" """initiate_purchase module"""
print("Purchasing {} through {}".format(self.product_id, method_name)) # print("Purchasing {} through {}".format(self.product_id, method_name))
pass
def _after_scan(self, text): def _after_scan(self, text):
# if platform == 'android': # if platform == 'android':
# toast_txt = cast(CharSequence, String(text)) # toast_txt = cast(CharSequence, String(text))
# show_toast(toast_txt, Toast.LENGTH_SHORT) # show_toast(toast_txt, Toast.LENGTH_SHORT)
if self.root.ids.sc23.previous_open_screen == 'composer': # if self.root.ids.sc23.previous_open_screen == 'composer':
self.root.ids.sc3.children[1].ids.txt_input.text = text # self.root.ids.sc3.children[1].ids.txt_input.text = text
self.root.ids.scr_mngr.current = 'create' # self.root.ids.scr_mngr.current = 'create'
elif self.root.ids.sc23.previous_open_screen: # elif self.root.ids.sc23.previous_open_screen:
back_screen = self.root.ids.sc23.previous_open_screen # back_screen = self.root.ids.sc23.previous_open_screen
self.root.ids.scr_mngr.current = 'inbox' if back_screen == 'scanscreen' else back_screen # self.root.ids.scr_mngr.current = 'inbox' if back_screen == 'scanscreen' else back_screen
add_obj = self.root.ids.sc23.pop_up_instance # add_obj = self.root.ids.sc23.pop_up_instance
add_obj.content_cls.ids.address.text = text # add_obj.content_cls.ids.address.text = text
Clock.schedule_once(partial(self.open_popup, add_obj), .5) # Clock.schedule_once(partial(self.open_popup, add_obj), .5)
pass
@staticmethod @staticmethod
def open_popup(instance, dt): def open_popup(instance, dt):
"""This method is used for opening popup""" """This method is used for opening popup"""