1313import logging
1414from functools import partial
1515
16- from kivy .properties import (
17- ListProperty ,
18- StringProperty
19- )
16+ from kivy .properties import ListProperty , StringProperty
2017from kivy .uix .screenmanager import Screen
2118from kivy .app import App
2219
3229
3330logger = logging .getLogger ('default' )
3431
32+ INITIAL_SCROLL_POSITION = 1.0
33+ SCROLL_THRESHOLD = - 0.0
34+ SCROLL_RESET_POSITION = 0.06
35+ INITIAL_LOAD_COUNT = 20
36+ ADDRESS_INCREMENT = 5
37+ POPUP_WIDTH_ANDROID = 0.9
38+ POPUP_WIDTH_OTHER = 0.8
39+
3540
3641class AddressBook (Screen , HelperAddressBook ):
37- """AddressBook Screen class for kivy Ui """
42+ """AddressBook Screen class for kivy UI """
3843
3944 queryreturn = ListProperty ()
4045 has_refreshed = True
@@ -45,77 +50,74 @@ class AddressBook(Screen, HelperAddressBook):
4550
4651 def __init__ (self , * args , ** kwargs ):
4752 """Getting AddressBook Details"""
48- super (AddressBook , self ).__init__ (* args , ** kwargs )
53+ super ().__init__ (* args , ** kwargs ) # pylint: disable=missing-super-argument
4954 self .addbook_popup = None
5055 self .kivy_state = kivy_state_variables ()
5156
5257 def loadAddresslist (self , account , where = "" , what = "" ):
53- """Clock Schdule for method AddressBook """
58+ """Load address list with optional search filters """
5459 if self .kivy_state .searching_text :
55- self .ids .scroll_y .scroll_y = 1.0
60+ self .ids .scroll_y .scroll_y = INITIAL_SCROLL_POSITION
5661 where = ['label' , 'address' ]
5762 what = self .kivy_state .searching_text
63+
5864 xAddress = ''
5965 self .ids .tag_label .text = ''
60- self .queryreturn = kivy_helper_search .search_sql (
61- xAddress , account , "addressbook" , where , what , False )
62- self .queryreturn = [obj for obj in reversed (self .queryreturn )]
66+ self .queryreturn = list (reversed (
67+ kivy_helper_search .search_sql (xAddress , account , "addressbook" , where , what , False )
68+ ))
69+
6370 if self .queryreturn :
6471 self .ids .tag_label .text = 'Address Book'
6572 self .has_refreshed = True
66- self .set_mdList (0 , 20 )
73+ self .set_mdList (0 , INITIAL_LOAD_COUNT )
6774 self .ids .scroll_y .bind (scroll_y = self .check_scroll_y )
6875 else :
6976 self .ids .ml .add_widget (empty_screen_label (self .label_str , self .no_search_res_found ))
7077
7178 def set_mdList (self , start_index , end_index ):
72- """Creating the mdList"""
79+ """Create the mdList"""
7380 for item in self .queryreturn [start_index :end_index ]:
74- message_row = SwipeToDeleteItem (
75- text = item [0 ],
76- )
81+ message_row = SwipeToDeleteItem (text = item [0 ])
7782 listItem = message_row .ids .content
7883 listItem .secondary_text = item [1 ]
7984 listItem .theme_text_color = "Custom"
8085 listItem .text_color = ThemeClsColor
8186 image = os .path .join (
82- self .kivy_state .imageDir , "text_images" , "{}.png" .format (avatar_image_first_letter (item [0 ].strip ()))
87+ self .kivy_state .image_dir , "text_images" ,
88+ f"{ avatar_image_first_letter (item [0 ].strip ())} .png" # noqa: E999
8389 )
8490 message_row .ids .avater_img .source = image
85- listItem .bind (on_release = partial (
86- self .addBook_detail , item [1 ], item [0 ], message_row ))
91+ listItem .bind (on_release = partial (self .addBook_detail , item [1 ], item [0 ], message_row ))
8792 message_row .ids .delete_msg .bind (on_press = partial (self .delete_address , item [1 ]))
8893 self .ids .ml .add_widget (message_row )
8994
90- def check_scroll_y (self , instance , somethingelse ):
91- """Load data on scroll"""
92- if self .ids .scroll_y .scroll_y <= - 0.0 and self .has_refreshed :
93- self .ids .scroll_y .scroll_y = 0.06
95+ def check_scroll_y (self , instance , _ ):
96+ """Load more data on scroll down """
97+ if self .ids .scroll_y .scroll_y <= SCROLL_THRESHOLD and self .has_refreshed :
98+ self .ids .scroll_y .scroll_y = SCROLL_RESET_POSITION
9499 exist_addresses = len (self .ids .ml .children )
95100 if exist_addresses != len (self .queryreturn ):
96101 self .update_addressBook_on_scroll (exist_addresses )
97- self .has_refreshed = (
98- True if exist_addresses != len (self .queryreturn ) else False
99- )
102+ self .has_refreshed = exist_addresses != len (self .queryreturn )
100103
101104 def update_addressBook_on_scroll (self , exist_addresses ):
102- """Load more data on scroll down """
103- self .set_mdList (exist_addresses , exist_addresses + 5 )
105+ """Load more data on scroll"""
106+ self .set_mdList (exist_addresses , exist_addresses + ADDRESS_INCREMENT )
104107
105108 @staticmethod
106109 def refreshs (* args ):
107110 """Refresh the Widget"""
108111
109- # @staticmethod
110112 def addBook_detail (self , address , label , instance , * args ):
111- """Addressbook details"""
113+ """Display Addressbook details"""
112114 if instance .state == 'closed' :
113115 instance .ids .delete_msg .disabled = True
114116 if instance .open_progress == 0.0 :
115117 obj = SavedAddressDetailPopup ()
116118 self .address_label = obj .address_label = label
117119 self .address = obj .address = address
118- width = .9 if platform == 'android' else .8
120+ width = POPUP_WIDTH_ANDROID if platform == 'android' else POPUP_WIDTH_OTHER
119121 self .addbook_popup = self .address_detail_popup (
120122 obj , self .send_message_to , self .update_addbook_label ,
121123 self .close_pop , width )
@@ -125,40 +127,42 @@ def addBook_detail(self, address, label, instance, *args):
125127 instance .ids .delete_msg .disabled = False
126128
127129 def delete_address (self , address , instance , * args ):
128- """Delete inbox mail from inbox listing """
130+ """Delete address from the address book """
129131 self .ids .ml .remove_widget (instance .parent .parent )
130- # if len(self.ids.ml.children) == 0:
131- if self .ids .ml .children is not None :
132+ if self .ids .ml .children :
132133 self .ids .tag_label .text = ''
133- sqlExecute (
134- "DELETE FROM addressbook WHERE address = ?" , address )
134+ sqlExecute ("DELETE FROM addressbook WHERE address = ?" , address )
135135 toast ('Address Deleted' )
136136
137137 def close_pop (self , instance ):
138- """Pop is Canceled """
138+ """Cancel and close the popup """
139139 self .addbook_popup .dismiss ()
140140 toast ('Canceled' )
141141
142142 def update_addbook_label (self , instance ):
143- """Updating the label of address book address """
143+ """Update the label of the address book"""
144144 address_list = kivy_helper_search .search_sql (folder = "addressbook" )
145145 stored_labels = [labels [0 ] for labels in address_list ]
146146 add_dict = dict (address_list )
147147 label = str (self .addbook_popup .content_cls .ids .add_label .text )
148+
148149 if label in stored_labels and self .address == add_dict [label ]:
149150 stored_labels .remove (label )
151+
150152 if label and label not in stored_labels :
151153 sqlExecute ("""
152154 UPDATE addressbook
153155 SET label = ?
154156 WHERE address = ?""" , label , self .addbook_popup .content_cls .address )
155- App .get_running_app ().root .ids .id_addressbook .ids .ml .clear_widgets ()
156- App .get_running_app ().root .ids .id_addressbook .loadAddresslist (None , 'All' , '' )
157+
158+ app = App .get_running_app ()
159+ app .root .ids .id_addressbook .ids .ml .clear_widgets ()
160+ app .root .ids .id_addressbook .loadAddresslist (None , 'All' , '' )
157161 self .addbook_popup .dismiss ()
158162 toast ('Saved' )
159163
160164 def send_message_to (self , instance ):
161- """Method used to fill to_address of composer autofield"""
165+ """Fill the to_address of the composer autofield"""
162166 App .get_running_app ().set_navbar_for_composer ()
163167 self .compose_message (None , self .address )
164168 self .addbook_popup .dismiss ()
0 commit comments